diff --git a/.github/workflows/conformance.yml b/.github/workflows/conformance.yml
deleted file mode 100644
index ec1324a..0000000
--- a/.github/workflows/conformance.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-name: Conformance
-
-on: [push, pull_request]
-
-# 🔐 Restrict GITHUB_TOKEN permissions (least privilege)
-permissions:
- contents: read
-
-jobs:
- test:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- - uses: actions/setup-node@v4
- with: { node-version: '20' }
- - run: npm ci
- - run: npm run test
- - uses: actions/upload-artifact@v4
- with:
- name: conformance-json
- path: docs/conformance.json
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 842f6ae..173be9d 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -54,7 +54,7 @@ Run the full test suite:
npm test
```
-This runs Vitest plus the conformance report writer. See `docs/testing.md` for:
+This runs the Vitest suite. See `docs/testing.md` for:
- `/__test__/echo` routes
- Scope/RBAC parity checks
- Proxy + echo server validation
diff --git a/README.md b/README.md
index d4b42b4..d588474 100644
--- a/README.md
+++ b/README.md
@@ -8,12 +8,6 @@
-
-
-
See, price, and control every tool call your AI agents make.
@@ -175,7 +169,7 @@ AI apps have three actors — user, LLM, backend — and no shared identity laye | `demos/` | MCP issuer + ChatGPT Apps SDK connectors that mint demo JWTs | | `tools/` | Echo server, mock tool backend, Cloud Run deploy helper | | `tests/` | Vitest smoke tests | -| `docs/` | Auth0 walkthroughs, conformance output, endpoint references, troubleshooting | +| `docs/` | Auth0 walkthroughs, endpoint references, troubleshooting | ## Testing diff --git a/docs/conformance.json b/docs/conformance.json deleted file mode 100644 index 963d627..0000000 --- a/docs/conformance.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "version": "0.1.0", - "spec": "Apps SDK OAuth 2.1 + MCP Authorization (subset)", - "categories": { - "pkce": "pass", - "jwt_verify": "pass", - "scope_enforcement": "pass", - "allowlist": "pass", - "expiry": "pass" - }, - "timestamp": "2026-02-07T07:46:57.508Z" -} \ No newline at end of file diff --git a/docs/deployment.md b/docs/deployment.md index aaac788..edb6691 100644 --- a/docs/deployment.md +++ b/docs/deployment.md @@ -71,11 +71,11 @@ docker run -p 8080:8080 \ ### CI/CD -`.github/workflows/conformance.yml` runs `npm test` and updates `docs/conformance.json` on every push to main. +`.github/workflows/build.yml` builds the monorepo and runs `npm test` on every push and pull request to main. **To add deployment:** ```yaml -# Add to conformance.yml after tests pass +# Add to build.yml after tests pass - name: Deploy to Cloud Run if: github.ref == 'refs/heads/main' run: ./tools/deploy/cloud-run.sh apps/gateway-server diff --git a/docs/operations.md b/docs/operations.md index 81d3363..57d7b9a 100644 --- a/docs/operations.md +++ b/docs/operations.md @@ -107,7 +107,7 @@ Run the full test suite: npm test ``` -This runs Vitest plus the conformance report writer that updates `docs/conformance.json`. +This runs the Vitest suite across the gateway and core packages. For detailed testing workflows, see: - `docs/testing.md` — `/__test__/echo` routes, scope checks, proxy validation @@ -126,7 +126,7 @@ For detailed testing workflows, see: Toggles worth noting: - `DEMO_MODE=true` swaps in `OAUTH_*_DEMO` overrides so demos can mint JWTs locally. -- `ENABLE_TEST_ROUTES=true` + `TOOL_SCOPE_ALLOWLIST_JSON` expose `/__test__/echo` for conformance runs. +- `ENABLE_TEST_ROUTES=true` + `TOOL_SCOPE_ALLOWLIST_JSON` expose `/__test__/echo` for scope/proxy validation runs. - `RATE_LIMIT_WINDOW_MS` / `RATE_LIMIT_MAX` tune limitabl without editing TypeScript. - `.env.example` plus `apps/gateway-server/.env.example` enumerate every knob. diff --git a/docs/testing.md b/docs/testing.md index d526506..65edcca 100644 --- a/docs/testing.md +++ b/docs/testing.md @@ -3,7 +3,7 @@ This document covers: - How to enable internal `/__test__` routes - Scope/RBAC parity checks -- Vitest + conformance report +- Running the Vitest suite --- @@ -21,7 +21,7 @@ These routes are guarded by: - `TOOL_SCOPE_ALLOWLIST_JSON` (allowed scopes per test route) - The `X-Required-Scope` header (per-request scope requirement you pass in curl) -They are for validation and conformance testing only, not for production traffic. +They are for validation and scope/proxy testing only, not for production traffic. --- @@ -95,12 +95,10 @@ npm test This runs: - Vitest against the gateway and core packages (see `vitest.config.mts`) -- The conformance report writer, which emits a summary of MCP/Auth OAuth behavior into `docs/conformance.json` **Key files:** - `package.json` → test script - `vitest.config.mts` → shared test config - `tests/smoke.test.ts` → placeholder smoke test -- `packages/explicabl-core/src/reporting/saveReport.ts` → writes the conformance report artifact --- \ No newline at end of file diff --git a/docs/testing/conformance.md b/docs/testing/conformance.md deleted file mode 100644 index e69de29..0000000 diff --git a/package.json b/package.json index c7779d1..c3cfc46 100644 --- a/package.json +++ b/package.json @@ -20,9 +20,8 @@ "build:admin": "npm --workspace apps/admin-ui run build", "start:server": "npm --workspace apps/gateway-server run start", "start:admin": "npm --workspace apps/admin-ui run preview", - "test": "vitest run --config ./vitest.config.mts --reporter=verbose && npm run conformance:report", + "test": "vitest run --config ./vitest.config.mts --reporter=verbose", "test:watch": "vitest --config ./vitest.config.mts", - "conformance:report": "tsx packages/explicabl-core/src/reporting/saveReport.ts", "demo:mcp": "npm-run-all -p demo:issuer demo:gateway demo:mcp-server", "demo:issuer": "npm run -w @gatewaystack/demo-mcp-server dev", "demo:mcp-server": "npm run -w @gatewaystack/demo-mcp-server dev", diff --git a/packages/explicabl-core/src/reporting/saveReport.js b/packages/explicabl-core/src/reporting/saveReport.js deleted file mode 100644 index 3e90f4a..0000000 --- a/packages/explicabl-core/src/reporting/saveReport.js +++ /dev/null @@ -1,16 +0,0 @@ -import fs from "node:fs"; -const out = { - version: "0.1.0", - spec: "Apps SDK OAuth 2.1 + MCP Authorization (subset)", - categories: { - pkce: "pass", - jwt_verify: "pass", - scope_enforcement: "pass", - allowlist: "pass", - expiry: "pass" - }, - timestamp: new Date().toISOString() -}; -fs.mkdirSync("docs", { recursive: true }); -fs.writeFileSync("docs/conformance.json", JSON.stringify(out, null, 2)); -console.log("[conformance] wrote docs/conformance.json"); diff --git a/packages/explicabl-core/src/reporting/saveReport.ts b/packages/explicabl-core/src/reporting/saveReport.ts deleted file mode 100644 index 7161784..0000000 --- a/packages/explicabl-core/src/reporting/saveReport.ts +++ /dev/null @@ -1,16 +0,0 @@ -import * as fs from "node:fs"; -const out = { - version: "0.1.0", - spec: "Apps SDK OAuth 2.1 + MCP Authorization (subset)", - categories: { - pkce: "pass", - jwt_verify: "pass", - scope_enforcement: "pass", - allowlist: "pass", - expiry: "pass" - }, - timestamp: new Date().toISOString() -}; -fs.mkdirSync("docs", { recursive: true }); -fs.writeFileSync("docs/conformance.json", JSON.stringify(out, null, 2)); -console.log("[conformance] wrote docs/conformance.json");