跳到主要内容

ProjectConfigurationAction

At most 1 MiB. Revision is mandatory for every mutation. Profile mutations require id; create takes optional name. Save merges typed values and removes overrides named in unset. Field edits use field and optional old key. Import takes a complete document. Export optionally filters by id and always applies the current role. Fixed values and base names cannot be changed. Unauthorized batches are rejected atomically.

actionstringrequired

Possible values: [get, export, create, duplicate, rename, save, select, delete, field.save, field.delete, import, publication.save, publication.preview]

revisioninteger

Possible values: >= 0

idstring
namestring

Possible values: non-empty and <= 200 characters

profileKeystring

Base policy inherited by a newly created personal configuration.

values object
property name*any
unsetstring[]
field object
namestringrequired

Possible values: Value must match regular expression ^[A-Za-z_][A-Za-z0-9_.-]{0,199}$

typestringrequired

Possible values: [string, number, boolean, json, file]

labelstring
descriptionstring
defaultValue

Native JSON default. Never store real secrets in source declarations.

requiredboolean
secretboolean
multipleboolean

String arrays for string fields; up to 32 server file references for file fields.

controlstring

ai-models is reserved for the STEAMHARNESS_AGENT_MODELS JSON field. Entries contain id, name, model and source. System entries use credentialId; third-party entries use apiKind, baseUrl and apiKey. Values are private unless explicitly included in publication.

Possible values: [text, textarea, select, radio, checkboxes, ai-models]

allowThirdPartyboolean

Only valid for ai-models. Set false in configuration.json to allow only system AI. Saves and imports cannot add third-party entries or relax the project's declared policy. Omitted or true allows both sources.

acceptstring[]

File fields only. Accepted MIME types or extensions. Files upload through POST /api/projects/{projectId}/configurations/files and values contain server metadata, never file bytes.

