ProjectConfigurationResponse
0data objectrequired
- ProjectConfigurationState
- ProjectConfigurationExport
Role-filtered personal state. Guests receive only accessible base profiles and attachments.
profilePolicy object
Source-owned role policy. Client labels, role claims and personal metadata never grant authority. Projects without this policy keep their existing behavior.
Possible values: [1]
Must identify a guest profile.
权限逐级累加:访客只读;开发者编辑草稿、上传、发布、写服务器数据;维护者管理设置和低级成员;所有者管理全部成员、删除与转移。 / Cumulative guest, developer, maintainer and owner roles.
Possible values: [guest, developer, maintainer, owner]
profiles object[]required
Possible values: >= 1
权限逐级累加:访客只读;开发者编辑草稿、上传、发布、写服务器数据;维护者管理设置和低级成员;所有者管理全部成员、删除与转移。 / Cumulative guest, developer, maintainer and owner roles.
Possible values: [guest, developer, maintainer, owner]
fixedValues objectrequired
agentModelPolicy object
Source-declared restriction retained independently of published field visibility. Draft and template metadata cannot relax the current source restriction.
Possible values: [1]
Possible values: >= 0
fields object[]required
Possible values: Value must match regular expression ^[A-Za-z_][A-Za-z0-9_.-]{0,199}$
Possible values: [string, number, boolean, json, file]
Native JSON default. Never store real secrets in source declarations.
String arrays for string fields; up to 32 server file references for file fields.
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]
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.
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[]
sharing object
truefalsetruepaths object
JSON Pointer rules, inherited from the parent with more specific rules taking precedence. Excluding the whole field excludes every descendant.
property name* ConfigurationSharingRule
truefalsetrueGenerated opaque deny hashes for omitted JSON paths, without private path names.
Possible values: Value must match regular expression ^[a-f0-9]{64}$
customFields object[]required
Possible values: Value must match regular expression ^[A-Za-z_][A-Za-z0-9_.-]{0,199}$
Possible values: [string, number, boolean, json, file]
Native JSON default. Never store real secrets in source declarations.
String arrays for string fields; up to 32 server file references for file fields.
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]
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.
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[]
sharing object
truefalsetruepaths object
JSON Pointer rules, inherited from the parent with more specific rules taking precedence. Excluding the whole field excludes every descendant.
property name* ConfigurationSharingRule
truefalsetrueGenerated opaque deny hashes for omitted JSON paths, without private path names.
Possible values: Value must match regular expression ^[a-f0-9]{64}$
shadowedCustomFields object[]
Custom definitions temporarily hidden by same-name project declarations, retained for later restoration.
Possible values: Value must match regular expression ^[A-Za-z_][A-Za-z0-9_.-]{0,199}$
Possible values: [string, number, boolean, json, file]
Native JSON default. Never store real secrets in source declarations.
String arrays for string fields; up to 32 server file references for file fields.
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]
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.
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[]
sharing object
truefalsetruepaths object
JSON Pointer rules, inherited from the parent with more specific rules taking precedence. Excluding the whole field excludes every descendant.
property name* ConfigurationSharingRule
truefalsetrueGenerated opaque deny hashes for omitted JSON paths, without private path names.
Possible values: Value must match regular expression ^[a-f0-9]{64}$
capabilities object
权限逐级累加:访客只读;开发者编辑草稿、上传、发布、写服务器数据;维护者管理设置和低级成员;所有者管理全部成员、删除与转移。 / Cumulative guest, developer, maintainer and owner roles.
Possible values: [guest, developer, maintainer, owner]
Host-verified application account scope; not an authorization input.
configurationCapabilities object
property name* object
权限逐级累加:访客只读;开发者编辑草稿、上传、发布、写服务器数据;维护者管理设置和低级成员;所有者管理全部成员、删除与转移。 / Cumulative guest, developer, maintainer and owner roles.
Possible values: [guest, developer, maintainer, owner]
configurations object[]required
Possible values: >= 1
deletedPaths object
Personal JSON deletion overlays; managed by the service and rechecked against each version's permissions.
property name* string[]
values objectrequired
template object
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.
Possible values: [2, 3]
Possible values: [steamharness-configuration-template]
Possible values: Value must match regular expression ^[a-f0-9]{64}$
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.
Possible values: [1]
Must identify a guest profile.
权限逐级累加:访客只读;开发者编辑草稿、上传、发布、写服务器数据;维护者管理设置和低级成员;所有者管理全部成员、删除与转移。 / Cumulative guest, developer, maintainer and owner roles.
Possible values: [guest, developer, maintainer, owner]
profiles object[]required
Possible values: >= 1
权限逐级累加:访客只读;开发者编辑草稿、上传、发布、写服务器数据;维护者管理设置和低级成员;所有者管理全部成员、删除与转移。 / Cumulative guest, developer, maintainer and owner roles.
Possible values: [guest, developer, maintainer, owner]
fixedValues objectrequired
agentModelPolicy object
Source-declared restriction retained independently of published field visibility. Draft and template metadata cannot relax the current source restriction.
fields object[]required
Possible values: Value must match regular expression ^[A-Za-z_][A-Za-z0-9_.-]{0,199}$
Possible values: [string, number, boolean, json, file]
Native JSON default. Never store real secrets in source declarations.
String arrays for string fields; up to 32 server file references for file fields.
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]
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.
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[]
sharing object
truefalsetruepaths object
JSON Pointer rules, inherited from the parent with more specific rules taking precedence. Excluding the whole field excludes every descendant.
property name* ConfigurationSharingRule
truefalsetrueGenerated 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
Possible values: non-empty and <= 200 characters
Stable source-declared role profile.
values objectrequired
Possible values: Value must match regular expression ^[a-f0-9]{64}$
attachments object[]
Possible values: Value must match regular expression ^[a-f0-9]{64}$
publication object
Possible values: >= 0
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.
Possible values: [1]
Must identify a guest profile.
权限逐级累加:访客只读;开发者编辑草稿、上传、发布、写服务器数据;维护者管理设置和低级成员;所有者管理全部成员、删除与转移。 / Cumulative guest, developer, maintainer and owner roles.
Possible values: [guest, developer, maintainer, owner]
profiles object[]required
Possible values: >= 1
权限逐级累加:访客只读;开发者编辑草稿、上传、发布、写服务器数据;维护者管理设置和低级成员;所有者管理全部成员、删除与转移。 / Cumulative guest, developer, maintainer and owner roles.
Possible values: [guest, developer, maintainer, owner]
fixedValues objectrequired
agentModelPolicy object
Source-declared restriction retained independently of published field visibility. Draft and template metadata cannot relax the current source restriction.
Server-assigned source account for personal revision checks; client values do not grant authority.
fields object[]required
Possible values: Value must match regular expression ^[A-Za-z_][A-Za-z0-9_.-]{0,199}$
Possible values: [string, number, boolean, json, file]
Native JSON default. Never store real secrets in source declarations.
String arrays for string fields; up to 32 server file references for file fields.
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]
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.
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[]
sharing object
truefalsetruepaths object
JSON Pointer rules, inherited from the parent with more specific rules taking precedence. Excluding the whole field excludes every descendant.
property name* ConfigurationSharingRule
truefalsetrueGenerated 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
Possible values: non-empty and <= 200 characters
Stable source-declared role profile.
values objectrequired
publicationPreview object
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.
Possible values: [2, 3]
Possible values: [steamharness-configuration-template]
Possible values: Value must match regular expression ^[a-f0-9]{64}$
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.
Possible values: [1]
Must identify a guest profile.
权限逐级累加:访客只读;开发者编辑草稿、上传、发布、写服务器数据;维护者管理设置和低级成员;所有者管理全部成员、删除与转移。 / Cumulative guest, developer, maintainer and owner roles.
Possible values: [guest, developer, maintainer, owner]
profiles object[]required
Possible values: >= 1
权限逐级累加:访客只读;开发者编辑草稿、上传、发布、写服务器数据;维护者管理设置和低级成员;所有者管理全部成员、删除与转移。 / Cumulative guest, developer, maintainer and owner roles.
Possible values: [guest, developer, maintainer, owner]
fixedValues objectrequired
agentModelPolicy object
Source-declared restriction retained independently of published field visibility. Draft and template metadata cannot relax the current source restriction.
fields object[]required
Possible values: Value must match regular expression ^[A-Za-z_][A-Za-z0-9_.-]{0,199}$
Possible values: [string, number, boolean, json, file]
Native JSON default. Never store real secrets in source declarations.
String arrays for string fields; up to 32 server file references for file fields.
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]
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.
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[]
sharing object
truefalsetruepaths object
JSON Pointer rules, inherited from the parent with more specific rules taking precedence. Excluding the whole field excludes every descendant.
property name* ConfigurationSharingRule
truefalsetrueGenerated 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
Possible values: non-empty and <= 200 characters
Stable source-declared role profile.
values objectrequired
Possible values: Value must match regular expression ^[a-f0-9]{64}$
attachments object[]
Possible values: Value must match regular expression ^[a-f0-9]{64}$
当前所选源码的摘要;读取已发布版本不会要求草稿存在。 / Hash of the selected source; reading a published version does not require a draft.
仅开发者及以上读取草稿时提供,用于发布并发校验。 / Provided to developers and above when reading the draft for publication concurrency checks.
fieldCapabilities object
property name* ProjectConfigurationCapability
paths object
property name* ProjectConfigurationCapability
conflicts object[]
Preserved personal drafts whose field types changed on upgrade.
{
"errCode": 0,
"errMessage": "string",
"data": {
"profilePolicy": {
"version": 1,
"defaultProfileKey": "string",
"manageMinimumRole": "guest",
"profiles": [
{
"key": "string",
"name": "string",
"minimumRole": "guest",
"fixedValues": {},
"description": "string",
"tags": [
"string"
]
}
]
},
"agentModelPolicy": {
"allowThirdParty": true
},
"version": 1,
"revision": 0,
"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"
]
}
],
"customFields": [
{
"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"
]
}
],
"shadowedCustomFields": [
{
"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"
]
}
],
"capabilities": {
"manageConfigurations": true,
"role": "guest",
"online": true,
"subject": "string",
"reason": "string"
},
"configurationCapabilities": {},
"configurations": [
{
"deletedPaths": {},
"profileKey": "string",
"baseProfile": true,
"templateId": "string",
"id": "string",
"name": "string",
"values": {},
"createdAt": "2024-07-29T15:51:28.071Z",
"updatedAt": "2024-07-29T15:51:28.071Z"
}
],
"activeConfigurationId": "string",
"template": {
"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"
}
]
},
"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"
},
"publicationPreview": {
"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"
}
]
},
"canManagePublication": true,
"sourceHash": "string",
"publicationRevision": 0,
"fieldCapabilities": {},
"conflicts": [
{
"configurationId": "string",
"key": "string",
"value": {},
"reason": "string"
}
]
}
}