Repository navigation
[docs] Revert the 1.0.2 documentation overhaul (#756), keeping the version cut #773
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
3 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,54 +1,74 @@ | ||
| --- | ||
| title: "Keys and permissions" | ||
| description: "Create credentials for people, automation, and machines." | ||
| description: "Create scoped API keys for machines, automation, and operators." | ||
| icon: "key-round" | ||
| --- | ||
|
|
||
| Use a separate key for each person, machine, or automation job. Grant only the permissions it needs. | ||
| API keys belong to an organization and carry explicit permissions. Use separate keys for agent ingestion, policy delivery, evaluators, CI automation, and administrative scripts. | ||
|
|
||
| ## Create and rotate a key | ||
|
|
||
| Use **Admin → Keys**, or the Cloud CLI: | ||
| <Tabs> | ||
| <Tab title="Dashboard"> | ||
| 1. Go to **Administration → Keys**, select **new key**, and enter a workload name. | ||
| 2. Choose a permission set and adjust individual permissions only when the preset is insufficient. | ||
| 3. Create the key and copy its one-time secret immediately. | ||
| 4. Open the key later to update grants, disable it, or regenerate the secret. | ||
|
|
||
| ```bash | ||
| fp keys list | ||
| fp keys create "audit automation" --add audits:read | ||
| fp keys disable "audit automation" | ||
| ``` | ||
| The creation drawer is where you choose the narrowest grants required by the workload. | ||
|
|
||
| Store the secret when it is created; it is not shown again. Rotate by creating a replacement, updating the consumer, then disabling the old key. | ||
|  | ||
|
|
||
| ## Machine keys | ||
| After creation, the Keys page shows the persistent metadata and management actions. The one-time secret is not shown again. | ||
|
|
||
| A machine key connects the local service to Cloud: | ||
|  | ||
|
|
||
| ```bash | ||
| export FAILPROOFAI_CLOUD_TOKEN="<key>" | ||
| failproofai config | ||
| ``` | ||
| Use this list to review grants regularly and disable keys that no longer map to an active workload. | ||
| </Tab> | ||
| <Tab title="CLI"> | ||
| ```bash | ||
| fp keys create production-agents \ | ||
| --add events:add \ | ||
| --add policies:pull | ||
| fp keys show production-agents | ||
| fp keys update production-agents --add events:read | ||
| fp keys regenerate production-agents --yes | ||
| fp keys disable production-agents | ||
| ``` | ||
|
|
||
| A connected machine may need two capabilities: | ||
| Redirect or capture create/regenerate output securely; the secret is returned once. | ||
| </Tab> | ||
| </Tabs> | ||
|
|
||
| - `policies:pull` to receive Cloud-managed policies. | ||
| - `events:add` to send decisions and sessions. | ||
| The two permissions required by a connected Failproof AI machine are independent: | ||
|
|
||
| Status reports these separately because one may work while the other does not. | ||
| - `events:add` sends events and session data. | ||
| - `policies:pull` retrieves assigned policy deployments. | ||
|
|
||
| ## Common permissions | ||
| Key secrets are shown when created or regenerated. Store them in a secret manager and rotate them without reusing an operator's interactive credentials. | ||
|
|
||
| | Permission | Allows | | ||
| ## Permission catalog | ||
|
|
||
| | Area | Permissions | | ||
| | --- | --- | | ||
| | `events:add` | Send events | | ||
| | `events:read` | Read events and errors | | ||
| | `evaluations:read` | Read sessions and evaluations | | ||
| | `audits:read` / `audits:write` | Review or manage audits | | ||
| | `policies:read` / `policies:write` | Review or deploy policies | | ||
| | `policies:pull` | Pull machine policy assignments | | ||
| | `keys:create` / `keys:disable` | Create or disable keys | | ||
| | `orgs:admin` | Instance-level organization administration; not assignable to an organization key | | ||
| | Events | `events:add`, `events:read` | | ||
| | Keys | `keys:create`, `keys:read`, `keys:disable`, `keys:regenerate`; `keys:update` is human-session only | | ||
| | Users | `users:create`, `users:read`, `users:update`, `users:delete` | | ||
| | Evaluations | `evaluations:read`, `evaluations:trigger` | | ||
| | Dashboards | `dashboards:read`, `dashboards:write`, `dashboards:delete` | | ||
| | Queries | `queries:read`, `queries:write`, `queries:delete`, `queries:run` | | ||
| | Assistant | `agent:use` | | ||
| | Settings | `settings:read`, `settings:write` | | ||
| | Alerts | `alerts:read`, `alerts:write` | | ||
| | Issues | `issues:read`, `issues:create`, `issues:close` | | ||
| | Audits | `audits:read`, `audits:write` | | ||
| | Policies | `policies:read`, `policies:write`, `policies:pull` | | ||
| | Usage | `usage:read` | | ||
|
|
||
| `orgs:admin` is reserved for the instance operator and cannot be granted to an organization key or ordinary member. Retired `incidents:*` and `alerts:ack` tokens are accepted for compatibility and normalize to current `issues:*` permissions. | ||
|
|
||
| Some administrative `fp fleet` and `fp guardrails` commands require a signed-in user session rather than an API key. Their help text states this before making a request. | ||
| Builtin permission sets are `read-only`, `standard`, and `admin`. `standard` adds evaluation triggering, query execution, issue response, and assistant use to read permissions. Key creation strips human-only grants even when a permission set contains them. | ||
|
|
||
| <Warning> | ||
| Never reuse ingest credentials such as `AGENTEYE_KEY` or `AGENTEYE_API_KEY` as an `FP_API_KEY`. They serve different systems and permissions. | ||
| Instance-scoped keys can select an organization with the `X-AgentEye-Org` header. Set it explicitly on multi-organization deployments; omission may select the default organization. | ||
| </Warning> |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.