Skip to content

Enterprise Administration Guide

Last Updated: 2026-02-03 | Reading Time: 25 minutes

Complete guide for administering PasteShelf Enterprise.



PasteShelf provides centralized management for organizations.

FeatureDescription
Admin ConsoleWeb-based management interface
SSO IntegrationSAML 2.0 and OIDC support
User ManagementCentralized user provisioning
Policy ManagementOrganization-wide policies
Audit LoggingComplete activity visibility
Team FeaturesShared clipboards and snippets
DLPData loss prevention rules
MDM SupportManaged deployment

URL: https://admin.pasteshelf.app
or
https://your-domain.com/admin (self-hosted)
┌─────────────────────────────────────────────────────────────────────────┐
│ PasteShelf Admin Console [Organization ▼] [Logout] │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ │
│ │ Dashboard │ Users │ Teams │ Policies │ Audit │ Settings │
│ └─────────────┘ │
│ │
│ ───────────────────────────────────────────────────────────────────── │
│ │
│ Overview │
│ ──────── │
│ │
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
│ │ Active Users │ │ Seats Used │ │ Storage Used │ │
│ │ │ │ │ │ │ │
│ │ 247 │ │ 247/500 │ │ 1.2 TB │ │
│ │ │ │ │ │ │ │
│ │ ↑ 12 this week │ │ 49% utilized │ │ of 5 TB quota │ │
│ └─────────────────┘ └─────────────────┘ └─────────────────┘ │
│ │
│ Recent Activity Quick Actions │
│ ─────────────── ───────────── │
│ │
│ ┌─────────────────────────────────────┐ ┌─────────────────────────┐ │
│ │ • [email protected] logged in │ │ [+ Add User] │ │
│ │ 2 minutes ago │ │ [+ Create Team] │ │
│ │ • Policy "DLP-Finance" updated │ │ [⚙ Configure SSO] │ │
│ │ 15 minutes ago │ │ [📊 View Reports] │ │
│ │ • New device activated │ │ │ │
│ │ [email protected] - MacBook Pro │ │ │ │
│ │ 1 hour ago │ │ │ │
│ └─────────────────────────────────────┘ └─────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────┘

Admin Console → Users → Add User
┌─────────────────────────────────────────────────────────────┐
│ Add New User │
├─────────────────────────────────────────────────────────────┤
│ │
│ Email: [[email protected] ] │
│ Full Name: [John Doe ] │
│ Department: [Engineering ▼] │
│ Role: [User ▼] │
│ │
│ Permissions: │
│ ☑ Can use all features │
│ ☑ Can sync to cloud │
│ ☐ Can share with team │
│ ☐ Can export data │
│ │
│ Teams: │
│ ☑ Engineering │
│ ☐ Product │
│ ☐ Marketing │
│ │
│ [Cancel] [Send Invitation] │
│ │
└─────────────────────────────────────────────────────────────┘
# SCIM Configuration
scim:
enabled: true
base_url: https://admin.pasteshelf.app/scim/v2
authentication: bearer_token
token: <generated_token>
# Supported operations
operations:
- Users: create, read, update, delete
- Groups: create, read, update, delete
# Attribute mapping
mapping:
userName: email
displayName: name
emails[primary].value: email
groups: teams
Terminal window
# Create user
curl -X POST https://admin.pasteshelf.app/scim/v2/Users \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/scim+json" \
-d '{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
"userName": "[email protected]",
"name": {
"givenName": "John",
"familyName": "Doe"
},
"emails": [{"primary": true, "value": "[email protected]"}],
"active": true
}'
# List users
curl https://admin.pasteshelf.app/scim/v2/Users \
-H "Authorization: Bearer <token>"
# Deactivate user
curl -X PATCH https://admin.pasteshelf.app/scim/v2/Users/<id> \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/scim+json" \
-d '{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
"Operations": [{"op": "replace", "path": "active", "value": false}]
}'
RolePermissions
UserUse app, sync, basic features
Team LeadUser + manage team members
AdminTeam Lead + configure policies
Super AdminFull administrative access

