Appearance
erp-keys
5 endpoints.
GET /api/v1/settings/erp-keys
List Keys
All managed connections (portal + service panels), secrets withheld.
200 — Successful Response
json
{}GET /api/v1/settings/erp-keys/dashboard-sites
Get Dashboard Instances
This site's own /erp/instances tab override. Empty tabs means the site is on the default: one tab over its own books.
200 — Successful Response
json
{}PUT /api/v1/settings/erp-keys/dashboard-sites
Put Dashboard Instances
Replace this site's dashboard tab list. An empty tabs list clears the override, reverting the site to the single default tab. Returns the refreshed tab list.
Request body
json
{
"properties": {
"tabs": {
"items": {
"properties": {
"id": {
"type": "string",
"maxLength": 64,
"minLength": 1,
"title": "Id"
},
"label": {
"type": "string",
"maxLength": 128,
"minLength": 1,
"title": "Label"
},
"kind": {
"type": "string",
"pattern": "^local$",
"title": "Kind",
"default": "local"
},
"segment": {
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
],
"title": "Segment"
},
"site": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
],
"title": "Site"
},
"instance": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
],
"title": "Site"
}
},
"type": "object",
"required": [
"id",
"label"
],
"title": "DashboardTabIn"
},
"type": "array",
"title": "Tabs"
}
},
"type": "object",
"required": [
"tabs"
],
"title": "DashboardTabsIn"
}200 — Successful Response
json
{}422 — Validation Error
json
{
"properties": {
"detail": {
"items": {
"properties": {
"loc": {
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
}
]
},
"type": "array",
"title": "Location"
},
"msg": {
"type": "string",
"title": "Message"
},
"type": {
"type": "string",
"title": "Error Type"
}
},
"type": "object",
"required": [
"loc",
"msg",
"type"
],
"title": "ValidationError"
},
"type": "array",
"title": "Detail"
}
},
"type": "object",
"title": "HTTPValidationError"
}PUT /api/v1/settings/erp-keys/{conn_id}
Update Key
Upsert one connection's credentials, then return the refreshed (masked) connection list so the UI reflects the new state.
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
conn_id | path | yes | string |
Request body
json
{
"properties": {
"url": {
"anyOf": [
{
"type": "string",
"maxLength": 512
},
{
"type": "null"
}
],
"title": "Url"
},
"key": {
"anyOf": [
{
"type": "string",
"maxLength": 512
},
{
"type": "null"
}
],
"title": "Key"
},
"secret": {
"anyOf": [
{
"type": "string",
"maxLength": 512
},
{
"type": "null"
}
],
"title": "Secret"
}
},
"type": "object",
"title": "ErpKeyIn",
"description": "Partial update for one connection. A field omitted (``None``) is left\nuntouched; an empty string clears that field's override (falls back to\n``.env``). ``key`` is the bearer token; ``secret`` is accepted for\nbackwards compatibility and ignored."
}200 — Successful Response
json
{}422 — Validation Error
json
{
"properties": {
"detail": {
"items": {
"properties": {
"loc": {
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
}
]
},
"type": "array",
"title": "Location"
},
"msg": {
"type": "string",
"title": "Message"
},
"type": {
"type": "string",
"title": "Error Type"
}
},
"type": "object",
"required": [
"loc",
"msg",
"type"
],
"title": "ValidationError"
},
"type": "array",
"title": "Detail"
}
},
"type": "object",
"title": "HTTPValidationError"
}POST /api/v1/settings/erp-keys/{conn_id}/test
Test Key
Live connectivity check using the currently-resolved credentials (DB-over-env). Returns {ok, detail}.
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
conn_id | path | yes | string |
200 — Successful Response
json
{}422 — Validation Error
json
{
"properties": {
"detail": {
"items": {
"properties": {
"loc": {
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
}
]
},
"type": "array",
"title": "Location"
},
"msg": {
"type": "string",
"title": "Message"
},
"type": {
"type": "string",
"title": "Error Type"
}
},
"type": "object",
"required": [
"loc",
"msg",
"type"
],
"title": "ValidationError"
},
"type": "array",
"title": "Detail"
}
},
"type": "object",
"title": "HTTPValidationError"
}