From 9b82540aa6a6713f2f54bd55b90146935df84525 Mon Sep 17 00:00:00 2001 From: aupadhyay-shark Date: Mon, 12 Oct 2026 19:26:14 +0530 Subject: [PATCH 1/2] docs(FI-609): clarify team_id required for agent and inference deletion MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Spell out for content writers and API callers that team_id is always required (including type=inference), must match the token's team, and is not inferred when omitted — doctl may resolve it for CLI users. Co-authored-by: Cursor --- .../resources/signals/models/create_deletion_request.yml | 8 +++++++- .../resources/signals/signals_create_deletion.yml | 8 ++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/specification/resources/signals/models/create_deletion_request.yml b/specification/resources/signals/models/create_deletion_request.yml index 23a12420e..e1e84fdf2 100644 --- a/specification/resources/signals/models/create_deletion_request.yml +++ b/specification/resources/signals/models/create_deletion_request.yml @@ -15,7 +15,13 @@ properties: team_id: type: integer format: int64 - description: The team whose data should be deleted. Must match the authenticated team. + description: >- + Numeric team ID for the deletion. Required for both `agent` and + `inference`. Must equal the team associated with your API token + (personal access token or OAuth token). The API does not fill this + field from the token when it is omitted — omitting `team_id` is a + `400`; a mismatched value is a `403`. Clients such as `doctl` may + look up this value for you when you omit `--team-id`. example: 12345678 agent_id: type: string diff --git a/specification/resources/signals/signals_create_deletion.yml b/specification/resources/signals/signals_create_deletion.yml index 44673998f..a51e7aab5 100644 --- a/specification/resources/signals/signals_create_deletion.yml +++ b/specification/resources/signals/signals_create_deletion.yml @@ -19,6 +19,14 @@ description: | collection (`source=inference`). Do not send `agent_id`. On create, matching conversations are hidden from Signals reads immediately. + Always send `team_id` in the JSON body for both types (including + `inference`). Use the numeric ID of the team your API token belongs to. + Your bearer token authenticates which team you act as; `team_id` confirms + that team on the wire. Omitting `team_id` is rejected (`400`). A + `team_id` that does not match the authenticated team returns `403`. + Helpers such as `doctl signals deletion create` can resolve `team_id` + from your token when you omit `--team-id`. + The job runs asynchronously; poll the get endpoint until `status` is `complete` or `failed`. DigitalOcean may retry transient processing errors while a job is still active. If a job ends as `failed`, matching From 49fa639aa7ba17b8408b84051de92d467429a24e Mon Sep 17 00:00:00 2001 From: aupadhyay-shark Date: Mon, 12 Oct 2026 22:19:26 +0530 Subject: [PATCH 2/2] docs(FI-609): optional team_id on deletion create + soft re-enable guidance Match signals-api: omit team_id to use the token's team; document that mid-delete consent re-enable is allowed while waiting until complete is recommended. Co-authored-by: Cursor --- .../models/create_deletion_request.yml | 11 ++++------ .../signals/signals_create_deletion.yml | 22 +++++++++---------- 2 files changed, 15 insertions(+), 18 deletions(-) diff --git a/specification/resources/signals/models/create_deletion_request.yml b/specification/resources/signals/models/create_deletion_request.yml index e1e84fdf2..1855a96c2 100644 --- a/specification/resources/signals/models/create_deletion_request.yml +++ b/specification/resources/signals/models/create_deletion_request.yml @@ -16,12 +16,10 @@ properties: type: integer format: int64 description: >- - Numeric team ID for the deletion. Required for both `agent` and - `inference`. Must equal the team associated with your API token - (personal access token or OAuth token). The API does not fill this - field from the token when it is omitted — omitting `team_id` is a - `400`; a mismatched value is a `403`. Clients such as `doctl` may - look up this value for you when you omit `--team-id`. + Numeric team ID. Optional for both `agent` and `inference`. When omitted + (or zero), the API uses the team authenticated by your API token + (personal access token or OAuth token). When set, it must equal that + authenticated team or the request is rejected (`403`). example: 12345678 agent_id: type: string @@ -34,5 +32,4 @@ properties: example: 01a10d3f-2c09-764f-99f8-458e521627f3 required: - type - - team_id additionalProperties: false diff --git a/specification/resources/signals/signals_create_deletion.yml b/specification/resources/signals/signals_create_deletion.yml index a51e7aab5..710ac43d0 100644 --- a/specification/resources/signals/signals_create_deletion.yml +++ b/specification/resources/signals/signals_create_deletion.yml @@ -11,21 +11,21 @@ description: | - `agent` — deletes Signals conversations for one Harness Runtime environment and turns off collection for that environment. Requires `agent_id`, which is the environment's Environment Config ID (the environment's `agent_id`). On create, matching - conversations are hidden from Signals reads immediately. Wait until the - job is `complete` before enabling Signals for the environment again. + conversations are hidden from Signals reads immediately. We recommend waiting + until the job is `complete` before enabling Signals for the environment again; + you can re-enable earlier if needed (new conversations after re-enable are kept). - `inference` — deletes Serverless Inference Signals conversations for your whole team (team-wide; not limited to one endpoint or model) that were collected at or before the deletion request, and turns off team inference collection (`source=inference`). Do not send `agent_id`. On create, - matching conversations are hidden from Signals reads immediately. - - Always send `team_id` in the JSON body for both types (including - `inference`). Use the numeric ID of the team your API token belongs to. - Your bearer token authenticates which team you act as; `team_id` confirms - that team on the wire. Omitting `team_id` is rejected (`400`). A - `team_id` that does not match the authenticated team returns `403`. - Helpers such as `doctl signals deletion create` can resolve `team_id` - from your token when you omit `--team-id`. + matching conversations are hidden from Signals reads immediately. The same + re-enable guidance applies to team inference collection. + + `team_id` is optional for both types (including `inference`). When you omit + it, the API uses the team from your API token (PAT or OAuth). When you send + it, it must match that authenticated team or the request returns `403`. + `doctl signals deletion create` also defaults `--team-id` from your token + when the flag is omitted. The job runs asynchronously; poll the get endpoint until `status` is `complete` or `failed`. DigitalOcean may retry transient processing errors