options object[]
  • Array [
  • valuestringrequired
    labelstring
  • ]
  • sharing object
    publishboolean
    Default value: true
    includeValueboolean
    Default value: false
    editableboolean
    Default value: true
    paths object

    JSON Pointer rules, inherited from the parent with more specific rules taking precedence. Excluding the whole field excludes every descendant.

    property name* ConfigurationSharingRule
    publishboolean
    Default value: true
    includeValueboolean
    Default value: false
    editableboolean
    Default value: true
    omittedPathsstring[]

    Generated opaque deny hashes for omitted JSON paths, without private path names.

    Possible values: Value must match regular expression ^[a-f0-9]{64}$

    keystring
    document object
    versionintegerrequired

    Possible values: [1]

    kindstringrequired

    Possible values: [steamharness-project-configurations]

    fields object[]required
  • Array [
  • namestringrequired

    Possible values: Value must match regular expression ^[A-Za-z_][A-Za-z0-9_.-]{0,199}$

    typestringrequired

    Possible values: [string, number, boolean, json, file]

    labelstring
    descriptionstring
    defaultValue

    Native JSON default. Never store real secrets in source declarations.

    requiredboolean
    secretboolean
    multipleboolean

    String arrays for string fields; up to 32 server file references for file fields.

    controlstring

    ai-models is reserved for the STEAMHARNESS_AGENT_MODELS JSON field. Entries contain id, name, model and source. System entries use credentialId; third-party entries use apiKind, baseUrl and apiKey. Values are private unless explicitly included in publication.

    Possible values: [text, textarea, select, radio, checkboxes, ai-models]

    allowThirdPartyboolean

    Only valid for ai-models. Set false in configuration.json to allow only system AI. Saves and imports cannot add third-party entries or relax the project's declared policy. Omitted or true allows both sources.

    acceptstring[]

    File fields only. Accepted MIME types or extensions. Files upload through POST /api/projects/{projectId}/configurations/files and values contain server metadata, never file bytes.

    options object[]
  • Array [
  • valuestringrequired
    labelstring
  • ]
  • sharing object
    publishboolean
    Default value: true
    includeValueboolean
    Default value: false
    editableboolean
    Default value: true
    paths object

    JSON Pointer rules, inherited from the parent with more specific rules taking precedence. Excluding the whole field excludes every descendant.

    property name* ConfigurationSharingRule
    publishboolean
    Default value: true
    includeValueboolean
    Default value: false
    editableboolean
    Default value: true
    omittedPathsstring[]

    Generated opaque deny hashes for omitted JSON paths, without private path names.

    Possible values: Value must match regular expression ^[a-f0-9]{64}$

  • ]
  • configurations object[]required

    Possible values: >= 1

  • Array [
  • profileKeystring
    templateIdstring
    namestringrequired
    values objectrequired
    property name*any
  • ]
  • publication object
    revisionintegerrequired

    Possible values: >= 0

    configurationRevisionintegerrequired

    Possible values: >= 0

    profilePolicy object

    Source-owned role policy. Client labels, role claims and personal metadata never grant authority. Projects without this policy keep their existing behavior.

    versionintegerrequired

    Possible values: [1]

    defaultProfileKeystringrequired

    Must identify a guest profile.

    manageMinimumRoleProjectRolerequired

    权限逐级累加:访客只读;开发者编辑草稿、上传、发布、写服务器数据;维护者管理设置和低级成员;所有者管理全部成员、删除与转移。 / Cumulative guest, developer, maintainer and owner roles.

    Possible values: [guest, developer, maintainer, owner]

    profiles object[]required

    Possible values: >= 1

  • Array [
  • keystringrequired
    namestringrequired
    minimumRoleProjectRolerequired

    权限逐级累加:访客只读;开发者编辑草稿、上传、发布、写服务器数据;维护者管理设置和低级成员;所有者管理全部成员、删除与转移。 / Cumulative guest, developer, maintainer and owner roles.

    Possible values: [guest, developer, maintainer, owner]

    fixedValues objectrequired
    property name*any
    descriptionstring
    tagsstring[]
  • ]
  • agentModelPolicy object

    Source-declared restriction retained independently of published field visibility. Draft and template metadata cannot relax the current source restriction.

    allowThirdPartyboolean
    configurationAccountIdstring

    Server-assigned source account for personal revision checks; client values do not grant authority.

    fields object[]required
  • Array [
  • namestringrequired

    Possible values: Value must match regular expression ^[A-Za-z_][A-Za-z0-9_.-]{0,199}$

    typestringrequired

    Possible values: [string, number, boolean, json, file]

    labelstring
    descriptionstring
    defaultValue

    Native JSON default. Never store real secrets in source declarations.

    requiredboolean
    secretboolean
    multipleboolean

    String arrays for string fields; up to 32 server file references for file fields.

    controlstring

    ai-models is reserved for the STEAMHARNESS_AGENT_MODELS JSON field. Entries contain id, name, model and source. System entries use credentialId; third-party entries use apiKind, baseUrl and apiKey. Values are private unless explicitly included in publication.

    Possible values: [text, textarea, select, radio, checkboxes, ai-models]

    allowThirdPartyboolean

    Only valid for ai-models. Set false in configuration.json to allow only system AI. Saves and imports cannot add third-party entries or relax the project's declared policy. Omitted or true allows both sources.

    acceptstring[]

    File fields only. Accepted MIME types or extensions. Files upload through POST /api/projects/{projectId}/configurations/files and values contain server metadata, never file bytes.

    options object[]
  • Array [
  • valuestringrequired
    labelstring
  • ]
  • sharing object
    publishboolean
    Default value: true
    includeValueboolean
    Default value: false
    editableboolean
    Default value: true
    paths object

    JSON Pointer rules, inherited from the parent with more specific rules taking precedence. Excluding the whole field excludes every descendant.

    property name* ConfigurationSharingRule
    publishboolean
    Default value: true
    includeValueboolean
    Default value: false
    editableboolean
    Default value: true
    omittedPathsstring[]

    Generated opaque deny hashes for omitted JSON paths, without private path names.

    Possible values: Value must match regular expression ^[a-f0-9]{64}$

  • ]
  • configurations object[]required

    Possible values: >= 1

  • Array [
  • idstringrequired
    namestringrequired

    Possible values: non-empty and <= 200 characters

    profileKeystring

    Stable source-declared role profile.

    values objectrequired
    property name*any
  • ]
  • defaultConfigurationIdstringrequired
    ProjectConfigurationAction
    {
    "action": "get",
    "revision": 0,
    "id": "string",
    "name": "string",
    "profileKey": "string",
    "values": {},
    "unset": [
    "string"
    ],
    "field": {
    "name": "string",
    "type": "string",
    "label": "string",
    "description": "string",
    "required": true,
    "secret": true,
    "multiple": true,
    "control": "text",
    "allowThirdParty": true,
    "accept": [
    "string"
    ],
    "options": [
    {
    "value": "string",
    "label": "string"
    }
    ],
    "sharing": {
    "publish": true,
    "includeValue": false,
    "editable": true
    },
    "paths": {},
    "omittedPaths": [
    "string"
    ]
    },
    "key": "string",
    "document": {
    "version": 1,
    "kind": "steamharness-project-configurations",
    "fields": [
    {
    "name": "string",
    "type": "string",
    "label": "string",
    "description": "string",
    "required": true,
    "secret": true,
    "multiple": true,
    "control": "text",
    "allowThirdParty": true,
    "accept": [
    "string"
    ],
    "options": [
    {
    "value": "string",
    "label": "string"
    }
    ],
    "sharing": {
    "publish": true,
    "includeValue": false,
    "editable": true
    },
    "paths": {},
    "omittedPaths": [
    "string"
    ]
    }
    ],
    "configurations": [
    {
    "profileKey": "string",
    "templateId": "string",
    "name": "string",
    "values": {}
    }
    ]
    },
    "publication": {
    "revision": 0,
    "configurationRevision": 0,
    "profilePolicy": {
    "version": 1,
    "defaultProfileKey": "string",
    "manageMinimumRole": "guest",
    "profiles": [
    {
    "key": "string",
    "name": "string",
    "minimumRole": "guest",
    "fixedValues": {},
    "description": "string",
    "tags": [
    "string"
    ]
    }
    ]
    },
    "agentModelPolicy": {
    "allowThirdParty": true
    },
    "configurationAccountId": "string",
    "fields": [
    {
    "name": "string",
    "type": "string",
    "label": "string",
    "description": "string",
    "required": true,
    "secret": true,
    "multiple": true,
    "control": "text",
    "allowThirdParty": true,
    "accept": [
    "string"
    ],
    "options": [
    {
    "value": "string",
    "label": "string"
    }
    ],
    "sharing": {
    "publish": true,
    "includeValue": false,
    "editable": true
    },
    "paths": {},
    "omittedPaths": [
    "string"
    ]
    }
    ],
    "configurations": [
    {
    "id": "string",
    "name": "string",
    "profileKey": "string",
    "values": {}
    }
    ],
    "defaultConfigurationId": "string"
    }
    }