This is an automated email from the ASF dual-hosted git repository.
moonming pushed a change to branch dependabot/npm_and_yarn/t/simple-git-4.0.1
in repository https://gitbox.apache.org/repos/asf/apisix.git
from 22645f0bf build(deps-dev): bump simple-git from 3.27.0 to 4.0.1 in /t
add a5f4ec799 test(lago): use the simple-git v4 named export
add 3551401b4 feat: add the request-decompress plugin (#14016)
add e79d37789 docs(limit-count): correct when the delayed-sync snapshot is
refreshed (#14017)
add 6a3a76648 fix(consul): run the catalog and health watchers as
independent timers (#14032)
add 2e43b6c60 feat(consul): support https consul server addresses (#14018)
add 64a4afdd1 fix(ai-proxy): include cache tokens in Anthropic prompt
usage and read them from message_delta (#14028)
add e14c6e937 feat(prometheus): export per-process timers, connection
slots and Lua memory (#14034)
add de0782a91 fix: return 421 for SNI and Host mismatches on mTLS requests
(#14013)
add 9326926e3 docs: clarify RPM package links after UBI 9 migration
(#14039)
add b972ce477 fix(nacos): keep cached nodes when a per-service refresh
fails (#13971)
add 016dcd074 fix(kubernetes): fail the list when a later page fails
(#14053)
add c4f09e1f8 fix(secret): do not include secret values in aws and vault
error messages (#14049)
add 210943c18 fix: preserve client-control body limit for gRPC upstreams
(#14036)
add cea64fbf4 ci: make CI work on the Ubuntu 26.04 runner image (#14070)
add 6c700c5dc fix(traffic-split): apply tls and keepalive_pool of the
inline upstream (#14054)
add 5dccf0e04 fix(oas-validator): release remote specs unused for
spec_url_ttl (#14061)
add a546e8559 fix(router): keep the query string when
normalize_uri_like_servlet is on (#13982)
add b6cefbf7f fix(openapi-to-mcp): harden the plugin against a hostile
document and caller (#13959)
add f2523f7ad chore: bump APISIX-Runtime to 1.4.0 (#14041)
add 96ba388d5 fix(ai-proxy): account for Bedrock prompt cache tokens
(#14044)
add 4a080d029 fix(router): forward the matched path when nginx normalizes
the request uri (#14035)
add a177234f6 test(prometheus): wait for stream session metrics to reach
the exposition (#14092)
add f77401f1e fix(cli): don't capture openresty stdout in apisix start
(#14087)
add 238aa9ee4 feat(prometheus): configure expired metric cleanup interval
(#13981)
add f7139e2ad fix(jwe-decrypt,forward-auth): clear forwarded headers when
skipping (#14096)
add b6deb41da feat(openid-connect): map verified claims to upstream
request headers (#14030)
add b31e828c6 feat(chaitin-waf): add allow_degradation option for
fail-open behavior (#13311)
add 0e4242f58 docs: port source-verified terminology corrections (#14105)
add ae87b9423 fix(authz-keycloak): require every requested permission to
be granted (#14098)
add 3b33a0347 Handle missing resource config in node version helpers
(#13986)
add f3390e585 fix(consul): upgrade lua-resty-consul to 0.4.0 (#14118)
add 2e27e9b4b feat(openid-connect): upgrade lua-resty-openidc to 1.9.3
(#14088)
add ff1187e9b fix(upstream): verify against ssl_trusted_certificate when
only tls.verify is set (#14113)
add 88a41b7f3 docs: add source-verified Admin API contract for master
(#14084)
add ef7135862 fix(ai-prompt-guard): check embeddings string arrays before
forwarding (#14073)
add a135515b0 docs(proxy-cache): clarify that the remote_user isolation
fallback is unverified (#14115)
add f88e1d238 refactor(wolf-rbac): move header_prefix to route
configuration (#13929)
add bf40a99c5 fix(ssl): match skip_mtls_uri_regex against the
encoded-slash route uri (#14108)
add 530099397 fix(limit-count): keep delayed sync counters per rule
(#14064)
add 83db779df chore: bump APISIX-Runtime to 1.4.2 (#14126)
add 6205e4a56 docs: add source-verified Control API contract (#14131)
add f4a4cb4fd chore: bump brotli to 1.2.1 (#14138)
add 79a87e559 feat(core): make the readable request header count
configurable (#14136)
add 37b630480 fix(csrf): safely validate decoded token table and fields
(#14025)
add 7db9dce5b docs: modularize the Admin API OpenAPI specification (#14147)
add 5222007fc fix(prometheus): bump nginx-lua-prometheus-api7 to 1.1.1
(#14150)
add 4d736af51 perf(forward-auth): send auth requests through
ngx_http_ffi_client (#14144)
add 377cb5961 perf(request-id): read only the configured header and encode
v4 ids through a table (#14140)
add 7c7c8f9f4 perf(limit-count): cache parsed templates, local limiters
and header names (#14141)
add 7577c3173 fix(syslog): separate error cause from message in syslog
errors (#13974)
add 7f7b7a0ba fix(syslog): return early when logger init fails (#13970)
add b5b50fa71 fix(oas-validator): verify the TLS certificate of the
spec_url host (#14146)
add 77055643b fix(openapi-to-mcp): confine a path parameter to one path
segment (#14154)
add 22ecbc60e fix(discovery): refresh the kubernetes endpoint cache by ttl
instead of a version key (#14167)
add 1d920b0c7 docs: correct Admin API TLS and derived schemas (#14160)
add 4a9d5d567 clarify Credential name field description and fix typos
(#13837)
add 2b6d519a0 fix(prometheus): count stream bytes of slots created after
the first read (#14101)
add fefb7aceb Merge remote-tracking branch 'origin/master' into
codex/deps-14020
No new revisions were added by this update.
Summary of changes:
.gitattributes | 1 +
.github/workflows/admin-api-contract.yml | 39 +
.github/workflows/build.yml | 9 +-
.github/workflows/cli.yml | 6 +-
.github/workflows/doc-lint.yml | 19 +
.github/workflows/link-check.yml | 2 +-
.github/workflows/source-install.yml | 6 +-
.licenserc.yaml | 1 +
.requirements | 2 +-
CONTRIBUTING.md | 30 +
Makefile | 5 +
apisix-master-0.rockspec | 10 +-
apisix/cli/config.lua | 8 +-
apisix/cli/ngx_tpl.lua | 10 +
apisix/cli/ops.lua | 5 +-
apisix/cli/schema.lua | 7 +
apisix/core/lrucache.lua | 124 +-
apisix/core/request.lua | 39 +-
apisix/core/utils.lua | 143 +-
apisix/discovery/consul/client.lua | 42 +-
apisix/discovery/consul/init.lua | 136 +-
apisix/discovery/consul/schema.lua | 1 +
apisix/discovery/kubernetes/core.lua | 28 +-
apisix/discovery/kubernetes/informer_factory.lua | 2 +-
apisix/discovery/kubernetes/init.lua | 37 +-
apisix/discovery/nacos/client.lua | 32 +-
apisix/discovery/nacos/init.lua | 8 +-
apisix/discovery/tars/init.lua | 32 +-
apisix/init.lua | 197 +-
apisix/plugins/ai-prompt-guard.lua | 8 +-
apisix/plugins/ai-protocols/anthropic-messages.lua | 68 +-
apisix/plugins/ai-protocols/bedrock-converse.lua | 39 +-
.../anthropic-messages-to-openai-chat.lua | 44 +-
apisix/plugins/ai-protocols/openai-chat.lua | 61 +-
apisix/plugins/ai-protocols/openai-embeddings.lua | 6 +-
apisix/plugins/authz-keycloak.lua | 100 +-
apisix/plugins/chaitin-waf.lua | 31 +
apisix/plugins/client-control.lua | 1 +
apisix/plugins/csrf.lua | 12 +-
apisix/plugins/forward-auth.lua | 177 +-
apisix/plugins/jwe-decrypt.lua | 2 +
apisix/plugins/limit-count/init.lua | 68 +-
apisix/plugins/multi-auth.lua | 9 +
apisix/plugins/oas-validator.lua | 12 +-
apisix/plugins/openapi-to-mcp.lua | 237 +-
apisix/plugins/openapi-to-mcp/cache.lua | 60 +-
apisix/plugins/openapi-to-mcp/fetch.lua | 158 +
apisix/plugins/openapi-to-mcp/json_pretty.lua | 8 +
apisix/plugins/openapi-to-mcp/openapi/loader.lua | 26 +-
apisix/plugins/openapi-to-mcp/openapi/ref.lua | 149 +-
apisix/plugins/openapi-to-mcp/server.lua | 8 +-
apisix/plugins/openapi-to-mcp/session.lua | 105 +-
apisix/plugins/openapi-to-mcp/tools/handler.lua | 311 +-
apisix/plugins/openapi-to-mcp/transport/sse.lua | 15 +-
.../openapi-to-mcp/transport/streamable_http.lua | 1 -
apisix/plugins/openid-connect.lua | 134 +-
apisix/plugins/prometheus/exporter.lua | 59 +-
apisix/plugins/prometheus/process_metrics.lua | 457 +
apisix/plugins/proxy-rewrite.lua | 3 +-
apisix/plugins/request-decompress.lua | 262 +
apisix/plugins/request-id.lua | 24 +-
apisix/plugins/syslog/init.lua | 5 +-
apisix/plugins/traffic-split.lua | 4 +-
apisix/plugins/wolf-rbac.lua | 70 +-
apisix/resource.lua | 8 +
apisix/secret/aws.lua | 3 +-
apisix/secret/vault.lua | 2 +-
apisix/upstream.lua | 96 +-
apisix/utils/content-decode.lua | 32 +-
apisix/utils/gzip.lua | 110 +
ci/backup-docker-images.sh | 2 +-
ci/common.sh | 4 +-
ci/free_disk_space.sh | 8 +-
ci/init-plugin-test-service.sh | 20 +-
ci/linux-install-openresty.sh | 6 +-
conf/config.yaml.example | 10 +-
docker/debian-dev/install-brotli.sh | 2 +-
docs/en/latest/admin-api.json | 21748 +++++++++++++++++++
docs/en/latest/admin-api.md | 14 +-
docs/en/latest/config.json | 1 +
docs/en/latest/control-api.json | 1533 ++
docs/en/latest/discovery/consul.md | 15 +
docs/en/latest/discovery/kubernetes.md | 2 +-
docs/en/latest/install-dependencies.md | 2 +-
docs/en/latest/installation-guide.md | 11 +
docs/en/latest/plugins/ai-prompt-guard.md | 4 +
docs/en/latest/plugins/ai-proxy-multi.md | 4 +-
docs/en/latest/plugins/ai-proxy.md | 4 +-
docs/en/latest/plugins/ai-rate-limiting.md | 2 +-
docs/en/latest/plugins/authz-keycloak.md | 2 +
docs/en/latest/plugins/brotli.md | 6 +-
docs/en/latest/plugins/chaitin-waf.md | 4 +
docs/en/latest/plugins/forward-auth.md | 19 +-
docs/en/latest/plugins/jwe-decrypt.md | 2 +-
docs/en/latest/plugins/limit-count.md | 2 +-
docs/en/latest/plugins/oas-validator.md | 5 +-
docs/en/latest/plugins/openapi-to-mcp.md | 25 +-
docs/en/latest/plugins/openid-connect.md | 37 +
docs/en/latest/plugins/prometheus.md | 25 +
docs/en/latest/plugins/proxy-cache.md | 2 +
docs/en/latest/plugins/request-decompress.md | 202 +
docs/en/latest/plugins/traffic-split.md | 2 +
docs/en/latest/plugins/wolf-rbac.md | 22 +-
docs/en/latest/router-radixtree.md | 33 +-
docs/en/latest/stream-proxy.md | 3 +-
docs/en/latest/terminology/consumer.md | 33 +-
docs/en/latest/terminology/credential.md | 8 +-
docs/en/latest/terminology/global-rule.md | 4 +-
docs/en/latest/terminology/plugin-config.md | 8 +-
docs/en/latest/terminology/plugin-metadata.md | 20 +-
docs/en/latest/terminology/plugin.md | 23 +-
docs/en/latest/terminology/secret.md | 2 +-
docs/openapi/admin-api/README.md | 51 +
.../components/parameters/FilterExpr.yaml | 11 +-
.../admin-api/components/parameters/Force.yaml | 14 +-
.../admin-api/components/parameters/IdInPath.yaml | 12 +-
.../components/parameters/LabelFilter.yaml | 12 +-
.../components/parameters/NameFilter.yaml | 10 +-
.../admin-api/components/parameters/Page.yaml | 11 +-
.../admin-api/components/parameters/PageSize.yaml | 12 +-
.../components/parameters/PluginListAll.yaml | 14 +-
.../components/parameters/PluginNameInPath.yaml | 13 +-
.../components/parameters/ResourceKindInPath.yaml | 22 +-
.../components/parameters/SchemaNameInPath.yaml | 10 +-
.../components/parameters/SecretType.yaml | 16 +-
.../admin-api/components/parameters/Subsystem.yaml | 15 +-
.../admin-api/components/parameters/Ttl.yaml | 11 +-
.../admin-api/components/parameters/UriFilter.yaml | 11 +-
.../components/parameters/UsernameInPath.yaml | 15 +-
.../requestBodies/ConsumerGroupUpsertPatchId.yaml | 22 +-
.../requestBodies/ConsumerGroupUpsertPutId.yaml | 25 +-
.../requestBodies/ConsumerUpsertPutCollection.yaml | 26 +-
.../components/requestBodies/CredentialUpsert.yaml | 21 +-
.../requestBodies/GlobalRuleUpsertPatchId.yaml | 23 +-
.../requestBodies/GlobalRuleUpsertPutId.yaml | 24 +-
.../GraphQLCostDecorationPatchBody.yaml | 19 +-
.../requestBodies/PluginConfigUpsertPatchId.yaml | 22 +-
.../requestBodies/PluginConfigUpsertPutId.yaml | 27 +-
.../requestBodies/PluginMetadataUpsert.yaml | 18 +-
.../requestBodies/ProtoUpsertPostCollection.yaml | 49 +
.../components/requestBodies/ProtoUpsertPutId.yaml | 47 +
.../requestBodies/RouteUpsertPatchId.yaml | 32 +-
.../requestBodies/RouteUpsertPostCollection.yaml | 60 +
.../components/requestBodies/RouteUpsertPutId.yaml | 52 +
.../requestBodies/SecretUpsertPatchCollection.yaml | 22 +-
.../requestBodies/SecretUpsertPutCollection.yaml | 49 +
.../requestBodies/ServiceUpsertPatchId.yaml | 20 +-
.../requestBodies/ServiceUpsertPostCollection.yaml | 30 +-
.../requestBodies/ServiceUpsertPutId.yaml | 44 +
.../components/requestBodies/SslUpsertPatchId.yaml | 20 +-
.../requestBodies/SslUpsertPostCollection.yaml | 52 +
.../components/requestBodies/SslUpsertPutId.yaml | 50 +
.../StreamRouteUpsertPostCollection.yaml | 26 +-
.../requestBodies/StreamRouteUpsertPutId.yaml | 24 +-
.../requestBodies/UpstreamUpsertPatchId.yaml | 19 +-
.../UpstreamUpsertPostCollection.yaml | 35 +-
.../requestBodies/UpstreamUpsertPutId.yaml | 57 +
.../admin-api/components/responses/BadRequest.yaml | 17 +-
.../admin-api/components/responses/NotFound.yaml | 12 +-
.../components/responses/Unauthorized.yaml | 24 +-
.../components/schemas/AuthErrorResponse.yaml | 21 +-
.../admin-api/components/schemas/AwsSecret.yaml | 26 +-
.../components/schemas/CertificateOrReference.yaml | 7 +-
.../components/schemas/CertificatePem.yaml | 11 +-
.../schemas/ConfigValidationConsumer.yaml | 33 +-
.../schemas/ConfigValidationConsumerGroup.yaml | 31 +-
.../schemas/ConfigValidationCredential.yaml | 34 +-
.../schemas/ConfigValidationDocument.yaml | 126 +
.../components/schemas/ConfigValidationError.yaml | 22 +-
.../schemas/ConfigValidationErrorResponse.yaml | 15 +-
.../schemas/ConfigValidationGlobalRule.yaml | 22 +-
.../schemas/ConfigValidationPluginConfig.yaml | 29 +-
.../components/schemas/ConfigValidationProto.yaml | 32 +-
.../components/schemas/ConfigValidationRoute.yaml | 217 +
.../components/schemas/ConfigValidationSSL.yaml | 120 +
.../schemas/ConfigValidationService.yaml | 92 +-
.../schemas/ConfigValidationStreamRoute.yaml | 116 +
.../schemas/ConfigValidationUpstream.yaml | 127 +
.../admin-api/components/schemas/Consumer.yaml | 31 +-
.../components/schemas/ConsumerEnvelope.yaml | 17 +-
.../components/schemas/ConsumerGroup.yaml | 28 +-
.../components/schemas/ConsumerGroupEnvelope.yaml | 17 +-
.../schemas/ConsumerGroupListEnvelope.yaml | 15 +-
.../components/schemas/ConsumerGroupPatch.yaml | 34 +-
.../components/schemas/ConsumerListEnvelope.yaml | 17 +-
.../admin-api/components/schemas/Credential.yaml | 32 +-
.../components/schemas/CredentialEnvelope.yaml | 17 +-
.../components/schemas/CredentialListEnvelope.yaml | 17 +-
.../components/schemas/ErrorResponse.yaml | 15 +-
.../admin-api/components/schemas/GcpSecret.yaml | 56 +
.../admin-api/components/schemas/GlobalRule.yaml | 19 +-
.../components/schemas/GlobalRuleEnvelope.yaml | 17 +-
.../components/schemas/GlobalRuleListEnvelope.yaml | 17 +-
.../components/schemas/GlobalRulePatch.yaml | 19 +-
.../components/schemas/GraphQLCostDecoration.yaml | 71 +
.../schemas/GraphQLCostDecorationCreate.yaml | 63 +
.../schemas/GraphQLCostDecorationEnvelope.yaml | 18 +-
.../schemas/GraphQLCostDecorationListEnvelope.yaml | 16 +-
.../schemas/GraphQLCostDecorationPatch.yaml | 62 +
.../admin-api/components/schemas/HealthCheck.yaml | 16 +-
.../components/schemas/HealthCheckActive.yaml | 72 +
.../schemas/HealthCheckActiveHealthy.yaml | 26 +-
.../schemas/HealthCheckActiveUnhealthy.yaml | 56 +-
.../components/schemas/HealthCheckPassive.yaml | 17 +-
.../schemas/HealthCheckPassiveHealthy.yaml | 39 +-
.../schemas/HealthCheckPassiveUnhealthy.yaml | 47 +-
.../components/schemas/KeepalivePool.yaml | 18 +-
.../admin-api/components/schemas/Labels.yaml | 13 +-
.../components/schemas/NotFoundResponse.yaml | 12 +-
.../admin-api/components/schemas/PluginConfig.yaml | 26 +-
.../components/schemas/PluginConfigEnvelope.yaml | 17 +-
.../schemas/PluginConfigListEnvelope.yaml | 15 +-
.../components/schemas/PluginConfigPatch.yaml | 32 +-
.../admin-api/components/schemas/Plugins.yaml | 7 +-
.../components/schemas/PrivateKeyOrReference.yaml | 7 +-
.../components/schemas/PrivateKeyPem.yaml | 11 +-
.../admin-api/components/schemas/Proto.yaml | 30 +-
.../components/schemas/ProtoEnvelope.yaml | 17 +-
.../components/schemas/ProtoListEnvelope.yaml | 17 +-
.../admin-api/components/schemas/ResourceId.yaml | 13 +-
.../admin-api/components/schemas/Route.yaml | 706 +
.../components/schemas/RouteEnvelope.yaml | 17 +-
.../components/schemas/RouteListEnvelope.yaml | 17 +-
.../admin-api/components/schemas/RoutePatch.yaml | 679 +
.../admin-api/components/schemas/RouteRead.yaml | 268 +
docs/openapi/admin-api/components/schemas/SSL.yaml | 118 +
.../admin-api/components/schemas/SSLEnvelope.yaml | 17 +-
.../components/schemas/SSLListEnvelope.yaml | 17 +-
.../admin-api/components/schemas/SSLPatch.yaml | 124 +
.../admin-api/components/schemas/SSLRead.yaml | 93 +
.../admin-api/components/schemas/SSLWrite.yaml | 119 +
.../components/schemas/SSLWriteEnvelope.yaml | 17 +-
.../admin-api/components/schemas/Secret.yaml | 8 +-
.../schemas/SecretOrEnvironmentReference.yaml | 8 +-
.../admin-api/components/schemas/SecretPatch.yaml | 7 +-
.../admin-api/components/schemas/Service.yaml | 516 +
.../components/schemas/ServiceEnvelope.yaml | 17 +-
.../components/schemas/ServiceListEnvelope.yaml | 17 +-
.../admin-api/components/schemas/ServicePatch.yaml | 514 +
.../admin-api/components/schemas/ServiceRead.yaml | 78 +
.../components/schemas/StoredPrivateKeyValue.yaml | 7 +-
.../admin-api/components/schemas/StreamRoute.yaml | 601 +
.../components/schemas/StreamRouteEnvelope.yaml | 17 +-
.../schemas/StreamRouteListEnvelope.yaml | 15 +-
.../components/schemas/StreamRouteRead.yaml | 163 +
.../admin-api/components/schemas/Timeout.yaml | 19 +-
.../admin-api/components/schemas/Upstream.yaml | 459 +
.../components/schemas/UpstreamEnvelope.yaml | 17 +-
.../components/schemas/UpstreamListEnvelope.yaml | 17 +-
.../components/schemas/UpstreamNodeItem.yaml | 28 +-
.../components/schemas/UpstreamNodes.yaml | 11 +-
.../components/schemas/UpstreamNodesMap.yaml | 12 +-
.../components/schemas/UpstreamPatch.yaml | 435 +
.../admin-api/components/schemas/UpstreamRead.yaml | 426 +
.../admin-api/components/schemas/UpstreamTLS.yaml | 51 +
.../components/schemas/UpstreamTLSRead.yaml | 53 +
.../components/schemas/UpstreamWarmUp.yaml | 47 +
.../components/schemas/UpstreamWarmUpPatch.yaml | 54 +
.../admin-api/components/schemas/VaultSecret.yaml | 23 +-
.../components/securitySchemes/adminKey.yaml | 7 +-
.../components/securitySchemes/apiKeyCookie.yaml | 8 +-
.../components/securitySchemes/apiKeyQuery.yaml | 9 +-
docs/openapi/admin-api/openapi.yaml | 601 +
.../openapi/admin-api/paths/apisix-admin.yaml | 14 +-
docs/openapi/admin-api/paths/configs-validate.yaml | 72 +
docs/openapi/admin-api/paths/configs.yaml | 92 +
.../paths/consumer-groups-by-id-by-sub-path.yaml | 55 +
.../admin-api/paths/consumer-groups-by-id.yaml | 231 +
docs/openapi/admin-api/paths/consumer-groups.yaml | 135 +
.../consumers-by-username-credentials-by-id.yaml | 153 +
.../paths/consumers-by-username-credentials.yaml | 126 +
.../admin-api/paths/consumers-by-username.yaml | 196 +
docs/openapi/admin-api/paths/consumers.yaml | 163 +
.../paths/global-rules-by-id-by-sub-path.yaml | 55 +
.../admin-api/paths/global-rules-by-id.yaml | 223 +
docs/openapi/admin-api/paths/global-rules.yaml | 130 +
.../paths/plugin-configs-by-id-by-sub-path.yaml | 55 +
.../admin-api/paths/plugin-configs-by-id.yaml | 227 +
docs/openapi/admin-api/paths/plugin-configs.yaml | 135 +
.../paths/plugin-metadata-by-plugin-name.yaml | 155 +
docs/openapi/admin-api/paths/plugin-metadata.yaml | 74 +
.../admin-api/paths/plugins-by-plugin-name.yaml | 64 +
docs/openapi/admin-api/paths/plugins-list.yaml | 51 +
docs/openapi/admin-api/paths/plugins-reload.yaml | 45 +
docs/openapi/admin-api/paths/plugins.yaml | 63 +
docs/openapi/admin-api/paths/protos-by-id.yaml | 187 +
docs/openapi/admin-api/paths/protos.yaml | 211 +
.../admin-api/paths/routes-by-id-by-sub-path.yaml | 51 +
docs/openapi/admin-api/paths/routes-by-id.yaml | 431 +
docs/openapi/admin-api/paths/routes.yaml | 279 +
.../admin-api/paths/schema-by-resource.yaml | 23 +-
.../paths/schema-plugins-by-plugin-name.yaml | 55 +
.../paths/schema-validate-by-resource.yaml | 48 +
.../secrets-by-secret-type-by-id-by-sub-path.yaml | 63 +
.../paths/secrets-by-secret-type-by-id.yaml | 334 +
.../admin-api/paths/secrets-by-secret-type.yaml | 44 +
docs/openapi/admin-api/paths/secrets.yaml | 94 +
.../service-graphql-cost-decoration-by-id.yaml | 168 +
.../paths/service-graphql-cost-decorations.yaml | 101 +
.../paths/services-by-id-by-sub-path.yaml | 51 +
docs/openapi/admin-api/paths/services-by-id.yaml | 251 +
docs/openapi/admin-api/paths/services.yaml | 208 +
.../admin-api/paths/ssls-by-id-by-sub-path.yaml | 51 +
docs/openapi/admin-api/paths/ssls-by-id.yaml | 219 +
docs/openapi/admin-api/paths/ssls.yaml | 212 +
.../admin-api/paths/stream-routes-by-id.yaml | 162 +
docs/openapi/admin-api/paths/stream-routes.yaml | 175 +
.../paths/upstreams-by-id-by-sub-path.yaml | 51 +
docs/openapi/admin-api/paths/upstreams-by-id.yaml | 315 +
docs/openapi/admin-api/paths/upstreams.yaml | 305 +
docs/zh/latest/admin-api.md | 4 +-
docs/zh/latest/discovery/kubernetes.md | 2 +-
docs/zh/latest/install-dependencies.md | 2 +-
docs/zh/latest/installation-guide.md | 19 +-
docs/zh/latest/plugins/ai-prompt-guard.md | 4 +
docs/zh/latest/plugins/ai-proxy-multi.md | 4 +-
docs/zh/latest/plugins/ai-proxy.md | 4 +-
docs/zh/latest/plugins/ai-rate-limiting.md | 2 +-
docs/zh/latest/plugins/authz-keycloak.md | 2 +
docs/zh/latest/plugins/brotli.md | 6 +-
docs/zh/latest/plugins/chaitin-waf.md | 4 +
docs/zh/latest/plugins/forward-auth.md | 19 +-
docs/zh/latest/plugins/jwe-decrypt.md | 2 +-
docs/zh/latest/plugins/limit-count.md | 2 +-
docs/zh/latest/plugins/oas-validator.md | 5 +-
docs/zh/latest/plugins/openapi-to-mcp.md | 25 +-
docs/zh/latest/plugins/openid-connect.md | 35 +
docs/zh/latest/plugins/prometheus.md | 24 +
docs/zh/latest/plugins/proxy-cache.md | 2 +
docs/zh/latest/plugins/traffic-split.md | 2 +
docs/zh/latest/plugins/wolf-rbac.md | 22 +-
docs/zh/latest/router-radixtree.md | 10 +
docs/zh/latest/terminology/consumer.md | 31 +-
docs/zh/latest/terminology/credential.md | 8 +-
docs/zh/latest/terminology/global-rule.md | 6 +-
docs/zh/latest/terminology/plugin-config.md | 8 +-
docs/zh/latest/terminology/plugin-metadata.md | 20 +-
docs/zh/latest/terminology/plugin.md | 23 +-
t/admin/plugins.t | 1 +
t/certs/chain_root.crt | 19 +
t/certs/chain_server.crt | 59 +
t/certs/chain_server.key | 28 +
t/certs/crl_ca.crl | 11 +
t/certs/crl_ca.crt | 19 +
t/certs/crl_revoked.crt | 20 +
t/certs/crl_revoked.key | 28 +
t/certs/crl_server.crt | 20 +
t/certs/crl_server.key | 28 +
t/cli/test_access_log.sh | 31 +
t/cli/test_prometheus_reload.sh | 106 +
t/cli/test_prometheus_stream.sh | 39 +
t/cli/test_upstream_mtls.sh | 80 +
t/core/lrucache.t | 249 +
t/core/request.t | 99 +
t/{node/http_host.t => core/resource.t} | 61 +-
t/core/{cjson-bundled.t => runtime-version.t} | 32 +-
t/core/utils.t | 219 +
t/discovery/consul-tls.t | 346 +
t/discovery/consul-watch-race.t | 168 +
t/discovery/kubernetes_list_pagination.t | 114 +
t/discovery/nacos2.t | 248 +
... => messages-streaming-with-cache-in-delta.sse} | 4 +-
t/fixtures/bedrock/converse-cache-usage-cases.json | 196 +
.../bedrock/converse-streaming-with-cache.bin | Bin 0 -> 600 bytes
t/fixtures/bedrock/converse-with-cache.json | 1 +
...se => chat-streaming-cache-creation-tokens.sse} | 2 +-
...e.sse => chat-streaming-cache-write-tokens.sse} | 2 +-
...se => chat-streaming-cache-write-top-level.sse} | 2 +-
...cache.sse => chat-streaming-deepseek-cache.sse} | 2 +-
t/kubernetes/discovery/kubernetes2.t | 2 +-
t/kubernetes/discovery/kubernetes3.t | 8 +-
t/kubernetes/discovery/kubernetes4.t | 4 +-
t/kubernetes/discovery/kubernetes5.t | 33 +-
t/kubernetes/discovery/kubernetes6.t | 372 +
t/kubernetes/discovery/kubernetes7.t | 135 +
t/kubernetes/discovery/stream/kubernetes.t | 2 +-
t/lib/k8s_discovery_e2e.lua | 235 +
t/lib/oidc_introspection.lua | 131 +
t/lib/openapi_to_mcp_fixture.lua | 250 +-
.../lib/openapi_to_mcp_ref_fragment.lua | 41 +-
t/lib/server.lua | 6 +-
t/node/client-mtls-encoded-slash.t | 174 +
t/node/client-mtls-openresty.t | 8 +-
t/node/client-mtls.t | 8 +-
.../{grpc-proxy-stream.t => grpc-client-control.t} | 102 +-
t/node/upstream-tls-trusted-ca.t | 372 +
t/openapi/test_control_validator.py | 189 +
t/openapi/test_validator.py | 97 +
t/plugin/ai-prompt-guard-embeddings.t | 258 +
t/plugin/ai-proxy-anthropic.t | 324 +-
t/plugin/ai-proxy-bedrock-single.t | 68 +
t/plugin/ai-rate-limiting-expression.t | 70 +
t/plugin/ai-rate-limiting.t | 61 +
t/plugin/authz-keycloak3.t | 93 +
t/plugin/authz-keycloak5.t | 2 +-
t/plugin/chaitin-waf-degradation.t | 340 +
t/plugin/chaitin-waf-timeout.t | 95 +
t/plugin/csrf.t | 88 +
t/plugin/forward-auth.t | 8 +-
t/plugin/forward-auth2.t | 4 +-
t/plugin/forward-auth3.t | 63 +
t/plugin/forward-auth4.t | 468 +
t/plugin/jwe-decrypt.t | 52 +
t/plugin/lago.spec.ts | 2 +-
t/plugin/limit-count-redis-delayed-sync2.t | 134 +
t/plugin/limit-count-rules.t | 325 +
t/plugin/multi-auth.t | 227 +
t/plugin/oas-validator3.t | 748 +
t/plugin/ocsp-stapling.t | 4 +-
t/plugin/openapi-to-mcp-cache.t | 175 +
t/plugin/openapi-to-mcp-e2e-sse.t | 180 +-
t/plugin/openapi-to-mcp-e2e-streamable.t | 117 +
t/plugin/openapi-to-mcp-json-pretty.t | 24 +
t/plugin/openapi-to-mcp-openapi-ref.t | 372 +-
t/plugin/openapi-to-mcp-session-lifecycle.t | 66 +-
t/plugin/openapi-to-mcp.t | 1429 +-
t/plugin/openapi_to_mcp_cross_route.py | 50 +
t/plugin/openid-connect-introspection.t | 298 +
t/plugin/openid-connect-upstream-headers.t | 539 +
t/plugin/openid-connect6.t | 2 +-
t/plugin/prometheus-cleanup-interval.t | 113 +
t/plugin/prometheus-process-metrics.t | 210 +
t/plugin/proxy-rewrite3.t | 61 +
t/plugin/request-decompress.t | 1678 ++
t/plugin/request-id.t | 291 +
t/plugin/security-warning2.t | 6 +-
t/plugin/syslog.t | 77 +
t/plugin/traffic-split5.t | 363 +
t/plugin/wolf-rbac.t | 195 +-
t/router/radixtree-uri-normalized-upstream.t | 396 +
t/router/servlet-upstream-uri.t | 14 +-
t/secret/aws.t | 39 +
t/secret/vault.t | 43 +-
t/stream-plugin/prometheus-metrics-service.t | 129 +-
t/stream-plugin/prometheus-metrics.t | 130 +-
t/tars/discovery/tars.t | 20 +
t/utils/gzip.t | 157 +
.../bundle-admin-api-spec.sh | 40 +-
utils/install-dependencies.sh | 29 +-
utils/linux-install-luarocks.sh | 6 +
.requirements => utils/requirements-admin-api.txt | 14 +-
utils/validate-admin-api.py | 391 +
utils/validate-control-api.py | 315 +
443 files changed, 58756 insertions(+), 1649 deletions(-)
create mode 100644 .github/workflows/admin-api-contract.yml
create mode 100644 apisix/plugins/openapi-to-mcp/fetch.lua
create mode 100644 apisix/plugins/prometheus/process_metrics.lua
create mode 100644 apisix/plugins/request-decompress.lua
create mode 100644 apisix/utils/gzip.lua
create mode 100644 docs/en/latest/admin-api.json
create mode 100644 docs/en/latest/control-api.json
create mode 100644 docs/en/latest/plugins/request-decompress.md
create mode 100644 docs/openapi/admin-api/README.md
copy .requirements =>
docs/openapi/admin-api/components/parameters/FilterExpr.yaml (81%)
copy .requirements => docs/openapi/admin-api/components/parameters/Force.yaml
(82%)
copy .requirements =>
docs/openapi/admin-api/components/parameters/IdInPath.yaml (86%)
copy .requirements =>
docs/openapi/admin-api/components/parameters/LabelFilter.yaml (85%)
copy ci/pod/opa/echo.rego =>
docs/openapi/admin-api/components/parameters/NameFilter.yaml (87%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/parameters/Page.yaml (78%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/parameters/PageSize.yaml (75%)
copy .requirements =>
docs/openapi/admin-api/components/parameters/PluginListAll.yaml (82%)
copy .requirements =>
docs/openapi/admin-api/components/parameters/PluginNameInPath.yaml (86%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/parameters/ResourceKindInPath.yaml (72%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/parameters/SchemaNameInPath.yaml (78%)
copy .requirements =>
docs/openapi/admin-api/components/parameters/SecretType.yaml (83%)
copy .requirements =>
docs/openapi/admin-api/components/parameters/Subsystem.yaml (84%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/parameters/Ttl.yaml (74%)
copy .requirements =>
docs/openapi/admin-api/components/parameters/UriFilter.yaml (85%)
copy .requirements =>
docs/openapi/admin-api/components/parameters/UsernameInPath.yaml (82%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/requestBodies/ConsumerGroupUpsertPatchId.yaml
(57%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/requestBodies/ConsumerGroupUpsertPutId.yaml
(53%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/requestBodies/ConsumerUpsertPutCollection.yaml
(52%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/requestBodies/CredentialUpsert.yaml (57%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/requestBodies/GlobalRuleUpsertPatchId.yaml
(57%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/requestBodies/GlobalRuleUpsertPutId.yaml (54%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/requestBodies/GraphQLCostDecorationPatchBody.yaml
(58%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/requestBodies/PluginConfigUpsertPatchId.yaml
(57%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/requestBodies/PluginConfigUpsertPutId.yaml
(51%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/requestBodies/PluginMetadataUpsert.yaml (56%)
create mode 100644
docs/openapi/admin-api/components/requestBodies/ProtoUpsertPostCollection.yaml
create mode 100644
docs/openapi/admin-api/components/requestBodies/ProtoUpsertPutId.yaml
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/requestBodies/RouteUpsertPatchId.yaml (50%)
create mode 100644
docs/openapi/admin-api/components/requestBodies/RouteUpsertPostCollection.yaml
create mode 100644
docs/openapi/admin-api/components/requestBodies/RouteUpsertPutId.yaml
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/requestBodies/SecretUpsertPatchCollection.yaml
(61%)
create mode 100644
docs/openapi/admin-api/components/requestBodies/SecretUpsertPutCollection.yaml
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/requestBodies/ServiceUpsertPatchId.yaml (60%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/requestBodies/ServiceUpsertPostCollection.yaml
(50%)
create mode 100644
docs/openapi/admin-api/components/requestBodies/ServiceUpsertPutId.yaml
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/requestBodies/SslUpsertPatchId.yaml (62%)
create mode 100644
docs/openapi/admin-api/components/requestBodies/SslUpsertPostCollection.yaml
create mode 100644
docs/openapi/admin-api/components/requestBodies/SslUpsertPutId.yaml
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/requestBodies/StreamRouteUpsertPostCollection.yaml
(52%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/requestBodies/StreamRouteUpsertPutId.yaml
(54%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/requestBodies/UpstreamUpsertPatchId.yaml (62%)
copy conf/apisix.yaml =>
docs/openapi/admin-api/components/requestBodies/UpstreamUpsertPostCollection.yaml
(52%)
create mode 100644
docs/openapi/admin-api/components/requestBodies/UpstreamUpsertPutId.yaml
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/responses/BadRequest.yaml (61%)
copy .requirements =>
docs/openapi/admin-api/components/responses/NotFound.yaml (79%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/responses/Unauthorized.yaml (53%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/AuthErrorResponse.yaml (62%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/AwsSecret.yaml (55%)
copy ci/pod/opa/echo.rego =>
docs/openapi/admin-api/components/schemas/CertificateOrReference.yaml (90%)
copy .requirements =>
docs/openapi/admin-api/components/schemas/CertificatePem.yaml (83%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/ConfigValidationConsumer.yaml (60%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/ConfigValidationConsumerGroup.yaml
(63%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/ConfigValidationCredential.yaml (57%)
create mode 100644
docs/openapi/admin-api/components/schemas/ConfigValidationDocument.yaml
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/ConfigValidationError.yaml (59%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/ConfigValidationErrorResponse.yaml
(78%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/ConfigValidationGlobalRule.yaml (71%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/ConfigValidationPluginConfig.yaml
(65%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/ConfigValidationProto.yaml (61%)
create mode 100644
docs/openapi/admin-api/components/schemas/ConfigValidationRoute.yaml
create mode 100644
docs/openapi/admin-api/components/schemas/ConfigValidationSSL.yaml
copy t/kubernetes/configs/endpointslices.yaml =>
docs/openapi/admin-api/components/schemas/ConfigValidationService.yaml (50%)
create mode 100644
docs/openapi/admin-api/components/schemas/ConfigValidationStreamRoute.yaml
create mode 100644
docs/openapi/admin-api/components/schemas/ConfigValidationUpstream.yaml
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/Consumer.yaml (61%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/ConsumerEnvelope.yaml (76%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/ConsumerGroup.yaml (65%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/ConsumerGroupEnvelope.yaml (75%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/ConsumerGroupListEnvelope.yaml (78%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/ConsumerGroupPatch.yaml (53%)
copy .requirements =>
docs/openapi/admin-api/components/schemas/ConsumerListEnvelope.yaml (79%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/Credential.yaml (58%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/CredentialEnvelope.yaml (76%)
copy .requirements =>
docs/openapi/admin-api/components/schemas/CredentialListEnvelope.yaml (78%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/ErrorResponse.yaml (67%)
create mode 100644 docs/openapi/admin-api/components/schemas/GcpSecret.yaml
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/GlobalRule.yaml (74%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/GlobalRuleEnvelope.yaml (76%)
copy .requirements =>
docs/openapi/admin-api/components/schemas/GlobalRuleListEnvelope.yaml (78%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/GlobalRulePatch.yaml (64%)
create mode 100644
docs/openapi/admin-api/components/schemas/GraphQLCostDecoration.yaml
create mode 100644
docs/openapi/admin-api/components/schemas/GraphQLCostDecorationCreate.yaml
copy .requirements =>
docs/openapi/admin-api/components/schemas/GraphQLCostDecorationEnvelope.yaml
(80%)
copy .requirements =>
docs/openapi/admin-api/components/schemas/GraphQLCostDecorationListEnvelope.yaml
(82%)
create mode 100644
docs/openapi/admin-api/components/schemas/GraphQLCostDecorationPatch.yaml
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/HealthCheck.yaml (77%)
create mode 100644
docs/openapi/admin-api/components/schemas/HealthCheckActive.yaml
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/HealthCheckActiveHealthy.yaml (67%)
copy ci/pod/otelcol-contrib/config.yaml =>
docs/openapi/admin-api/components/schemas/HealthCheckActiveUnhealthy.yaml (57%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/HealthCheckPassive.yaml (75%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/HealthCheckPassiveHealthy.yaml (60%)
copy ci/pod/otelcol-contrib/config.yaml =>
docs/openapi/admin-api/components/schemas/HealthCheckPassiveUnhealthy.yaml (62%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/KeepalivePool.yaml (76%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/Labels.yaml (77%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/NotFoundResponse.yaml (77%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/PluginConfig.yaml (67%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/PluginConfigEnvelope.yaml (75%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/PluginConfigListEnvelope.yaml (78%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/PluginConfigPatch.yaml (55%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/Plugins.yaml (76%)
copy ci/pod/opa/echo.rego =>
docs/openapi/admin-api/components/schemas/PrivateKeyOrReference.yaml (90%)
copy .requirements =>
docs/openapi/admin-api/components/schemas/PrivateKeyPem.yaml (85%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/Proto.yaml (63%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/ProtoEnvelope.yaml (76%)
copy .requirements =>
docs/openapi/admin-api/components/schemas/ProtoListEnvelope.yaml (79%)
copy .requirements =>
docs/openapi/admin-api/components/schemas/ResourceId.yaml (83%)
create mode 100644 docs/openapi/admin-api/components/schemas/Route.yaml
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/RouteEnvelope.yaml (76%)
copy .requirements =>
docs/openapi/admin-api/components/schemas/RouteListEnvelope.yaml (79%)
create mode 100644 docs/openapi/admin-api/components/schemas/RoutePatch.yaml
create mode 100644 docs/openapi/admin-api/components/schemas/RouteRead.yaml
create mode 100644 docs/openapi/admin-api/components/schemas/SSL.yaml
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/SSLEnvelope.yaml (76%)
copy .requirements =>
docs/openapi/admin-api/components/schemas/SSLListEnvelope.yaml (79%)
create mode 100644 docs/openapi/admin-api/components/schemas/SSLPatch.yaml
create mode 100644 docs/openapi/admin-api/components/schemas/SSLRead.yaml
create mode 100644 docs/openapi/admin-api/components/schemas/SSLWrite.yaml
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/SSLWriteEnvelope.yaml (72%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/Secret.yaml (78%)
copy .requirements =>
docs/openapi/admin-api/components/schemas/SecretOrEnvironmentReference.yaml
(82%)
copy .requirements =>
docs/openapi/admin-api/components/schemas/SecretPatch.yaml (84%)
create mode 100644 docs/openapi/admin-api/components/schemas/Service.yaml
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/ServiceEnvelope.yaml (76%)
copy .requirements =>
docs/openapi/admin-api/components/schemas/ServiceListEnvelope.yaml (79%)
create mode 100644 docs/openapi/admin-api/components/schemas/ServicePatch.yaml
create mode 100644 docs/openapi/admin-api/components/schemas/ServiceRead.yaml
copy .requirements =>
docs/openapi/admin-api/components/schemas/StoredPrivateKeyValue.yaml (79%)
create mode 100644 docs/openapi/admin-api/components/schemas/StreamRoute.yaml
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/StreamRouteEnvelope.yaml (75%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/StreamRouteListEnvelope.yaml (78%)
create mode 100644
docs/openapi/admin-api/components/schemas/StreamRouteRead.yaml
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/Timeout.yaml (76%)
create mode 100644 docs/openapi/admin-api/components/schemas/Upstream.yaml
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/UpstreamEnvelope.yaml (75%)
copy .requirements =>
docs/openapi/admin-api/components/schemas/UpstreamListEnvelope.yaml (79%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/UpstreamNodeItem.yaml (62%)
copy .requirements =>
docs/openapi/admin-api/components/schemas/UpstreamNodes.yaml (85%)
copy .requirements =>
docs/openapi/admin-api/components/schemas/UpstreamNodesMap.yaml (85%)
create mode 100644 docs/openapi/admin-api/components/schemas/UpstreamPatch.yaml
create mode 100644 docs/openapi/admin-api/components/schemas/UpstreamRead.yaml
create mode 100644 docs/openapi/admin-api/components/schemas/UpstreamTLS.yaml
create mode 100644
docs/openapi/admin-api/components/schemas/UpstreamTLSRead.yaml
create mode 100644
docs/openapi/admin-api/components/schemas/UpstreamWarmUp.yaml
create mode 100644
docs/openapi/admin-api/components/schemas/UpstreamWarmUpPatch.yaml
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/schemas/VaultSecret.yaml (60%)
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/components/securitySchemes/adminKey.yaml (78%)
copy ci/pod/opa/echo.rego =>
docs/openapi/admin-api/components/securitySchemes/apiKeyCookie.yaml (90%)
copy .requirements =>
docs/openapi/admin-api/components/securitySchemes/apiKeyQuery.yaml (81%)
create mode 100644 docs/openapi/admin-api/openapi.yaml
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/paths/apisix-admin.yaml (70%)
create mode 100644 docs/openapi/admin-api/paths/configs-validate.yaml
create mode 100644 docs/openapi/admin-api/paths/configs.yaml
create mode 100644
docs/openapi/admin-api/paths/consumer-groups-by-id-by-sub-path.yaml
create mode 100644 docs/openapi/admin-api/paths/consumer-groups-by-id.yaml
create mode 100644 docs/openapi/admin-api/paths/consumer-groups.yaml
create mode 100644
docs/openapi/admin-api/paths/consumers-by-username-credentials-by-id.yaml
create mode 100644
docs/openapi/admin-api/paths/consumers-by-username-credentials.yaml
create mode 100644 docs/openapi/admin-api/paths/consumers-by-username.yaml
create mode 100644 docs/openapi/admin-api/paths/consumers.yaml
create mode 100644
docs/openapi/admin-api/paths/global-rules-by-id-by-sub-path.yaml
create mode 100644 docs/openapi/admin-api/paths/global-rules-by-id.yaml
create mode 100644 docs/openapi/admin-api/paths/global-rules.yaml
create mode 100644
docs/openapi/admin-api/paths/plugin-configs-by-id-by-sub-path.yaml
create mode 100644 docs/openapi/admin-api/paths/plugin-configs-by-id.yaml
create mode 100644 docs/openapi/admin-api/paths/plugin-configs.yaml
create mode 100644
docs/openapi/admin-api/paths/plugin-metadata-by-plugin-name.yaml
create mode 100644 docs/openapi/admin-api/paths/plugin-metadata.yaml
create mode 100644 docs/openapi/admin-api/paths/plugins-by-plugin-name.yaml
create mode 100644 docs/openapi/admin-api/paths/plugins-list.yaml
create mode 100644 docs/openapi/admin-api/paths/plugins-reload.yaml
create mode 100644 docs/openapi/admin-api/paths/plugins.yaml
create mode 100644 docs/openapi/admin-api/paths/protos-by-id.yaml
create mode 100644 docs/openapi/admin-api/paths/protos.yaml
create mode 100644 docs/openapi/admin-api/paths/routes-by-id-by-sub-path.yaml
create mode 100644 docs/openapi/admin-api/paths/routes-by-id.yaml
create mode 100644 docs/openapi/admin-api/paths/routes.yaml
copy .github/actions/.editorconfig =>
docs/openapi/admin-api/paths/schema-by-resource.yaml (56%)
create mode 100644
docs/openapi/admin-api/paths/schema-plugins-by-plugin-name.yaml
create mode 100644
docs/openapi/admin-api/paths/schema-validate-by-resource.yaml
create mode 100644
docs/openapi/admin-api/paths/secrets-by-secret-type-by-id-by-sub-path.yaml
create mode 100644
docs/openapi/admin-api/paths/secrets-by-secret-type-by-id.yaml
create mode 100644 docs/openapi/admin-api/paths/secrets-by-secret-type.yaml
create mode 100644 docs/openapi/admin-api/paths/secrets.yaml
create mode 100644
docs/openapi/admin-api/paths/service-graphql-cost-decoration-by-id.yaml
create mode 100644
docs/openapi/admin-api/paths/service-graphql-cost-decorations.yaml
create mode 100644 docs/openapi/admin-api/paths/services-by-id-by-sub-path.yaml
create mode 100644 docs/openapi/admin-api/paths/services-by-id.yaml
create mode 100644 docs/openapi/admin-api/paths/services.yaml
create mode 100644 docs/openapi/admin-api/paths/ssls-by-id-by-sub-path.yaml
create mode 100644 docs/openapi/admin-api/paths/ssls-by-id.yaml
create mode 100644 docs/openapi/admin-api/paths/ssls.yaml
create mode 100644 docs/openapi/admin-api/paths/stream-routes-by-id.yaml
create mode 100644 docs/openapi/admin-api/paths/stream-routes.yaml
create mode 100644
docs/openapi/admin-api/paths/upstreams-by-id-by-sub-path.yaml
create mode 100644 docs/openapi/admin-api/paths/upstreams-by-id.yaml
create mode 100644 docs/openapi/admin-api/paths/upstreams.yaml
create mode 100644 t/certs/chain_root.crt
create mode 100644 t/certs/chain_server.crt
create mode 100644 t/certs/chain_server.key
create mode 100644 t/certs/crl_ca.crl
create mode 100644 t/certs/crl_ca.crt
create mode 100644 t/certs/crl_revoked.crt
create mode 100644 t/certs/crl_revoked.key
create mode 100644 t/certs/crl_server.crt
create mode 100644 t/certs/crl_server.key
copy t/{node/http_host.t => core/resource.t} (54%)
copy t/core/{cjson-bundled.t => runtime-version.t} (64%)
create mode 100644 t/discovery/consul-tls.t
create mode 100644 t/discovery/consul-watch-race.t
create mode 100644 t/discovery/kubernetes_list_pagination.t
copy t/fixtures/anthropic/{messages-streaming-with-cache.sse =>
messages-streaming-with-cache-in-delta.sse} (68%)
create mode 100644 t/fixtures/bedrock/converse-cache-usage-cases.json
create mode 100644 t/fixtures/bedrock/converse-streaming-with-cache.bin
create mode 100644 t/fixtures/bedrock/converse-with-cache.json
copy t/fixtures/openai/{chat-streaming-with-cache.sse =>
chat-streaming-cache-creation-tokens.sse} (74%)
copy t/fixtures/openai/{chat-streaming-with-cache.sse =>
chat-streaming-cache-write-tokens.sse} (74%)
copy t/fixtures/openai/{chat-streaming-with-cache.sse =>
chat-streaming-cache-write-top-level.sse} (61%)
copy t/fixtures/openai/{chat-streaming-with-cache.sse =>
chat-streaming-deepseek-cache.sse} (74%)
create mode 100644 t/kubernetes/discovery/kubernetes6.t
create mode 100644 t/kubernetes/discovery/kubernetes7.t
create mode 100644 t/lib/k8s_discovery_e2e.lua
create mode 100644 t/lib/oidc_introspection.lua
copy apisix/utils/noop_span.lua => t/lib/openapi_to_mcp_ref_fragment.lua (51%)
create mode 100644 t/node/client-mtls-encoded-slash.t
copy t/node/{grpc-proxy-stream.t => grpc-client-control.t} (52%)
create mode 100644 t/node/upstream-tls-trusted-ca.t
create mode 100644 t/openapi/test_control_validator.py
create mode 100644 t/openapi/test_validator.py
create mode 100644 t/plugin/ai-prompt-guard-embeddings.t
create mode 100644 t/plugin/chaitin-waf-degradation.t
create mode 100644 t/plugin/forward-auth4.t
create mode 100644 t/plugin/openapi_to_mcp_cross_route.py
create mode 100644 t/plugin/openid-connect-introspection.t
create mode 100644 t/plugin/openid-connect-upstream-headers.t
create mode 100644 t/plugin/prometheus-cleanup-interval.t
create mode 100644 t/plugin/prometheus-process-metrics.t
create mode 100644 t/plugin/request-decompress.t
create mode 100644 t/router/radixtree-uri-normalized-upstream.t
create mode 100644 t/utils/gzip.t
copy .github/workflows/license-checker.yml => utils/bundle-admin-api-spec.sh
(50%)
mode change 100644 => 100755
copy .requirements => utils/requirements-admin-api.txt (70%)
create mode 100644 utils/validate-admin-api.py
create mode 100644 utils/validate-control-api.py