This commit is contained in:
+378
-17
@@ -965,12 +965,7 @@ const docTemplate = `{
|
||||
},
|
||||
"/jobs": {
|
||||
"post": {
|
||||
"security": [
|
||||
{
|
||||
"Bearer": []
|
||||
}
|
||||
],
|
||||
"description": "Sends a command to the specified agent, waits for execution, and returns the result",
|
||||
"description": "Sends a command to the specified agent and returns a URL to wait for the result",
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
@@ -980,7 +975,7 @@ const docTemplate = `{
|
||||
"tags": [
|
||||
"jobs"
|
||||
],
|
||||
"summary": "Create and run a job on an agent",
|
||||
"summary": "Submit a job to an agent",
|
||||
"parameters": [
|
||||
{
|
||||
"description": "Job request",
|
||||
@@ -1002,6 +997,148 @@ const docTemplate = `{
|
||||
}
|
||||
}
|
||||
},
|
||||
"/jobs/check_cmd": {
|
||||
"post": {
|
||||
"description": "Validates that a command binary exists on the system",
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"jobs"
|
||||
],
|
||||
"summary": "Check command path",
|
||||
"parameters": [
|
||||
{
|
||||
"description": "Command to check",
|
||||
"name": "body",
|
||||
"in": "body",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"$ref": "#/definitions/internal_handlers.CheckCmdIn"
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/internal_handlers.CheckCmdOut"
|
||||
}
|
||||
},
|
||||
"404": {
|
||||
"description": "Not Found",
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/jobs/metrics": {
|
||||
"get": {
|
||||
"security": [
|
||||
{
|
||||
"Bearer": []
|
||||
}
|
||||
],
|
||||
"description": "Returns total, successful, failed, and pending job counts over the given period",
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"jobs"
|
||||
],
|
||||
"summary": "Get job metrics",
|
||||
"parameters": [
|
||||
{
|
||||
"type": "string",
|
||||
"default": "24h",
|
||||
"description": "Time period (e.g. 1h, 24h, 7d)",
|
||||
"name": "period",
|
||||
"in": "query"
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/internal_handlers.JobMetricsOut"
|
||||
}
|
||||
},
|
||||
"400": {
|
||||
"description": "Bad Request",
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/jobs/{id}/wait": {
|
||||
"post": {
|
||||
"description": "Long-polls for a job result. Returns immediately if the job is already finished.",
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"jobs"
|
||||
],
|
||||
"summary": "Wait for job result",
|
||||
"parameters": [
|
||||
{
|
||||
"type": "integer",
|
||||
"description": "Job ID",
|
||||
"name": "id",
|
||||
"in": "path",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"description": "Agent reference",
|
||||
"name": "body",
|
||||
"in": "body",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"$ref": "#/definitions/internal_handlers.WaitJobIn"
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/internal_handlers.JobResult"
|
||||
}
|
||||
},
|
||||
"400": {
|
||||
"description": "Bad Request",
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"404": {
|
||||
"description": "Not Found",
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/logs": {
|
||||
"get": {
|
||||
"security": [
|
||||
@@ -1580,6 +1717,138 @@ const docTemplate = `{
|
||||
}
|
||||
}
|
||||
},
|
||||
"/scripts/by-path": {
|
||||
"get": {
|
||||
"security": [
|
||||
{
|
||||
"Bearer": []
|
||||
}
|
||||
],
|
||||
"description": "Returns a script by its full path (e.g. 'deploy/nginx/restart.sh')",
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"scripts"
|
||||
],
|
||||
"summary": "Get script by path",
|
||||
"parameters": [
|
||||
{
|
||||
"type": "string",
|
||||
"description": "Script path",
|
||||
"name": "path",
|
||||
"in": "query",
|
||||
"required": true
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.Script"
|
||||
}
|
||||
},
|
||||
"400": {
|
||||
"description": "Bad Request",
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"404": {
|
||||
"description": "Not Found",
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/scripts/folder": {
|
||||
"post": {
|
||||
"security": [
|
||||
{
|
||||
"Bearer": []
|
||||
}
|
||||
],
|
||||
"description": "Creates a virtual folder by creating a placeholder script with the folder path",
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"scripts"
|
||||
],
|
||||
"summary": "Create folder",
|
||||
"parameters": [
|
||||
{
|
||||
"description": "Folder path",
|
||||
"name": "body",
|
||||
"in": "body",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"$ref": "#/definitions/internal_handlers.CreateFolderRequest"
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"201": {
|
||||
"description": "Folder created",
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"delete": {
|
||||
"security": [
|
||||
{
|
||||
"Bearer": []
|
||||
}
|
||||
],
|
||||
"description": "Deletes all scripts that start with the given folder path",
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"scripts"
|
||||
],
|
||||
"summary": "Delete folder",
|
||||
"parameters": [
|
||||
{
|
||||
"description": "Folder path",
|
||||
"name": "body",
|
||||
"in": "body",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"$ref": "#/definitions/internal_handlers.DeleteFolderRequest"
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "Folder deleted with count of deleted scripts",
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"additionalProperties": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/scripts/interpreters": {
|
||||
"get": {
|
||||
"security": [
|
||||
@@ -2337,16 +2606,7 @@ const docTemplate = `{
|
||||
"id": {
|
||||
"type": "integer"
|
||||
},
|
||||
"status": {
|
||||
"type": "integer"
|
||||
},
|
||||
"stderr": {
|
||||
"type": "string"
|
||||
},
|
||||
"stdin": {
|
||||
"type": "string"
|
||||
},
|
||||
"stdout": {
|
||||
"wait_url": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
@@ -2382,6 +2642,50 @@ const docTemplate = `{
|
||||
}
|
||||
}
|
||||
},
|
||||
"internal_handlers.CheckCmdIn": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"command"
|
||||
],
|
||||
"properties": {
|
||||
"command": {
|
||||
"type": "string",
|
||||
"example": "bash"
|
||||
}
|
||||
}
|
||||
},
|
||||
"internal_handlers.CheckCmdOut": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"exists": {
|
||||
"type": "boolean"
|
||||
}
|
||||
}
|
||||
},
|
||||
"internal_handlers.CreateFolderRequest": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"path"
|
||||
],
|
||||
"properties": {
|
||||
"path": {
|
||||
"type": "string",
|
||||
"example": "deploy/nginx"
|
||||
}
|
||||
}
|
||||
},
|
||||
"internal_handlers.DeleteFolderRequest": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"path"
|
||||
],
|
||||
"properties": {
|
||||
"path": {
|
||||
"type": "string",
|
||||
"example": "deploy/nginx"
|
||||
}
|
||||
}
|
||||
},
|
||||
"internal_handlers.InsertLogRequest": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
@@ -2422,6 +2726,52 @@ const docTemplate = `{
|
||||
}
|
||||
}
|
||||
},
|
||||
"internal_handlers.JobMetricsOut": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"failed": {
|
||||
"type": "integer"
|
||||
},
|
||||
"pending": {
|
||||
"type": "integer"
|
||||
},
|
||||
"period": {
|
||||
"type": "string"
|
||||
},
|
||||
"success": {
|
||||
"type": "integer"
|
||||
},
|
||||
"total": {
|
||||
"type": "integer"
|
||||
}
|
||||
}
|
||||
},
|
||||
"internal_handlers.JobResult": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"command": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"id": {
|
||||
"type": "integer"
|
||||
},
|
||||
"status": {
|
||||
"type": "integer"
|
||||
},
|
||||
"stderr": {
|
||||
"type": "string"
|
||||
},
|
||||
"stdin": {
|
||||
"type": "string"
|
||||
},
|
||||
"stdout": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"internal_handlers.RegisterRequest": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
@@ -2509,6 +2859,17 @@ const docTemplate = `{
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"internal_handlers.WaitJobIn": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"agent_id"
|
||||
],
|
||||
"properties": {
|
||||
"agent_id": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"securityDefinitions": {
|
||||
|
||||
+378
-17
@@ -954,12 +954,7 @@
|
||||
},
|
||||
"/jobs": {
|
||||
"post": {
|
||||
"security": [
|
||||
{
|
||||
"Bearer": []
|
||||
}
|
||||
],
|
||||
"description": "Sends a command to the specified agent, waits for execution, and returns the result",
|
||||
"description": "Sends a command to the specified agent and returns a URL to wait for the result",
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
@@ -969,7 +964,7 @@
|
||||
"tags": [
|
||||
"jobs"
|
||||
],
|
||||
"summary": "Create and run a job on an agent",
|
||||
"summary": "Submit a job to an agent",
|
||||
"parameters": [
|
||||
{
|
||||
"description": "Job request",
|
||||
@@ -991,6 +986,148 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"/jobs/check_cmd": {
|
||||
"post": {
|
||||
"description": "Validates that a command binary exists on the system",
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"jobs"
|
||||
],
|
||||
"summary": "Check command path",
|
||||
"parameters": [
|
||||
{
|
||||
"description": "Command to check",
|
||||
"name": "body",
|
||||
"in": "body",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"$ref": "#/definitions/internal_handlers.CheckCmdIn"
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/internal_handlers.CheckCmdOut"
|
||||
}
|
||||
},
|
||||
"404": {
|
||||
"description": "Not Found",
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/jobs/metrics": {
|
||||
"get": {
|
||||
"security": [
|
||||
{
|
||||
"Bearer": []
|
||||
}
|
||||
],
|
||||
"description": "Returns total, successful, failed, and pending job counts over the given period",
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"jobs"
|
||||
],
|
||||
"summary": "Get job metrics",
|
||||
"parameters": [
|
||||
{
|
||||
"type": "string",
|
||||
"default": "24h",
|
||||
"description": "Time period (e.g. 1h, 24h, 7d)",
|
||||
"name": "period",
|
||||
"in": "query"
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/internal_handlers.JobMetricsOut"
|
||||
}
|
||||
},
|
||||
"400": {
|
||||
"description": "Bad Request",
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/jobs/{id}/wait": {
|
||||
"post": {
|
||||
"description": "Long-polls for a job result. Returns immediately if the job is already finished.",
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"jobs"
|
||||
],
|
||||
"summary": "Wait for job result",
|
||||
"parameters": [
|
||||
{
|
||||
"type": "integer",
|
||||
"description": "Job ID",
|
||||
"name": "id",
|
||||
"in": "path",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"description": "Agent reference",
|
||||
"name": "body",
|
||||
"in": "body",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"$ref": "#/definitions/internal_handlers.WaitJobIn"
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/internal_handlers.JobResult"
|
||||
}
|
||||
},
|
||||
"400": {
|
||||
"description": "Bad Request",
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"404": {
|
||||
"description": "Not Found",
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/logs": {
|
||||
"get": {
|
||||
"security": [
|
||||
@@ -1569,6 +1706,138 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"/scripts/by-path": {
|
||||
"get": {
|
||||
"security": [
|
||||
{
|
||||
"Bearer": []
|
||||
}
|
||||
],
|
||||
"description": "Returns a script by its full path (e.g. 'deploy/nginx/restart.sh')",
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"scripts"
|
||||
],
|
||||
"summary": "Get script by path",
|
||||
"parameters": [
|
||||
{
|
||||
"type": "string",
|
||||
"description": "Script path",
|
||||
"name": "path",
|
||||
"in": "query",
|
||||
"required": true
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.Script"
|
||||
}
|
||||
},
|
||||
"400": {
|
||||
"description": "Bad Request",
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"404": {
|
||||
"description": "Not Found",
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/scripts/folder": {
|
||||
"post": {
|
||||
"security": [
|
||||
{
|
||||
"Bearer": []
|
||||
}
|
||||
],
|
||||
"description": "Creates a virtual folder by creating a placeholder script with the folder path",
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"scripts"
|
||||
],
|
||||
"summary": "Create folder",
|
||||
"parameters": [
|
||||
{
|
||||
"description": "Folder path",
|
||||
"name": "body",
|
||||
"in": "body",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"$ref": "#/definitions/internal_handlers.CreateFolderRequest"
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"201": {
|
||||
"description": "Folder created",
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"delete": {
|
||||
"security": [
|
||||
{
|
||||
"Bearer": []
|
||||
}
|
||||
],
|
||||
"description": "Deletes all scripts that start with the given folder path",
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"scripts"
|
||||
],
|
||||
"summary": "Delete folder",
|
||||
"parameters": [
|
||||
{
|
||||
"description": "Folder path",
|
||||
"name": "body",
|
||||
"in": "body",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"$ref": "#/definitions/internal_handlers.DeleteFolderRequest"
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "Folder deleted with count of deleted scripts",
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"additionalProperties": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/scripts/interpreters": {
|
||||
"get": {
|
||||
"security": [
|
||||
@@ -2326,16 +2595,7 @@
|
||||
"id": {
|
||||
"type": "integer"
|
||||
},
|
||||
"status": {
|
||||
"type": "integer"
|
||||
},
|
||||
"stderr": {
|
||||
"type": "string"
|
||||
},
|
||||
"stdin": {
|
||||
"type": "string"
|
||||
},
|
||||
"stdout": {
|
||||
"wait_url": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
@@ -2371,6 +2631,50 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"internal_handlers.CheckCmdIn": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"command"
|
||||
],
|
||||
"properties": {
|
||||
"command": {
|
||||
"type": "string",
|
||||
"example": "bash"
|
||||
}
|
||||
}
|
||||
},
|
||||
"internal_handlers.CheckCmdOut": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"exists": {
|
||||
"type": "boolean"
|
||||
}
|
||||
}
|
||||
},
|
||||
"internal_handlers.CreateFolderRequest": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"path"
|
||||
],
|
||||
"properties": {
|
||||
"path": {
|
||||
"type": "string",
|
||||
"example": "deploy/nginx"
|
||||
}
|
||||
}
|
||||
},
|
||||
"internal_handlers.DeleteFolderRequest": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"path"
|
||||
],
|
||||
"properties": {
|
||||
"path": {
|
||||
"type": "string",
|
||||
"example": "deploy/nginx"
|
||||
}
|
||||
}
|
||||
},
|
||||
"internal_handlers.InsertLogRequest": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
@@ -2411,6 +2715,52 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"internal_handlers.JobMetricsOut": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"failed": {
|
||||
"type": "integer"
|
||||
},
|
||||
"pending": {
|
||||
"type": "integer"
|
||||
},
|
||||
"period": {
|
||||
"type": "string"
|
||||
},
|
||||
"success": {
|
||||
"type": "integer"
|
||||
},
|
||||
"total": {
|
||||
"type": "integer"
|
||||
}
|
||||
}
|
||||
},
|
||||
"internal_handlers.JobResult": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"command": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"id": {
|
||||
"type": "integer"
|
||||
},
|
||||
"status": {
|
||||
"type": "integer"
|
||||
},
|
||||
"stderr": {
|
||||
"type": "string"
|
||||
},
|
||||
"stdin": {
|
||||
"type": "string"
|
||||
},
|
||||
"stdout": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"internal_handlers.RegisterRequest": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
@@ -2498,6 +2848,17 @@
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"internal_handlers.WaitJobIn": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"agent_id"
|
||||
],
|
||||
"properties": {
|
||||
"agent_id": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"securityDefinitions": {
|
||||
|
||||
+246
-10
@@ -348,13 +348,7 @@ definitions:
|
||||
type: array
|
||||
id:
|
||||
type: integer
|
||||
status:
|
||||
type: integer
|
||||
stderr:
|
||||
type: string
|
||||
stdin:
|
||||
type: string
|
||||
stdout:
|
||||
wait_url:
|
||||
type: string
|
||||
type: object
|
||||
internal_handlers.AgentInfo:
|
||||
@@ -380,6 +374,35 @@ definitions:
|
||||
example: agent-001
|
||||
type: string
|
||||
type: object
|
||||
internal_handlers.CheckCmdIn:
|
||||
properties:
|
||||
command:
|
||||
example: bash
|
||||
type: string
|
||||
required:
|
||||
- command
|
||||
type: object
|
||||
internal_handlers.CheckCmdOut:
|
||||
properties:
|
||||
exists:
|
||||
type: boolean
|
||||
type: object
|
||||
internal_handlers.CreateFolderRequest:
|
||||
properties:
|
||||
path:
|
||||
example: deploy/nginx
|
||||
type: string
|
||||
required:
|
||||
- path
|
||||
type: object
|
||||
internal_handlers.DeleteFolderRequest:
|
||||
properties:
|
||||
path:
|
||||
example: deploy/nginx
|
||||
type: string
|
||||
required:
|
||||
- path
|
||||
type: object
|
||||
internal_handlers.InsertLogRequest:
|
||||
properties:
|
||||
agent:
|
||||
@@ -407,6 +430,36 @@ definitions:
|
||||
required:
|
||||
- logs
|
||||
type: object
|
||||
internal_handlers.JobMetricsOut:
|
||||
properties:
|
||||
failed:
|
||||
type: integer
|
||||
pending:
|
||||
type: integer
|
||||
period:
|
||||
type: string
|
||||
success:
|
||||
type: integer
|
||||
total:
|
||||
type: integer
|
||||
type: object
|
||||
internal_handlers.JobResult:
|
||||
properties:
|
||||
command:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
id:
|
||||
type: integer
|
||||
status:
|
||||
type: integer
|
||||
stderr:
|
||||
type: string
|
||||
stdin:
|
||||
type: string
|
||||
stdout:
|
||||
type: string
|
||||
type: object
|
||||
internal_handlers.RegisterRequest:
|
||||
properties:
|
||||
csr:
|
||||
@@ -465,6 +518,13 @@ definitions:
|
||||
required:
|
||||
- token
|
||||
type: object
|
||||
internal_handlers.WaitJobIn:
|
||||
properties:
|
||||
agent_id:
|
||||
type: string
|
||||
required:
|
||||
- agent_id
|
||||
type: object
|
||||
info:
|
||||
contact: {}
|
||||
paths:
|
||||
@@ -1079,8 +1139,8 @@ paths:
|
||||
post:
|
||||
consumes:
|
||||
- application/json
|
||||
description: Sends a command to the specified agent, waits for execution, and
|
||||
returns the result
|
||||
description: Sends a command to the specified agent and returns a URL to wait
|
||||
for the result
|
||||
parameters:
|
||||
- description: Job request
|
||||
in: body
|
||||
@@ -1095,9 +1155,101 @@ paths:
|
||||
description: Created
|
||||
schema:
|
||||
$ref: '#/definitions/internal_handlers.AddJobOut'
|
||||
summary: Submit a job to an agent
|
||||
tags:
|
||||
- jobs
|
||||
/jobs/{id}/wait:
|
||||
post:
|
||||
consumes:
|
||||
- application/json
|
||||
description: Long-polls for a job result. Returns immediately if the job is
|
||||
already finished.
|
||||
parameters:
|
||||
- description: Job ID
|
||||
in: path
|
||||
name: id
|
||||
required: true
|
||||
type: integer
|
||||
- description: Agent reference
|
||||
in: body
|
||||
name: body
|
||||
required: true
|
||||
schema:
|
||||
$ref: '#/definitions/internal_handlers.WaitJobIn'
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
$ref: '#/definitions/internal_handlers.JobResult'
|
||||
"400":
|
||||
description: Bad Request
|
||||
schema:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
"404":
|
||||
description: Not Found
|
||||
schema:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
summary: Wait for job result
|
||||
tags:
|
||||
- jobs
|
||||
/jobs/check_cmd:
|
||||
post:
|
||||
consumes:
|
||||
- application/json
|
||||
description: Validates that a command binary exists on the system
|
||||
parameters:
|
||||
- description: Command to check
|
||||
in: body
|
||||
name: body
|
||||
required: true
|
||||
schema:
|
||||
$ref: '#/definitions/internal_handlers.CheckCmdIn'
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
$ref: '#/definitions/internal_handlers.CheckCmdOut'
|
||||
"404":
|
||||
description: Not Found
|
||||
schema:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
summary: Check command path
|
||||
tags:
|
||||
- jobs
|
||||
/jobs/metrics:
|
||||
get:
|
||||
description: Returns total, successful, failed, and pending job counts over
|
||||
the given period
|
||||
parameters:
|
||||
- default: 24h
|
||||
description: Time period (e.g. 1h, 24h, 7d)
|
||||
in: query
|
||||
name: period
|
||||
type: string
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
$ref: '#/definitions/internal_handlers.JobMetricsOut'
|
||||
"400":
|
||||
description: Bad Request
|
||||
schema:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
security:
|
||||
- Bearer: []
|
||||
summary: Create and run a job on an agent
|
||||
summary: Get job metrics
|
||||
tags:
|
||||
- jobs
|
||||
/logs:
|
||||
@@ -1468,6 +1620,90 @@ paths:
|
||||
summary: Run script by ID
|
||||
tags:
|
||||
- scripts
|
||||
/scripts/by-path:
|
||||
get:
|
||||
description: Returns a script by its full path (e.g. 'deploy/nginx/restart.sh')
|
||||
parameters:
|
||||
- description: Script path
|
||||
in: query
|
||||
name: path
|
||||
required: true
|
||||
type: string
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
$ref: '#/definitions/gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.Script'
|
||||
"400":
|
||||
description: Bad Request
|
||||
schema:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
"404":
|
||||
description: Not Found
|
||||
schema:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
security:
|
||||
- Bearer: []
|
||||
summary: Get script by path
|
||||
tags:
|
||||
- scripts
|
||||
/scripts/folder:
|
||||
delete:
|
||||
consumes:
|
||||
- application/json
|
||||
description: Deletes all scripts that start with the given folder path
|
||||
parameters:
|
||||
- description: Folder path
|
||||
in: body
|
||||
name: body
|
||||
required: true
|
||||
schema:
|
||||
$ref: '#/definitions/internal_handlers.DeleteFolderRequest'
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: Folder deleted with count of deleted scripts
|
||||
schema:
|
||||
additionalProperties: true
|
||||
type: object
|
||||
security:
|
||||
- Bearer: []
|
||||
summary: Delete folder
|
||||
tags:
|
||||
- scripts
|
||||
post:
|
||||
consumes:
|
||||
- application/json
|
||||
description: Creates a virtual folder by creating a placeholder script with
|
||||
the folder path
|
||||
parameters:
|
||||
- description: Folder path
|
||||
in: body
|
||||
name: body
|
||||
required: true
|
||||
schema:
|
||||
$ref: '#/definitions/internal_handlers.CreateFolderRequest'
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"201":
|
||||
description: Folder created
|
||||
schema:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
security:
|
||||
- Bearer: []
|
||||
summary: Create folder
|
||||
tags:
|
||||
- scripts
|
||||
/scripts/interpreters:
|
||||
get:
|
||||
description: Returns all script interpreters available in the system
|
||||
|
||||
Reference in New Issue
Block a user