ProviderProtocolStatus
OktaSAML 2.0, OIDC✅ Supported
Azure ADSAML 2.0, OIDC✅ Supported
Google WorkspaceOIDC✅ Supported
OneLoginSAML 2.0✅ Supported
Ping IdentitySAML 2.0✅ Supported
CustomSAML 2.0, OIDC✅ Supported
Admin Console → Settings → Authentication → SAML 2.0
┌─────────────────────────────────────────────────────────────┐
│ SAML 2.0 Configuration │
├─────────────────────────────────────────────────────────────┤
│ │
│ Service Provider (PasteShelf) │
│ ───────────────────────────── │
│ Entity ID: https://admin.pasteshelf.app/saml/metadata │
│ ACS URL: https://admin.pasteshelf.app/saml/acs │
│ SLO URL: https://admin.pasteshelf.app/saml/slo │
│ │
│ [Download SP Metadata] │
│ │
│ ───────────────────────────────────────────────────────── │
│ │
│ Identity Provider │
│ ───────────────── │
│ │
│ ○ Upload IdP Metadata XML │
│ [Choose File] idp-metadata.xml │
│ │
│ ● Manual Configuration │
│ │
│ IdP Entity ID: [https://idp.company.com/saml ] │
│ SSO URL: [https://idp.company.com/sso ] │
│ SLO URL: [https://idp.company.com/slo ] │
│ Certificate: [-----BEGIN CERTIFICATE-----... ] │
│ │
│ ───────────────────────────────────────────────────────── │
│ │
│ Attribute Mapping │
│ ───────────────── │
│ │
│ Email: [email ] │
│ First Name: [firstName ] │
│ Last Name: [lastName ] │
│ Groups: [memberOf ] │
│ │
│ [Test Configuration] [Save] │
│ │
└─────────────────────────────────────────────────────────────┘
{
"issuer": "https://login.company.com",
"authorization_endpoint": "https://login.company.com/oauth2/authorize",
"token_endpoint": "https://login.company.com/oauth2/token",
"userinfo_endpoint": "https://login.company.com/oauth2/userinfo",
"jwks_uri": "https://login.company.com/.well-known/jwks.json",
"client_id": "pasteshelf-enterprise",
"client_secret": "<secret>",
"scopes": ["openid", "email", "profile", "groups"],
"claim_mapping": {
"email": "email",
"name": "name",
"groups": "groups"
}
}

PolicyDescription
Data RetentionHow long to keep clipboard data
Sync PolicyWhat can be synced
DLP RulesData loss prevention
App RestrictionsAllowed/blocked apps
Security SettingsAuthentication requirements
Admin Console → Policies → Create Policy
┌─────────────────────────────────────────────────────────────┐
│ Create Policy │
├─────────────────────────────────────────────────────────────┤
│ │
│ Policy Name: [Finance Department Policy ] │
│ Description: [Security policy for finance team] │
│ │
│ ───────────────────────────────────────────────────────── │
│ │
│ Data Retention │
│ ────────────── │
│ Maximum history: [90 days ▼] │
│ Auto-delete sensitive: ☑ After [1 hour ▼] │
│ │
│ DLP Rules │
│ ───────── │
│ ☑ Block credit card numbers │
│ ☑ Block SSN/Tax IDs │
│ ☑ Block API keys/secrets │
│ ☐ Custom patterns: [ ] │
│ │
│ Sync Restrictions │
│ ───────────────── │
│ ☑ Disable sync for sensitive content │
│ ☑ Require encryption │
│ ☐ Disable external sync entirely │
│ │
│ App Restrictions │
│ ──────────────── │
│ Blocked apps: [Add app...] │
│ • com.competitor.app │
│ │
│ Assign To │
│ ───────── │
│ ☑ Finance team │
│ ☑ Accounting team │
│ ☐ All users │
│ │
│ [Cancel] [Create Policy] │
│ │
└─────────────────────────────────────────────────────────────┘
dlp-rules.yaml
rules:
- name: "Credit Card Detection"
pattern: '\b(?:\d[ -]*?){13,16}\b'
validation: luhn_check
action: block
notification: admin_alert
severity: high
- name: "AWS Access Key"
pattern: 'AKIA[0-9A-Z]{16}'
action: block
notification: [admin_alert, user_warning]
severity: critical
- name: "Private Key"
pattern: '-----BEGIN (RSA |EC )?PRIVATE KEY-----'
action: block
notification: security_team
severity: critical
- name: "Internal Domain"
pattern: '@internal\.company\.com'
action: encrypt
severity: medium
- name: "Source Code"
pattern: '(?:function|class|def|import)\s+\w+'
source_apps: ["com.apple.Safari", "slack"]
action: audit_only
severity: low

Admin Console → Audit → Event Log
┌─────────────────────────────────────────────────────────────────────────┐
│ Audit Log [Export CSV] [Filter ▼] │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ Timestamp User Event Details │
│ ───────── ──── ───── ─────── │
│ │
│ 2026-02-03 12:45:23 [email protected] item.created Text, Safari │
│ 2026-02-03 12:44:15 [email protected] item.pasted To: Slack │
│ 2026-02-03 12:43:02 [email protected] policy.updated DLP-Finance │
│ 2026-02-03 12:42:30 [email protected] dlp.blocked Credit card │
│ 2026-02-03 12:41:18 [email protected] user.login MacBook Pro │
│ 2026-02-03 12:40:05 [email protected] sync.completed 15 items │
│ │
│ [< Previous] Page 1 of 1,234 [Next >] │
│ │
└─────────────────────────────────────────────────────────────────────────┘
ReportDescriptionSchedule
User ActivityLogin/logout, device usageDaily
Data AccessWho accessed what dataDaily
DLP ViolationsBlocked content eventsReal-time
Sync ActivityCross-device sync eventsWeekly
Policy ChangesAdmin configuration changesReal-time
  • CSV: For spreadsheet analysis
  • JSON: For programmatic processing
  • SIEM Integration: Splunk, Datadog, etc.
Terminal window
# SIEM webhook configuration
{
"endpoint": "https://siem.company.com/api/events",
"format": "json",
"events": ["dlp.blocked", "user.login_failed", "policy.changed"],
"headers": {
"Authorization": "Bearer <siem_token>"
}
}

┌─────────────────────────────────────────────────────────────────────────┐
│ Team: Engineering │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ Shared Snippets [+ New Snippet] │
│ ─────────────── │
│ │
│ ┌────────────────────────────────────────────────────────────────────┐ │
│ │ 📋 API Endpoint Template [Edit] [Delete] │ │
│ │ https://api.company.com/v1/{endpoint} │ │
│ │ Created by: [email protected] │ │
│ └────────────────────────────────────────────────────────────────────┘ │
│ │
│ ┌────────────────────────────────────────────────────────────────────┐ │
│ │ 📋 PR Template [Edit] [Delete] │ │
│ │ ## Summary\n## Changes\n## Testing │ │
│ │ Created by: [email protected] │ │
│ └────────────────────────────────────────────────────────────────────┘ │
│ │
│ Team Members (12) │
│ ──────────────── │
│ │
│ 👤 John Doe (Lead) 👤 Sarah Smith │
│ 👤 Mike Johnson 👤 Emily Davis │
│ ... │
│ │
└─────────────────────────────────────────────────────────────────────────┘
team-config.yaml
team:
name: "Engineering"
description: "Software engineering team"
settings:
shared_snippets_enabled: true
max_snippets: 100
snippet_approval_required: false
sync_settings:
enabled: true
sync_frequency: "realtime"
conflict_resolution: "last_write_wins"
permissions:
can_invite_members: "lead_only"
can_create_snippets: "all_members"
can_delete_snippets: "creator_or_lead"
members:
- email: "[email protected]"
role: "lead"
- email: "[email protected]"
role: "member"

┌─────────────────────────────────────────────────────────────────────────┐
│ System Health │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ Services │
│ ──────── │
│ │
│ ● Sync Server Healthy Response: 120ms │
│ ● Admin Console Healthy Response: 80ms │
│ ● SCIM Endpoint Healthy Response: 65ms │
│ │
│ ───────────────────────────────────────────────────────────────────── │
│ │
│ Metrics (Last 24 Hours) │
│ ─────────────────────── │
│ │
│ API Requests: 45,230 Error Rate: 0.02% │
│ Sync Operations: 12,456 Avg Latency: 85ms │
│ Active Sessions: 198 Peak Users: 247 │
│ │
│ ───────────────────────────────────────────────────────────────────── │
│ │
│ Alerts │
│ ────── │
│ │
│ ⚠️ High sync latency detected (Engineering team) - 2 hours ago │
│ ✓ Resolved: Configuration sync timeout - 6 hours ago │
│ │
└─────────────────────────────────────────────────────────────────────────┘
alerts.yaml
alerts:
- name: "High Error Rate"
condition: "error_rate > 1%"
duration: "5 minutes"
severity: "critical"
notify: ["[email protected]", "pagerduty"]
- name: "DLP Critical Violation"
condition: "dlp_severity == 'critical'"
severity: "critical"
notify: ["[email protected]", "slack:#security-alerts"]
- name: "Sync Failures"
condition: "sync_failures > 10"
duration: "15 minutes"
severity: "warning"
notify: ["[email protected]"]

DocumentDescription
Enterprise DeploymentDeployment guide
SecuritySecurity details
Legal & ComplianceCompliance info

Last updated: 2026-02-03