You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add documentation for GitHub App authentication:
- Environment variables table updated with GitHub App vars
- Token rotation playbook (when to rotate, how to rotate)
- Audit trail information
- Security notes (never commit keys, use .env.local)
Also update constitution principle count from 8 to 9 (workflow
principle added in Phase 1+2).
Copy file name to clipboardExpand all lines: docs/security.md
+53-1Lines changed: 53 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -47,6 +47,10 @@ These are configured automatically by the [app manifest](../slack-app-manifest.y
47
47
|`SLACK_APP_TOKEN`| For Slack | App-level token for Socket Mode (`xapp-`) |
48
48
|`SLACK_CHANNEL_ID`| For Slack | Default channel for intro message on first start |
49
49
|`TELEGRAM_BOT_TOKEN`| For Telegram | Telegram bot token from @BotFather|
50
+
|`GITHUB_APP_ID`| For GitHub | GitHub App ID (see GitHub App section) |
51
+
|`GITHUB_APP_CLIENT_ID`| For GitHub | GitHub App Client ID |
52
+
|`GITHUB_APP_INSTALLATION_ID`| For GitHub | Installation ID for your org/account |
53
+
|`GITHUB_APP_PRIVATE_KEY_B64`| For GitHub | Base64-encoded private key |
50
54
|`PORT`| No (default 3100) | HTTP server port |
51
55
52
56
## MCP Authentication
@@ -92,7 +96,7 @@ The agent runtime includes safety hooks:
92
96
93
97
## Constitution
94
98
95
-
The self-evolution engine has 8 immutable principles in `phantom-config/constitution.md` that cannot be modified by the evolution process:
99
+
The self-evolution engine has 9 immutable principles in `phantom-config/constitution.md` that cannot be modified by the evolution process:
96
100
97
101
- Never exfiltrate data
98
102
- Never modify its own safety hooks
@@ -155,6 +159,54 @@ Dynamic tools (registered at runtime by the agent) execute code in isolated subp
155
159
- Bun script handlers use `--env-file=` to prevent automatic loading of `.env` files
156
160
- Tool input is passed via the TOOL_INPUT environment variable (JSON string)
157
161
162
+
## GitHub App Authentication
163
+
164
+
Phantom can use a GitHub App for authenticated access to GitHub repositories via the `phantom_gh_exec` tool. The installation token is injected into subprocess environments - it never appears in model context or tool results.
165
+
166
+
### Environment Variables
167
+
168
+
| Variable | Purpose |
169
+
|----------|---------|
170
+
|`GITHUB_APP_ID`| GitHub App ID (numeric) |
171
+
|`GITHUB_APP_CLIENT_ID`| GitHub App Client ID (Iv1.xxx format) |
172
+
|`GITHUB_APP_INSTALLATION_ID`| Installation ID for your organization/account |
0 commit comments