Immutable source snapshot
POST /v1/ide/source-open-commands
Create source open command. Permissions, parameters, responses and examples.
This address preserves one reviewed source snapshot. Use the current entry point for the selected documentation version.
Read pinned handler: apps/api/kodesec_api/ide_source.py:192
Create source open command
Create source open command through POST /v1/ide/source-open-commands. The parameters and declared response shapes below come from this exact source snapshot.
Source preview; no stable third-party integration promise. This page makes no request to a local installation.
Authority
Browser operator session only at the middleware boundary. Route-specific ownership and generation checks also apply.
Browser mutations require the exact control Origin and session-bound CSRF header. IDE callers use only their admitted route scope and exact generation.
Parameters and headers
| Name | Location | Contract |
|---|---|---|
X-CSRF-Token | header Conditional / optional | Required for browser mutations with the exact control Origin. Not an IDE capability. Schema |
Idempotency-Key | header Required | Required for command submission; for bulk findings, only the triage action. Stable key for the same exact command, beginning with a letter or digit. Reuse with different content conflicts. Schema |
Request body
JSON body · required · SourceOpenCreate
| Field | Type | Presence |
|---|---|---|
expected_finding_revision | integer | Required |
expected_findings_revision | integer | Required |
expected_target_generation | integer | Required |
finding_id | integer | Required |
target_capability_id | string | Required |
Complete declared request schema
{
"additionalProperties": false,
"properties": {
"expected_finding_revision": {
"minimum": 1,
"title": "Expected Finding Revision",
"type": "integer"
},
"expected_findings_revision": {
"minimum": 1,
"title": "Expected Findings Revision",
"type": "integer"
},
"expected_target_generation": {
"maximum": 2147483647,
"minimum": 1,
"title": "Expected Target Generation",
"type": "integer"
},
"finding_id": {
"minimum": 1,
"title": "Finding Id",
"type": "integer"
},
"target_capability_id": {
"maxLength": 64,
"minLength": 1,
"title": "Target Capability Id",
"type": "string"
}
},
"required": [
"finding_id",
"expected_finding_revision",
"expected_findings_revision",
"target_capability_id",
"expected_target_generation"
],
"title": "SourceOpenCreate",
"type": "object"
}Responses
| Status | Meaning and declared shape |
|---|---|
202 | Successful Response application/json · object |
400 | Exact host, malformed request or URL credential refusal application/json · object |
401 | Missing or invalid membership application/json · object |
403 | Exact origin, CSRF or route authority refusal application/json · object |
404 | Refresh the collection and verify the resource identity before retrying. See source-linked error catalog. |
409 | Refresh current revision and identity. A conflicting command must not be blindly repeated. See source-linked error catalog. |
422 | Validation Error application/json · HTTPValidationError |
429 | Authentication rate or connection limit application/json · object |
An empty or broad schema preserves the source contract. It is not a promise of an empty response.
Source-linked errors
Literal HTTP errors in this handler and same-file helper call graph, plus control middleware. Dynamic and cross-module failures may add other errors; source links are authoritative.
13 source error observations
| Status | Source detail | Recovery |
|---|---|---|
| 422 ↗ | Idempotency-Key must contain 8-160 ASCII letters, digits, '.', '_', ':', or '-' | Correct the field or semantic validation error. Input values are omitted from control validation errors. |
| 409 ↗ | Dynamic detail; inspect source | Refresh current revision and identity. A conflicting command must not be blindly repeated. |
| 409 ↗ | Dynamic detail; inspect source | Refresh current revision and identity. A conflicting command must not be blindly repeated. |
| 409 ↗ | Dynamic detail; inspect source | Refresh current revision and identity. A conflicting command must not be blindly repeated. |
| 404 ↗ | finding not found | Refresh the collection and verify the resource identity before retrying. |
| 404 ↗ | finding scan not found | Refresh the collection and verify the resource identity before retrying. |
| 404 ↗ | finding project not found | Refresh the collection and verify the resource identity before retrying. |
| 409 ↗ | {"action":"open_finding_details","code":"ide_source_immutable_git","message":"This finding belongs to a committed Git snapshot, not the current workspace file. Read its captured details; historical editor navigation is not available."} | Refresh current revision and identity. A conflicting command must not be blindly repeated. |
| 409 ↗ | {"action":"re_register_source","code":"ide_source_project_noncanonical","message":"The registered project for this source-open command has a non-canonical source identity."} | Refresh current revision and identity. A conflicting command must not be blindly repeated. |
| 409 ↗ | Dynamic detail; inspect source | Refresh current revision and identity. A conflicting command must not be blindly repeated. |
| 409 ↗ | Idempotency-Key is already bound to a different source-open command | Refresh current revision and identity. A conflicting command must not be blindly repeated. |
| 409 ↗ | {"action":"re_register_source","code":"ide_source_project_noncanonical","message":"The registered project for this source-open command has an unsafe source identity."} | Refresh current revision and identity. A conflicting command must not be blindly repeated. |
| 409 ↗ | source-open command identity already exists | Refresh current revision and identity. A conflicting command must not be blindly repeated. |
Synthetic examples
These examples validate declared JSON shapes and formats. They contain no real installation data and do not prove runtime admission, cross-field validation, authority or successful work.
Request JSON
{
"expected_finding_revision": 1,
"expected_findings_revision": 1,
"expected_target_generation": 1,
"finding_id": 1,
"target_capability_id": "synthetic"
}Response 202 JSON
{}All referenced models remain in its components section. Browse control model definitions.