Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/.vitepress/config.mts
Original file line number Diff line number Diff line change
Expand Up @@ -339,6 +339,7 @@ export default defineConfig({
{ text: 'Rolling Updates', link: '/knowledge-base/rolling-updates' },
{ text: 'Health Checks', link: '/knowledge-base/health-checks' },
{ text: 'Cron Syntax', link: '/knowledge-base/cron-syntax' },
{ text: 'Service API Management', link: '/knowledge-base/services-api' },
]
},
{
Expand Down
277 changes: 277 additions & 0 deletions docs/.vitepress/theme/openapi.json
Original file line number Diff line number Diff line change
Expand Up @@ -8368,6 +8368,181 @@
]
}
},
"/services/{uuid}/applications": {
"get": {
"tags": ["Services"],
"summary": "List Applications",
"description": "List all applications within a service.",
"operationId": "list-service-applications",
"parameters": [
{
"name": "uuid",
"in": "path",
"description": "UUID of the service.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "List of service applications.",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ServiceApplication"
}
}
}
}
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
}
},
"security": [
{
"bearerAuth": []
}
]
}
},
"/services/{uuid}/applications/{app_uuid}": {
"patch": {
"tags": ["Services"],
"summary": "Update Application",
"description": "Update a service application's configuration including FQDN, display name, and proxy settings. Changes require a service restart to take effect.",
"operationId": "update-service-application",
"parameters": [
{
"name": "uuid",
"in": "path",
"description": "UUID of the service.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "app_uuid",
"in": "path",
"description": "UUID of the application.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"requestBody": {
"description": "Fields to update on the service application.",
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"fqdn": {
"type": "string",
"nullable": true,
"description": "Fully qualified domain name(s) with optional port. Multiple domains can be comma-separated (e.g., 'app.example.com:8080,app2.example.com').",
"example": "app.example.com:8080"
},
"human_name": {
"type": "string",
"nullable": true,
"description": "Human-readable display name for the application.",
"example": "Production API Server"
},
"description": {
"type": "string",
"nullable": true,
"description": "Application description.",
"example": "Production workflow automation server"
},
"image": {
"type": "string",
"nullable": true,
"description": "Docker image for the application. WARNING: Changing this may corrupt application data.",
"example": "docker.n8n.io/n8nio/n8n:latest"
},
"exclude_from_status": {
"type": "boolean",
"description": "Whether to exclude this application from service status monitoring.",
"example": false
},
"is_log_drain_enabled": {
"type": "boolean",
"description": "Enable log drain for this application. Requires server-level log drain support.",
"example": false
},
"is_gzip_enabled": {
"type": "boolean",
"description": "Enable gzip compression in the proxy.",
"example": true
},
"is_stripprefix_enabled": {
"type": "boolean",
"description": "Enable path prefix stripping in the proxy.",
"example": true
}
}
}
}
}
},
"responses": {
"200": {
"description": "Application updated successfully.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ServiceApplication"
},
{
"type": "object",
"properties": {
"message": {
"type": "string",
"example": "Application updated successfully. Restart the service to apply changes."
}
}
}
]
}
}
}
},
"401": {
"$ref": "#/components/responses/401"
},
"404": {
"$ref": "#/components/responses/404"
},
"409": {
"$ref": "#/components/responses/409"
},
"422": {
"$ref": "#/components/responses/422"
}
},
"security": [
{
"bearerAuth": []
}
]
}
},
"/teams": {
"get": {
"tags": ["Teams"],
Expand Down Expand Up @@ -9427,6 +9602,72 @@
},
"type": "object"
},
"ServiceApplication": {
"description": "Service Application model",
"properties": {
"uuid": {
"type": "string",
"description": "The unique identifier of the service application.",
"example": "app-uuid-123"
},
"name": {
"type": "string",
"description": "The internal name of the application.",
"example": "n8n"
},
"human_name": {
"type": "string",
"nullable": true,
"description": "The human-readable display name of the application.",
"example": "N8N Workflow Automation"
},
"description": {
"type": "string",
"nullable": true,
"description": "The description of the application.",
"example": "Production workflow automation server"
},
"fqdn": {
"type": "string",
"nullable": true,
"description": "The fully qualified domain name(s) with optional port. Multiple domains can be comma-separated.",
"example": "n8n.example.com:5678"
},
"image": {
"type": "string",
"nullable": true,
"description": "The Docker image used by the application.",
"example": "docker.n8n.io/n8nio/n8n:latest"
},
"status": {
"type": "string",
"nullable": true,
"description": "The current status of the application.",
"example": "running"
},
"exclude_from_status": {
"type": "boolean",
"description": "Whether to exclude this application from service status monitoring.",
"example": false
},
"is_log_drain_enabled": {
"type": "boolean",
"description": "Whether log drain is enabled for this application.",
"example": false
},
"is_gzip_enabled": {
"type": "boolean",
"description": "Whether gzip compression is enabled in the proxy.",
"example": true
},
"is_stripprefix_enabled": {
"type": "boolean",
"description": "Whether path prefix stripping is enabled in the proxy.",
"example": true
}
},
"type": "object"
},
"Team": {
"description": "Team model",
"properties": {
Expand Down Expand Up @@ -9564,6 +9805,42 @@
}
}
},
"409": {
"description": "Domain conflict detected.",
"content": {
"application/json": {
"schema": {
"properties": {
"message": {
"type": "string",
"example": "Domain conflict detected. The domain is already in use by another resource."
},
"conflicts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"fqdn": {
"type": "string",
"example": "app.example.com:8080"
},
"resource_type": {
"type": "string",
"example": "application"
},
"resource_uuid": {
"type": "string",
"example": "other-app-uuid"
}
}
}
}
},
"type": "object"
}
}
}
},
"422": {
"description": "Validation error.",
"content": {
Expand Down
12 changes: 11 additions & 1 deletion docs/api-reference/authorization.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,11 @@ The token will only be able to access resources that are owned by the team that
Some API data won't get returned if the API token doesn't have correct permissions
:::

Currently there are three types of permissions:
Currently there are several types of permissions:

- read-only `(default)`
- read
- write
- read:sensitive
- view:sensitive
- `*` (all permissions)
Expand All @@ -48,6 +50,14 @@ Currently there are three types of permissions:

With this permission, you can only read data from the API, but you can't create, update, or delete any resources. Also you can't see sensitive data.

### `read`

With this permission, you can read data from the API including non-sensitive resource information. You cannot create, update, or delete any resources.

### `write`

With this permission, you can create, update, and delete resources via the API. This includes modifying service applications, updating configurations, and managing deployments.

### `read:sensitive`

With this permission, you can only read data from the API and see sensitive information that is normally redacted. You cannot create, update, or delete any resources.
Expand Down
Loading