Files
NxMesh-old/frontend/openapi.json
GW_MC 31f1d8309d feat: add layout components and pages for NxMesh Admin
- Implemented Header, Sidebar, and Layout components for consistent UI structure.
- Created pages for Agents, Certificates, Configurations, Dashboard, and Settings.
- Integrated React Query for data fetching in Agents, Certificates, Configurations, and Dashboard pages.
- Added Tailwind CSS for styling and responsive design.
- Established a utility function for conditional class names.
- Set up Vite configuration for React project with TypeScript support.
- Included global styles and Tailwind CSS configuration.
2026-03-03 04:41:31 +00:00

1224 lines
29 KiB
JSON

{
"openapi": "3.0.3",
"info": {
"title": "nxmesh-master",
"description": "",
"contact": {
"name": "NxMesh Team"
},
"license": {
"name": "GNU General Public License v3.0"
},
"version": "0.1.0"
},
"paths": {
"/api/v1/agents/{id}": {
"get": {
"tags": [
"Agents"
],
"summary": "Get agent by ID",
"operationId": "get",
"parameters": [
{
"name": "id",
"in": "path",
"description": "Agent ID",
"required": true,
"schema": {
"$ref": "#/components/schemas/Uuid"
}
}
],
"responses": {
"200": {
"description": "Agent found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AgentResponse"
}
}
}
},
"404": {
"description": "Agent not found"
}
}
},
"delete": {
"tags": [
"Agents"
],
"summary": "Delete agent",
"operationId": "delete",
"parameters": [
{
"name": "id",
"in": "path",
"description": "Agent ID",
"required": true,
"schema": {
"$ref": "#/components/schemas/Uuid"
}
}
],
"responses": {
"204": {
"description": "Agent deleted"
}
}
}
},
"/api/v1/agents/{id}/reload": {
"post": {
"tags": [
"Agents"
],
"summary": "Reload agent nginx",
"operationId": "reload",
"parameters": [
{
"name": "id",
"in": "path",
"description": "Agent ID",
"required": true,
"schema": {
"$ref": "#/components/schemas/Uuid"
}
}
],
"responses": {
"200": {
"description": "Nginx reloaded successfully"
}
}
}
},
"/api/v1/certificates/{id}": {
"get": {
"tags": [
"Certificates"
],
"summary": "Get certificate by ID",
"operationId": "get",
"parameters": [
{
"name": "id",
"in": "path",
"description": "Certificate ID",
"required": true,
"schema": {
"$ref": "#/components/schemas/Uuid"
}
}
],
"responses": {
"200": {
"description": "Certificate found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CertificateResponse"
}
}
}
},
"404": {
"description": "Certificate not found"
}
}
},
"delete": {
"tags": [
"Certificates"
],
"summary": "Delete certificate",
"operationId": "delete",
"parameters": [
{
"name": "id",
"in": "path",
"description": "Certificate ID",
"required": true,
"schema": {
"$ref": "#/components/schemas/Uuid"
}
}
],
"responses": {
"204": {
"description": "Certificate deleted"
}
}
}
},
"/api/v1/organizations": {
"get": {
"tags": [
"Organizations"
],
"summary": "List organizations",
"operationId": "list",
"responses": {
"200": {
"description": "List of organizations",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/OrganizationResponse"
}
}
}
}
}
}
},
"post": {
"tags": [
"Organizations"
],
"summary": "Create organization",
"operationId": "create",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateRequest"
}
}
},
"required": true
},
"responses": {
"201": {
"description": "Organization created",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/OrganizationResponse"
}
}
}
},
"400": {
"description": "Invalid request"
}
}
}
},
"/api/v1/organizations/{id}": {
"get": {
"tags": [
"Organizations"
],
"summary": "Get organization by ID",
"operationId": "get",
"parameters": [
{
"name": "id",
"in": "path",
"description": "Organization ID",
"required": true,
"schema": {
"$ref": "#/components/schemas/Uuid"
}
}
],
"responses": {
"200": {
"description": "Organization found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/OrganizationResponse"
}
}
}
},
"404": {
"description": "Organization not found"
}
}
},
"delete": {
"tags": [
"Organizations"
],
"summary": "Delete organization",
"operationId": "delete",
"parameters": [
{
"name": "id",
"in": "path",
"description": "Organization ID",
"required": true,
"schema": {
"$ref": "#/components/schemas/Uuid"
}
}
],
"responses": {
"204": {
"description": "Organization deleted"
},
"404": {
"description": "Organization not found"
}
}
},
"patch": {
"tags": [
"Organizations"
],
"summary": "Update organization",
"operationId": "update",
"parameters": [
{
"name": "id",
"in": "path",
"description": "Organization ID",
"required": true,
"schema": {
"$ref": "#/components/schemas/Uuid"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Organization updated",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/OrganizationResponse"
}
}
}
},
"404": {
"description": "Organization not found"
}
}
}
},
"/api/v1/organizations/{id}/workspaces": {
"get": {
"tags": [
"Workspaces"
],
"summary": "List workspaces",
"operationId": "list",
"parameters": [
{
"name": "id",
"in": "path",
"description": "Organization ID",
"required": true,
"schema": {
"$ref": "#/components/schemas/Uuid"
}
}
],
"responses": {
"200": {
"description": "List of workspaces",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/WorkspaceResponse"
}
}
}
}
}
}
},
"post": {
"tags": [
"Workspaces"
],
"summary": "Create workspace",
"operationId": "create",
"parameters": [
{
"name": "id",
"in": "path",
"description": "Organization ID",
"required": true,
"schema": {
"$ref": "#/components/schemas/Uuid"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateRequest"
}
}
},
"required": true
},
"responses": {
"201": {
"description": "Workspace created",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WorkspaceResponse"
}
}
}
}
}
}
},
"/api/v1/upstreams/{id}": {
"get": {
"tags": [
"Upstreams"
],
"summary": "Get upstream by ID",
"operationId": "get",
"parameters": [
{
"name": "id",
"in": "path",
"description": "Upstream ID",
"required": true,
"schema": {
"$ref": "#/components/schemas/Uuid"
}
}
],
"responses": {
"200": {
"description": "Upstream found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpstreamResponse"
}
}
}
},
"404": {
"description": "Upstream not found"
}
}
},
"delete": {
"tags": [
"Upstreams"
],
"summary": "Delete upstream",
"operationId": "delete",
"parameters": [
{
"name": "id",
"in": "path",
"description": "Upstream ID",
"required": true,
"schema": {
"$ref": "#/components/schemas/Uuid"
}
}
],
"responses": {
"204": {
"description": "Upstream deleted"
}
}
},
"patch": {
"tags": [
"Upstreams"
],
"summary": "Update upstream",
"operationId": "update",
"parameters": [
{
"name": "id",
"in": "path",
"description": "Upstream ID",
"required": true,
"schema": {
"$ref": "#/components/schemas/Uuid"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Upstream updated",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpstreamResponse"
}
}
}
}
}
}
},
"/api/v1/virtual-hosts/{id}": {
"get": {
"tags": [
"Virtual Hosts"
],
"summary": "Get virtual host by ID",
"operationId": "get",
"parameters": [
{
"name": "id",
"in": "path",
"description": "Virtual Host ID",
"required": true,
"schema": {
"$ref": "#/components/schemas/Uuid"
}
}
],
"responses": {
"200": {
"description": "Virtual host found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VirtualHostResponse"
}
}
}
},
"404": {
"description": "Virtual host not found"
}
}
},
"delete": {
"tags": [
"Virtual Hosts"
],
"summary": "Delete virtual host",
"operationId": "delete",
"parameters": [
{
"name": "id",
"in": "path",
"description": "Virtual Host ID",
"required": true,
"schema": {
"$ref": "#/components/schemas/Uuid"
}
}
],
"responses": {
"204": {
"description": "Virtual host deleted"
}
}
},
"patch": {
"tags": [
"Virtual Hosts"
],
"summary": "Update virtual host",
"operationId": "update",
"parameters": [
{
"name": "id",
"in": "path",
"description": "Virtual Host ID",
"required": true,
"schema": {
"$ref": "#/components/schemas/Uuid"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Virtual host updated",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VirtualHostResponse"
}
}
}
}
}
}
},
"/api/v1/workspaces/{id}": {
"get": {
"tags": [
"Workspaces"
],
"summary": "Get workspace by ID",
"operationId": "get",
"parameters": [
{
"name": "id",
"in": "path",
"description": "Workspace ID",
"required": true,
"schema": {
"$ref": "#/components/schemas/Uuid"
}
}
],
"responses": {
"200": {
"description": "Workspace found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WorkspaceResponse"
}
}
}
},
"404": {
"description": "Workspace not found"
}
}
},
"delete": {
"tags": [
"Workspaces"
],
"summary": "Delete workspace",
"operationId": "delete",
"parameters": [
{
"name": "id",
"in": "path",
"description": "Workspace ID",
"required": true,
"schema": {
"$ref": "#/components/schemas/Uuid"
}
}
],
"responses": {
"204": {
"description": "Workspace deleted"
}
}
},
"patch": {
"tags": [
"Workspaces"
],
"summary": "Update workspace",
"operationId": "update",
"parameters": [
{
"name": "id",
"in": "path",
"description": "Workspace ID",
"required": true,
"schema": {
"$ref": "#/components/schemas/Uuid"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Workspace updated",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WorkspaceResponse"
}
}
}
}
}
}
},
"/api/v1/workspaces/{id}/agents": {
"get": {
"tags": [
"Agents"
],
"summary": "List agents",
"operationId": "list",
"parameters": [
{
"name": "id",
"in": "path",
"description": "Workspace ID",
"required": true,
"schema": {
"$ref": "#/components/schemas/Uuid"
}
}
],
"responses": {
"200": {
"description": "List of agents",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AgentResponse"
}
}
}
}
}
}
}
},
"/api/v1/workspaces/{id}/agents/tokens": {
"post": {
"tags": [
"Agents"
],
"summary": "Create agent registration token",
"operationId": "create_token",
"parameters": [
{
"name": "id",
"in": "path",
"description": "Workspace ID",
"required": true,
"schema": {
"$ref": "#/components/schemas/Uuid"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TokenRequest"
}
}
},
"required": true
},
"responses": {
"201": {
"description": "Token created",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TokenResponse"
}
}
}
}
}
}
},
"/api/v1/workspaces/{id}/certificates": {
"get": {
"tags": [
"Certificates"
],
"summary": "List certificates",
"operationId": "list",
"parameters": [
{
"name": "id",
"in": "path",
"description": "Workspace ID",
"required": true,
"schema": {
"$ref": "#/components/schemas/Uuid"
}
}
],
"responses": {
"200": {
"description": "List of certificates",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CertificateResponse"
}
}
}
}
}
}
},
"post": {
"tags": [
"Certificates"
],
"summary": "Create certificate",
"operationId": "create",
"parameters": [
{
"name": "id",
"in": "path",
"description": "Workspace ID",
"required": true,
"schema": {
"$ref": "#/components/schemas/Uuid"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateRequest"
}
}
},
"required": true
},
"responses": {
"201": {
"description": "Certificate requested",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CertificateResponse"
}
}
}
}
}
}
},
"/api/v1/workspaces/{id}/upstreams": {
"get": {
"tags": [
"Upstreams"
],
"summary": "List upstreams",
"operationId": "list",
"parameters": [
{
"name": "id",
"in": "path",
"description": "Workspace ID",
"required": true,
"schema": {
"$ref": "#/components/schemas/Uuid"
}
}
],
"responses": {
"200": {
"description": "List of upstreams",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/UpstreamResponse"
}
}
}
}
}
}
},
"post": {
"tags": [
"Upstreams"
],
"summary": "Create upstream",
"operationId": "create",
"parameters": [
{
"name": "id",
"in": "path",
"description": "Workspace ID",
"required": true,
"schema": {
"$ref": "#/components/schemas/Uuid"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateRequest"
}
}
},
"required": true
},
"responses": {
"201": {
"description": "Upstream created",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpstreamResponse"
}
}
}
}
}
}
},
"/api/v1/workspaces/{id}/virtual-hosts": {
"get": {
"tags": [
"Virtual Hosts"
],
"summary": "List virtual hosts",
"operationId": "list",
"parameters": [
{
"name": "id",
"in": "path",
"description": "Workspace ID",
"required": true,
"schema": {
"$ref": "#/components/schemas/Uuid"
}
}
],
"responses": {
"200": {
"description": "List of virtual hosts",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/VirtualHostResponse"
}
}
}
}
}
}
},
"post": {
"tags": [
"Virtual Hosts"
],
"summary": "Create virtual host",
"operationId": "create",
"parameters": [
{
"name": "id",
"in": "path",
"description": "Workspace ID",
"required": true,
"schema": {
"$ref": "#/components/schemas/Uuid"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateRequest"
}
}
},
"required": true
},
"responses": {
"201": {
"description": "Virtual host created",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VirtualHostResponse"
}
}
}
}
}
}
},
"/health": {
"get": {
"tags": [
"routes"
],
"summary": "Health check endpoint",
"operationId": "health_check",
"responses": {
"200": {
"description": "Server is healthy",
"content": {
"text/plain": {
"schema": {
"type": "string"
}
}
}
}
}
}
}
},
"components": {
"schemas": {
"AgentResponse": {
"type": "object",
"description": "Agent response",
"required": [
"id",
"workspace_id",
"name",
"hostname",
"state"
],
"properties": {
"hostname": {
"type": "string"
},
"id": {
"$ref": "#/components/schemas/Uuid"
},
"name": {
"type": "string"
},
"state": {
"type": "string"
},
"workspace_id": {
"$ref": "#/components/schemas/Uuid"
}
}
},
"CertificateResponse": {
"type": "object",
"description": "Certificate response",
"required": [
"id",
"domain",
"status"
],
"properties": {
"domain": {
"type": "string"
},
"id": {
"$ref": "#/components/schemas/Uuid"
},
"status": {
"type": "string"
}
}
},
"CreateRequest": {
"type": "object",
"description": "Create certificate request",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string"
}
}
},
"OrganizationResponse": {
"type": "object",
"description": "Organization response",
"required": [
"id",
"name",
"slug"
],
"properties": {
"id": {
"$ref": "#/components/schemas/Uuid"
},
"name": {
"type": "string"
},
"slug": {
"type": "string"
}
}
},
"TokenRequest": {
"type": "object",
"description": "Create agent token request",
"required": [
"name"
],
"properties": {
"name": {
"type": "string"
}
}
},
"TokenResponse": {
"type": "object",
"description": "Create agent token response",
"required": [
"token",
"agent_id"
],
"properties": {
"agent_id": {
"$ref": "#/components/schemas/Uuid"
},
"token": {
"type": "string"
}
}
},
"UpstreamResponse": {
"type": "object",
"description": "Upstream response",
"required": [
"id",
"name",
"algorithm"
],
"properties": {
"algorithm": {
"type": "string"
},
"id": {
"$ref": "#/components/schemas/Uuid"
},
"name": {
"type": "string"
}
}
},
"Uuid": {
"type": "string",
"format": "uuid",
"description": "UUID string",
"example": "550e8400-e29b-41d4-a716-446655440000"
},
"VirtualHostResponse": {
"type": "object",
"description": "Virtual Host response",
"required": [
"id",
"name",
"server_name",
"listen_port"
],
"properties": {
"id": {
"$ref": "#/components/schemas/Uuid"
},
"listen_port": {
"type": "integer",
"format": "int32",
"minimum": 0
},
"name": {
"type": "string"
},
"server_name": {
"type": "string"
}
}
},
"WorkspaceResponse": {
"type": "object",
"description": "Workspace response",
"required": [
"id",
"organization_id",
"name",
"slug"
],
"properties": {
"id": {
"$ref": "#/components/schemas/Uuid"
},
"name": {
"type": "string"
},
"organization_id": {
"$ref": "#/components/schemas/Uuid"
},
"slug": {
"type": "string"
}
}
}
}
},
"tags": [
{
"name": "Organizations",
"description": "Organization management"
},
{
"name": "Workspaces",
"description": "Workspace management"
},
{
"name": "Agents",
"description": "Agent management"
},
{
"name": "Virtual Hosts",
"description": "Virtual host configuration"
},
{
"name": "Upstreams",
"description": "Upstream configuration"
},
{
"name": "Certificates",
"description": "SSL certificate management"
}
]
}