fix: user reg
ci-agent / build (push) Failing after 3m0s

This commit is contained in:
d3m0k1d
2026-04-04 18:49:05 +03:00
parent 398c688fed
commit a71fde67e4
9 changed files with 1647 additions and 362 deletions
+581 -125
View File
@@ -36,7 +36,7 @@ const docTemplate = `{
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/handlers.AgentInfo"
"$ref": "#/definitions/internal_handlers.AgentInfo"
}
}
}
@@ -68,7 +68,7 @@ const docTemplate = `{
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/repository.DeployAgentsRequest"
"$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.DeployAgentsRequest"
}
}
],
@@ -76,7 +76,7 @@ const docTemplate = `{
"200": {
"description": "Deployment results with tokens for each server",
"schema": {
"$ref": "#/definitions/repository.DeployResponse"
"$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.DeployResponse"
}
},
"400": {
@@ -119,7 +119,7 @@ const docTemplate = `{
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/handlers.RegisterRequest"
"$ref": "#/definitions/internal_handlers.RegisterRequest"
}
}
],
@@ -127,7 +127,7 @@ const docTemplate = `{
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/handlers.RegisterResponse"
"$ref": "#/definitions/internal_handlers.RegisterResponse"
}
}
}
@@ -157,7 +157,7 @@ const docTemplate = `{
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/repository.RegistrationRequest"
"$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.RegistrationRequest"
}
}
],
@@ -191,7 +191,7 @@ const docTemplate = `{
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/repository.LoginRequest"
"$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.LoginRequest"
}
}
],
@@ -199,7 +199,7 @@ const docTemplate = `{
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/repository.LoginResponse"
"$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.LoginResponse"
}
},
"400": {
@@ -232,6 +232,67 @@ const docTemplate = `{
}
}
},
"/auth/register": {
"post": {
"description": "Registers a new user with login, password, name, last name. All permissions are set to false.",
"consumes": [
"application/json"
],
"tags": [
"auth"
],
"summary": "Register user",
"parameters": [
{
"description": "Registration data",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.UserRegister"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"409": {
"description": "Conflict",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/auth/token": {
"post": {
"description": "Creates a new user with permissions",
@@ -249,7 +310,7 @@ const docTemplate = `{
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/repository.TokenCreate"
"$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.TokenCreate"
}
}
],
@@ -345,7 +406,7 @@ const docTemplate = `{
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/repository.Tokens"
"$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.Tokens"
}
}
},
@@ -431,7 +492,7 @@ const docTemplate = `{
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/repository.Tokens"
"$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.Tokens"
}
},
"400": {
@@ -486,7 +547,7 @@ const docTemplate = `{
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/repository.TokenUpdate"
"$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.TokenUpdate"
}
}
],
@@ -666,7 +727,7 @@ const docTemplate = `{
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/repository.TokenPasswordReset"
"$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.TokenPasswordReset"
}
}
],
@@ -734,7 +795,7 @@ const docTemplate = `{
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/repository.TokenUpdatePermissions"
"$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.TokenUpdatePermissions"
}
}
],
@@ -794,7 +855,7 @@ const docTemplate = `{
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/repository.Tokens"
"$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.Tokens"
}
}
},
@@ -824,7 +885,7 @@ const docTemplate = `{
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/repository.Tokens"
"$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.Tokens"
}
},
"401": {
@@ -839,6 +900,40 @@ const docTemplate = `{
}
}
},
"/jobs": {
"post": {
"description": "Sends a command to the specified agent, waits for execution, and returns the result",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"jobs"
],
"summary": "Create and run a job on an agent",
"parameters": [
{
"description": "Job request",
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_handlers.AddJobIn"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/internal_handlers.AddJobOut"
}
}
}
}
},
"/logs": {
"get": {
"security": [
@@ -906,7 +1001,7 @@ const docTemplate = `{
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/storage.LogEntry"
"$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_storage.LogEntry"
}
}
}
@@ -936,7 +1031,7 @@ const docTemplate = `{
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/handlers.InsertLogRequest"
"$ref": "#/definitions/internal_handlers.InsertLogRequest"
}
}
],
@@ -1006,7 +1101,7 @@ const docTemplate = `{
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/handlers.InsertLogsRequest"
"$ref": "#/definitions/internal_handlers.InsertLogsRequest"
}
}
],
@@ -1106,7 +1201,7 @@ const docTemplate = `{
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/storage.LogEntry"
"$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_storage.LogEntry"
}
}
}
@@ -1140,96 +1235,188 @@ const docTemplate = `{
}
}
}
},
"/scripts/interpreters": {
"get": {
"description": "Returns all script interpreters available in the system",
"produces": [
"application/json"
],
"tags": [
"scripts"
],
"summary": "List interpreters",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.ScriptInterpreter"
}
}
}
}
},
"post": {
"description": "Registers a new script interpreter with name, label, and argv",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"scripts"
],
"summary": "Create interpreter",
"parameters": [
{
"description": "Interpreter definition",
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.ScriptInterpreterCreate"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.ScriptInterpreter"
}
}
}
}
},
"/scripts/interpreters/:id": {
"get": {
"description": "Returns a script interpreter by ID",
"produces": [
"application/json"
],
"tags": [
"scripts"
],
"summary": "Get interpreter",
"parameters": [
{
"type": "integer",
"description": "Interpreter ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.ScriptInterpreter"
}
}
}
},
"put": {
"description": "Updates fields of a script interpreter",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"scripts"
],
"summary": "Update interpreter",
"parameters": [
{
"type": "integer",
"description": "Interpreter ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Interpreter fields",
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.ScriptInterpreterUpdate"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.ScriptInterpreter"
}
}
}
},
"delete": {
"description": "Removes a script interpreter by ID",
"tags": [
"scripts"
],
"summary": "Delete interpreter",
"parameters": [
{
"type": "integer",
"description": "Interpreter ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"204": {
"description": "No Content"
}
}
}
},
"/scripts/run": {
"post": {
"description": "Resolves interpreter argv[] and sends the full command to the agent",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"scripts"
],
"summary": "Run a script on an agent",
"parameters": [
{
"description": "Script request",
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_handlers.RunScriptIn"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/internal_handlers.RunScriptOut"
}
}
}
}
}
},
"definitions": {
"handlers.AgentInfo": {
"type": "object",
"properties": {
"connected_at": {
"type": "string"
},
"label": {
"type": "string"
},
"services": {
"type": "array",
"items": {
"type": "string"
}
},
"token": {
"type": "string"
}
}
},
"handlers.InsertLogRequest": {
"type": "object",
"required": [
"agent",
"level",
"message",
"service"
],
"properties": {
"agent": {
"type": "string"
},
"level": {
"type": "string"
},
"message": {
"type": "string"
},
"service": {
"type": "string"
},
"timestamp": {
"type": "string"
}
}
},
"handlers.InsertLogsRequest": {
"type": "object",
"required": [
"logs"
],
"properties": {
"logs": {
"type": "array",
"items": {
"$ref": "#/definitions/handlers.InsertLogRequest"
}
}
}
},
"handlers.RegisterRequest": {
"type": "object",
"required": [
"csr",
"token"
],
"properties": {
"csr": {
"type": "string"
},
"token": {
"type": "string"
}
}
},
"handlers.RegisterResponse": {
"type": "object",
"properties": {
"ca_cert": {
"type": "string"
},
"client_cert": {
"type": "string"
}
}
},
"repository.AgentDeployConfig": {
"gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.AgentDeployConfig": {
"description": "Configuration for deploying HellreigN agent to a single server",
"type": "object",
"required": [
@@ -1247,7 +1434,7 @@ const docTemplate = `{
"authMethod": {
"allOf": [
{
"$ref": "#/definitions/repository.AuthMethod"
"$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.AuthMethod"
}
],
"example": "key"
@@ -1255,7 +1442,7 @@ const docTemplate = `{
"deployType": {
"allOf": [
{
"$ref": "#/definitions/repository.DeployType"
"$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.DeployType"
}
],
"example": "docker"
@@ -1282,7 +1469,7 @@ const docTemplate = `{
}
}
},
"repository.AuthMethod": {
"gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.AuthMethod": {
"description": "SSH authentication method: key or password",
"type": "string",
"enum": [
@@ -1294,7 +1481,7 @@ const docTemplate = `{
"AuthMethodPassword"
]
},
"repository.DeployAgentsRequest": {
"gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.DeployAgentsRequest": {
"description": "Request to deploy HellreigN agents to multiple servers",
"type": "object",
"required": [
@@ -1305,12 +1492,12 @@ const docTemplate = `{
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/definitions/repository.AgentDeployConfig"
"$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.AgentDeployConfig"
}
}
}
},
"repository.DeployResponse": {
"gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.DeployResponse": {
"description": "Response containing deployment results and registration tokens",
"type": "object",
"properties": {
@@ -1321,12 +1508,12 @@ const docTemplate = `{
"results": {
"type": "array",
"items": {
"$ref": "#/definitions/repository.DeployResult"
"$ref": "#/definitions/gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.DeployResult"
}
}
}
},
"repository.DeployResult": {
"gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.DeployResult": {
"description": "Result of deploying to a single server",
"type": "object",
"properties": {
@@ -1352,7 +1539,7 @@ const docTemplate = `{
}
}
},
"repository.DeployType": {
"gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.DeployType": {
"description": "Type of deployment: docker or binary",
"type": "string",
"enum": [
@@ -1364,7 +1551,7 @@ const docTemplate = `{
"DeployTypeBinary"
]
},
"repository.LoginRequest": {
"gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.LoginRequest": {
"type": "object",
"required": [
"login",
@@ -1379,7 +1566,7 @@ const docTemplate = `{
}
}
},
"repository.LoginResponse": {
"gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.LoginResponse": {
"type": "object",
"properties": {
"is_active": {
@@ -1408,7 +1595,7 @@ const docTemplate = `{
}
}
},
"repository.RegistrationRequest": {
"gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.RegistrationRequest": {
"type": "object",
"required": [
"label"
@@ -1419,7 +1606,72 @@ const docTemplate = `{
}
}
},
"repository.TokenCreate": {
"gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.ScriptInterpreter": {
"type": "object",
"properties": {
"argv": {
"type": "array",
"items": {
"type": "string"
}
},
"created_at": {
"type": "string"
},
"id": {
"type": "integer"
},
"label": {
"type": "string"
},
"name": {
"type": "string"
},
"updated_at": {
"type": "string"
}
}
},
"gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.ScriptInterpreterCreate": {
"type": "object",
"required": [
"argv",
"label",
"name"
],
"properties": {
"argv": {
"type": "array",
"items": {
"type": "string"
}
},
"label": {
"type": "string"
},
"name": {
"type": "string"
}
}
},
"gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.ScriptInterpreterUpdate": {
"type": "object",
"properties": {
"argv": {
"type": "array",
"items": {
"type": "string"
}
},
"label": {
"type": "string"
},
"name": {
"type": "string"
}
}
},
"gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.TokenCreate": {
"type": "object",
"required": [
"last_name",
@@ -1454,7 +1706,7 @@ const docTemplate = `{
}
}
},
"repository.TokenPasswordReset": {
"gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.TokenPasswordReset": {
"type": "object",
"required": [
"new_password"
@@ -1465,7 +1717,7 @@ const docTemplate = `{
}
}
},
"repository.TokenUpdate": {
"gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.TokenUpdate": {
"type": "object",
"properties": {
"last_name": {
@@ -1476,7 +1728,7 @@ const docTemplate = `{
}
}
},
"repository.TokenUpdatePermissions": {
"gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.TokenUpdatePermissions": {
"type": "object",
"properties": {
"is_active": {
@@ -1493,7 +1745,7 @@ const docTemplate = `{
}
}
},
"repository.Tokens": {
"gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.Tokens": {
"type": "object",
"properties": {
"id": {
@@ -1525,7 +1777,30 @@ const docTemplate = `{
}
}
},
"storage.LogEntry": {
"gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_repository.UserRegister": {
"type": "object",
"required": [
"last_name",
"login",
"name",
"password"
],
"properties": {
"last_name": {
"type": "string"
},
"login": {
"type": "string"
},
"name": {
"type": "string"
},
"password": {
"type": "string"
}
}
},
"gitea_d3m0k1d_ru_d3m0k1d_HellreigN_backend_internal_storage.LogEntry": {
"type": "object",
"properties": {
"agent": {
@@ -1544,6 +1819,187 @@ const docTemplate = `{
"type": "string"
}
}
},
"internal_handlers.AddJobIn": {
"type": "object",
"required": [
"agent_id",
"command"
],
"properties": {
"agent_id": {
"type": "string"
},
"command": {
"type": "string"
},
"interpreter_id": {
"type": "integer"
},
"stdin": {
"type": "string"
}
}
},
"internal_handlers.AddJobOut": {
"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.AgentInfo": {
"type": "object",
"properties": {
"connected_at": {
"type": "string"
},
"label": {
"type": "string"
},
"services": {
"type": "array",
"items": {
"type": "string"
}
},
"token": {
"type": "string"
}
}
},
"internal_handlers.InsertLogRequest": {
"type": "object",
"required": [
"agent",
"level",
"message",
"service"
],
"properties": {
"agent": {
"type": "string"
},
"level": {
"type": "string"
},
"message": {
"type": "string"
},
"service": {
"type": "string"
},
"timestamp": {
"type": "string"
}
}
},
"internal_handlers.InsertLogsRequest": {
"type": "object",
"required": [
"logs"
],
"properties": {
"logs": {
"type": "array",
"items": {
"$ref": "#/definitions/internal_handlers.InsertLogRequest"
}
}
}
},
"internal_handlers.RegisterRequest": {
"type": "object",
"required": [
"csr",
"token"
],
"properties": {
"csr": {
"type": "string"
},
"token": {
"type": "string"
}
}
},
"internal_handlers.RegisterResponse": {
"type": "object",
"properties": {
"ca_cert": {
"type": "string"
},
"client_cert": {
"type": "string"
}
}
},
"internal_handlers.RunScriptIn": {
"type": "object",
"required": [
"agent_id",
"interpreter_id",
"script_text"
],
"properties": {
"agent_id": {
"type": "string"
},
"interpreter_id": {
"type": "integer"
},
"script_text": {
"type": "string"
},
"stdin": {
"type": "string"
}
}
},
"internal_handlers.RunScriptOut": {
"type": "object",
"properties": {
"command": {
"type": "array",
"items": {
"type": "string"
}
},
"id": {
"type": "integer"
},
"status": {
"type": "integer"
},
"stderr": {
"type": "string"
},
"stdin": {
"type": "string"
},
"stdout": {
"type": "string"
}
}
}
},
"securityDefinitions": {