release housekeeping

This commit is contained in:
Jarek Krochmalski committed 2026-09-06 17:03:48 +05:30
1 parent 1e7f680426
commit 84c959910a
2 files changed
+131 -43

No files matched your search

+22
View File
@@ -1,4 +1,26 @@
[
{
"version": "1.0.47",
"date": "",
"comingSoon": true,
"changes": [
{ "type": "fix", "text": "back up stacks whose folder is bind-mounted over the data volume (#1533)" },
{ "type": "fix", "text": "backup restore preview now works for view-only roles (#1534)" },
{ "type": "feature", "text": "warn before saving a stack whose compose file location won't survive a container recreate (#1524)" },
{ "type": "fix", "text": "OpenAPI spec now types opaque object fields correctly and documents the validate 'existing' flag (#1531, #1530, PR#1532, @strausmann)" },
{ "type": "fix", "text": "\"always redeploy\" git stacks now force-recreate so config changes take effect (#1523)" },
{ "type": "fix", "text": "resolve secret references (op://, keepass://, ...) pasted with surrounding quotes (#1521)" },
{ "type": "fix", "text": "deleting a secret provider now warns which stacks it unbinds (#1522)" },
{ "type": "fix", "text": "deploy a 1:1-mounted local stack by file so its compose path label is preserved (#1514)" },
{ "type": "fix", "text": "store the compose path when a stack is created via the API without one (#1515)" },
{ "type": "fix", "text": "Microsoft Teams (via Workflows) accepts the new Power Automate webhook URL format (#1512)" },
{ "type": "fix", "text": "container shell sessions each keep their own live terminal when you switch between them (#1516)" },
{ "type": "fix", "text": "sort container uptimes under a minute correctly instead of tying them (PR#1395, @wrlee)" },
{ "type": "fix", "text": "load the web manifest through a Cloudflare tunnel by sending credentials (PR#1513, @Macleykun)" },
{ "type": "fix", "text": "copy the restic password over plain HTTP (#1488)" }
],
"imageTag": "fnsys/dockhand:v1.0.47"
},
{
"version": "1.0.46",
"date": "2026-09-02",
+109 -43
View File
@@ -9461,7 +9461,8 @@
"type": "boolean"
},
"newerVersion": {
"type": "string"
"type": "object",
"properties": {}
}
},
"required": [
@@ -9488,7 +9489,7 @@
"currentImage": "string",
"checkedAt": "string",
"hasImageUpdate": true,
"newerVersion": "string"
"newerVersion": {}
}
]
}
@@ -10016,7 +10017,8 @@
"type": "string"
},
"uptime": {
"type": "string"
"type": "object",
"properties": {}
},
"gcForced": {
"type": "boolean"
@@ -10025,19 +10027,24 @@
"type": "boolean"
},
"process": {
"type": "string"
"type": "object",
"properties": {}
},
"growth": {
"type": "string"
"type": "object",
"properties": {}
},
"v8Heap": {
"type": "string"
"type": "object",
"properties": {}
},
"system": {
"type": "string"
"type": "object",
"properties": {}
},
"rssTracker": {
"type": "string"
"type": "object",
"properties": {}
}
},
"required": [
@@ -12585,7 +12592,8 @@
"branches": {
"type": "array",
"items": {
"type": "string"
"type": "object",
"properties": {}
}
}
},
@@ -13163,10 +13171,12 @@
"type": "object",
"properties": {
"vars": {
"type": "string"
"type": "object",
"properties": {}
},
"sources": {
"type": "string"
"type": "object",
"properties": {}
}
},
"required": [
@@ -13175,8 +13185,8 @@
]
},
"example": {
"vars": "string",
"sources": "string"
"vars": {},
"sources": {}
}
}
}
@@ -14487,7 +14497,8 @@
"type": "object",
"properties": {
"vars": {
"type": "string"
"type": "object",
"properties": {}
}
},
"required": [
@@ -15476,7 +15487,8 @@
"type": "integer"
},
"environment": {
"type": "string"
"type": "object",
"properties": {}
}
},
"required": [
@@ -15586,7 +15598,8 @@
"type": "object",
"properties": {
"icons": {
"type": "string"
"type": "object",
"properties": {}
}
},
"required": [
@@ -16344,7 +16357,8 @@
"type": "boolean"
},
"result": {
"type": "string"
"type": "object",
"properties": {}
}
},
"required": [
@@ -16504,7 +16518,7 @@
"tags": [
"jobs"
],
"summary": "Poll a background job's status and accumulated output lines (no auth — job ids are unguessable UUIDs)",
"summary": "Poll a background job's status and accumulated output lines (owner or admin only)",
"parameters": [
{
"name": "id",
@@ -16588,7 +16602,7 @@
"tags": [
"jobs"
],
"summary": "Request cancellation of a running background job (no auth — job ids are unguessable UUIDs)",
"summary": "Request cancellation of a running background job (owner or admin only)",
"parameters": [
{
"name": "id",
@@ -16621,6 +16635,9 @@
}
}
}
},
"404": {
"description": "Job not found"
}
},
"security": [
@@ -22801,7 +22818,8 @@
"type": "string"
},
"config": {
"type": "string"
"type": "object",
"properties": {}
}
},
"required": [
@@ -22813,7 +22831,7 @@
"example": {
"name": "string",
"type": "string",
"config": "string"
"config": {}
}
}
}
@@ -22856,21 +22874,46 @@
"type": "string"
},
"config": {
"type": "string"
"type": "object",
"properties": {}
},
"stacksUsing": {
"type": "array",
"items": {
"type": "object",
"properties": {
"stackName": {
"type": "string"
},
"environmentId": {
"type": "integer"
}
},
"required": [
"stackName"
]
}
}
},
"required": [
"id",
"name",
"type",
"config"
"config",
"stacksUsing"
]
},
"example": {
"id": 0,
"name": "string",
"type": "string",
"config": "string"
"config": {},
"stacksUsing": [
{
"stackName": "string",
"environmentId": 0
}
]
}
}
}
@@ -22978,14 +23021,15 @@
"type": "string"
},
"config": {
"type": "string"
"type": "object",
"properties": {}
}
}
},
"example": {
"name": "string",
"type": "string",
"config": "string"
"config": {}
}
}
}
@@ -23232,7 +23276,8 @@
"type": "object",
"properties": {
"config": {
"type": "string"
"type": "object",
"properties": {}
}
}
},
@@ -23307,7 +23352,8 @@
"type": "string"
},
"config": {
"type": "string"
"type": "object",
"properties": {}
}
},
"required": [
@@ -24352,7 +24398,8 @@
"envVars": {
"type": "array",
"items": {
"type": "string"
"type": "object",
"properties": {}
}
},
"rawEnvContent": {
@@ -24382,7 +24429,7 @@
"composePath": "string",
"envPath": "string",
"envVars": [
"string"
{}
],
"rawEnvContent": "string",
"secretProviderId": 0,
@@ -24543,6 +24590,9 @@
},
"currentComposePath": {
"type": "string"
},
"persistenceWarning": {
"type": "string"
}
},
"required": [
@@ -25057,7 +25107,8 @@
}
},
"secretProvider": {
"type": "string"
"type": "object",
"properties": {}
}
},
"required": [
@@ -25075,7 +25126,7 @@
"injectedSecretKeys": [
"string"
],
"secretProvider": "string"
"secretProvider": {}
}
}
}
@@ -26100,7 +26151,8 @@
"type": "integer"
},
"fix": {
"type": "string"
"type": "object",
"properties": {}
},
"fixDescription": {
"type": "string"
@@ -26173,6 +26225,7 @@
"bearerAuth": []
}
],
"description": "Set existing:true when validating an already-deployed stack, so the stack's own running containers/ports are excluded from the cross-stack collision checks; omit it (or false) for a brand-new stack, where a name/port clash with a running stack of the same name must still be reported.",
"requestBody": {
"required": true,
"content": {
@@ -26183,6 +26236,9 @@
"compose": {
"type": "string"
},
"existing": {
"type": "boolean"
},
"config": {
"type": "object",
"properties": {
@@ -26193,12 +26249,14 @@
}
},
"severity": {
"type": "string"
"type": "object",
"properties": {}
}
}
},
"envVars": {
"type": "string"
"type": "object",
"properties": {}
}
},
"required": [
@@ -26806,19 +26864,24 @@
"type": "object",
"properties": {
"docker": {
"type": "string"
"type": "object",
"properties": {}
},
"host": {
"type": "string"
"type": "object",
"properties": {}
},
"runtime": {
"type": "string"
"type": "object",
"properties": {}
},
"database": {
"type": "string"
"type": "object",
"properties": {}
},
"stats": {
"type": "string"
"type": "object",
"properties": {}
}
},
"required": [
@@ -26904,7 +26967,8 @@
"type": "object",
"properties": {
"diskUsage": {
"type": "string"
"type": "object",
"properties": {}
}
}
},
@@ -29484,7 +29548,8 @@
"findings": {
"type": "array",
"items": {
"type": "string"
"type": "object",
"properties": {}
}
},
"total": {
@@ -29542,7 +29607,8 @@
"type": "integer"
},
"summary": {
"type": "string"
"type": "object",
"properties": {}
},
"images": {
"type": "array",