Для AI-агентов: markdown этой страницы — /docs/api-discovery.mdиндекс документации — /llms.txt
REST: discovery
Обновлено
REST: discovery
Операции этой группы относятся к текущему Hub REST-контракту. В каждой записи приведены полные request/response, ошибки, auth, scopes, headers, pagination и idempotency из принятого producer. Для requiredScopes действует ALL; между auth alternatives действует OR, внутри одной альтернативы — ALL. Пустой список scopes не отменяет указанную аутентификацию. HTTP 304 остаётся отдельным ответом без тела. Не переносите чужие лимиты или заголовки: ниже перечислены только объявленные значения данной операции. Адреса объектов и курсоры описаны в идентификаторах, авторизация — в руководстве, диагностика — в ошибках.
getMcpServerJson
GET /.well-known/mcp — getMcpServerJson
Контракт содержит полные разрешённые схемы, включая bodyless/binary ответы и все объявленные ошибки. Evidence указывает принятую независимую фикстуру фактической границы; это не обещание запуска в вашей сессии.
{
"contract": {
"auth": {
"alternatives": [],
"schemes": {}
},
"errors": {
"500": {
"content": {
"application/problem+json": {
"schema": {
"properties": {
"blockingSlug": {
"maxLength": 32,
"minLength": 3,
"pattern": "^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$",
"type": [
"string",
"null"
]
},
"code": {
"enum": [
"INVALID_REQUEST",
"MALFORMED_JSON",
"IDEMPOTENCY_KEY_REQUIRED",
"MISSING_REQUIRED_FIELD",
"INVALID_API_VERSION",
"INVALID_PRICING_QUOTE",
"MALFORMED_IF_MATCH",
"UNAUTHORIZED",
"INVALID_API_KEY",
"INVALID_JWT",
"EXPIRED_JWT",
"INVALID_REFRESH_TOKEN",
"MFA_REQUIRED",
"FORBIDDEN",
"INSUFFICIENT_SCOPE",
"ACCOUNT_DISABLED",
"WEBHOOK_DISABLED",
"SUBSCRIPTION_INACTIVE",
"PLATFORM_OFFER_ACCEPTANCE_REQUIRED",
"NO_ACTIVE_BOT",
"PUBLISHABLE_KEY_NOT_ALLOWED",
"NOT_FOUND",
"RESOURCE_NOT_FOUND",
"SESSION_NOT_FOUND",
"ORDER_NOT_FOUND",
"USER_NOT_FOUND",
"PRODUCT_NOT_FOUND",
"PAYMENT_NOT_FOUND",
"EXPORT_NOT_FOUND",
"CART_NOT_FOUND",
"SLUG_TAKEN",
"SLUG_IMMUTABLE",
"UNPAID_BOT_LIMIT",
"ONBOARDING_BUSY",
"ONBOARDING_STEP_OUT_OF_ORDER",
"BOT_ALREADY_CONNECTED",
"BOT_RESERVED",
"SG_DISCOVERY_STALE",
"ACTIVE_SUBSCRIPTION_EXISTS",
"CONFLICT",
"IDEMPOTENCY_CONFLICT",
"IDEMPOTENCY_KEY_IN_FLIGHT",
"IDEMPOTENCY_KEY_FAILED",
"EXTERNAL_ORDER_REF_CONFLICT",
"ORDER_NOT_LINKABLE",
"SESSION_ALREADY_APPROVED",
"WEBHOOK_URL_CONFLICT",
"PRICE_CHANGED",
"ORDER_ITEM_VERSION_CONFLICT",
"ORDER_ALREADY_PAID",
"CART_INACTIVE",
"DRAFT_NOT_PENDING",
"TENANT_ARCHIVED",
"VARIANT_KEY_IMMUTABLE",
"VARIANT_KEY_REUSED",
"ORDER_NOT_REFRESHABLE",
"ORDER_ALREADY_LINKED",
"DUPLICATE_ORDER",
"SUBSCRIPTION_UPGRADE_REFUSED",
"ACQUISITION_REJECTED",
"PLATFORM_TARGET_UNRESOLVED",
"ORDER_LOCK_CONTENDED",
"SESSION_EXPIRED",
"APPROVAL_CODE_EXPIRED",
"PRECONDITION_FAILED",
"BOT_CONNECTION_NOT_READY",
"ETAG_STALE",
"ACTIVE_BOT_CHANGED",
"PREPARED_SCENARIO_TENANT_CHANGED",
"ITEM_COUNT_EXCEEDED",
"PAYLOAD_TOO_LARGE",
"SLUG_INVALID",
"INVALID_BOT_TOKEN",
"SG_NOT_FORUM",
"SA_NOT_MEMBER",
"SA_NOT_ADMIN",
"SA_RIGHTS_MISSING",
"SA_ANONYMOUS",
"PAYMENT_TAX_PROFILE_MISSING",
"VALIDATION_ERROR",
"IDEMPOTENCY_KEY_MISMATCH",
"ZONE_REQUIRED",
"SITE_PATH_OUTSIDE_PUBLISHABLE_PREFIX",
"INVALID_PROVIDER_CURRENCY",
"PROVIDER_NOT_CONFIGURED",
"CATALOG_FIELD_READ_ONLY",
"CATALOG_BOOKING_CONFIG_INVALID",
"CATALOG_BOOKING_RESOURCE_NOT_FOUND",
"TEXT_TOO_LONG",
"INVALID_BUTTON_CONFIG",
"INVALID_MEDIA",
"INVALID_SCOPE",
"INVALID_CURSOR",
"INVALID_FILTER",
"LIMIT_EXCEEDED",
"EXPORT_MAX_ROWS_EXCEEDED",
"TOKEN_PASSTHROUGH_FORBIDDEN",
"AUDIENCE_MISMATCH",
"INVALID_OAUTH_STATE",
"INVALID_OAUTH_REDIRECT_URI",
"ITEMS_REQUIRED",
"VARIANTS_NOT_AVAILABLE",
"INVALID_QUANTITY",
"MIXED_CURRENCY",
"NO_COMMON_PAYMENT_PROVIDER",
"SINGLETON_ORDER_REQUIRED",
"MIXED_PARTNER_RATES",
"PRODUCT_NOT_CART_ELIGIBLE",
"OPTION_UNAVAILABLE",
"QUANTITY_LIMIT",
"MERGE_REJECTED",
"BUYER_CONTACT_REQUIRED",
"DELIVERY_ADDRESS_REQUIRED",
"POSTAL_CODE_REQUIRED",
"PAYMENT_PROVIDERS_UNAVAILABLE",
"PAYMENT_LINKS_UNAVAILABLE",
"FISCAL_PROVIDER_BASIS_UNSUPPORTED",
"PRECONDITION_REQUIRED",
"PRICING_QUOTE_REQUIRED",
"ETAG_REQUIRED",
"CATALOG_UNAVAILABLE",
"CATALOG_LOCK_ORDER",
"UNSUPPORTED_QUOTE_CURRENCY",
"RATE_LIMIT_EXCEEDED",
"EXPORT_LIMIT_EXCEEDED",
"REFRESH_LIMIT_EXCEEDED",
"RATE_LIMIT_UNAVAILABLE",
"INTERNAL_ERROR",
"SERVICE_UNAVAILABLE",
"PRICING_UNAVAILABLE"
],
"type": "string"
},
"current_etag": {
"anyOf": [
{
"pattern": "^W\\/\"[a-f0-9]{16}\"$",
"type": "string"
},
{
"pattern": "^\"cart-[1-9][0-9]*\"$",
"type": "string"
}
]
},
"detail": {
"type": "string"
},
"details": {},
"hint": {
"additionalProperties": false,
"properties": {
"example": {
"additionalProperties": {},
"type": "object"
},
"reason": {
"minLength": 1,
"type": "string"
},
"recovery": {
"minLength": 1,
"type": "string"
},
"see": {
"type": "string"
}
},
"required": [
"reason",
"recovery"
],
"type": "object"
},
"instance": {
"type": "string"
},
"stage": {
"enum": [
"address",
"site",
"bot",
"supergroups_create",
"supergroups_admin",
"supergroups_confirm",
"infrastructure",
"infrastructure_ready",
"quest_1",
"quest_2",
"warmup",
"quest_product",
"quest_purchase",
"payments",
"first_payment",
"ai_preferences",
"finish",
"completed",
"tariff",
"paid",
"free"
],
"type": "string"
},
"status": {
"type": "integer"
},
"title": {
"type": "string"
},
"traceId": {
"type": "string"
},
"type": {
"format": "uri",
"type": "string"
},
"validation_errors": {
"items": {
"properties": {
"code": {
"type": "string"
},
"field": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"field",
"message",
"code"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"type",
"title",
"status",
"code",
"traceId"
],
"type": "object"
}
}
},
"description": "Unexpected failure mapped by the canonical Problem Details filter"
}
},
"headers": {
"request": [],
"response": {
"200": {
"Cache-Control": {
"required": true,
"schema": {
"const": "public, max-age=300",
"type": "string"
}
}
},
"500": {}
}
},
"idempotency": {
"boundary": null,
"contract": "none",
"parameters": []
},
"operationId": "getMcpServerJson",
"pagination": {
"contract": null,
"parameters": []
},
"request": {
"body": null,
"parameters": []
},
"response": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"remotes": {
"items": {
"properties": {
"auth": {
"type": "string"
},
"transport": {
"enum": [
"streamable-http"
],
"type": "string"
},
"url": {
"format": "uri",
"type": "string"
}
},
"required": [
"transport",
"url",
"auth"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"remotes"
],
"type": "object"
}
}
},
"description": "Get MCP discovery metadata",
"headers": {
"Cache-Control": {
"required": true,
"schema": {
"const": "public, max-age=300",
"type": "string"
}
}
}
}
},
"scopes": []
},
"evidence": {
"acceptanceTask": "T192",
"fixture": "apps/external-hub/src/__tests__/fixtures/public-rest/values-dx-discovery.json",
"implementationSha": "9456e9c121892bc2cb6664519945629c4ae8a4d4",
"registrar": "registerWellKnownPaths",
"result": "accepted",
"selection": "operations[operationId=getMcpServerJson]",
"source": "isolated accepted leaf + canonical common; primary actual-boundary fixture is independent"
},
"operation": {
"authAlternatives": [],
"method": "get",
"operationId": "getMcpServerJson",
"path": "/.well-known/mcp",
"requestSchemaRef": null,
"requiredScopes": [],
"responseSchemaRefs": {
"200": "#/components/schemas/McpServerJson",
"500": "#/components/schemas/ProblemDetails"
},
"successStatuses": [
200
],
"title": "getMcpServerJson"
}
}getMcpServerCard
GET /.well-known/mcp/server-card.json — getMcpServerCard
Контракт содержит полные разрешённые схемы, включая bodyless/binary ответы и все объявленные ошибки. Evidence указывает принятую независимую фикстуру фактической границы; это не обещание запуска в вашей сессии.
{
"contract": {
"auth": {
"alternatives": [],
"schemes": {}
},
"errors": {
"500": {
"content": {
"application/problem+json": {
"schema": {
"properties": {
"blockingSlug": {
"maxLength": 32,
"minLength": 3,
"pattern": "^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$",
"type": [
"string",
"null"
]
},
"code": {
"enum": [
"INVALID_REQUEST",
"MALFORMED_JSON",
"IDEMPOTENCY_KEY_REQUIRED",
"MISSING_REQUIRED_FIELD",
"INVALID_API_VERSION",
"INVALID_PRICING_QUOTE",
"MALFORMED_IF_MATCH",
"UNAUTHORIZED",
"INVALID_API_KEY",
"INVALID_JWT",
"EXPIRED_JWT",
"INVALID_REFRESH_TOKEN",
"MFA_REQUIRED",
"FORBIDDEN",
"INSUFFICIENT_SCOPE",
"ACCOUNT_DISABLED",
"WEBHOOK_DISABLED",
"SUBSCRIPTION_INACTIVE",
"PLATFORM_OFFER_ACCEPTANCE_REQUIRED",
"NO_ACTIVE_BOT",
"PUBLISHABLE_KEY_NOT_ALLOWED",
"NOT_FOUND",
"RESOURCE_NOT_FOUND",
"SESSION_NOT_FOUND",
"ORDER_NOT_FOUND",
"USER_NOT_FOUND",
"PRODUCT_NOT_FOUND",
"PAYMENT_NOT_FOUND",
"EXPORT_NOT_FOUND",
"CART_NOT_FOUND",
"SLUG_TAKEN",
"SLUG_IMMUTABLE",
"UNPAID_BOT_LIMIT",
"ONBOARDING_BUSY",
"ONBOARDING_STEP_OUT_OF_ORDER",
"BOT_ALREADY_CONNECTED",
"BOT_RESERVED",
"SG_DISCOVERY_STALE",
"ACTIVE_SUBSCRIPTION_EXISTS",
"CONFLICT",
"IDEMPOTENCY_CONFLICT",
"IDEMPOTENCY_KEY_IN_FLIGHT",
"IDEMPOTENCY_KEY_FAILED",
"EXTERNAL_ORDER_REF_CONFLICT",
"ORDER_NOT_LINKABLE",
"SESSION_ALREADY_APPROVED",
"WEBHOOK_URL_CONFLICT",
"PRICE_CHANGED",
"ORDER_ITEM_VERSION_CONFLICT",
"ORDER_ALREADY_PAID",
"CART_INACTIVE",
"DRAFT_NOT_PENDING",
"TENANT_ARCHIVED",
"VARIANT_KEY_IMMUTABLE",
"VARIANT_KEY_REUSED",
"ORDER_NOT_REFRESHABLE",
"ORDER_ALREADY_LINKED",
"DUPLICATE_ORDER",
"SUBSCRIPTION_UPGRADE_REFUSED",
"ACQUISITION_REJECTED",
"PLATFORM_TARGET_UNRESOLVED",
"ORDER_LOCK_CONTENDED",
"SESSION_EXPIRED",
"APPROVAL_CODE_EXPIRED",
"PRECONDITION_FAILED",
"BOT_CONNECTION_NOT_READY",
"ETAG_STALE",
"ACTIVE_BOT_CHANGED",
"PREPARED_SCENARIO_TENANT_CHANGED",
"ITEM_COUNT_EXCEEDED",
"PAYLOAD_TOO_LARGE",
"SLUG_INVALID",
"INVALID_BOT_TOKEN",
"SG_NOT_FORUM",
"SA_NOT_MEMBER",
"SA_NOT_ADMIN",
"SA_RIGHTS_MISSING",
"SA_ANONYMOUS",
"PAYMENT_TAX_PROFILE_MISSING",
"VALIDATION_ERROR",
"IDEMPOTENCY_KEY_MISMATCH",
"ZONE_REQUIRED",
"SITE_PATH_OUTSIDE_PUBLISHABLE_PREFIX",
"INVALID_PROVIDER_CURRENCY",
"PROVIDER_NOT_CONFIGURED",
"CATALOG_FIELD_READ_ONLY",
"CATALOG_BOOKING_CONFIG_INVALID",
"CATALOG_BOOKING_RESOURCE_NOT_FOUND",
"TEXT_TOO_LONG",
"INVALID_BUTTON_CONFIG",
"INVALID_MEDIA",
"INVALID_SCOPE",
"INVALID_CURSOR",
"INVALID_FILTER",
"LIMIT_EXCEEDED",
"EXPORT_MAX_ROWS_EXCEEDED",
"TOKEN_PASSTHROUGH_FORBIDDEN",
"AUDIENCE_MISMATCH",
"INVALID_OAUTH_STATE",
"INVALID_OAUTH_REDIRECT_URI",
"ITEMS_REQUIRED",
"VARIANTS_NOT_AVAILABLE",
"INVALID_QUANTITY",
"MIXED_CURRENCY",
"NO_COMMON_PAYMENT_PROVIDER",
"SINGLETON_ORDER_REQUIRED",
"MIXED_PARTNER_RATES",
"PRODUCT_NOT_CART_ELIGIBLE",
"OPTION_UNAVAILABLE",
"QUANTITY_LIMIT",
"MERGE_REJECTED",
"BUYER_CONTACT_REQUIRED",
"DELIVERY_ADDRESS_REQUIRED",
"POSTAL_CODE_REQUIRED",
"PAYMENT_PROVIDERS_UNAVAILABLE",
"PAYMENT_LINKS_UNAVAILABLE",
"FISCAL_PROVIDER_BASIS_UNSUPPORTED",
"PRECONDITION_REQUIRED",
"PRICING_QUOTE_REQUIRED",
"ETAG_REQUIRED",
"CATALOG_UNAVAILABLE",
"CATALOG_LOCK_ORDER",
"UNSUPPORTED_QUOTE_CURRENCY",
"RATE_LIMIT_EXCEEDED",
"EXPORT_LIMIT_EXCEEDED",
"REFRESH_LIMIT_EXCEEDED",
"RATE_LIMIT_UNAVAILABLE",
"INTERNAL_ERROR",
"SERVICE_UNAVAILABLE",
"PRICING_UNAVAILABLE"
],
"type": "string"
},
"current_etag": {
"anyOf": [
{
"pattern": "^W\\/\"[a-f0-9]{16}\"$",
"type": "string"
},
{
"pattern": "^\"cart-[1-9][0-9]*\"$",
"type": "string"
}
]
},
"detail": {
"type": "string"
},
"details": {},
"hint": {
"additionalProperties": false,
"properties": {
"example": {
"additionalProperties": {},
"type": "object"
},
"reason": {
"minLength": 1,
"type": "string"
},
"recovery": {
"minLength": 1,
"type": "string"
},
"see": {
"type": "string"
}
},
"required": [
"reason",
"recovery"
],
"type": "object"
},
"instance": {
"type": "string"
},
"stage": {
"enum": [
"address",
"site",
"bot",
"supergroups_create",
"supergroups_admin",
"supergroups_confirm",
"infrastructure",
"infrastructure_ready",
"quest_1",
"quest_2",
"warmup",
"quest_product",
"quest_purchase",
"payments",
"first_payment",
"ai_preferences",
"finish",
"completed",
"tariff",
"paid",
"free"
],
"type": "string"
},
"status": {
"type": "integer"
},
"title": {
"type": "string"
},
"traceId": {
"type": "string"
},
"type": {
"format": "uri",
"type": "string"
},
"validation_errors": {
"items": {
"properties": {
"code": {
"type": "string"
},
"field": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": [
"field",
"message",
"code"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"type",
"title",
"status",
"code",
"traceId"
],
"type": "object"
}
}
},
"description": "Unexpected failure mapped by the canonical Problem Details filter"
}
},
"headers": {
"request": [],
"response": {
"200": {
"Cache-Control": {
"required": true,
"schema": {
"const": "public, max-age=300",
"type": "string"
}
}
},
"500": {}
}
},
"idempotency": {
"boundary": null,
"contract": "none",
"parameters": []
},
"operationId": "getMcpServerCard",
"pagination": {
"contract": null,
"parameters": []
},
"request": {
"body": null,
"parameters": []
},
"response": {
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"auth": {
"properties": {
"scopes": {
"items": {
"type": "string"
},
"type": "array"
},
"type": {
"enum": [
"api_key",
"oauth2"
],
"type": "string"
}
},
"required": [
"type",
"scopes"
],
"type": "object"
},
"capabilities": {
"properties": {
"prompts": {
"type": "boolean"
},
"resources": {
"type": "boolean"
},
"tools": {
"type": "boolean"
}
},
"required": [
"tools",
"resources",
"prompts"
],
"type": "object"
},
"description": {
"type": "string"
},
"endpoints": {
"properties": {
"streamable_http": {
"format": "uri",
"type": "string"
}
},
"required": [
"streamable_http"
],
"type": "object"
},
"name": {
"type": "string"
},
"protocol_versions": {
"items": {
"type": "string"
},
"minItems": 1,
"type": "array"
},
"vendor": {
"properties": {
"name": {
"type": "string"
},
"url": {
"format": "uri",
"type": "string"
}
},
"required": [
"name",
"url"
],
"type": "object"
}
},
"required": [
"protocol_versions",
"name",
"description",
"vendor",
"capabilities",
"endpoints",
"auth"
],
"type": "object"
}
}
},
"description": "Get MCP server-card metadata",
"headers": {
"Cache-Control": {
"required": true,
"schema": {
"const": "public, max-age=300",
"type": "string"
}
}
}
}
},
"scopes": []
},
"evidence": {
"acceptanceTask": "T192",
"fixture": "apps/external-hub/src/__tests__/fixtures/public-rest/values-dx-discovery.json",
"implementationSha": "9456e9c121892bc2cb6664519945629c4ae8a4d4",
"registrar": "registerWellKnownPaths",
"result": "accepted",
"selection": "operations[operationId=getMcpServerCard]",
"source": "isolated accepted leaf + canonical common; primary actual-boundary fixture is independent"
},
"operation": {
"authAlternatives": [],
"method": "get",
"operationId": "getMcpServerCard",
"path": "/.well-known/mcp/server-card.json",
"requestSchemaRef": null,
"requiredScopes": [],
"responseSchemaRefs": {
"200": "#/components/schemas/McpServerCard",
"500": "#/components/schemas/ProblemDetails"
},
"successStatuses": [
200
],
"title": "getMcpServerCard"
}
}Протокольные исключения
Эти точные mounted routes обслуживают протокол, discovery или эксплуатацию. Они не являются дополнительными business REST-операциями; отдельный request/response-контракт здесь не придумывается.
ALL /api/v1/mcp
ALL /api/v1/mcp
Категория: protocol. Владелец: apps/external-hub/src/controllers/mcp/mcp.controller.ts#handle; McpController.handle.
JSON-RPC MCP transport
GET /
GET /
Категория: operational. Владелец: apps/external-hub/src/controllers/root/root.controller.ts#root; RootController.root.
HTML human MCP landing
GET /.well-known/agent-skills/index.json
GET /.well-known/agent-skills/index.json
Категория: discovery. Владелец: apps/external-hub/src/controllers/well-known/well-known.controller.ts#agentSkillsIndex; WellKnownController.agentSkillsIndex.
Public discovery representation / OAuth consent document; exact non-business route
GET /.well-known/api-catalog
GET /.well-known/api-catalog
Категория: discovery. Владелец: apps/external-hub/src/controllers/well-known/well-known.controller.ts#apiCatalog; WellKnownController.apiCatalog.
Public discovery representation / OAuth consent document; exact non-business route
GET /.well-known/oauth-authorization-server
GET /.well-known/oauth-authorization-server
Категория: discovery. Владелец: apps/external-hub/src/controllers/well-known/well-known.controller.ts#authorizationServerMetadata; WellKnownController.authorizationServerMetadata.
Public discovery representation / OAuth consent document; exact non-business route
GET /.well-known/oauth-protected-resource
GET /.well-known/oauth-protected-resource
Категория: discovery. Владелец: apps/external-hub/src/controllers/well-known/well-known.controller.ts#protectedResourceMetadata; WellKnownController.protectedResourceMetadata.
Public discovery representation / OAuth consent document; exact non-business route
GET /.well-known/oauth-protected-resource/api/v1/mcp
GET /.well-known/oauth-protected-resource/api/v1/mcp
Категория: discovery. Владелец: apps/external-hub/src/controllers/well-known/well-known.controller.ts#protectedResourceMetadataForMcp; WellKnownController.protectedResourceMetadataForMcp.
Public discovery representation / OAuth consent document; exact non-business route
GET /api/v1/external/openapi.json
GET /api/v1/external/openapi.json
Категория: discovery. Владелец: apps/external-hub/src/controllers/openapi/openapi.controller.ts#document; OpenApiController.document.
Public discovery representation / OAuth consent document; exact non-business route
GET /api/v1/external/skills/{name}/instructions.md
GET /api/v1/external/skills/{name}/instructions.md
Категория: discovery. Владелец: apps/external-hub/src/controllers/dx/dx.controller.ts#skillInstructions; DxController.skillInstructions.
Public discovery representation / OAuth consent document; exact non-business route
GET /api/v1/oauth/authorize
GET /api/v1/oauth/authorize
Категория: discovery. Владелец: apps/external-hub/src/controllers/oauth/oauth.controller.ts#authorize; OAuthController.authorize.
Public discovery representation / OAuth consent document; exact non-business route
GET /api/v1/oauth/authorize/status
GET /api/v1/oauth/authorize/status
Категория: discovery. Владелец: apps/external-hub/src/controllers/oauth/oauth.controller.ts#authorizeStatus; OAuthController.authorizeStatus.
Public discovery representation / OAuth consent document; exact non-business route
GET /api/v1/oauth/consent.js
GET /api/v1/oauth/consent.js
Категория: discovery. Владелец: apps/external-hub/src/controllers/oauth/oauth.controller.ts#consentScript; OAuthController.consentScript.
Public discovery representation / OAuth consent document; exact non-business route
GET /health/live
GET /health/live
Категория: operational. Владелец: apps/external-hub/src/controllers/health/health.controller.ts#live; HealthController.live.
Health probe / guarded metrics, outside public business REST
GET /health/ready
GET /health/ready
Категория: operational. Владелец: apps/external-hub/src/controllers/health/health.controller.ts#ready; HealthController.ready.
Health probe / guarded metrics, outside public business REST
GET /health/startup
GET /health/startup
Категория: operational. Владелец: apps/external-hub/src/controllers/health/health.controller.ts#startup; HealthController.startup.
Health probe / guarded metrics, outside public business REST
GET /llms-full.txt
GET /llms-full.txt
Категория: discovery. Владелец: apps/external-hub/src/controllers/dx/dx.controller.ts#llmsFullText; DxController.llmsFullText.
Public discovery representation / OAuth consent document; exact non-business route
GET /metrics
GET /metrics
Категория: operational. Владелец: apps/external-hub/src/controllers/metrics/metrics.controller.ts#scrape; MetricsController.scrape.
Health probe / guarded metrics, outside public business REST
POST /api/v1/oauth/device_authorization
POST /api/v1/oauth/device_authorization
Категория: protocol. Владелец: apps/external-hub/src/controllers/oauth/oauth.controller.ts#deviceAuthorization; OAuthController.deviceAuthorization.
OAuth authorization server protocol; fixed RFC request/response contract
POST /api/v1/oauth/register
POST /api/v1/oauth/register
Категория: protocol. Владелец: apps/external-hub/src/controllers/oauth/oauth.controller.ts#register; OAuthController.register.
OAuth authorization server protocol; fixed RFC request/response contract
POST /api/v1/oauth/token
POST /api/v1/oauth/token
Категория: protocol. Владелец: apps/external-hub/src/controllers/oauth/oauth.controller.ts#token; OAuthController.token.
OAuth authorization server protocol; fixed RFC request/response contract