auramaxx 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +26 -0
- package/README.md +77 -0
- package/apps/desktop-electron/main.js +428 -0
- package/bin/auramaxx.js +1063 -0
- package/docs/ADAPTERS.md +466 -0
- package/docs/AGENT_SETUP.md +159 -0
- package/docs/API.md +127 -0
- package/docs/APPS.md +199 -0
- package/docs/ARCHITECTURE.md +235 -0
- package/docs/AUTH.md +318 -0
- package/docs/BEST-PRACTICES.md +82 -0
- package/docs/CLI.md +141 -0
- package/docs/DESKTOP_ELECTRON.md +26 -0
- package/docs/DEVELOPING-APPS.md +453 -0
- package/docs/MCP.md +122 -0
- package/docs/PACKAGING_POLICY.md +19 -0
- package/docs/PERMISSION.md +137 -0
- package/docs/PROTOCOL.md +142 -0
- package/docs/README.md +50 -0
- package/docs/SKILLS.md +132 -0
- package/docs/TROUBLESHOOTING.md +376 -0
- package/docs/WORKSPACE.md +673 -0
- package/docs/agent-auth.md +14 -0
- package/docs/api/authentication.md +79 -0
- package/docs/api/secrets/api-keys.md +28 -0
- package/docs/api/secrets/credentials.md +80 -0
- package/docs/api/secrets/sharing.md +48 -0
- package/docs/api/system.md +41 -0
- package/docs/api/wallets/apps-strategies.md +66 -0
- package/docs/api/wallets/core.md +46 -0
- package/docs/api/wallets/data-portfolio.md +42 -0
- package/docs/aura-file.md +48 -0
- package/docs/core-concepts/FEATURES.md +114 -0
- package/docs/credentials.md +120 -0
- package/docs/external/HOW_TO_AURAMAXX/GETTING_SECRETS.md +33 -0
- package/docs/external/HOW_TO_AURAMAXX/README.md +45 -0
- package/docs/external/getting-started.md +10 -0
- package/docs/external/overview.md +19 -0
- package/docs/external/persona-paths.md +7 -0
- package/docs/external/share-secret.md +76 -0
- package/docs/external/why-aura.md +7 -0
- package/docs/security.md +227 -0
- package/docs/templates/RELEASE_NOTES_TEMPLATE.md +22 -0
- package/docs/wallet/AI.md +508 -0
- package/docs/wallet/DEVELOPING-STRATEGIES.md +713 -0
- package/docs/wallet/README.md +47 -0
- package/docs/wallet/STRATEGY.md +89 -0
- package/next.config.ts +28 -0
- package/package.json +167 -0
- package/postcss.config.mjs +8 -0
- package/prisma/migrations/20260214170000_baseline/migration.sql +511 -0
- package/prisma/migrations/20260216214537_add_passkey_model/migration.sql +18 -0
- package/prisma/migrations/20260217150500_add_credential_access_audit/migration.sql +31 -0
- package/prisma/migrations/20260222090000_update_admin_ttl_default/migration.sql +10 -0
- package/prisma/migrations/migration_lock.toml +3 -0
- package/prisma/schema.prisma +447 -0
- package/public/logo.webp +0 -0
- package/scripts/add-app.js +245 -0
- package/server/abi/SwapHelper.json +438 -0
- package/server/cli/approval.ts +447 -0
- package/server/cli/commands/actions.ts +474 -0
- package/server/cli/commands/api.ts +220 -0
- package/server/cli/commands/apikey.ts +277 -0
- package/server/cli/commands/app.ts +204 -0
- package/server/cli/commands/auth.ts +464 -0
- package/server/cli/commands/cron.ts +24 -0
- package/server/cli/commands/diary.ts +274 -0
- package/server/cli/commands/doctor.ts +1247 -0
- package/server/cli/commands/env.ts +476 -0
- package/server/cli/commands/experimental.ts +69 -0
- package/server/cli/commands/init.ts +798 -0
- package/server/cli/commands/lock.ts +157 -0
- package/server/cli/commands/mcp.ts +285 -0
- package/server/cli/commands/quickhack.ts +86 -0
- package/server/cli/commands/release-check.ts +231 -0
- package/server/cli/commands/restore.ts +314 -0
- package/server/cli/commands/service.ts +320 -0
- package/server/cli/commands/shell-hook.ts +512 -0
- package/server/cli/commands/skill.ts +216 -0
- package/server/cli/commands/start.ts +139 -0
- package/server/cli/commands/status.ts +59 -0
- package/server/cli/commands/stop.ts +36 -0
- package/server/cli/commands/token.ts +180 -0
- package/server/cli/commands/unlock.ts +50 -0
- package/server/cli/commands/vault.ts +1323 -0
- package/server/cli/commands/wallet.ts +209 -0
- package/server/cli/index.ts +280 -0
- package/server/cli/lib/approval-poll.ts +94 -0
- package/server/cli/lib/aura-parser.ts +64 -0
- package/server/cli/lib/credential-create.ts +74 -0
- package/server/cli/lib/credential-resolve.ts +280 -0
- package/server/cli/lib/dotenv-migrate.ts +116 -0
- package/server/cli/lib/dotenv-parser.ts +146 -0
- package/server/cli/lib/escalation.ts +57 -0
- package/server/cli/lib/http.ts +91 -0
- package/server/cli/lib/init-steps.ts +76 -0
- package/server/cli/lib/local-agent-trust.ts +45 -0
- package/server/cli/lib/lock-unlock-helper.ts +71 -0
- package/server/cli/lib/process.ts +162 -0
- package/server/cli/lib/prompt.ts +294 -0
- package/server/cli/lib/theme.ts +240 -0
- package/server/cli/socket.ts +579 -0
- package/server/cli/transport-client.ts +50 -0
- package/server/cron/index.ts +137 -0
- package/server/cron/job.ts +31 -0
- package/server/cron/jobs/balance-sync.ts +436 -0
- package/server/cron/jobs/incoming-scan.ts +506 -0
- package/server/cron/jobs/native-price.ts +70 -0
- package/server/cron/jobs/orphan-cleanup.ts +40 -0
- package/server/cron/jobs/strategy-runner.ts +175 -0
- package/server/cron/scheduler.ts +125 -0
- package/server/index.ts +420 -0
- package/server/lib/adapters/factory.ts +119 -0
- package/server/lib/adapters/index.ts +19 -0
- package/server/lib/adapters/router.ts +297 -0
- package/server/lib/adapters/telegram.ts +645 -0
- package/server/lib/adapters/types.ts +89 -0
- package/server/lib/adapters/webhook.ts +95 -0
- package/server/lib/address.ts +49 -0
- package/server/lib/agent-auth/contracts.ts +1194 -0
- package/server/lib/agent-profiles.ts +419 -0
- package/server/lib/ai.ts +285 -0
- package/server/lib/api-registry/contracts.ts +86 -0
- package/server/lib/api-registry/validation.ts +172 -0
- package/server/lib/apikey-migration.ts +258 -0
- package/server/lib/app-installer.ts +505 -0
- package/server/lib/app-tokens.ts +247 -0
- package/server/lib/approval-link.ts +27 -0
- package/server/lib/auth.ts +314 -0
- package/server/lib/auto-execute.ts +160 -0
- package/server/lib/batch.ts +242 -0
- package/server/lib/cold.ts +1048 -0
- package/server/lib/config.ts +408 -0
- package/server/lib/credential-access-audit.ts +85 -0
- package/server/lib/credential-access-policy.ts +111 -0
- package/server/lib/credential-health.ts +343 -0
- package/server/lib/credential-import.ts +608 -0
- package/server/lib/credential-scope.ts +102 -0
- package/server/lib/credential-shares.ts +190 -0
- package/server/lib/credential-transport.ts +533 -0
- package/server/lib/credential-vault.ts +77 -0
- package/server/lib/credentials.ts +422 -0
- package/server/lib/crypto.ts +8 -0
- package/server/lib/db.ts +58 -0
- package/server/lib/defaults.ts +386 -0
- package/server/lib/dex/index.ts +80 -0
- package/server/lib/dex/relay.ts +235 -0
- package/server/lib/dex/types.ts +59 -0
- package/server/lib/dex/uniswap.ts +370 -0
- package/server/lib/diary.ts +34 -0
- package/server/lib/dont-ask-again-policy.ts +41 -0
- package/server/lib/e2e-agent/artifacts.ts +36 -0
- package/server/lib/e2e-agent/contracts.ts +112 -0
- package/server/lib/e2e-agent/validation.ts +135 -0
- package/server/lib/encrypt.ts +114 -0
- package/server/lib/error.ts +20 -0
- package/server/lib/events.ts +217 -0
- package/server/lib/feature-flags.ts +93 -0
- package/server/lib/hot.ts +357 -0
- package/server/lib/human-action-summary.ts +80 -0
- package/server/lib/key-fingerprint.ts +28 -0
- package/server/lib/logger.ts +340 -0
- package/server/lib/network.ts +137 -0
- package/server/lib/notifications.ts +230 -0
- package/server/lib/oauth2-refresh.ts +241 -0
- package/server/lib/oursecret.ts +71 -0
- package/server/lib/passkey-credential.ts +360 -0
- package/server/lib/passkey.ts +68 -0
- package/server/lib/permissions.ts +299 -0
- package/server/lib/pino.ts +24 -0
- package/server/lib/policy-preview.ts +138 -0
- package/server/lib/price.ts +338 -0
- package/server/lib/prices.ts +34 -0
- package/server/lib/project-scope.ts +297 -0
- package/server/lib/resolve-action.ts +328 -0
- package/server/lib/resolve.ts +36 -0
- package/server/lib/secret-gist-share.ts +296 -0
- package/server/lib/sessions.ts +634 -0
- package/server/lib/socket-path.ts +56 -0
- package/server/lib/solana/connection.ts +26 -0
- package/server/lib/solana/jupiter.ts +128 -0
- package/server/lib/solana/transfer.ts +108 -0
- package/server/lib/solana/wallet.ts +136 -0
- package/server/lib/strategy/emits.ts +21 -0
- package/server/lib/strategy/engine.ts +1305 -0
- package/server/lib/strategy/executor.ts +115 -0
- package/server/lib/strategy/hook-context.ts +159 -0
- package/server/lib/strategy/hooks.ts +990 -0
- package/server/lib/strategy/index.ts +28 -0
- package/server/lib/strategy/installer.ts +305 -0
- package/server/lib/strategy/loader.ts +256 -0
- package/server/lib/strategy/message.ts +237 -0
- package/server/lib/strategy/repository.ts +218 -0
- package/server/lib/strategy/session-logger.ts +693 -0
- package/server/lib/strategy/sources.ts +288 -0
- package/server/lib/strategy/state.ts +189 -0
- package/server/lib/strategy/templates.ts +403 -0
- package/server/lib/strategy/tick.ts +404 -0
- package/server/lib/strategy/types.ts +230 -0
- package/server/lib/swap.ts +3 -0
- package/server/lib/temp.ts +86 -0
- package/server/lib/token-metadata.ts +86 -0
- package/server/lib/token-safety.ts +200 -0
- package/server/lib/token-search.ts +444 -0
- package/server/lib/totp.ts +194 -0
- package/server/lib/transactions.ts +123 -0
- package/server/lib/transport.ts +84 -0
- package/server/lib/txhistory/decoder.ts +262 -0
- package/server/lib/txhistory/enricher.ts +652 -0
- package/server/lib/txhistory/index.ts +391 -0
- package/server/lib/txhistory/signatures.ts +59 -0
- package/server/lib/update-check.ts +35 -0
- package/server/lib/verified-summary.ts +414 -0
- package/server/lib/view-registry.ts +80 -0
- package/server/mcp/profile-policy.ts +30 -0
- package/server/mcp/server.ts +1589 -0
- package/server/mcp/tools.ts +276 -0
- package/server/middleware/auth.ts +119 -0
- package/server/middleware/requestLogger.ts +84 -0
- package/server/routes/actions.ts +539 -0
- package/server/routes/adapters.ts +711 -0
- package/server/routes/addressbook.ts +113 -0
- package/server/routes/ai.ts +34 -0
- package/server/routes/apikeys.ts +343 -0
- package/server/routes/apps.ts +601 -0
- package/server/routes/auth.ts +406 -0
- package/server/routes/backup.ts +404 -0
- package/server/routes/batch.ts +270 -0
- package/server/routes/bookmarks.ts +162 -0
- package/server/routes/credential-shares.ts +380 -0
- package/server/routes/credential-vaults.ts +159 -0
- package/server/routes/credentials.ts +1782 -0
- package/server/routes/dashboard.ts +97 -0
- package/server/routes/defaults.ts +124 -0
- package/server/routes/flags.ts +11 -0
- package/server/routes/fund.ts +225 -0
- package/server/routes/heartbeat.ts +375 -0
- package/server/routes/import.ts +364 -0
- package/server/routes/launch.ts +665 -0
- package/server/routes/lock.ts +54 -0
- package/server/routes/logs.ts +68 -0
- package/server/routes/nuke.ts +111 -0
- package/server/routes/passkey-credentials.ts +99 -0
- package/server/routes/passkey.ts +366 -0
- package/server/routes/portfolio.ts +217 -0
- package/server/routes/price.ts +63 -0
- package/server/routes/resolve.ts +31 -0
- package/server/routes/security.ts +45 -0
- package/server/routes/send-evm.ts +241 -0
- package/server/routes/send-solana.ts +281 -0
- package/server/routes/send.ts +178 -0
- package/server/routes/setup.ts +210 -0
- package/server/routes/strategy.ts +894 -0
- package/server/routes/swap-evm.ts +352 -0
- package/server/routes/swap-solana.ts +176 -0
- package/server/routes/swap.ts +356 -0
- package/server/routes/token.ts +247 -0
- package/server/routes/unlock.ts +467 -0
- package/server/routes/views.ts +41 -0
- package/server/routes/wallet-assets.ts +361 -0
- package/server/routes/wallet-transactions.ts +515 -0
- package/server/routes/wallet.ts +709 -0
- package/server/types.ts +146 -0
- package/shared/credential-field-schema.ts +248 -0
- package/skills/auramaxx/HEARTBEAT.md +78 -0
- package/skills/auramaxx/SKILL.md +745 -0
- package/skills/auramaxx/docs/AGENT_SETUP.md +155 -0
- package/skills/auramaxx/docs/API.md +127 -0
- package/skills/auramaxx/docs/AUTH.md +318 -0
- package/skills/auramaxx/docs/CLI.md +130 -0
- package/skills/auramaxx/docs/MCP.md +122 -0
- package/skills/auramaxx/docs/TROUBLESHOOTING.md +357 -0
- package/skills/auramaxx/docs/WORKSPACE.md +673 -0
- package/skills/auramaxx/docs/security.md +227 -0
- package/skills/task-lifecycle/SKILL.md +378 -0
- package/src/app/api/[...doc]/page.tsx +36 -0
- package/src/app/api/agent-requests/route.ts +30 -0
- package/src/app/api/apps/install/route.ts +132 -0
- package/src/app/api/apps/manifests/route.ts +16 -0
- package/src/app/api/apps/static/[...path]/route.ts +57 -0
- package/src/app/api/docs/plain/route.ts +74 -0
- package/src/app/api/events/route.ts +92 -0
- package/src/app/api/page.tsx +290 -0
- package/src/app/api/workspace/[id]/apps/[wid]/route.ts +119 -0
- package/src/app/api/workspace/[id]/apps/route.ts +81 -0
- package/src/app/api/workspace/[id]/export/route.ts +67 -0
- package/src/app/api/workspace/[id]/route.ts +168 -0
- package/src/app/api/workspace/auth.ts +40 -0
- package/src/app/api/workspace/config/route.ts +121 -0
- package/src/app/api/workspace/import/route.ts +127 -0
- package/src/app/api/workspace/route.ts +116 -0
- package/src/app/app-legacy-do-not-use/page.tsx +2245 -0
- package/src/app/apple-icon.png +0 -0
- package/src/app/approve/[actionId]/page.tsx +409 -0
- package/src/app/docs/DocsPageContent.tsx +269 -0
- package/src/app/docs/[...doc]/page.tsx +41 -0
- package/src/app/docs/page.tsx +38 -0
- package/src/app/favicon.ico +0 -0
- package/src/app/globals.css +819 -0
- package/src/app/health/page.tsx +5 -0
- package/src/app/hello/page.tsx +102 -0
- package/src/app/icon.png +0 -0
- package/src/app/layout.tsx +39 -0
- package/src/app/page.tsx +1964 -0
- package/src/app/privacy/page.tsx +63 -0
- package/src/app/providers.tsx +87 -0
- package/src/app/share/[token]/page.tsx +295 -0
- package/src/app/terms/page.tsx +80 -0
- package/src/components/ChainSelector.tsx +44 -0
- package/src/components/HumanActionBar.tsx +697 -0
- package/src/components/NotificationDrawer.tsx +387 -0
- package/src/components/PasskeyEnrollmentPrompt.tsx +235 -0
- package/src/components/apps/AgentKeysApp.tsx +490 -0
- package/src/components/apps/App.tsx +153 -0
- package/src/components/apps/AppGrid.tsx +15 -0
- package/src/components/apps/DetailedAddressDrawer.tsx +325 -0
- package/src/components/apps/DraggableApp.tsx +562 -0
- package/src/components/apps/IFrameApp.tsx +73 -0
- package/src/components/apps/LogsApp.tsx +360 -0
- package/src/components/apps/SendApp.tsx +394 -0
- package/src/components/apps/SetupWizardApp.tsx +1004 -0
- package/src/components/apps/SystemDefaultsApp.tsx +845 -0
- package/src/components/apps/ThirdPartyApp.tsx +428 -0
- package/src/components/apps/TokenApp.tsx +319 -0
- package/src/components/apps/TransactionsApp.tsx +438 -0
- package/src/components/apps/WalletDetailApp.tsx +1505 -0
- package/src/components/apps/index.ts +13 -0
- package/src/components/design-system/Button.tsx +88 -0
- package/src/components/design-system/ChainIndicator.tsx +65 -0
- package/src/components/design-system/ChainSelector.tsx +147 -0
- package/src/components/design-system/ConfirmationModal.tsx +107 -0
- package/src/components/design-system/ConfirmationPopover.tsx +81 -0
- package/src/components/design-system/DownloadButton.tsx +149 -0
- package/src/components/design-system/Drawer.tsx +133 -0
- package/src/components/design-system/FilterDropdown.tsx +183 -0
- package/src/components/design-system/ItemPicker.tsx +157 -0
- package/src/components/design-system/Modal.tsx +296 -0
- package/src/components/design-system/Popover.tsx +142 -0
- package/src/components/design-system/TextInput.tsx +85 -0
- package/src/components/design-system/Toggle.tsx +65 -0
- package/src/components/design-system/TyvekCollapsibleSection.tsx +55 -0
- package/src/components/design-system/index.ts +14 -0
- package/src/components/docs/ClientSideMarkdown.tsx +51 -0
- package/src/components/docs/DocsSearchBar.tsx +118 -0
- package/src/components/docs/DocsThemeToggle.tsx +38 -0
- package/src/components/docs/PersistentDocGroup.tsx +91 -0
- package/src/components/docs/ShareUrlButton.tsx +33 -0
- package/src/components/docs/SidebarScrollMemory.tsx +56 -0
- package/src/components/health/CredentialHealthDashboard.tsx +214 -0
- package/src/components/icons/ChainIcons.tsx +72 -0
- package/src/components/layout/AppStoreDrawer.tsx +369 -0
- package/src/components/layout/ContentArea.tsx +21 -0
- package/src/components/layout/CreateViewModal.tsx +88 -0
- package/src/components/layout/LeftRail.tsx +114 -0
- package/src/components/layout/TabBar.tsx +284 -0
- package/src/components/layout/WalletSidebar.tsx +1030 -0
- package/src/components/layout/index.ts +6 -0
- package/src/components/marketing/AuraMaxxSpecOverlay.tsx +653 -0
- package/src/components/marketing/DeviceMorphExperience.tsx +216 -0
- package/src/components/vault/ApiKeysConsole.tsx +1272 -0
- package/src/components/vault/AuditConsole.tsx +600 -0
- package/src/components/vault/CredentialDetail.tsx +625 -0
- package/src/components/vault/CredentialEmpty.tsx +55 -0
- package/src/components/vault/CredentialField.tsx +583 -0
- package/src/components/vault/CredentialForm.tsx +1484 -0
- package/src/components/vault/CredentialList.tsx +265 -0
- package/src/components/vault/CredentialRow.tsx +130 -0
- package/src/components/vault/CredentialShareModal.tsx +273 -0
- package/src/components/vault/CredentialVault.tsx +1662 -0
- package/src/components/vault/CredentialWalletWidget.tsx +103 -0
- package/src/components/vault/DocsConsole.tsx +113 -0
- package/src/components/vault/ImportCredentialsModal.tsx +578 -0
- package/src/components/vault/LargeTypeModal.tsx +88 -0
- package/src/components/vault/PasswordGenerator.tsx +232 -0
- package/src/components/vault/TOTPDisplay.tsx +108 -0
- package/src/components/vault/TotpSetupPanel.tsx +198 -0
- package/src/components/vault/VaultSidebar.tsx +881 -0
- package/src/components/vault/credentialFormName.ts +91 -0
- package/src/components/vault/hooks/useVaultKeyboardShortcuts.ts +69 -0
- package/src/components/vault/types.ts +56 -0
- package/src/context/AuthContext.tsx +365 -0
- package/src/context/PriceContext.tsx +113 -0
- package/src/context/ThemeContext.tsx +164 -0
- package/src/context/WebSocketContext.tsx +269 -0
- package/src/context/WorkspaceContext.tsx +668 -0
- package/src/hooks/index.ts +4 -0
- package/src/hooks/useAgentActions.ts +552 -0
- package/src/hooks/useBalance.ts +103 -0
- package/src/hooks/useBalances.ts +129 -0
- package/src/hooks/useTheme.ts +156 -0
- package/src/instrumentation.ts +12 -0
- package/src/lib/api-docs.ts +154 -0
- package/src/lib/api.ts +474 -0
- package/src/lib/app-loader.ts +148 -0
- package/src/lib/app-registry.ts +178 -0
- package/src/lib/app-sdk.ts +157 -0
- package/src/lib/audit-console-adapter.ts +151 -0
- package/src/lib/auth-client.ts +75 -0
- package/src/lib/config.ts +74 -0
- package/src/lib/credential-field-schema.ts +11 -0
- package/src/lib/crypto.ts +112 -0
- package/src/lib/db.ts +21 -0
- package/src/lib/docs.ts +544 -0
- package/src/lib/events.ts +363 -0
- package/src/lib/pino.ts +24 -0
- package/src/lib/theme-handlers.ts +168 -0
- package/src/lib/theme.ts +351 -0
- package/src/lib/tokenData.ts +378 -0
- package/src/lib/totp-import.ts +57 -0
- package/src/lib/vault-crypto.ts +129 -0
- package/src/lib/view-registry.ts +57 -0
- package/src/lib/websocket-server.ts +302 -0
- package/src/lib/websocket-setup.ts +79 -0
- package/src/lib/wordlist.ts +2050 -0
- package/src/lib/workspace-handlers.ts +285 -0
- package/start.sh +170 -0
- package/tailwind.config.ts +99 -0
- package/tsconfig.json +42 -0
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# Credentials
|
|
2
|
+
|
|
3
|
+
AuraMaxx stores credentials as locally encrypted files, scoped by vault. This is the core of AuraMaxx — a credential vault and password manager with support for logins, TOTP/2FA, passkeys, SSH/GPG keys, OAuth2 tokens, and more.
|
|
4
|
+
|
|
5
|
+
## Credential Types
|
|
6
|
+
|
|
7
|
+
| Type | Description | Key Fields |
|
|
8
|
+
|------|-------------|------------|
|
|
9
|
+
| `login` | Website logins | username, password, URL, TOTP |
|
|
10
|
+
| `note` | Secure notes | freeform text |
|
|
11
|
+
| `card` | Payment cards | card number, expiry, CVV |
|
|
12
|
+
| `api` | API credentials | API key, secret, endpoint |
|
|
13
|
+
| `apikey` | Service API keys (internal) | service, name, key |
|
|
14
|
+
| `ssh` | SSH keys | private key (PEM), public key, key type, passphrase, fingerprint, hosts |
|
|
15
|
+
| `gpg` | GPG keys | private key (armored), public key, key ID, fingerprint, email/UID, expiration |
|
|
16
|
+
| `passkey` | WebAuthn/FIDO2 passkeys | credential ID, public key, private key (ECDSA P-256), RP ID, user handle |
|
|
17
|
+
| `oauth2` | OAuth2 refresh tokens | access_token, refresh_token, token_endpoint, client_id, client_secret, expires_at, scopes |
|
|
18
|
+
| `custom` | Freeform key-value | user-defined fields |
|
|
19
|
+
|
|
20
|
+
## Data Model
|
|
21
|
+
|
|
22
|
+
Each credential has:
|
|
23
|
+
|
|
24
|
+
- `id` — unique identifier
|
|
25
|
+
- `vaultId` — which vault owns this credential
|
|
26
|
+
- `type` — one of the types above
|
|
27
|
+
- `name` — human-readable label
|
|
28
|
+
- `meta` — search/filter fields, tags, type-specific metadata (plaintext for listing)
|
|
29
|
+
- Encrypted sensitive fields (encrypted with vault credential key)
|
|
30
|
+
|
|
31
|
+
## Field Model
|
|
32
|
+
|
|
33
|
+
Field shape:
|
|
34
|
+
|
|
35
|
+
- `key` (string)
|
|
36
|
+
- `value` (string)
|
|
37
|
+
- `type` (`text`, `secret`, `url`, `email`, `number`)
|
|
38
|
+
- `sensitive` (boolean)
|
|
39
|
+
|
|
40
|
+
Non-sensitive fields can be mirrored into `meta` for searchability.
|
|
41
|
+
|
|
42
|
+
### Canonical Built-In Field Keys
|
|
43
|
+
|
|
44
|
+
AuraMaxx uses canonical field keys for built-in credential types. Current baseline:
|
|
45
|
+
|
|
46
|
+
| Type | Canonical Field Keys | Notes |
|
|
47
|
+
|------|----------------------|-------|
|
|
48
|
+
| `login` | `url`, `username`, `password`, `notes`, `totp` | `otp` is accepted as legacy alias for `totp` |
|
|
49
|
+
| `card` | `cardholder`, `brand`, `billing_zip`, `last4`, `number`, `cvv`, `expiry`, `notes` | `last4` is derived metadata; `number`/`cvv`/`expiry` are sensitive |
|
|
50
|
+
| `note` | `content` | `value` is accepted as legacy alias and normalized to `content` on read/write paths |
|
|
51
|
+
| `apikey` | `key`, `value` | `key` is metadata/display, `value` is secret |
|
|
52
|
+
| `oauth2` | `token_endpoint`, `scopes`, `auth_method`, `expires_at`, `access_token`, `refresh_token`, `client_id`, `client_secret` | `access_token`/`refresh_token`/`client_id`/`client_secret` are sensitive |
|
|
53
|
+
| `ssh` | `fingerprint`, `key_type`, `hosts`, `public_key`, `private_key`, `passphrase` | `private_key`/`passphrase` are sensitive |
|
|
54
|
+
| `gpg` | `fingerprint`, `key_id`, `uid_email`, `expires_at`, `public_key`, `private_key` | `private_key` is sensitive |
|
|
55
|
+
|
|
56
|
+
## Access Model
|
|
57
|
+
|
|
58
|
+
- `secret:read` — list metadata and read encrypted fields
|
|
59
|
+
- `secret:write` — create, update, and delete credentials
|
|
60
|
+
- Optional credential scopes (`credentialAccess.read` / `.write`) — restrict to specific vaults, tags, or credential IDs
|
|
61
|
+
- Optional `excludeFields` — strip sensitive fields before response encryption
|
|
62
|
+
- Optional `ttl` and `maxReads` — governance limits on credential reads
|
|
63
|
+
|
|
64
|
+
Credential read endpoint returns data encrypted to the caller's `agentPubkey` (RSA-OAEP or hybrid RSA+AES-GCM for larger payloads).
|
|
65
|
+
|
|
66
|
+
## Credential Health
|
|
67
|
+
|
|
68
|
+
Credentials are scanned for security issues:
|
|
69
|
+
|
|
70
|
+
- **Weak passwords** — entropy/length heuristics
|
|
71
|
+
- **Reused passwords** — duplicate detection across credentials
|
|
72
|
+
- **Breached passwords** — HIBP k-anonymity API (only 5-char SHA-1 prefix sent, never the full hash)
|
|
73
|
+
|
|
74
|
+
Health badges appear per-credential in the vault UI. MCP `get_secret` includes a `health` field so agents can flag compromised credentials.
|
|
75
|
+
|
|
76
|
+
CLI: `aura doctor` includes health summary, `aura vault health` for standalone check.
|
|
77
|
+
|
|
78
|
+
## Credential Lifecycle
|
|
79
|
+
|
|
80
|
+
Credentials support soft-delete:
|
|
81
|
+
|
|
82
|
+
1. First delete → archived
|
|
83
|
+
2. Second delete → recently deleted
|
|
84
|
+
3. After 30 days → permanently purged
|
|
85
|
+
|
|
86
|
+
## TOTP Support
|
|
87
|
+
|
|
88
|
+
Any credential with a `totp` or `otp` field automatically gains TOTP code generation:
|
|
89
|
+
|
|
90
|
+
- `POST /credentials/:id/totp` — returns current 6-digit code + time remaining
|
|
91
|
+
- MCP `get_secret` returns current TOTP code when present
|
|
92
|
+
- Extension autofills 2FA fields automatically
|
|
93
|
+
|
|
94
|
+
## OAuth2 Auto-Refresh
|
|
95
|
+
|
|
96
|
+
`oauth2` credentials auto-refresh expired access tokens:
|
|
97
|
+
|
|
98
|
+
- On `get_secret` or credential read, if `access_token` is expired, transparently refreshes via `token_endpoint`
|
|
99
|
+
- Updated tokens are saved back to the credential
|
|
100
|
+
- Agents receive fresh `access_token` without seeing `refresh_token`
|
|
101
|
+
|
|
102
|
+
## Endpoints
|
|
103
|
+
|
|
104
|
+
- `POST /credentials` — create credential
|
|
105
|
+
- `GET /credentials` — list credentials (metadata, scope-filtered)
|
|
106
|
+
- `GET /credentials/:id` — get credential metadata
|
|
107
|
+
- `PUT /credentials/:id` — update credential
|
|
108
|
+
- `DELETE /credentials/:id` — soft-delete (archive → recently deleted → purge)
|
|
109
|
+
- `POST /credentials/:id/read` — read credential (encrypted to `agentPubkey`)
|
|
110
|
+
- `POST /credentials/:id/totp` — generate current TOTP code
|
|
111
|
+
- `GET /credentials/:id/secrets` — admin-only plaintext read
|
|
112
|
+
- `POST /credentials/import` — bulk import (1Password CSV, Bitwarden, Chrome, etc.)
|
|
113
|
+
|
|
114
|
+
## Notes
|
|
115
|
+
|
|
116
|
+
- `oauth2` credentials are restricted to the primary vault.
|
|
117
|
+
- TOTP capability is auto-detected when `totp`/`otp` field exists.
|
|
118
|
+
- Credential files are stored under AuraMaxx data directory (`~/.auramaxx/credentials/`).
|
|
119
|
+
- SSH/GPG credentials store keys in PEM/armored format with auto-computed fingerprints.
|
|
120
|
+
- `aura ssh-agent` can act as an SSH agent (SSH_AUTH_SOCK) backed by vault keys.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Getting Secrets
|
|
2
|
+
|
|
3
|
+
## Fast Path
|
|
4
|
+
|
|
5
|
+
If your vault is unlocked, secret reads should work immediately via CLI or MCP.
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
auramaxx get OURSECRET
|
|
9
|
+
# or
|
|
10
|
+
auramaxx get OURSECRET
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
MCP path:
|
|
14
|
+
|
|
15
|
+
- call `get_secret` with `name: "OURSECRET"`
|
|
16
|
+
|
|
17
|
+
## If It Fails
|
|
18
|
+
|
|
19
|
+
1. Check runtime health:
|
|
20
|
+
- `auramaxx status`
|
|
21
|
+
2. If vault is locked:
|
|
22
|
+
- unlock in dashboard (`http://localhost:4747`) or run `auramaxx unlock`
|
|
23
|
+
3. If MCP/agent call gets permission denied:
|
|
24
|
+
- follow [AGENT_SETUP.md](../../AGENT_SETUP.md) for MCP setup
|
|
25
|
+
- then use [AUTH.md](../../AUTH.md) for token/approval flow details
|
|
26
|
+
|
|
27
|
+
## Optional: Seed Test Secret
|
|
28
|
+
|
|
29
|
+
If `OURSECRET` does not exist yet:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
auramaxx set OURSECRET 123
|
|
33
|
+
```
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# HOW TO AURAMAXX
|
|
2
|
+
|
|
3
|
+
This is the single external entrypoint for understanding and using AuraMaxx.
|
|
4
|
+
|
|
5
|
+
## Fast start
|
|
6
|
+
|
|
7
|
+
### First run
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npx auramaxx
|
|
11
|
+
npx auramaxx status
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Open `http://localhost:4747/`, create/unlock your vault, and add one credential.
|
|
15
|
+
|
|
16
|
+
### Returning run
|
|
17
|
+
|
|
18
|
+
- Service already running: `npx auramaxx status`
|
|
19
|
+
- Service not running: `npx auramaxx && npx auramaxx status`
|
|
20
|
+
|
|
21
|
+
If using global install and prompted to update:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
npm i -g auramaxx
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Core concepts (condensed)
|
|
28
|
+
|
|
29
|
+
- **Auth:** access is explicit and scoped (not just process identity).
|
|
30
|
+
- **Safety:** least-privilege defaults + approval flows.
|
|
31
|
+
- **Understanding Aura:** local-first credential runtime for humans + agents.
|
|
32
|
+
- **Security transparency:** source is auditable on GitHub: <https://github.com/Aura-Industry/auramaxx>
|
|
33
|
+
|
|
34
|
+
## Main usage path
|
|
35
|
+
|
|
36
|
+
- **Start here:** [GETTING_SECRETS.md](./GETTING_SECRETS.md)
|
|
37
|
+
- Then configure MCP clients: [AGENT_SETUP.md](../../AGENT_SETUP.md)
|
|
38
|
+
|
|
39
|
+
## Next references
|
|
40
|
+
|
|
41
|
+
- [CLI](../../CLI.md)
|
|
42
|
+
- [MCP](../../MCP.md)
|
|
43
|
+
- [Auth + permissions](../../AUTH.md)
|
|
44
|
+
- [Security model](../../security.md)
|
|
45
|
+
- [Share secret guide](../share-secret.md)
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Getting Started
|
|
2
|
+
|
|
3
|
+
External getting-started now routes through **HOW TO AURAMAXX**.
|
|
4
|
+
|
|
5
|
+
## Start here
|
|
6
|
+
|
|
7
|
+
- [HOW TO AURAMAXX](./HOW_TO_AURAMAXX/README.md)
|
|
8
|
+
- [SETUP](../AGENT_SETUP.md)
|
|
9
|
+
|
|
10
|
+
For core bootstrap commands, use the root [README](../../README.md).
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Aura Overview
|
|
2
|
+
|
|
3
|
+
AuraMaxx is a local credential vault and agent-safe secret runtime.
|
|
4
|
+
|
|
5
|
+
It helps you store secrets once, use them across CLI/UI/agents, and enforce least-privilege access by default.
|
|
6
|
+
|
|
7
|
+
## External docs entrypoint
|
|
8
|
+
|
|
9
|
+
- Start here: [HOW TO AURAMAXX](./HOW_TO_AURAMAXX/README.md)
|
|
10
|
+
- Main usage path: [SETUP](../AGENT_SETUP.md)
|
|
11
|
+
|
|
12
|
+
## 2-minute proof
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
npx auramaxx
|
|
16
|
+
npx auramaxx status
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Then open `http://localhost:4747/`, create your vault, and add one credential.
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Share a Secret (CLI + UI)
|
|
2
|
+
|
|
3
|
+
This guide covers the current AuraMaxx sharing flow:
|
|
4
|
+
|
|
5
|
+
1. **Preferred:** create a GitHub Gist share link.
|
|
6
|
+
2. **Fallback:** use a local link (only works if recipient can reach your machine).
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Prerequisite: GitHub CLI auth (for Gist sharing)
|
|
11
|
+
|
|
12
|
+
Check auth:
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
gh auth status
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
If not authenticated:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
gh auth login
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
If `gh` is missing, install GitHub CLI first, then authenticate.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## CLI sharing
|
|
29
|
+
|
|
30
|
+
### Recommended command
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
auramaxx vault share OPENAI_KEY --expires-after 24h
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Alias path (same behavior)
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
auramaxx share OPENAI_KEY --expires-after 24h
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### What to expect
|
|
43
|
+
|
|
44
|
+
- If GitHub auth is available, CLI generates a share via Gist and returns a shareable link.
|
|
45
|
+
- If GitHub/Gist path is unavailable, use local-link fallback (see below).
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## UI sharing
|
|
50
|
+
|
|
51
|
+
1. Open Vault and select a credential.
|
|
52
|
+
2. Click **SHARE** in credential detail.
|
|
53
|
+
3. In the share modal:
|
|
54
|
+
- Prefer **SHARE GIST** (recommended for remote recipients).
|
|
55
|
+
- Use local link only when recipient can reach your host/network.
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## Local-link limitation (important)
|
|
60
|
+
|
|
61
|
+
A local link is often **not reachable** by remote recipients.
|
|
62
|
+
|
|
63
|
+
Use local links only when:
|
|
64
|
+
- recipient is on the same network, or
|
|
65
|
+
- you provide a secure tunnel/network path.
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Tunnel/network fallback options
|
|
70
|
+
|
|
71
|
+
If Gist sharing is unavailable and recipient is remote, use one of these:
|
|
72
|
+
|
|
73
|
+
- Cloudflare Tunnel: https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/
|
|
74
|
+
- Tailscale: https://tailscale.com/kb
|
|
75
|
+
|
|
76
|
+
These options can make local-hosted share endpoints reachable in a controlled way.
|
package/docs/security.md
ADDED
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
# Security
|
|
2
|
+
|
|
3
|
+
This document reflects the current security model implemented in the codebase.
|
|
4
|
+
|
|
5
|
+
## Security Overview (why the model is safe)
|
|
6
|
+
|
|
7
|
+
AuraMaxx uses a **three-layer model**:
|
|
8
|
+
|
|
9
|
+
1. **Profile-based issuance** (how a token is created)
|
|
10
|
+
2. **Permission-based runtime enforcement** (what a token can do)
|
|
11
|
+
3. **Granular credential access policy** (which secrets and fields can be touched)
|
|
12
|
+
|
|
13
|
+
The result: tokens are easy to issue, strict to scope, and hard to overscope.
|
|
14
|
+
|
|
15
|
+
### The model in one pass
|
|
16
|
+
|
|
17
|
+
- Agents usually start with an **agent profile** (`POST /auth`) that defines:
|
|
18
|
+
- base permissions
|
|
19
|
+
- credential read/write scopes (vaults/tags/ids)
|
|
20
|
+
- TTL and read limits
|
|
21
|
+
- field redaction policies
|
|
22
|
+
- Issuance is intentionally **human-approved** and not self-service by default.
|
|
23
|
+
- Every API request is still validated again using runtime permission checks.
|
|
24
|
+
- Secret access is additionally constrained by selector checks and read budgets.
|
|
25
|
+
- Tokens are short-lived and can be revoked proactively.
|
|
26
|
+
|
|
27
|
+
### What “least privilege” means here
|
|
28
|
+
|
|
29
|
+
- Profiles give sensible defaults, but they are not blanket trust.
|
|
30
|
+
- Every request is still gated by permissions + scope.
|
|
31
|
+
- Agent callers can only operate on explicitly authorized vaults and fields.
|
|
32
|
+
- If a profile must be tighter, overrides must be **tighten-only**.
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Core Principles
|
|
37
|
+
|
|
38
|
+
1. **Memory-rooted auth/session state** — in-memory SIGNING_KEY, sessions, and revocation state drive runtime trust boundaries.
|
|
39
|
+
2. **Restart invalidates all tokens** — new SIGNING_KEY is generated each restart.
|
|
40
|
+
3. **Minimal permissions** — tokens carry exactly the permissions needed.
|
|
41
|
+
4. **Encrypted secrets at rest** — credential fields are encrypted in local DB with vault-derived keys.
|
|
42
|
+
5. **Encrypted credential transport** — secret reads are encrypted to the caller's RSA pubkey.
|
|
43
|
+
6. **Human-controlled unlocks** — privileged operations require explicit human action.
|
|
44
|
+
7. **Scoped ownership** — credential access requires explicit credential selectors + permission checks.
|
|
45
|
+
|
|
46
|
+
## Current Security Model
|
|
47
|
+
|
|
48
|
+
AuraMaxx is **profile-first** for issuance, but **permission- and scope-enforced at runtime**.
|
|
49
|
+
|
|
50
|
+
- Issuance determines token payload (permissions, TTL, credential selectors, exclusions).
|
|
51
|
+
- Middleware enforces per-route permissions on every call.
|
|
52
|
+
- Credential read/write governance adds extra controls:
|
|
53
|
+
- selector checks
|
|
54
|
+
- per-token read budgets
|
|
55
|
+
- max read/window throttles
|
|
56
|
+
- excluded field minimization
|
|
57
|
+
|
|
58
|
+
Auth/session truth source is still memory-first:
|
|
59
|
+
|
|
60
|
+
- Tokens are signed in memory (`SIGNING_KEY`).
|
|
61
|
+
- Session counters/tracking are memory-backed.
|
|
62
|
+
- Revocations are memory-backed (`revokedTokens`).
|
|
63
|
+
- DB is authoritative for UI/audit views, not for runtime auth decisions.
|
|
64
|
+
|
|
65
|
+
## Agent Token Paths
|
|
66
|
+
|
|
67
|
+
> For quickstart usage and CLI examples, see [AUTH.md](./AUTH.md). This section describes the security enforcement model for each path.
|
|
68
|
+
|
|
69
|
+
### 1) `POST /auth` (profile-only request + human approval)
|
|
70
|
+
|
|
71
|
+
Standard agent onboarding path.
|
|
72
|
+
|
|
73
|
+
- Required: `agentId`, `profile`, `pubkey`.
|
|
74
|
+
- Rejects raw issuance (`permissions`, `ttl`, `credentialAccess`) on `/auth`.
|
|
75
|
+
- Resolves profile policy and stores approval request in memory.
|
|
76
|
+
- After approval, claim via `GET /auth/:requestId?secret=...`.
|
|
77
|
+
|
|
78
|
+
### 2) `POST /actions` + `/actions/:id/resolve` (internal — strategy engine only)
|
|
79
|
+
|
|
80
|
+
> **Note**: `/actions` routes are internal. Agents should use `POST /auth` with an optional `action` field for one-off escalation with auto-execute.
|
|
81
|
+
|
|
82
|
+
- Used internally by the strategy engine's `request_human_action` tool.
|
|
83
|
+
- Caller needs `action:create` to submit.
|
|
84
|
+
- Payload is permission-based.
|
|
85
|
+
- Self-escalation is blocked for `admin:*` and `action:create`.
|
|
86
|
+
- Approved request gets a scoped token and escrowed claim path.
|
|
87
|
+
|
|
88
|
+
### 3) `POST /actions/token` (admin direct issuance)
|
|
89
|
+
|
|
90
|
+
Admin-only endpoint with XOR mode:
|
|
91
|
+
|
|
92
|
+
- `profile` mode: profile + optional tighten-only overrides
|
|
93
|
+
- `permissions` mode: explicit permissions
|
|
94
|
+
|
|
95
|
+
Exactly one mode must be supplied.
|
|
96
|
+
|
|
97
|
+
### 4) Validation and revocation
|
|
98
|
+
|
|
99
|
+
- `POST /auth/validate` validates token status, expiry, and revocation.
|
|
100
|
+
- `POST /actions/tokens/revoke` forcibly removes active token trust.
|
|
101
|
+
|
|
102
|
+
## Profile-Based Security (Current)
|
|
103
|
+
|
|
104
|
+
Built-in profile IDs (`v1`): `strict`, `dev`, `admin`.
|
|
105
|
+
|
|
106
|
+
See [AUTH.md — Built-in Profiles](./AUTH.md#built-in-profiles-v1) for the full breakdown of permissions, scopes, excluded fields, TTL, and max reads per profile.
|
|
107
|
+
|
|
108
|
+
Profile resolution (`resolveProfileToEffectivePolicy`) produces:
|
|
109
|
+
|
|
110
|
+
- expanded permissions
|
|
111
|
+
- `credentialAccess.read` / `credentialAccess.write`
|
|
112
|
+
- `excludeFields`
|
|
113
|
+
- `ttlSeconds`
|
|
114
|
+
- `maxReads`
|
|
115
|
+
- `effectivePolicyHash`
|
|
116
|
+
|
|
117
|
+
### Tighten-only overrides
|
|
118
|
+
|
|
119
|
+
Overrides are only allowed to reduce privilege:
|
|
120
|
+
|
|
121
|
+
- shorter TTL / fewer reads
|
|
122
|
+
- narrower permission scope
|
|
123
|
+
- narrower credential selectors
|
|
124
|
+
- stronger field exclusions
|
|
125
|
+
|
|
126
|
+
## Permission Enforcement (Runtime)
|
|
127
|
+
|
|
128
|
+
Runtime enforcement always applies:
|
|
129
|
+
|
|
130
|
+
- route middleware validates signature, expiry, revocation
|
|
131
|
+
- permission checks (`requirePermission`, `hasAnyPermission`) gate capabilities
|
|
132
|
+
- `admin:*` remains privileged bypass flag where explicitly required
|
|
133
|
+
|
|
134
|
+
Profile is issuance; permission enforcement is the live guardrail.
|
|
135
|
+
|
|
136
|
+
## Granular credential access controls
|
|
137
|
+
|
|
138
|
+
AuraMaxx supports fine-grained secret governance:
|
|
139
|
+
|
|
140
|
+
- `secret:read` and `secret:write` route gating
|
|
141
|
+
- credential selectors:
|
|
142
|
+
- `vault:agent`, `vault:primary`, `vault:*`, `*`
|
|
143
|
+
- `tag:<label>`
|
|
144
|
+
- `cred-xxxxx`
|
|
145
|
+
- policy TTL and `maxReads`
|
|
146
|
+
- per-credential/minute rate limits
|
|
147
|
+
- field minimization via `excludeFields`
|
|
148
|
+
|
|
149
|
+
This means permissions can say “can read secrets,” and selectors define **where** and **what field-level data** is reachable.
|
|
150
|
+
|
|
151
|
+
### Recommended mental model
|
|
152
|
+
|
|
153
|
+
- Permissions say **action** (`read`/`write`/`totp`),
|
|
154
|
+
- selectors say **scope** (vault/field scope),
|
|
155
|
+
- TTL/limits say **time/volume**.
|
|
156
|
+
|
|
157
|
+
## Encrypted transport boundaries
|
|
158
|
+
|
|
159
|
+
- `GET /auth/connect` returns a short-lived server public key.
|
|
160
|
+
- `/setup` and `/unlock` accept encrypted payloads.
|
|
161
|
+
- Agent token claim endpoints return `encryptedToken`.
|
|
162
|
+
- Secret reads return ciphertext suitable to caller key material.
|
|
163
|
+
|
|
164
|
+
This prevents plaintext secrets in transit for normal operations.
|
|
165
|
+
|
|
166
|
+
## Strict mode and local auto-approve
|
|
167
|
+
|
|
168
|
+
Strict posture is preferred for high-trust environments.
|
|
169
|
+
|
|
170
|
+
Set strict local defaults:
|
|
171
|
+
|
|
172
|
+
- `trust.localProfile = strict`
|
|
173
|
+
- `trust.localAutoApprove = false`
|
|
174
|
+
|
|
175
|
+
Quick commands:
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
curl -sS -X PATCH http://localhost:4242/defaults/trust.localProfile \
|
|
179
|
+
-H "Authorization: Bearer <admin_token>" \
|
|
180
|
+
-H "Content-Type: application/json" \
|
|
181
|
+
-d '{"value":"strict"}'
|
|
182
|
+
|
|
183
|
+
curl -sS -X PATCH http://localhost:4242/defaults/trust.localAutoApprove \
|
|
184
|
+
-H "Authorization: Bearer <admin_token>" \
|
|
185
|
+
-H "Content-Type: application/json" \
|
|
186
|
+
-d '{"value":false}'
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
## Profile creation and validation
|
|
190
|
+
|
|
191
|
+
Profiles are derived from built-ins + tighten-only overrides.
|
|
192
|
+
|
|
193
|
+
Supported override keys:
|
|
194
|
+
|
|
195
|
+
- `ttlSeconds`
|
|
196
|
+
- `maxReads`
|
|
197
|
+
- `scope`
|
|
198
|
+
- `readScopes`
|
|
199
|
+
- `writeScopes`
|
|
200
|
+
- `excludeFields`
|
|
201
|
+
|
|
202
|
+
Prefer preview before issuing:
|
|
203
|
+
|
|
204
|
+
- `POST /actions/token/preview`
|
|
205
|
+
- `auramaxx token preview --profile <id> [--profile-version v1] [--overrides '{...}']`
|
|
206
|
+
|
|
207
|
+
## Endpoint Cheat Sheet
|
|
208
|
+
|
|
209
|
+
| Endpoint | Style | Typical use |
|
|
210
|
+
|---|---|---|
|
|
211
|
+
| `POST /auth` | Profile onboarding | Standard agent setup (human approval) |
|
|
212
|
+
| `GET /auth/:requestId?secret=...` | Profile claim | Agent retrieves encrypted token |
|
|
213
|
+
| `POST /auth/validate` | Validation | Verify token validity before use |
|
|
214
|
+
| `POST /actions` | Internal (strategy engine) | Temporary action request |
|
|
215
|
+
| `POST /actions/:id/resolve` | Internal (approval) | Human approves action request |
|
|
216
|
+
| `POST /actions/token` | Admin direct issue | Admin direct token issuance |
|
|
217
|
+
| `POST /actions/tokens/revoke` | Revocation | Immediate invalidate token |
|
|
218
|
+
| `POST /actions/token/preview` | Preview | Validate effective policy before issue |
|
|
219
|
+
| `POST /unlock` / `POST /setup` | Session bootstrap | Human local admin access |
|
|
220
|
+
|
|
221
|
+
## Related Docs
|
|
222
|
+
|
|
223
|
+
- [Auth](./AUTH.md)
|
|
224
|
+
- [API Authentication](./api/authentication.md)
|
|
225
|
+
- [API System](./api/system.md)
|
|
226
|
+
- [CLI](./CLI.md)
|
|
227
|
+
- [Best Practices](./BEST-PRACTICES.md)
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Release Notes Template
|
|
2
|
+
|
|
3
|
+
## Operator changes
|
|
4
|
+
|
|
5
|
+
- What changed for humans running Aura locally?
|
|
6
|
+
- What setup/upgrade action is required?
|
|
7
|
+
- How to verify success (`npx auramaxx doctor` output expectation)?
|
|
8
|
+
|
|
9
|
+
## Agent changes
|
|
10
|
+
|
|
11
|
+
- What changed for agent auth/token behavior?
|
|
12
|
+
- Any profile/scope defaults changed?
|
|
13
|
+
- Any remediation for existing automations?
|
|
14
|
+
|
|
15
|
+
## Verification checklist
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
node scripts/validate-job-docs.mjs
|
|
19
|
+
npx auramaxx doctor
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Mark release notes complete only after both checks pass.
|