跳到主要内容

ProjectConfigurationTemplate

Version 3 freezes role policies and is rejected by unsupported hosts. Immutable, filtered version data; defaultValue is omitted. Arrays are indivisible. Excluded names are represented only by opaque deny hashes. The authenticated download validates source and attachment hashes before caching outside project source.

versionintegerrequired

Possible values: [2, 3]

kindstringrequired

Possible values: [steamharness-configuration-template]

projectIdstringrequired
projectVersionstringrequired
sourceHashstringrequired

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

draftRevisionintegerrequired

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
    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
    reservedFieldsstring[]

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

    attachments object[]
  • Array [
  • idstringrequired
    pathstringrequired
    sha256stringrequired

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

  • ]
  • ProjectConfigurationTemplate
    {
    "version": 2,
    "kind": "steamharness-configuration-template",
    "projectId": "string",
    "projectVersion": "string",
    "sourceHash": "string",
    "draftRevision": 0,
    "profilePolicy": {
    "version": 1,
    "defaultProfileKey": "string",
    "manageMinimumRole": "guest",
    "profiles": [
    {
    "key": "string",
    "name": "string",
    "minimumRole": "guest",
    "fixedValues": {},
    "description": "string",
    "tags": [
    "string"
    ]
    }
    ]
    },
    "agentModelPolicy": {
    "allowThirdParty": true
    },
    "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",
    "reservedFields": [
    "string"
    ],
    "attachments": [
    {
    "id": "string",
    "path": "string",
    "sha256": "string"
    }
    ]
    }