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 CHANGELOG.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

56 changes: 56 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ members = [
"crates/temps-vm-agent",
# Library crates
"crates/temps-core",
"crates/temps-cloud-protocol",
"crates/temps-cloud-client",
"crates/temps-cloud",
"crates/temps-ai",
"crates/temps-ai-chat",
"crates/temps-entities",
Expand Down
6 changes: 1 addition & 5 deletions apps/temps-cli/openapi-ts.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,5 @@ export default defineConfig({
output: {
path: 'src/api',
},
client: '@hey-api/client-fetch',
plugins: [
'@hey-api/sdk',
'@hey-api/typescript',
],
plugins: ['@hey-api/sdk', '@hey-api/typescript'],
})
210 changes: 210 additions & 0 deletions apps/temps-cli/openapi.json
Original file line number Diff line number Diff line change
Expand Up @@ -2173,6 +2173,17 @@
}
]
},
"cloud": {
"default": {
"backend_url": "https://app.temps.sh"
},
"oneOf": [
{
"$ref": "#/components/schemas/CloudSettings",
"description": "Managed control-plane connection. Credentials are deliberately not\nstored here; they live in the owner-only cloud-link state file."
}
]
},
"cluster_dns": {
"default": {
"enabled": false
Expand Down Expand Up @@ -4605,6 +4616,27 @@
],
"type": "object"
},
"CloudCapability": {
"properties": {
"configured": {
"type": "boolean"
},
"reason": {
"type": [
"string",
"null"
]
},
"setup_path": {
"type": "string"
}
},
"required": [
"configured",
"setup_path"
],
"type": "object"
},
"CloudProvider": {
"description": "Cloud provider detected from node metadata",
"enum": [
Expand All @@ -4617,6 +4649,61 @@
],
"type": "string"
},
"CloudSettings": {
"description": "Non-secret managed control-plane settings stored with application settings.",
"properties": {
"backend_url": {
"default": "https://app.temps.sh",
"description": "HTTPS origin used for enrollment and telemetry mirroring.",
"type": "string"
}
},
"type": "object"
},
"CloudStatus": {
"properties": {
"account_email": {
"type": [
"string",
"null"
]
},
"backend_url": {
"type": "string"
},
"health": {
"type": "string"
},
"health_message": {
"type": "string"
},
"instance_id": {
"type": [
"string",
"null"
]
},
"spooled_spans": {
"minimum": 0,
"type": "integer"
},
"status": {
"type": "string"
},
"status_message": {
"type": "string"
}
},
"required": [
"status",
"status_message",
"health",
"health_message",
"spooled_spans",
"backend_url"
],
"type": "object"
},
"CloudflareConfig": {
"description": "Configuration for a Cloudflare Email Sending notification provider.\n\nNotifications are delivered through Cloudflare's transactional Email Sending\nAPI. Only the account, token, sender and recipients are configured here —\nsubject and body are derived from each notification.",
"properties": {
Expand Down Expand Up @@ -13014,6 +13101,19 @@
],
"type": "object"
},
"EnrollCloudRequest": {
"properties": {
"enrollment_code": {
"example": "ABCD-EFGH",
"minLength": 1,
"type": "string"
}
},
"required": [
"enrollment_code"
],
"type": "object"
},
"EnrollmentTokenInfo": {
"properties": {
"bound_node_name": {
Expand Down Expand Up @@ -52017,6 +52117,116 @@
]
}
},
"/cloud": {
"delete": {
"operationId": "disconnect_cloud",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CloudStatus"
}
}
},
"description": ""
}
},
"security": [
{
"bearer_auth": []
}
],
"tags": [
"Cloud"
]
}
},
"/cloud/capability": {
"get": {
"operationId": "get_cloud_capability",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CloudCapability"
}
}
},
"description": ""
}
},
"security": [
{
"bearer_auth": []
}
],
"tags": [
"Cloud"
]
}
},
"/cloud/enroll": {
"post": {
"operationId": "enroll_cloud",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EnrollCloudRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CloudStatus"
}
}
},
"description": ""
}
},
"security": [
{
"bearer_auth": []
}
],
"tags": [
"Cloud"
]
}
},
"/cloud/status": {
"get": {
"operationId": "get_cloud_status",
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CloudStatus"
}
}
},
"description": ""
}
},
"security": [
{
"bearer_auth": []
}
],
"tags": [
"Cloud"
]
}
},
"/dashboard/projects-analytics": {
"get": {
"description": "Returns unique visitor counts and hourly sparkline data for all requested projects\nusing only 2 SQL queries instead of 2×N per-project queries.",
Expand Down
Loading
Loading