ai.shipeasy/mcp
NPM · @SHIPEASY/MCP · SCANNED AUG 3
Feature flags, A/B experiments, kill switches, dynamic config & i18n — Shipeasy MCP server.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →
Supply Chain Security88
- No malware found by supply-chain analysis.Pass
- Only part of the dependency tree could be resolved (97 of 101), so this covers what we could see, not the whole tree.Partial
- No install/post-install scripts declared.Pass
- Only part of the dependency tree could be resolved (97 of 101), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency97
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to shipeasy-ai/shipeasy). View diagnostics → Pass
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 6 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability72
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 22388 tokens (~194/item across 115 items; 115 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management26
- Stability check failed: the tool surface changed between 2.5.0 and 2.8.0: 0 tool removals, 1 breaking changes, 0 additions. See how to fix → Fail
Tool Coverage98
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 95% of tool parameters carry a description.Partial
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
npm · @shipeasy/mcp
claude mcp add ai-shipeasy-mcp -- npx -y @shipeasy/mcp
codex mcp add ai-shipeasy-mcp -- npx -y @shipeasy/mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"ai-shipeasy-mcp": {
"type": "local",
"command": [
"npx",
"-y",
"@shipeasy/mcp"
],
"enabled": true
}
}
} openclaw mcp add ai-shipeasy-mcp --command npx --arg -y --arg @shipeasy/mcp
mcp_servers:
ai-shipeasy-mcp:
command: "npx"
args: ["-y", "@shipeasy/mcp"] {
"mcpServers": {
"ai-shipeasy-mcp": {
"command": "npx",
"args": [
"-y",
"@shipeasy/mcp"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Aug 26 −2
No change was recorded against any check on this day. Supply Chain Security went from 97 to 88. Other categories moved too: Stability & Change Management rose 3.
- 2 Aug 26 +44
- Known CVEs: unverified → partial ▲ security
- Provenance: unverified → pass ▲ security
- Install scripts: unverified → pass ▲ security
- Malware scan: unverified → pass ▲ security
- The attested source repository moved: shipeasy-ai/shipeasy security
- Maintenance: unverified → pass ▲ functional
- Dependency health: unverified → partial ▲ functional
- License: unverified → pass ▲ functional
- Licence: MIT functional
- 31 Jul 26 −2
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 −34
- Install scripts: pass → unverified ▼ security
- Provenance: pass → unverified ▼ security
- Known CVEs: partial → unverified ▼ security
- The attested source repository moved: shipeasy-ai/shipeasy security
- License: pass → unverified ▼ functional
- Dependency health: partial → unverified ▼ functional
- Maintenance: pass → unverified ▼ functional
- Licence: MIT functional
- 28 Jul 26 +67
- Known CVEs: unverified → partial ▲ security
- Provenance: unverified → pass ▲ security
- Install scripts: unverified → pass ▲ security
- The attested source repository moved: shipeasy-ai/shipeasy security
- Tool coverage: unverified → 100 ▲ functional
- License: unverified → pass ▲ functional
- Maintenance: unverified → pass ▲ functional
- Dependency health: unverified → partial ▲ functional
- Schema quality: unverified → 100 ▲ functional
- First check of Schema quality: fail functional
- First check of Schema quality: fail functional
- First check of Tool coverage: 95 functional
- First check of Schema quality: good functional
- Licence: MIT functional
- 27 Jul 26 6
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Analysed npm/@shipeasy/[email protected]
Provenance verified
Ecosystem: npm · Outcome: verified
Reason: verified
- Source repo:
- shipeasy-ai/shipeasy
- Certificate issuer:
- https://token.actions.githubusercontent.com
- Certificate SAN:
- https://github.com/shipeasy-ai/shipeasy/.github/workflows/publish-mcp.yml@refs/heads/main
- Rekor log index:
- 2261052342
- Predicate type:
- https://slsa.dev/provenance/v1
- Subject digest:
- sha512:0fa95a914595dbb959af7a7eb4185bcda3d04cac56c8c47b8df9665356898cd2add7341ba0e3f62d879d805c3615304af9a5ee6cb84e0929620ac1f97
- Discovery method:
- attestation_endpoint
Dependencies 97 packages
97 packages in the resolved dependency tree · 94 deprecated · 29 stale.
The dependency tree was only partially resolved, so these counts may be incomplete.
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
ops_investigations_create ~492
Record an investigation. Append one structured investigation record to a queue item — the AI-write seam the cockpit's detail panel renders read-only. Post your findings (`kind: investigated`), a blocking question for the team (`kind: question`), or how to verify the fix (`kind: ready_for_qa` with `qaN…
| Name | Type | Req | Description |
|---|---|---|---|
| agent | string | — | The agent type producing the record — pass your own type when you are a coding agent. |
| completedAt | string | — | ISO-8601 timestamp the work finished. |
| confidence | string | — | Self-reported confidence in the record. |
| connectorId | string | — | The trigger-connector row id the agent ran through. |
| durationMs | integer | — | Run duration in milliseconds. |
| findings | string | — | The full findings write-up (markdown). |
| handle | string | yes | A resource path identifier — an opaque `xxx_<ULID>` id (~30 chars) or the resource's `name`/`key`. 1–128 characters; the upper bound matches the longest name/key any resource accepts, so an over-long… |
| kind | string | yes | Which lifecycle stage the record documents. |
| listToken | string | — | REQUIRED. The `listToken` returned by the most recent `ops_investigations_list` call. It proves you listed existing ops investigations and confirmed this one doesn't already exist before creating it.… |
| model | string | — | The model the agent ran on. |
| prNumber | integer | — | A PR the record references. |
| prUrl | string | — | HTML URL of that PR. |
| qaNotes | string | — | How to verify the fix — QA notes (markdown). |
| question | string | — | A blocking question for the team (markdown). |
| sessionId | string | — | The agent-run session id, so the dashboard can deep-link to the run. |
| sources | array | — | The files/links inspected. |
| startedAt | string | — | ISO-8601 timestamp the work started. |
| summary | string | — | One-line summary of the record. |
| tokensUsed | integer | — | Tokens the run consumed. |
| visibility | string | — | Record visibility. Defaults to `published`; `draft` keeps it out of the panel. |
No output schema declared.
No examples provided.
ops_investigations_list ~133
List an item's investigation records. The structured, read-only investigation records on a queue item — the findings / blocking questions / QA notes an AI agent posted while working it, plus its `working` run rows. Returns `published` records only, newest first (max 50).
| Name | Type | Req | Description |
|---|---|---|---|
| handle | string | yes | A resource path identifier — an opaque `xxx_<ULID>` id (~30 chars) or the resource's `name`/`key`. 1–128 characters; the upper bound matches the longest name/key any resource accepts, so an over-long… |
No output schema declared.
No examples provided.
ops_investigations_update ~479
Update an investigation record. Update one existing investigation record in place — the write-back seam for the `working` run record you were handed when a run was launched. Fill in the `summary`/`findings`, attach the fixing PR, record your `confidence` and the `sources` you inspected, or flip its `kind` of…
| Name | Type | Req | Description |
|---|---|---|---|
| completedAt | string | — | ISO-8601 timestamp the work finished. Set it (or flip `kind` off `working`) to mark a run record done. |
| confidence | string | — | Self-reported confidence in the record. |
| durationMs | integer | — | Run duration in milliseconds. |
| findings | string | — | The full findings write-up (markdown). |
| handle | string | yes | A resource path identifier — an opaque `xxx_<ULID>` id (~30 chars) or the resource's `name`/`key`. 1–128 characters; the upper bound matches the longest name/key any resource accepts, so an over-long… |
| investigationId | string | yes | A resource path identifier — an opaque `xxx_<ULID>` id (~30 chars) or the resource's `name`/`key`. 1–128 characters; the upper bound matches the longest name/key any resource accepts, so an over-long… |
| kind | string | — | Reclassify the record's lifecycle stage (e.g. flip a `working` run into `investigated` once findings land). |
| model | string | — | The model the agent ran on. |
| prNumber | integer | — | A PR the record references. |
| prUrl | string | — | HTML URL of that PR. |
| qaNotes | string | — | How to verify the fix — QA notes (markdown). |
| question | string | — | A blocking question for the team (markdown). |
| sessionId | string | — | The agent-run session id, so the dashboard can deep-link to the run. |
| sources | array | — | The files/links inspected. |
| summary | string | — | One-line summary of the record. |
| tokensUsed | integer | — | Tokens the run consumed. |
| visibility | string | — | Record visibility. `draft` keeps it out of the panel; `published` surfaces it. |
No output schema declared.
No examples provided.
ops_link_pr ~150
Link a fixing PR. Record the pull request that fixes a queue item (and clears the link with `prNumber: null`).
| Name | Type | Req | Description |
|---|---|---|---|
| handle | string | yes | A resource path identifier — an opaque `xxx_<ULID>` id (~30 chars) or the resource's `name`/`key`. 1–128 characters; the upper bound matches the longest name/key any resource accepts, so an over-long… |
| prNumber | — | yes | PR number to record on the item. `null` unlinks the PR. |
| prUrl | string | — | Explicit PR URL. Required for error/alert tickets (no GitHub issue to derive the URL from). |
No output schema declared.
No examples provided.
ops_list ~238
List the operational queue. Returns the unified ops queue (bugs, feature requests, errors, alerts) in work order — highest priority first, oldest first within a priority — so consumers work it top-down. Filter by `type` and/or `status`, and cap with `limit`. Human-gated holding states (items awaiting hum…
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | Max items to return (1–500). |
| owner | string | — | Narrow to items owned by one person OR one agent. Matches a person by `users.id`, email, or display name, and an agent by connector id, display name, or kebab-case handle — e.g. `owner=Claude` or `ow… |
| status | — | — | Filter by lifecycle status, or `all`. The human-gated holding state (`pending_approval`) is excluded from `all`/default and returned only when requested as the exact status. |
| type | — | — | Filter by item type (`bug`/`feature_request`/`error`/`alert`), or `all`. |
No output schema declared.
No examples provided.
ops_notify ~221
Raise an attention notification. Raise a 'needs your attention' bell notification. Create-only and idempotent on `dedupeKey` — re-raising with the same key updates the one card instead of stacking duplicates. It never reads, marks read, or deletes the feed, so it is safe for restricted ops keys.
| Name | Type | Req | Description |
|---|---|---|---|
| dedupeKey | string | — | Stable per-escalation key (e.g. `feedback:7`) so re-runs dedupe to one row. |
| href | — | — | Dashboard-relative deep link to the related item. `null` is accepted and treated as "no link". |
| steps | array | — | Ordered steps the human should take to unblock — self-contained (the human reads only this card, not the agent's transcript), 3–6 steps, each naming the exact file, command, env var, or dashboard pag… |
| summary | string | yes | One sentence: why it can't be fixed in code. Renders markdown. |
| title | string | yes | One-line headline of what's blocked. |
No output schema declared.
No examples provided.
ops_trigger_create_claude ~209
Register a Claude Code scheduled routine as the trigger connector. Creates (or idempotently updates) a coding-agent **trigger** connector — the recurring, unattended run that burns down the ops queue in `--pr` mode. Discriminated on `provider`; only the four Shipeasy-fireable providers are accepted (`claude_trigger`, `cursor_trigger`, `copilo…
| Name | Type | Req | Description |
|---|---|---|---|
| config | object | yes | Non-secret config for a Claude trigger. |
| enabled | boolean | — | Whether the trigger is active on create. |
| events | array | — | Events that auto-fire the routine. Defaults to empty so the trigger does not auto-fire paid runs until events are subscribed. |
| name | string | — | Human-readable connector label. |
| token | string | — | The routine's fire bearer token (secret). **Optional** — a tokenless trigger is recorded but not fireable until a token is added later. Encrypted into the credentials cipher; never persisted in `conf… |
No output schema declared.
No examples provided.
ops_trigger_create_copilot ~192
Register a GitHub Copilot cloud-agent trigger. Creates (or idempotently updates) a coding-agent **trigger** connector — the recurring, unattended run that burns down the ops queue in `--pr` mode. Discriminated on `provider`; only the four Shipeasy-fireable providers are accepted (`claude_trigger`, `cursor_trigger`, `copilo…
| Name | Type | Req | Description |
|---|---|---|---|
| config | object | yes | Non-secret config for a Copilot trigger. |
| enabled | boolean | — | Whether the trigger is active on create. |
| events | array | — | Events that auto-fire a Copilot agent task. Defaults to empty. |
| name | string | — | Human-readable connector label. |
| token | string | yes | Copilot-licensed user PAT (secret). The ops key lives in the repo's GitHub "Agents" secret store and is never sent through Shipeasy. Encrypted; never returned. |
No output schema declared.
No examples provided.
ops_trigger_create_cursor ~219
Register a Cursor cloud-agent trigger (cold-fire; Shipeasy launches the run). Creates (or idempotently updates) a coding-agent **trigger** connector — the recurring, unattended run that burns down the ops queue in `--pr` mode. Discriminated on `provider`; only the four Shipeasy-fireable providers are accepted (`claude_trigger`, `cursor_trigger`, `copilo…
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | yes | Cursor API key that launches the run (secret). Encrypted into the credentials cipher; never returned. |
| config | object | yes | Non-secret config for a Cursor trigger. |
| enabled | boolean | — | Whether the trigger is active on create. |
| events | array | — | Events that auto-fire a cold cloud-agent run. Defaults to empty. |
| name | string | — | Human-readable connector label. |
| opsKey | string | yes | Restricted Shipeasy ops key, injected into the run as `SHIPEASY_CLI_TOKEN` via the launch envVars (secret). Encrypted; never returned. |
No output schema declared.
No examples provided.
ops_trigger_create_jules ~205
Register a Google Jules (Gemini) trigger. Creates (or idempotently updates) a coding-agent **trigger** connector — the recurring, unattended run that burns down the ops queue in `--pr` mode. Discriminated on `provider`; only the four Shipeasy-fireable providers are accepted (`claude_trigger`, `cursor_trigger`, `copilo…
| Name | Type | Req | Description |
|---|---|---|---|
| apiKey | string | yes | Jules API key that launches the session (secret). Encrypted into the credentials cipher; never returned. |
| config | object | yes | Non-secret config for a Jules trigger. |
| enabled | boolean | — | Whether the trigger is active on create. |
| events | array | — | Events that auto-fire a Jules session. Defaults to empty. |
| name | string | — | Human-readable connector label. |
| opsKey | string | yes | Restricted Shipeasy ops key, embedded in the prompt (Jules exposes no env channel) (secret). Encrypted; never returned. |
No output schema declared.
No examples provided.
ops_update ~622
Update a queue item. Update a queue item. The body is validated against the item's stored type: a `bug` accepts its content fields (title, steps-to-reproduce, actual/expected result) plus `status`/`priority`/`notify` and a GitHub PR link; a `feature_request` its content (title, description, use-ca…
| Name | Type | Req | Description |
|---|---|---|---|
| actualResult | string | — | Updated actual result. |
| description | string | — | Updated description. |
| expectedResult | string | — | Updated expected result. |
| githubPrNumber | — | — | Link (or, when `null`, unlink) a GitHub pull request to this bug. |
| handle | string | yes | A resource path identifier — an opaque `xxx_<ULID>` id (~30 chars) or the resource's `name`/`key`. 1–128 characters; the upper bound matches the longest name/key any resource accepts, so an over-long… |
| notify | — | — | Where this item's completion notification lands, or `null`. |
| priority | — | — | Triage priority, or `null` when not set (in an update, `null` clears it). |
| status | string | — | Lifecycle status of a queue item. The working flow is `open` → `in_progress` → `ready_for_qa` → `resolved` (or `wont_fix`, terminal from any earlier stage). `blocked` marks an item that can't progres… |
| stepsToReproduce | string | — | Updated reproduction steps. |
| title | string | — | New bug title (no leading/trailing whitespace). |
| useCase | string | — | Updated use case. |
No output schema declared.
No examples provided.
projects_current ~57
Show the current project. Returns the project the caller's auth header resolves to — plan, status, billing, and which modules are enabled. The server reads the project from the credential, so there is no id parameter. Powers `whoami`.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
projects_update ~881
Update the current project. Update the current project's settings — name, domain, slug, default environment, timezone, experiment-analysis knobs (statistical method, significance threshold, auto-rollback, minimum sample days), and the per-module enable flags. Partial: only the fields you send change.
| Name | Type | Req | Description |
|---|---|---|---|
| autoRollback | boolean | — | Whether a failing guardrail auto-rolls back the experiment. |
| ciConfidence | number | — | Confidence level for the interval surfaced on results (any value in [0.5, 0.999], e.g. 0.90, 0.95, 0.975, 0.99). |
| cupedBaselineDays | integer | — | CUPED baseline window — days of pre-experiment history, frozen at start. |
| cupedMinBaselineUsers | integer | — | CUPED — minimum users with a baseline before it runs at all. |
| cupedMinOverlap | number | — | CUPED selection-bias guard — min share of users with a baseline, else skip. |
| defaultAllocationPct | integer | — | Default traffic allocation (basis points, 1000 = 10%) new experiments start with; overridable per experiment. |
| defaultEnv | string | — | Default environment new resources are scoped to. |
| defaultHoldout | integer | — | Default holdout carve-out (basis points) that seeds each new universe's holdout (0 = none). |
| defaultMei | — | — | Default minimum effect of interest (relative, 0–1) new metrics start with; overridable per metric and per experiment. Null clears it. |
| defaultPower | number | — | Target statistical power (1−β) feeding the realized-MDE calculation. |
| defaultWinsorizePct | integer | — | Default winsorization percentile new metrics start with; overridable per metric. |
| domain | string | — | Lowercase bare hostname (e.g. `acme.com`, `app.acme.com`, `*.acme.com`), or `*` to allow any origin. Full URLs with `https://` are not accepted. The project is keyed by `(owner_email, domain)`, so a… |
| id | string | yes | A resource path identifier — an opaque `xxx_<ULID>` id (~30 chars) or the resource's `name`/`key`. 1–128 characters; the upper bound matches the longest name/key any resource accepts, so an over-long… |
| minRuntimeDays | integer | — | Minimum days an experiment must run before a verdict (peeking guard). |
| minSampleDays | integer | — | Minimum number of days an experiment must run before it can be called. |
| minSampleSize | integer | — | Verdict power guard — minimum users per arm before a ship/hold verdict. |
| moduleConfigs | boolean | — | Enable/disable the dynamic-configs module. |
| moduleEvents | boolean | — | Enable/disable the events module. |
| moduleExperiments | boolean | — | Enable/disable the experiments module. |
| moduleFeedback | boolean | — | Enable/disable the feedback/ops module. |
| moduleGates | boolean | — | Enable/disable the feature-gates module. |
| moduleTranslations | boolean | — | Enable/disable the i18n/translations module. |
| moduleUser | boolean | — | Enable/disable the user-management module. |
| msprtTauMeiFactor | number | — | mSPRT prior width — τ = minimum effect of interest × this factor. |
| msprtTauSdFactor | number | — | mSPRT fallback prior width — τ = this × control SD when no MEI is set. |
| name | string | — | New project name. |
| sigThreshold | string | — | Significance threshold (alpha) for experiment analysis. |
| slug | string | — | URL-safe identifier used in app URLs and SDK config. Lowercase letters, numbers, and hyphens; 2–48 chars; cannot start or end with a hyphen. The caller lowercases the raw slug before sending. |
| srmThreshold | number | — | SRM chi-square p-value below which the run is called invalid. |
| statMethod | string | — | Statistical method the experiment analyzer uses. |
| timezone | string | — | IANA timezone the project's daily analysis runs in. |
No output schema declared.
No examples provided.
projects_upsert ~177
Find-or-create a Shipeasy project by domain (idempotent) and bind the cwd to it via .shipeasy. Use this on fresh installs BEFORE any other write tool — every other write tool refuses to run until .shipeasy exists. Re-running with the same domain returns the existing project unchanged.
| Name | Type | Req | Description |
|---|---|---|---|
| bind | boolean | — | Write .shipeasy after upsert. Default true. Set false to skip binding. |
| domain | string | yes | Hostname-like identifier for the project (e.g. shouks.app, acme.com). Primary key for upsert. |
| name | string | — | Human-readable project name. Defaults to the domain on first create; ignored on later upserts. |
| path | string | — | Directory to write .shipeasy in. Defaults to the MCP server's cwd. |
No output schema declared.
No examples provided.
release_configs_archive ~93
Delete a dynamic config. Soft-deletes the config and rebuilds the project's flags KV blob.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | A resource path identifier — an opaque `xxx_<ULID>` id (~30 chars) or the resource's `name`/`key`. 1–128 characters; the upper bound matches the longest name/key any resource accepts, so an over-long… |
No output schema declared.
No examples provided.
release_configs_create ~404
Create a dynamic config. Creates a new config with the given `schema`. The initial `value` (or an empty object) is published as version 1 on **every** env.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | — | Optional free-form description shown in the dashboard. Max 512 chars. |
| dev | object | — | Seed the **dev** env's initial value (version 1), overriding `value` for dev. Published immediately. Must match `schema`. |
| folder | — | — | Optional folder name grouping items in the dashboard. Alphanumeric, `_` or `-` (no `/`). Part of the SDK lookup key (`<folder>/<name>`). |
| listToken | string | — | REQUIRED. The `listToken` returned by the most recent `release_configs_list` call. It proves you listed existing release configs and confirmed this one doesn't already exist before creating it. Call… |
| name | string | yes | Stable config/killswitch key in `folder.name` form (two lowercase segments separated by a dot, e.g. `pricing.tiers`). Immutable after create. |
| prod | object | — | Seed the **prod** env's initial value (version 1), overriding `value` for prod. Published immediately. Must match `schema`. |
| schema | object | yes | JSON Schema (draft 2020-12) describing the shape of the config value. Top-level `type` must be `'object'`; every published value is validated against this schema. |
| staging | object | — | Seed the **staging** env's initial value (version 1), overriding `value` for staging. Published immediately. Must match `schema`. |
| value | object | — | Initial config value. Either a single JSON object applied to every env, or a `{ env: value }` map seeding per-env values. Must match `schema`. Defaults to `{}` on every env when omitted. |
No output schema declared.
No examples provided.
release_configs_get ~104
Get one config. Returns config metadata plus the latest published values per env and any active draft values. Use this to fetch the JSON the editor renders.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | A resource path identifier — an opaque `xxx_<ULID>` id (~30 chars) or the resource's `name`/`key`. 1–128 characters; the upper bound matches the longest name/key any resource accepts, so an over-long… |
No output schema declared.
No examples provided.
release_configs_list ~133
List dynamic configs. Returns a single page of configs ordered by `updated_at desc, id desc`. Each row includes the latest published `version` per env and any active drafts.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | — | Opaque cursor returned in the previous page's `next_cursor`. Omit for the first page. |
| limit | integer | — | Page size (1–500). Defaults to 100. |
| q | string | — | Case-insensitive substring filter across the resource's human-readable text columns (e.g. `name`, `title`, `description`). OR-matched across those columns; omit to return everything. |
No output schema declared.
No examples provided.
release_configs_update ~371
Update a dynamic config. Partial update. When `value` is supplied it is **republished on every env** (new version per env). A per-env key (`dev`/`staging`/`prod`) publishes a new version to **only that env**, immediately, overriding `value` for it. When `schema` is supplied it replaces the current sch…
| Name | Type | Req | Description |
|---|---|---|---|
| dev | object | — | Publish a new version to the **dev** env only, immediately (no draft). Overrides `value` for dev. Must match the effective schema. |
| folder | — | — | Optional folder name grouping items in the dashboard. Alphanumeric, `_` or `-` (no `/`). Part of the SDK lookup key (`<folder>/<name>`). |
| id | string | yes | A resource path identifier — an opaque `xxx_<ULID>` id (~30 chars) or the resource's `name`/`key`. 1–128 characters; the upper bound matches the longest name/key any resource accepts, so an over-long… |
| prod | object | — | Publish a new version to the **prod** env only, immediately (no draft). Overrides `value` for prod. Must match the effective schema. |
| schema | object | — | Replacement schema. When supplied, the new schema is validated against every published value before it lands. |
| staging | object | — | Publish a new version to the **staging** env only, immediately (no draft). Overrides `value` for staging. Must match the effective schema. |
| value | object | — | Flat value applied to **every** env. Publishes a new version per env. To publish one env only, pass that env's key (`dev`/`staging`/`prod`) instead. |
No output schema declared.
No examples provided.
release_configs_update_schema ~143
Update a config schema. Replaces a config's JSON Schema in place. Every existing published value is re-validated against the new schema before it lands; the update fails if any value no longer validates.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | A resource path identifier — an opaque `xxx_<ULID>` id (~30 chars) or the resource's `name`/`key`. 1–128 characters; the upper bound matches the longest name/key any resource accepts, so an over-long… |
| schema | object | yes | Replacement JSON Schema (draft 2020-12). Validated against every published value before it lands. |
No output schema declared.
No examples provided.
release_experiments_archive ~107
Delete an experiment. Archives the experiment (soft-delete via status transition). Returns `409` if the experiment is still `running` — stop it first.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | A resource path identifier — an opaque `xxx_<ULID>` id (~30 chars) or the resource's `name`/`key`. 1–128 characters; the upper bound matches the longest name/key any resource accepts, so an over-long… |
No output schema declared.
No examples provided.
release_experiments_create ~887
Create an experiment. Creates a new experiment in `draft` status. `name`, `universe`, and `groups` are required; everything else has sensible defaults.
| Name | Type | Req | Description |
|---|---|---|---|
| allocation_pct | integer | — | Share of the (gated) audience allocated to the experiment, in basis points (0–10000 = 0%–100%). `0` = unallocated. Under pooled assignment this is the size of the universe-pool slice claimed. Use `al… |
| allocation_percent | number | — | Allocation as a **percentage** (0–100, fractional ok). Friendlier alias for `allocation_pct`; converted to basis points server-side (e.g. `50` = 5000 bp). If both are set, `allocation_percent` wins. |
| audience | — | — | Audience label shown in the editor. Display-only. |
| bucket_by | — | — | — |
| description | — | — | Free-form description. Max 2000 chars, markdown rendered in the dashboard. |
| folder | — | — | Optional folder name grouping items in the dashboard. Alphanumeric, `_` or `-` (no `/`). Part of the SDK lookup key (`<folder>/<name>`). |
| goal_metric | object | — | Inline metric — a DSL `query`, or an `event` (+ `aggregation`/`value`) the server compiles into one. |
| groups | array | yes | Two or more variants. Weights must sum to `10000 − reserved_headroom`. Existing weights are immutable while running, but a new variant may be appended into the reserved tail. |
| guardrail_metrics | array | — | Up to 10 guardrail metrics defined inline. Each is upserted (event + metric) and attached with role=guardrail. |
| holdout_gate | — | — | Optional per-experiment holdout gate — the name of a `holdout`-type flag (public % + whitelist). A caller the flag passes is *held out* (never assigned, sees the universe defaults). Distinct from the… |
| hypothesis | — | — | Hypothesis statement shown in the editor. Display-only. |
| listToken | string | — | REQUIRED. The `listToken` returned by the most recent `release_experiments_list` call. It proves you listed existing release experiments and confirmed this one doesn't already exist before creating i… |
| min_runtime_days | integer | — | Minimum days the experiment must run before results are considered conclusive. |
| min_sample_size | integer | — | Minimum exposures per group before results are considered conclusive. |
| name | string | yes | Stable experiment key. Single segment or `folder.name` (a-z, 0-9, `_`/`-`; max 128 chars). Used by SDKs as `Shipeasy.getExperiment(user, '<name>')`. Immutable after create. |
| owner_email | — | — | Owner email. Display-only. |
| params | object | — | **Deprecated** — the universe now owns the config schema (`param_schema`). Retained for back-compat; new experiments should leave this empty and declare params on the universe. Map of param-name → sc… |
| reserved_headroom | integer | — | Basis points of this experiment's split kept empty (0–10000) so a new variant can be appended into it while running without reshuffling. Group weights must sum to `10000 − reserved_headroom`. Default… |
| salt | string | — | Hash salt for bucketing. Auto-generated if omitted. Immutable while running. |
| sequential_testing | boolean | — | Enable sequential testing (always-valid p-values). Requires Premium plan or higher. |
| significance_threshold | number | — | p-value cutoff used by the analysis pass. Defaults to `0.05`. Values other than 0.05 require Pro plan or higher. |
| tag | — | — | Short tag chip rendered next to the name. Display-only. |
| targeting_gate | — | — | Optional gate name (a `targeting`-type flag). Only callers that pass the gate are enrolled in the experiment. |
| universe | string | yes | Name of an existing universe in the project. Returns `422` if the universe doesn't exist. |
No output schema declared.
No examples provided.
release_experiments_get ~96
Get one experiment. Returns the full experiment row including groups, params, allocation, and lifecycle timestamps.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | A resource path identifier — an opaque `xxx_<ULID>` id (~30 chars) or the resource's `name`/`key`. 1–128 characters; the upper bound matches the longest name/key any resource accepts, so an over-long… |
No output schema declared.
No examples provided.
release_experiments_list ~171
List experiments. Returns a single page of non-archived experiments ordered by `updated_at desc, id desc`. Use the `cursor` query parameter to paginate.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | — | Opaque cursor returned in the previous page's `next_cursor`. Omit for the first page. |
| limit | integer | — | Page size (1–500). Defaults to 100. |
| q | string | — | Case-insensitive substring filter across the resource's human-readable text columns (e.g. `name`, `title`, `description`). OR-matched across those columns; omit to return everything. |
| status | string | — | Filter by lifecycle status. Pass `archived` to return the archive tab; any other value (or omitting it) returns the non-archived experiments. |
No output schema declared.
No examples provided.
release_experiments_readout_create ~256
Mint a readout snapshot. Freezes the current results view into an immutable, dated readout snapshot — verdict, headline, per-metric numbers, the caveat list with its acknowledgment state, enrollment, and a hash of the assignment-relevant config. Ship/stop flows mint one automatically; "Share readout" …
| Name | Type | Req | Description |
|---|---|---|---|
| acknowledgedCaveatIds | array | — | Ids of the open caveats the caller ticked (decision-gating acknowledgment). Unlisted caveats are stored as unacknowledged. |
| id | string | yes | A resource path identifier — an opaque `xxx_<ULID>` id (~30 chars) or the resource's `name`/`key`. 1–128 characters; the upper bound matches the longest name/key any resource accepts, so an over-long… |
| kind | string | yes | Why the snapshot is being minted — `manual` ("Share readout"), or automatically on `ship` / `stop`. |
| requireAllAcknowledged | boolean | — | When `true`, refuse (`422`) to mint while any open caveat is not listed in `acknowledgedCaveatIds` — server-side ship gating. |
No output schema declared.
No examples provided.
release_experiments_readout_get ~203
Get a readout snapshot. Returns one immutable readout snapshot — the frozen results view (verdict, headline, per-metric numbers, caveats, enrollment) captured when it was minted, plus the `configHash` that tells you whether it is still comparable to the live view.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | A resource path identifier — an opaque `xxx_<ULID>` id (~30 chars) or the resource's `name`/`key`. 1–128 characters; the upper bound matches the longest name/key any resource accepts, so an over-long… |
| readoutId | string | yes | A resource path identifier — an opaque `xxx_<ULID>` id (~30 chars) or the resource's `name`/`key`. 1–128 characters; the upper bound matches the longest name/key any resource accepts, so an over-long… |
No output schema declared.
No examples provided.
release_experiments_reanalyze ~115
Re-queue analysis. Requeues the daily analysis pass for this experiment outside the normal cron cadence. Useful after attaching a new metric or correcting an event taxonomy. The job runs asynchronously.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | A resource path identifier — an opaque `xxx_<ULID>` id (~30 chars) or the resource's `name`/`key`. 1–128 characters; the upper bound matches the longest name/key any resource accepts, so an over-long… |
No output schema declared.
No examples provided.
release_experiments_restore ~92
Restore an archived experiment (→ draft). Drives the experiment lifecycle. Allowed transitions:
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | A resource path identifier — an opaque `xxx_<ULID>` id (~30 chars) or the resource's `name`/`key`. 1–128 characters; the upper bound matches the longest name/key any resource accepts, so an over-long… |
No output schema declared.
No examples provided.
release_experiments_results ~119
Get analysis results. Returns the latest analysis output for the experiment — one row per metric/group/day, including sample size, mean, % delta vs. control, p-value, and a sample-ratio mismatch flag.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | A resource path identifier — an opaque `xxx_<ULID>` id (~30 chars) or the resource's `name`/`key`. 1–128 characters; the upper bound matches the longest name/key any resource accepts, so an over-long… |
No output schema declared.
No examples provided.
release_experiments_set_metrics ~132
Attach metrics. Replaces the experiment's metric attachments wholesale. Each entry pairs an existing `metric_id` with a `role` (`goal` / `guardrail` / `secondary`).
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | A resource path identifier — an opaque `xxx_<ULID>` id (~30 chars) or the resource's `name`/`key`. 1–128 characters; the upper bound matches the longest name/key any resource accepts, so an over-long… |
| metrics | array | yes | Replacement metrics list — replaces the current attachments wholesale. |
No output schema declared.
No examples provided.
release_experiments_start ~92
Start an experiment (draft → running). Drives the experiment lifecycle. Allowed transitions:
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | A resource path identifier — an opaque `xxx_<ULID>` id (~30 chars) or the resource's `name`/`key`. 1–128 characters; the upper bound matches the longest name/key any resource accepts, so an over-long… |
No output schema declared.
No examples provided.
release_experiments_stop ~89
Stop a running experiment. Drives the experiment lifecycle. Allowed transitions:
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | A resource path identifier — an opaque `xxx_<ULID>` id (~30 chars) or the resource's `name`/`key`. 1–128 characters; the upper bound matches the longest name/key any resource accepts, so an over-long… |
No output schema declared.
No examples provided.
release_experiments_timeseries ~126
Get analysis timeseries. Same row shape as `/results`, but returns every daily slice rather than the latest. Filter to a single metric with the `metric` query parameter.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | A resource path identifier — an opaque `xxx_<ULID>` id (~30 chars) or the resource's `name`/`key`. 1–128 characters; the upper bound matches the longest name/key any resource accepts, so an over-long… |
| metric | string | — | Optional metric name to filter the series. |
No output schema declared.
No examples provided.
release_experiments_universes_archive ~109
Delete a universe. Soft-deletes the universe. Returns `409` if any non-archived experiment still references it — archive those experiments first.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | A resource path identifier — an opaque `xxx_<ULID>` id (~30 chars) or the resource's `name`/`key`. 1–128 characters; the upper bound matches the longest name/key any resource accepts, so an over-long… |
No output schema declared.
No examples provided.
release_experiments_universes_create ~395
Create a universe. Creates a new universe. Only `name` is required — `unit_type` defaults to `user_id` and `holdout_range` defaults to `null` (no holdout).
| Name | Type | Req | Description |
|---|---|---|---|
| description | — | — | Human-readable blurb shown in the universe picker/hovercard. |
| folder | — | — | Optional folder name grouping items in the dashboard. Alphanumeric, `_` or `-` (no `/`). Part of the SDK lookup key (`<folder>/<name>`). |
| holdout_range | — | — | Inclusive `[lo, hi]` bucket range (0–9999) reserved as the **holdout** — callers hashed into this slice are excluded from every experiment in the universe. `null` disables the holdout. Pro plan or hi… |
| listToken | string | — | REQUIRED. The `listToken` returned by the most recent `release_experiments_universes_list` call. It proves you listed existing release experiments universes and confirmed this one doesn't already exi… |
| name | string | yes | Stable universe key. Single segment or `folder.name`. Lowercase letters, digits, `_` or `-`; max 128 chars. Immutable after create. |
| param_schema | — | — | The universe-owned config schema — an ordered `{ name, type, default }[]`. Experiments may only override values per variant, never add fields. `null` starts an empty schema. |
| recommended_headroom | integer | — | Basis points of reserved headroom seeded into each new experiment created in this universe (0 = none). Lets variants be appended into a running experiment without reshuffling. |
| unit_type | string | — | Unit of randomisation. Typically `user_id`. Use `account_id` to keep whole accounts in the same group across an experiment. |
No output schema declared.
No examples provided.
release_experiments_universes_list ~142
List universes. Returns a single page of universes ordered by `created_at desc, id desc`. The universes table has no `updated_at`, so this list is keyed on creation time.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | — | Opaque cursor returned in the previous page's `next_cursor`. Omit for the first page. |
| limit | integer | — | Page size (1–500). Defaults to 100. |
| q | string | — | Case-insensitive substring filter across the resource's human-readable text columns (e.g. `name`, `title`, `description`). OR-matched across those columns; omit to return everything. |
No output schema declared.
No examples provided.
release_experiments_universes_update ~279
Update a universe. Partial update. Only `holdout_range` is mutable — `name` and `unit_type` are immutable after create.
| Name | Type | Req | Description |
|---|---|---|---|
| description | — | — | Human-readable blurb shown in the universe picker/hovercard. |
| folder | — | — | Optional folder name grouping items in the dashboard. Alphanumeric, `_` or `-` (no `/`). Part of the SDK lookup key (`<folder>/<name>`). |
| holdout_range | — | — | Inclusive `[lo, hi]` bucket range (0–9999) reserved as the **holdout** — callers hashed into this slice are excluded from every experiment in the universe. `null` disables the holdout. Pro plan or hi… |
| id | string | yes | A resource path identifier — an opaque `xxx_<ULID>` id (~30 chars) or the resource's `name`/`key`. 1–128 characters; the upper bound matches the longest name/key any resource accepts, so an over-long… |
| param_schema | — | — | Replace the universe config schema. Additive changes + default edits are always allowed; removing a param a running experiment overrides is rejected (deprecate-only). |
| recommended_headroom | integer | — | Basis points of reserved headroom seeded into new experiments in this universe. |
No output schema declared.
No examples provided.
release_experiments_update ~640
Update an experiment. Partial update. `allocation_pct`, `groups`, `salt`, `universe`, `params` are **immutable while running** — returns `409` if you try. Stop the experiment first.
| Name | Type | Req | Description |
|---|---|---|---|
| allocation_pct | integer | — | Basis-points allocation (0–10000). Use `allocation_percent` (0–100) for percent. Immutable while the experiment is running. |
| allocation_percent | number | — | Allocation as a **percentage** (0–100). Friendlier alias for `allocation_pct`; converted to basis points server-side. Wins over `allocation_pct` if both are supplied. Immutable while running. |
| audience | — | — | — |
| bucket_by | — | — | — |
| description | — | — | — |
| folder | — | — | Optional folder name grouping items in the dashboard. Alphanumeric, `_` or `-` (no `/`). Part of the SDK lookup key (`<folder>/<name>`). |
| goal_metric | object | — | Inline metric — a DSL `query`, or an `event` (+ `aggregation`/`value`) the server compiles into one. |
| groups | array | — | Replacement groups. Weights must sum to `10000 − reserved_headroom`. Existing weights/values are immutable while running; a new variant may be appended into the reserved tail. |
| guardrail_metrics | array | — | Replaces the guardrail set wholesale (event auto-upserted per entry). |
| holdout_gate | — | — | Per-experiment holdout gate — the name of a `holdout`-type flag, or `null` to clear. A caller the flag passes is held out. |
| hypothesis | — | — | — |
| id | string | yes | A resource path identifier — an opaque `xxx_<ULID>` id (~30 chars) or the resource's `name`/`key`. 1–128 characters; the upper bound matches the longest name/key any resource accepts, so an over-long… |
| min_runtime_days | integer | — | — |
| min_sample_size | integer | — | — |
| name | string | — | Stable experiment key. Single segment or `folder.name` (a-z, 0-9, `_`/`-`; max 128 chars). Used by SDKs as `Shipeasy.getExperiment(user, '<name>')`. Immutable after create. |
| owner_email | — | — | — |
| params | object | — | **Deprecated** — the universe owns the config schema (`param_schema`). Retained for back-compat. Map of param-name → scalar type. |
| reserved_headroom | integer | — | Basis points of the split kept empty for appended variants. Group weights must sum to `10000 − reserved_headroom`. May be shrunk (never grown into existing weights) while running when appending a var… |
| salt | string | — | Hash salt. Immutable while running. |
| sequential_testing | boolean | — | — |
| significance_threshold | number | — | — |
| tag | — | — | — |
| targeting_gate | — | — | — |
| universe | string | — | New universe name. Immutable while running. Returns `422` if the universe doesn't exist. |
No output schema declared.
No examples provided.
release_flags_activity ~140
List gate activity. Returns recent audit rows for one gate (create, update, enable, disable, delete) ordered newest first. Use the `limit` query parameter to cap the result (1–100, default 20).
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | A resource path identifier — an opaque `xxx_<ULID>` id (~30 chars) or the resource's `name`/`key`. 1–128 characters; the upper bound matches the longest name/key any resource accepts, so an over-long… |
| limit | integer | — | Max rows to return (1–100). Defaults to 20. |
No output schema declared.
No examples provided.
release_flags_archive ~108
Delete a feature gate. Soft-deletes the gate. Returns 409 if the gate is still referenced by a running experiment as a targeting gate — stop the experiment first.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | A resource path identifier — an opaque `xxx_<ULID>` id (~30 chars) or the resource's `name`/`key`. 1–128 characters; the upper bound matches the longest name/key any resource accepts, so an over-long… |
No output schema declared.
No examples provided.
release_flags_attributes_archive ~90
Archive a targeting attribute. Soft-deletes (archives) a targeting attribute.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | A resource path identifier — an opaque `xxx_<ULID>` id (~30 chars) or the resource's `name`/`key`. 1–128 characters; the upper bound matches the longest name/key any resource accepts, so an over-long… |
No output schema declared.
No examples provided.
release_flags_attributes_create ~235
Declare a targeting attribute. Declare a targeting attribute the SDK reports and gates/experiments can target. `type: enum` requires `enum_values`.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | — | Optional human note shown in the dashboard. |
| enum_values | — | — | Allowed values when `type` is `enum` (required in that case — 422 otherwise); `null` for non-enum types. |
| listToken | string | — | REQUIRED. The `listToken` returned by the most recent `release_flags_attributes_list` call. It proves you listed existing release flags attributes and confirmed this one doesn't already exist before… |
| name | string | yes | Attribute key (lowercase alphanumeric start, then letters/digits/`_`/`-`; max 64 chars). Immutable after create. |
| required | boolean | — | Whether the attribute must be present on the evaluation context. |
| sdk_path | string | — | Optional dotted path the SDK reads the value from. |
| type | string | yes | Declared value type of a targeting attribute. |
No output schema declared.
No examples provided.
release_flags_attributes_get ~87
Get a targeting attribute. Fetch one targeting attribute by id.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | A resource path identifier — an opaque `xxx_<ULID>` id (~30 chars) or the resource's `name`/`key`. 1–128 characters; the upper bound matches the longest name/key any resource accepts, so an over-long… |
No output schema declared.
No examples provided.
release_flags_attributes_list ~92
List targeting attributes. Returns every auto-inferred targeting attribute in the project — the `name` and (when known) the value `type` — for building gate/experiment targeting rules.
| Name | Type | Req | Description |
|---|---|---|---|
| q | string | — | Case-insensitive substring filter across the resource's human-readable text columns (e.g. `name`, `title`, `description`). OR-matched across those columns; omit to return everything. |
No output schema declared.
No examples provided.
release_flags_attributes_update ~189
Update a targeting attribute. Update a targeting attribute's type, allowed values, required flag, description, or SDK path. `name` is immutable.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | — | Optional human note shown in the dashboard. |
| enum_values | — | — | Replacement allowed values (for `enum`), or `null` to clear. |
| id | string | yes | A resource path identifier — an opaque `xxx_<ULID>` id (~30 chars) or the resource's `name`/`key`. 1–128 characters; the upper bound matches the longest name/key any resource accepts, so an over-long… |
| required | boolean | — | Whether the attribute must be present on the evaluation context. |
| sdk_path | string | — | Optional dotted path the SDK reads the value from. |
| type | string | — | Declared value type of a targeting attribute. |
No output schema declared.
No examples provided.
release_flags_create ~688
Create a feature gate. Creates a new gate. Default `enabled: true` at the supplied `rollout_pct` (`0` = fully dark).
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | — | Long-form description / runbook. Markdown is rendered in the dashboard. |
| enabled | boolean | — | Master switch. Defaults to `true`. Set `false` to create the gate disabled (evaluates to `false` regardless of rules/rollout); flip on via `POST /{id}/enable` or PATCH. |
| folder | — | — | Optional folder name grouping items in the dashboard. Alphanumeric, `_` or `-` (no `/`). Part of the SDK lookup key (`<folder>/<name>`). |
| group | string | — | Group label for dashboard organisation (e.g. team or product area). |
| listToken | string | — | REQUIRED. The `listToken` returned by the most recent `release_flags_list` call. It proves you listed existing release flags and confirmed this one doesn't already exist before creating it. Call `rel… |
| name | string | yes | Stable gate key used by SDKs (`Shipeasy.checkGate(user, '<name>')`). Single segment or `folder.name`. Lowercase letters, digits, `_` or `-`; max 128 chars. Immutable after create — rename = delete +… |
| owner_email | string | — | Owner contact. Displayed verbatim; not used for auth. |
| rollout_pct | integer | — | Initial rollout in **basis points** (0–10000 = 0%–100%) — `100` here means **1%**, not 100%. Use `rollout_percent` (0–100) below if you'd rather think in percent. Use `0` to create the gate dark and… |
| rollout_percent | number | — | Initial rollout as a **percentage** (0–100, fractional ok). Friendlier alias for `rollout_pct`; converted internally to basis points (e.g. `100` here = 10000 bp = 100%). If both `rollout_pct` and `ro… |
| rules | array | — | Targeting predicates. AND-combined. If non-empty, the gate returns `true` only for callers that satisfy every rule **and** fall under `rollout_pct`. |
| salt | string | — | Hash salt for percentage bucketing. Auto-generated if omitted. Provide explicitly to keep a gate's buckets stable across delete/recreate. **Immutable after create** — there is no PATCH for `salt` bec… |
| stack | — | — | Optional gatekeeper stack. When provided, takes precedence over `rules` + `rollout_pct` at evaluation time. Omit (or pass `null`) for a flat gate. |
| title | string | — | Human-readable title shown in the dashboard. Free-form, no key format constraint. |
| type | string | — | Gate kind. `targeting` (default) is a normal flag with the full builder. `holdout` is a **restricted** flag — only a public rollout % and a whitelist are allowed; attribute rules and a gatekeeper sta… |
No output schema declared.
No examples provided.
release_flags_disable ~114
Disable a gate. Sets `enabled: false` so the gate evaluates to `false` for every caller, regardless of `rollout_pct` or `rules`. Use as a quick kill switch.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | A resource path identifier — an opaque `xxx_<ULID>` id (~30 chars) or the resource's `name`/`key`. 1–128 characters; the upper bound matches the longest name/key any resource accepts, so an over-long… |
No output schema declared.
No examples provided.
release_flags_enable ~94
Enable a gate. Sets `enabled: true`. The current `rollout_pct` is preserved.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | A resource path identifier — an opaque `xxx_<ULID>` id (~30 chars) or the resource's `name`/`key`. 1–128 characters; the upper bound matches the longest name/key any resource accepts, so an over-long… |
No output schema declared.
No examples provided.
release_flags_get ~116
Get one gate. Returns the full gate row — including the gatekeeper `stack`, resolved creator/last-editor emails, and the edit `version` — for one gate, addressed by id or `name`.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | A resource path identifier — an opaque `xxx_<ULID>` id (~30 chars) or the resource's `name`/`key`. 1–128 characters; the upper bound matches the longest name/key any resource accepts, so an over-long… |
No output schema declared.
No examples provided.
release_flags_list ~127
List feature gates. Returns a single page of gates ordered by `updated_at desc, id desc`. Use the `cursor` query parameter to paginate.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | — | Opaque cursor returned in the previous page's `next_cursor`. Omit for the first page. |
| limit | integer | — | Page size (1–500). Defaults to 100. |
| q | string | — | Case-insensitive substring filter across the resource's human-readable text columns (e.g. `name`, `title`, `description`). OR-matched across those columns; omit to return everything. |
No output schema declared.
No examples provided.