-
Notifications
You must be signed in to change notification settings - Fork 11
Reframe auth docs around two integration paths #587
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
28 commits
Select commit
Hold shift + click to select a range
7756238
Reframe auth docs around two integration paths
AnnaXWang afbc70a
Prioritize credential fill in auth docs
AnnaXWang 31721b5
Restore shared docs to their original navigation
AnnaXWang b11778a
Connect credential fill overview to its cookbook
AnnaXWang 9720556
Document existing vault credential sync
AnnaXWang f6c33e3
Clarify credential fill and vault ownership
AnnaXWang 1e56984
Clarify auth use cases and lifecycle boundaries
AnnaXWang 2fa9c56
Trim auth use cases and revise Managed Auth card
AnnaXWang 288a043
Compare where each auth path runs login
AnnaXWang fb23fd9
Apply suggestion from @AnnaXWang
AnnaXWang 4915b49
Apply suggestion from @AnnaXWang
AnnaXWang 640b93a
Update auth/overview.mdx
AnnaXWang 07c8620
Apply suggestion from @AnnaXWang
AnnaXWang d61092c
Apply batched suggestions from code review
AnnaXWang 3cd2732
Apply suggestion from @AnnaXWang
AnnaXWang ff9f926
Apply suggestion from @AnnaXWang
AnnaXWang 46edc53
Apply batched suggestions from code review
AnnaXWang 394d274
Apply suggestion from @AnnaXWang
AnnaXWang cfff4f7
Clarify automatic reauthentication limits and interactive recovery
AnnaXWang dbbe73f
Apply suggestion from @AnnaXWang
AnnaXWang 13adebc
Apply suggestion from @AnnaXWang
AnnaXWang a2b2fb3
Clarify auth comparison and share credential fill examples
AnnaXWang 261e67e
Apply batched suggestions from code review
AnnaXWang 0b7d207
Apply suggestion from @AnnaXWang
AnnaXWang 3035419
Apply batched suggestions from code review
AnnaXWang 5c169d7
Merge main and preserve first-class browser profile URLs
AnnaXWang 574804a
Rename Fill from Vault and reorganize browser navigation
AnnaXWang 684114c
Apply batched suggestions from code review
AnnaXWang File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
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
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 |
|---|---|---|
| @@ -0,0 +1,91 @@ | ||
| --- | ||
| title: "Overview" | ||
| description: "Collect end-user credentials and inject them into browser forms while controlling the login workflow" | ||
| --- | ||
|
|
||
| import CreateCredentialVault from "/snippets/create-credential-vault.mdx"; | ||
| import AttachCredentialVault from "/snippets/attach-credential-vault.mdx"; | ||
| import CollectBrowserCredentials from "/snippets/collect-browser-credentials.mdx"; | ||
| import FillBrowserCredentials from "/snippets/fill-browser-credentials.mdx"; | ||
|
|
||
| Fill from Vault is an integration path where your application or agent controls the login workflow. vaults store encrypted credential items. our `fill` api call writes selected values from an item into browser fields, without exposing secrets to your application or agent. your application or agent owns navigation, field selection, submission, and recovery. | ||
|
|
||
| start with the [end-user auth workflow cookbook](/browsers/use-vault-credentials-in-browser-agent) for an end-to-end example of secure collection, browser attachment, the `fill` operation, form submission, and cleanup. | ||
|
|
||
| KERNEL collects credential values from the user or accepts them from a trusted backend. when invoking `fill`, your controller sends field names and selectors rather than credential values. KERNEL reads the encrypted item and returns value-free outcomes, keeping stored secrets out of agent prompts and browser-automation payloads. | ||
|
|
||
| <Note> | ||
| `fill` only writes stored values into fields you select. it doesn't discover fields, navigate, submit forms, verify authentication, monitor the session, or reauthenticate. your application or agent owns each of those steps. | ||
| </Note> | ||
|
|
||
|
|
||
| ## When to use it | ||
|
|
||
| Fill from Vault works best when: | ||
|
|
||
| - a login or authentication prompt can appear in the middle of a workflow, in the same browser session. | ||
| - your product needs to control the credential collection experience. | ||
| - your application or agent already handles browser navigation and site-specific recovery. | ||
| - you don't need KERNEL to monitor the session or reauthenticate it automatically. | ||
|
|
||
| choose [managed auth](/auth/managed-auth) instead when you want KERNEL to run the login flow, save the authenticated state, monitor the connection, and attempt reauthentication for eligible flows. | ||
|
|
||
| ## How it works | ||
|
|
||
| these examples continue in order, using hacker news as the login destination. set `KERNEL_API_KEY` in your trusted backend environment. all examples use the default project; keep the vault and browser in the same project if you select a different one. | ||
|
|
||
| <Steps> | ||
| <Step title="Create a Vault"> | ||
| create a [vault](/vaults/overview) for each end user or credential-sharing boundary. A vault groups the items that an attached browser session can use. | ||
|
AnnaXWang marked this conversation as resolved.
|
||
|
|
||
| <CreateCredentialVault /> | ||
| </Step> | ||
| <Step title="Attach the Vault to a Browser"> | ||
| attach the vault when you create the browser. The attachment can't change during the session and grants access to every item in that vault. | ||
|
|
||
| <AttachCredentialVault /> | ||
| </Step> | ||
| <Step title="Navigate and Collect Credentials"> | ||
| your application or agent navigates to the login page and identifies its fields before defining a [credential item](/vaults/credentials). hacker news has both login and create-account forms; the selectors in the next step target the login form. inspect the page and recheck them if it changes. | ||
|
|
||
| <CollectBrowserCredentials /> | ||
|
|
||
| present the collection url only in the intended user's authenticated interface or private conversation. don't log it or open it in the agent-controlled browser. wait for the user to finish before continuing. an existing ready item may omit the collection action; reuse it or follow [credential collection](/vaults/credentials#collect-values-from-the-user) to reopen the form. | ||
| </Step> | ||
| <Step title="Invoke the Fill Operation"> | ||
| retrieve the same item, require readiness and an advertised `fill` operation, then invoke [`fill`](/vaults/fill) with field names and selectors. readiness means values exist, not that the website has accepted them. your application must authorize the destination before filling. | ||
|
|
||
| <FillBrowserCredentials /> | ||
|
|
||
| `completed` means the selected fields were filled, not that login succeeded. if `fill` fails, returns an uncertain outcome, or loses its response, stop and [inspect the outcome](/vaults/fill#handle-the-outcome) rather than automatically retrying. | ||
| </Step> | ||
| <Step title="Submit and Handle the Response"> | ||
| after `fill` completes, your application or agent submits the login form once and verifies the site's response. `fill` doesn't perform either step. handle any additional authentication prompts before continuing the task. | ||
|
|
||
| delete the demo browser when finished, and delete the vault only if you created it for this demo and no longer need its credentials. see the [cookbook](/browsers/use-vault-credentials-in-browser-agent) for the complete agent handoff and cleanup guidance. | ||
| </Step> | ||
| </Steps> | ||
|
|
||
| ## Credential sources | ||
|
|
||
| you can collect values from an end user with KERNEL's hosted collection form or [copy them from an existing credential vault](/vaults/existing-credential-vault) that your trusted backend can read. both paths produce a ready credential item and use the same `fill` operation. | ||
|
|
||
| today, copying values stores an encrypted KERNEL copy. `fill` doesn't accept raw values or a third-party vault reference in its request. | ||
|
|
||
| ## Session state | ||
|
|
||
| `fill` completes one part of the workflow. it doesn't monitor the resulting session or reauthenticate it later. if you want to reuse the authenticated state, create the browser with a [profile](/browsers/profiles) and save its changes after the login succeeds. | ||
|
|
||
| ## Next steps | ||
|
|
||
| <CardGroup cols={3}> | ||
| <Card title="Credential Items" icon="lock" href="/vaults/credentials"> | ||
| define fields, collect values, and update credentials without returning sensitive values. | ||
| </Card> | ||
| <Card title="Fill Browser Fields" icon="input-text" href="/vaults/fill"> | ||
| map credential fields to browser inputs and handle completed, failed, or unknown outcomes. | ||
| </Card> | ||
| <Card title="Build an End-User Auth Workflow" icon="user-lock" href="/browsers/use-vault-credentials-in-browser-agent"> | ||
| follow the complete collection and browser fill workflow with the sdk or cli. | ||
| </Card> | ||
| </CardGroup> | ||
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
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.