Skip to content

Commit b782ee2

Browse files
authored
Merge pull request #295 from flashcatcloud/docs/platform-safari-field-descriptions
docs(api): document platform and safari schema fields
2 parents 4e188cf + b45f207 commit b782ee2

6 files changed

Lines changed: 252 additions & 170 deletions

File tree

api-reference/openapi.en.json

Lines changed: 62 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -31179,7 +31179,8 @@
3117931179
"properties": {
3118031180
"request_id": {
3118131181
"type": "string",
31182-
"example": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4"
31182+
"example": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
31183+
"description": "Unique trace ID of this request; include it when reporting issues so logs can be located."
3118331184
},
3118431185
"error": {
3118531186
"$ref": "#/components/schemas/DutyError"
@@ -45977,7 +45978,7 @@
4597745978
"zh-CN",
4597845979
"en-US"
4597945980
],
45980-
"description": "Locale"
45981+
"description": "Locale. One of: `zh-CN` (Simplified Chinese), `en-US` (English); other values are rejected with a 400."
4598145982
},
4598245983
"time_zone": {
4598345984
"type": "string",
@@ -46212,7 +46213,7 @@
4621246213
"zh-CN",
4621346214
"en-US"
4621446215
],
46215-
"description": "New locale preference."
46216+
"description": "New locale preference. One of: `zh-CN` (Simplified Chinese), `en-US` (English); other values are rejected with a 400."
4621646217
},
4621746218
"time_zone": {
4621846219
"type": "string",
@@ -46454,17 +46455,20 @@
4645446455
"properties": {
4645546456
"team_id": {
4645646457
"type": "integer",
46457-
"format": "uint64"
46458+
"format": "uint64",
46459+
"description": "Team ID."
4645846460
},
4645946461
"team_name": {
46460-
"type": "string"
46462+
"type": "string",
46463+
"description": "Team name."
4646146464
},
4646246465
"person_ids": {
4646346466
"type": "array",
4646446467
"items": {
4646546468
"type": "integer",
4646646469
"format": "uint64"
46467-
}
46470+
},
46471+
"description": "Array of person IDs belonging to the team; empty array (never null) when the team has no members."
4646846472
}
4646946473
}
4647046474
},
@@ -46479,7 +46483,8 @@
4647946483
"type": "array",
4648046484
"items": {
4648146485
"$ref": "#/components/schemas/TeamBriefItem"
46482-
}
46486+
},
46487+
"description": "Array of brief team info for the matched `team_ids`; may be null when no ID matches."
4648346488
}
4648446489
}
4648546490
},
@@ -46550,7 +46555,8 @@
4655046555
"type": "array",
4655146556
"items": {
4655246557
"$ref": "#/components/schemas/TeamItem"
46553-
}
46558+
},
46559+
"description": "Array of teams for the current page, used with `p`, `limit` and `total` for pagination; empty array on an empty page."
4655446560
}
4655546561
}
4655646562
},
@@ -46776,7 +46782,8 @@
4677646782
"type": "array",
4677746783
"items": {
4677846784
"$ref": "#/components/schemas/RoleItem"
46779-
}
46785+
},
46786+
"description": "Array of roles; includes account roles plus built-in global roles unless `no_global=true`; empty array when no results."
4678046787
}
4678146788
}
4678246789
},
@@ -46878,7 +46885,7 @@
4687846885
"read",
4687946886
"manage"
4688046887
],
46881-
"description": "Whether this is a read or manage permission."
46888+
"description": "Whether this is a read or manage permission. `read`: view-only permission (read/list/query); `manage`: administrative permission covering mutations (create, update, delete, configure)."
4688246889
},
4688346890
"description": {
4688446891
"type": "string",
@@ -46917,7 +46924,8 @@
4691746924
"type": "array",
4691846925
"items": {
4691946926
"$ref": "#/components/schemas/PermissionItem"
46920-
}
46927+
},
46928+
"description": "Array of permission items: system-level permissions plus the caller's account-scoped custom-menu permissions (never other tenants' rows)."
4692146929
}
4692246930
}
4692346931
},
@@ -46962,7 +46970,7 @@
4696246970
"menu",
4696346971
"url"
4696446972
],
46965-
"description": "Factor type."
46973+
"description": "Factor type. `api`: backend API factor — `factor_name` is the API name (e.g. `skill:write:upload`), enforced at the gateway; `button`: UI action factor, used by the role-config page to render action toggles; `visit`: page-visit factor (custom menu pages use this type); `menu`: menu-visibility factor (legacy, no current seed data); `url`: page route-path factor (legacy, no current seed data)."
4696646974
}
4696746975
}
4696846976
},
@@ -47122,10 +47130,12 @@
4712247130
"type": "object",
4712347131
"properties": {
4712447132
"Key": {
47125-
"type": "string"
47133+
"type": "string",
47134+
"description": "Name of a URL path parameter (the `:xxx` placeholder in the route)."
4712647135
},
4712747136
"Value": {
47128-
"type": "string"
47137+
"type": "string",
47138+
"description": "The actual value of that path parameter in this request."
4712947139
}
4713047140
}
4713147141
},
@@ -47204,7 +47214,8 @@
4720447214
"type": "array",
4720547215
"items": {
4720647216
"$ref": "#/components/schemas/AuditOperationTypeItem"
47207-
}
47217+
},
47218+
"description": "Array of all auditable operation types (only APIs flagged for audit); always an array, possibly empty."
4720847219
}
4720947220
}
4721047221
},
@@ -50889,7 +50900,7 @@
5088950900
},
5089050901
"auth_mode": {
5089150902
"type": "string",
50892-
"description": "Authentication mode.",
50903+
"description": "Authentication mode. One of: `shared` (a single static credential saved on the resource and shared by all callers in the account; the default — an empty value behaves the same), `per_user_secret` (each user stores their own secret per `secret_schema`, injected per user at runtime), `per_user_oauth` (each user completes their own OAuth grant; discovery and registration run lazily on first use).",
5089350904
"enum": [
5089450905
"shared",
5089550906
"per_user_secret",
@@ -51173,7 +51184,7 @@
5117351184
},
5117451185
"environment_kind": {
5117551186
"type": "string",
51176-
"description": "Runtime environment kind. Omit or send an empty value for automatic selection.",
51187+
"description": "Runtime environment kind. Omit or send an empty value for automatic selection. One of: `cloud` (platform-hosted cloud sandbox), `byoc` (a self-hosted BYOC runner in the account, used with `environment_id`); automatic selection prefers an online BYOC runner and falls back to the cloud sandbox.",
5117751188
"enum": [
5117851189
"",
5117951190
"cloud",
@@ -51269,7 +51280,7 @@
5126951280
"person",
5127051281
"team"
5127151282
],
51272-
"description": "Hidden session run scope."
51283+
"description": "Hidden session run scope. One of: `person` (personal rule, team_id=0, runs as the creator; disabled when the creator leaves the account), `team` (team rule, team_id>0, owned by the team and shared with its members; survives the creator leaving). Derived from the rule's team_id."
5127351284
},
5127451285
"cron_expr": {
5127551286
"type": "string",
@@ -51285,7 +51296,7 @@
5128551296
},
5128651297
"environment_kind": {
5128751298
"type": "string",
51288-
"description": "Runtime environment kind. Omit or send an empty value for automatic selection.",
51299+
"description": "Runtime environment kind. Omit or send an empty value for automatic selection. One of: `cloud` (platform-hosted cloud sandbox), `byoc` (self-hosted BYOC runner in the account); an empty value means automatic selection (prefers an online BYOC runner, falls back to the cloud sandbox).",
5128951300
"enum": [
5129051301
"",
5129151302
"cloud",
@@ -51456,7 +51467,8 @@
5145651467
"type": "array",
5145751468
"items": {
5145851469
"$ref": "#/components/schemas/AutomationRuleItem"
51459-
}
51470+
},
51471+
"description": "Array of automation rules for the current page, used with `total` for pagination."
5146051472
}
5146151473
},
5146251474
"required": [
@@ -51617,7 +51629,7 @@
5161751629
"http_post",
5161851630
"oncall_incident"
5161951631
],
51620-
"description": "Trigger kind."
51632+
"description": "Trigger kind. One of:\n| Value | Meaning |\n| --- | --- |\n| `schedule` | Fired by the rule's schedule trigger |\n| `debug` | Debug run (reserved; current rule runs never carry this kind) |\n| `manual` | Triggered manually by a user |\n| `http_post` | Fired via the rule's HTTP POST webhook |\n| `oncall_incident` | Fired by an on-call incident event |"
5162151633
},
5162251634
"occurrence_key": {
5162351635
"type": "string",
@@ -51635,7 +51647,7 @@
5163551647
"skipped",
5163651648
"abandoned"
5163751649
],
51638-
"description": "Run status."
51650+
"description": "Run status. One of (the first three are in-flight, the rest terminal):\n| Value | Meaning |\n| --- | --- |\n| `queued` | Enqueued, waiting for a worker |\n| `running` | Executing |\n| `retrying` | An attempt failed and a retry is scheduled |\n| `succeeded` | Completed successfully |\n| `partial` | Partially succeeded (currently only produced by memory-consolidation runs; rule runs never reach it) |\n| `failed` | Terminal failure, no further retries |\n| `skipped` | Not executed (e.g. grace period expired, trigger or rule invalid); the reason is kept on the run record |\n| `abandoned` | Still in-flight past the stale threshold and swept as never-completed (e.g. worker died) |"
5163951651
},
5164051652
"attempts": {
5164151653
"type": "integer",
@@ -51767,7 +51779,8 @@
5176751779
"type": "array",
5176851780
"items": {
5176951781
"$ref": "#/components/schemas/AutomationRunItem"
51770-
}
51782+
},
51783+
"description": "Array of run records for the given `rule_id`, filtered by the request's status/trigger-kind/time-range and paginated."
5177151784
}
5177251785
},
5177351786
"required": [
@@ -51841,7 +51854,8 @@
5184151854
"type": "array",
5184251855
"items": {
5184351856
"$ref": "#/components/schemas/AutomationTemplateItem"
51844-
}
51857+
},
51858+
"description": "Array of built-in automation templates, with display text localized by the request `locale` (falling back to request headers)."
5184551859
}
5184651860
},
5184751861
"required": [
@@ -51977,7 +51991,7 @@
5197751991
},
5197851992
"status": {
5197951993
"type": "string",
51980-
"description": "Event status.",
51994+
"description": "Event status. One of: `normal` (a live event included in the context fed to the model), `compressed` (folded into a compaction summary boundary event; no longer loaded for the model, kept as history only).",
5198151995
"enum": [
5198251996
"normal",
5198351997
"compressed"
@@ -52087,7 +52101,7 @@
5208752101
},
5208852102
"environment_kind": {
5208952103
"type": "string",
52090-
"description": "Pin the server to a specific BYOC runner (`environment_id` required). Omit or send empty for automatic selection; `cloud` is not supported for MCP servers.",
52104+
"description": "Pin the server to a specific BYOC runner (`environment_id` required). Omit or send empty for automatic selection; `cloud` is not supported for MCP servers. The only accepted value: `byoc` (a self-hosted BYOC runner in the account; the MCP server process runs on the customer's own infrastructure).",
5209152105
"enum": [
5209252106
"byoc"
5209352107
]
@@ -52189,7 +52203,7 @@
5218952203
},
5219052204
"transport": {
5219152205
"type": "string",
52192-
"description": "Transport protocol.",
52206+
"description": "Transport protocol. One of: `stdio` (standard I/O to a local subprocess), `sse` (standalone SSE, the legacy MCP transport), `streamable-http` (the newer HTTP streaming transport).",
5219352207
"enum": [
5219452208
"stdio",
5219552209
"sse",
@@ -52270,7 +52284,7 @@
5227052284
},
5227152285
"auth_mode": {
5227252286
"type": "string",
52273-
"description": "Authentication mode.",
52287+
"description": "Authentication mode. One of: `shared` (a single static credential saved on the resource and shared by all callers in the account; the default — an empty value behaves the same), `per_user_secret` (each user stores their own secret per `secret_schema`, injected per user at runtime), `per_user_oauth` (each user completes their own OAuth grant; discovery and registration run lazily on first use).",
5227452288
"enum": [
5227552289
"shared",
5227652290
"per_user_secret",
@@ -52594,7 +52608,7 @@
5259452608
"person",
5259552609
"team"
5259652610
],
52597-
"description": "Resolved run scope for this run; mirrors the rule's run_scope."
52611+
"description": "Resolved run scope for this run; mirrors the rule's run_scope. One of: `person` (personal rule, runs as its creator), `team` (team rule, runs under the owning team)."
5259852612
},
5259952613
"owner_id": {
5260052614
"type": "integer",
@@ -52750,7 +52764,7 @@
5275052764
},
5275152765
"entry_kind": {
5275252766
"type": "string",
52753-
"description": "Surface that created the session.",
52767+
"description": "Surface that created the session. One of:\n| Value | Meaning |\n| --- | --- |\n| `web` | Created from the web console |\n| `im` | Created from an IM client (IM bot / IM H5) |\n| `api` | Created via the public API |\n| `automation` | Created by an automation rule (unattended run) |\n| `subagent` | Child session spawned by a parent's agent_dispatch (audit label; at runtime it executes on the web tool surface) |",
5275452768
"enum": [
5275552769
"web",
5275652770
"im",
@@ -52794,12 +52808,13 @@
5279452808
},
5279552809
"access_source": {
5279652810
"type": "string",
52797-
"description": "How the caller received access to this session. Omitted when no access source is resolved.",
52811+
"description": "How the caller received access to this session. Omitted when no access source is resolved. One of:\n| Value | Meaning |\n| --- | --- |\n| `owner` | Caller is the session creator (full access) |\n| `team_member` | Caller belongs to the session's bound team (full access) |\n| `manager` | Manager grant (reserved; never produced by the current version) |\n| `share_link` | Granted via a valid share link (view/fork only; cannot continue or manage) |\n| `participant` | Same-account non-member granted via a participable team session (view/continue/fork only) |",
5279852812
"enum": [
5279952813
"owner",
5280052814
"team_member",
5280152815
"manager",
52802-
"share_link"
52816+
"share_link",
52817+
"participant"
5280352818
]
5280452819
},
5280552820
"share_enabled": {
@@ -52823,7 +52838,7 @@
5282352838
},
5282452839
"status": {
5282552840
"type": "string",
52826-
"description": "Lifecycle status.",
52841+
"description": "Lifecycle status. One of: `enabled` (active), `deleted` (soft-deleted, no longer accessible).",
5282752842
"enum": [
5282852843
"enabled",
5282952844
"deleted"
@@ -52952,7 +52967,7 @@
5295252967
"properties": {
5295352968
"app_name": {
5295452969
"type": "string",
52955-
"description": "Agent app whose sessions to list.",
52970+
"description": "Agent app whose sessions to list. One of:\n| Value | Meaning |\n| --- | --- |\n| `ask-ai` | Ask AI assistant |\n| `support` | Customer-support agent |\n| `support-website` | Website support agent (exposed over A2A, not built into the console) |\n| `support-flashcat` | Flashcat-site support agent (exposed over A2A) |\n| `ai-sre` | The AI SRE main app |\n| `template-assistant` | Notification-template assistant (template editing/validation) |\n| `swe` | Internal benchmarking app (not customer-facing) |",
5295652971
"enum": [
5295752972
"ask-ai",
5295852973
"support",
@@ -58423,7 +58438,7 @@
5842358438
"properties": {
5842458439
"code": {
5842558440
"type": "string",
58426-
"description": "Warning code.",
58441+
"description": "Warning code. One of: `unresolved_reference` (an @ref in the written file's content points to a file that does not exist in the pack; `ref` carries it), `still_referenced_by` (the deleted file is still @ref-referenced by other files in the pack; `refs` lists the referrers).",
5842758442
"enum": [
5842858443
"unresolved_reference",
5842958444
"still_referenced_by"
@@ -58464,7 +58479,7 @@
5846458479
},
5846558480
"scope": {
5846658481
"type": "string",
58467-
"description": "Restrict to one scope; `all` (default) overrides `include_account`.",
58482+
"description": "Restrict to one scope; `all` (default) overrides `include_account`. One of: `all` (account scope plus visible team scopes), `account` (account-level packs only), `team` (team-level packs only, can be combined with `team_ids`).",
5846858483
"enum": [
5846958484
"all",
5847058485
"account",
@@ -58499,7 +58514,7 @@
5849958514
"properties": {
5850058515
"scope": {
5850158516
"type": "string",
58502-
"description": "Scope of the pack to ensure.",
58517+
"description": "Scope of the pack to ensure. One of: `account` (account-level pack; scope_id is forced to the caller's account ID and only account admins may create it; first creation seeds a default DUTY.md), `team` (team-level pack; the `scope_id` team ID is required and the caller must belong to that team).",
5850358518
"enum": [
5850458519
"account",
5850558520
"team"
@@ -58645,7 +58660,8 @@
5864558660
"type": "array",
5864658661
"items": {
5864758662
"$ref": "#/components/schemas/KnowledgeFileItem"
58648-
}
58663+
},
58664+
"description": "Array of files in this knowledge pack; empty array when the pack has no files."
5864958665
}
5865058666
},
5865158667
"required": [
@@ -58661,7 +58677,8 @@
5866158677
"type": "array",
5866258678
"items": {
5866358679
"$ref": "#/components/schemas/KnowledgePackItem"
58664-
}
58680+
},
58681+
"description": "Array of visible knowledge packs after filtering (current page), used with `total` for pagination."
5866558682
},
5866658683
"total": {
5866758684
"type": "integer",
@@ -58682,7 +58699,8 @@
5868258699
"type": "array",
5868358700
"items": {
5868458701
"$ref": "#/components/schemas/KnowledgeFileItem"
58685-
}
58702+
},
58703+
"description": "Array of files in the specified knowledge pack; empty array when the pack has no files."
5868658704
},
5868758705
"total": {
5868858706
"type": "integer",
@@ -58723,7 +58741,8 @@
5872358741
"type": "array",
5872458742
"items": {
5872558743
"$ref": "#/components/schemas/KnowledgeWarning"
58726-
}
58744+
},
58745+
"description": "Non-blocking warnings after a successful write; `code=unresolved_reference` means an @ref in the file content points to a file that does not exist in the pack. Absent when there are no warnings (omitempty)."
5872758746
}
5872858747
},
5872958748
"required": [
@@ -58759,7 +58778,8 @@
5875958778
"type": "array",
5876058779
"items": {
5876158780
"$ref": "#/components/schemas/KnowledgeWarning"
58762-
}
58781+
},
58782+
"description": "Non-blocking warnings after deletion; `code=still_referenced_by` means the (force-)deleted file is still @ref-referenced by other files in the pack (`refs` lists the referrers). Absent when there are no warnings (omitempty)."
5876358783
}
5876458784
}
5876558785
}

0 commit comments

Comments
 (0)