diff --git a/auth/profiles.mdx b/auth/profiles.mdx index 2e592bc..a37a81f 100644 --- a/auth/profiles.mdx +++ b/auth/profiles.mdx @@ -69,6 +69,26 @@ func main() { ``` +## Rename a profile + +Profiles can be renamed without recreating their stored browser state. The new name must be unique within the project. + + +```typescript TypeScript +await kernel.profiles.update('profiles-demo', { name: 'checkout-session' }); +``` + +```python Python +kernel.profiles.update("profiles-demo", name="checkout-session") +``` + +```go Go +_, err := client.Profiles.Update(ctx, "profiles-demo", kernel.ProfileUpdateParams{ + Name: "checkout-session", +}) +``` + + ## 2. Start a browser session using the profile and save changes After creating the profile, reference it by its `name` or `id` when creating a browser. diff --git a/browsers/extensions.mdx b/browsers/extensions.mdx index dca389f..db419a0 100644 --- a/browsers/extensions.mdx +++ b/browsers/extensions.mdx @@ -45,7 +45,9 @@ Extensions uploaded to Kernel are assigned a random ID, but you can also give th This name must be unique within your [project](/info/projects). To retrieve an extension's metadata without downloading the archive, call `GET /extensions/{id_or_name}/metadata`. -The response includes the extension's ID, name, size, and timestamps. +The response includes the extension's ID, name, size, timestamps, and, when available, a lowercase hexadecimal SHA-256 `checksum`. + +The checksum is calculated from the exact archive bytes uploaded to Kernel. It is not a normalized checksum of the unpacked extension: archive metadata, file ordering, or compression can produce a different checksum for otherwise identical files. The value can be absent for legacy extensions and Chrome Web Store extensions that Kernel repackaged. ## Using extensions in a browser diff --git a/info/api-keys.mdx b/info/api-keys.mdx index 125fc8b..5cf8560 100644 --- a/info/api-keys.mdx +++ b/info/api-keys.mdx @@ -154,6 +154,10 @@ func main() { Rename a key when the owner or purpose changes. Delete a key when the workload no longer needs access. + +An API key cannot delete itself. Authenticate with a different key when deleting a key, so the request cannot revoke the credential that is authorizing it. + + ```typescript TypeScript await kernel.apiKeys.update('key_01jwv4tn5m8k3q2v7x9p0a1bc2', { diff --git a/proxies/overview.mdx b/proxies/overview.mdx index 12058b4..49f6e4f 100644 --- a/proxies/overview.mdx +++ b/proxies/overview.mdx @@ -72,6 +72,25 @@ func main() { ``` +## Rename a proxy + +Rename a proxy without changing its type or connection settings. Proxy updates are addressed by ID, and proxy names are not unique, so use the proxy ID when a name could match more than one configuration. + + +```typescript TypeScript +await kernel.proxies.update(proxy.id, { name: 'checkout-proxy' }); +``` + +```python Python +kernel.proxies.update(proxy.id, name="checkout-proxy") +``` + +```go Go +_, err := client.Proxies.Update(ctx, proxy.ID, kernel.ProxyUpdateParams{ + Name: "checkout-proxy", +}) +``` + ## List your proxies