Skip to content

Commit 0ae55a6

Browse files
author
Lasim
committed
Enhance security documentation for MCP configuration, detailing secret type support, encryption processes, and API response protection measures.
1 parent b666687 commit 0ae55a6

4 files changed

Lines changed: 54 additions & 10 deletions

File tree

docs/mcp-configuration.mdx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,8 @@ This architecture enables teams to share common settings like API keys while all
6161

6262
The heart of the system is sophisticated lock/unlock controls with precise categorization:
6363

64+
**Secret Type Support:** Configuration values marked as `type: "secret"` in schemas are automatically encrypted for security. For complete details on secret encryption, masking, and security, see [Security and Privacy](/security).
65+
6466
**Global Administrator Controls:**
6567
- **Sophisticated Categorization** - Categorize every configuration element into Template/Team/User tiers
6668
- **Granular Lock/Unlock Controls** - Set default lock states and visibility controls for each element
@@ -116,7 +118,7 @@ Here's how the three tiers combine into a final runtime configuration:
116118
```json
117119
{
118120
"args": [],
119-
"env": {"SHARED_API_KEY": "team-secret-12345"}
121+
"env": {"SHARED_API_KEY": "••••• (encrypted secret)"}
120122
}
121123
```
122124

@@ -140,12 +142,14 @@ Here's how the three tiers combine into a final runtime configuration:
140142
],
141143
"env": {
142144
"PROTOCOL_VERSION": "1.0",
143-
"SHARED_API_KEY": "team-secret-12345",
145+
"SHARED_API_KEY": "decrypted-secret-for-runtime",
144146
"DEBUG": "true"
145147
}
146148
}
147149
```
148150

151+
*Note: Secret values are automatically decrypted only for runtime execution. In all other contexts (API responses, user interfaces), secrets appear masked as `*****`.*
152+
149153
## Key Benefits
150154

151155
**Security:** Sensitive credentials managed at appropriate tiers with encryption and access controls

docs/mcp-team-installation.mdx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ Template Configuration (Set by Global Admin, Cannot Change):
7070
├─ System Flag: "-y" (🔒 Locked Forever)
7171
7272
Team Configuration (You Control):
73-
├─ GIT_ACCESS_TOKEN: "team-git-token-xyz" (🔒 Locked, Hidden)
73+
├─ GIT_ACCESS_TOKEN: "••••• (encrypted secret)" (🔒 Locked)
7474
├─ SHARED_PROJECT_ROOT: "/company/projects" (🔒 Locked)
7575
7676
User Controls (You Decide Lock/Unlock):
@@ -88,8 +88,10 @@ User Controls (You Decide Lock/Unlock):
8888
- Team members can use credentials but may not see actual values
8989

9090
**Credential Visibility:**
91-
- **Hidden Credentials** - Users use them automatically but can't see values (for API keys)
92-
- **Visible Credentials** - Users can see values (for service URLs)
91+
- **Secret Fields** - Users see `*****` and use them automatically (for API keys, tokens)
92+
- **Visible Fields** - Users can see actual values (for service URLs, non-sensitive settings)
93+
94+
For complete details on how secret fields are encrypted and protected, see [Security and Privacy](/security).
9395

9496
**Updates:**
9597
- Update credentials without affecting user configurations

docs/mcp-user-configuration.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ Debug Settings:
6363
6464
TEAM-MANAGED SETTINGS (You inherit these automatically)
6565
66-
✓ Team credentials configured
66+
✓ Team API credentials: ••••• (encrypted, see Security)
6767
✓ Shared project access: /company/projects
6868
✓ Team backup settings: Enabled
6969
@@ -157,7 +157,7 @@ Template (System):
157157
└─ System flags: "-y"
158158
159159
+ Team (Shared):
160-
├─ Team API Key: "team-secret-12345" (hidden from you)
160+
├─ Team API Key: "••••• (encrypted secret, hidden from you)"
161161
├─ Shared directory: "/company/projects"
162162
└─ Backup enabled: true
163163
@@ -170,7 +170,7 @@ Template (System):
170170
Command: npx -y @modelcontextprotocol/server-filesystem
171171
/Users/alice/Development /Users/alice/Projects
172172
Environment: {
173-
"TEAM_API_KEY": "team-secret-12345",
173+
"TEAM_API_KEY": "decrypted-for-runtime-only",
174174
"SHARED_DIR": "/company/projects",
175175
"BACKUP_ENABLED": "true",
176176
"DEBUG": "true",

docs/security.mdx

Lines changed: 40 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,46 @@ To ensure account security:
4141

4242
## Data Protection
4343

44-
### Sensitive Settings
45-
Your configuration data is protected with encryption:
44+
### MCP Configuration Security
45+
46+
DeployStack automatically protects sensitive MCP configuration values through a selective encryption system:
47+
48+
**Secret Type Implementation:**
49+
- **Schema-Based Detection**: Fields marked as `type: "secret"` in MCP schemas are automatically identified for encryption
50+
- **AES-256-GCM Encryption**: Secret values are encrypted using the same industry-standard encryption as global settings
51+
- **Selective Processing**: Only secret-type fields are encrypted; regular configuration values remain as plaintext for performance
52+
- **Encrypted Storage**: Secret values are stored encrypted in the database and never saved as plaintext
53+
54+
**API Response Protection:**
55+
- **Automatic Masking**: All API responses automatically mask secret values as `*****`
56+
- **No Secret Exposure**: Secret values never appear in API responses, logs, or user interfaces
57+
- **Runtime Decryption**: Only authorized operations (like gateway configuration generation) can decrypt secrets for actual use
58+
59+
**Three-Tier Secret Management:**
60+
- **Template Level**: Global administrators define which fields are secret types in schemas
61+
- **Team Level**: Team administrators configure secret values (API keys, tokens) that all team members inherit
62+
- **User Level**: Users see masked values (`*****`) and cannot access actual secret content
63+
64+
**What Gets Encrypted:**
65+
- API keys and authentication tokens
66+
- Database passwords and connection strings
67+
- Service credentials and access keys
68+
- Any configuration field marked as `type: "secret"` in the schema
69+
70+
**What Doesn't Get Encrypted:**
71+
- Debug flags and boolean settings
72+
- File paths and directory names
73+
- Public configuration values
74+
- Regular string, number, and boolean fields
75+
76+
**Security Benefits:**
77+
- **Zero Secret Exposure**: Impossible for secrets to leak through API responses
78+
- **Database Protection**: Even database access doesn't reveal plaintext secrets
79+
- **Audit Safe**: Logs and interfaces never contain actual secret values
80+
- **Team Security**: Team members use secrets without seeing actual values
81+
82+
### Global Settings Encryption
83+
Your global configuration data is protected with encryption:
4684

4785
- **Encrypted storage**: Sensitive settings like passwords and API keys are encrypted
4886
- **Secure keys**: Encryption uses industry-standard methods

0 commit comments

Comments
 (0)