Renovate installs the latest npm (12.2.1) when unconstrained. npm 12 defaults to allow-remote=none and then refuses to read a package with bundleDependencies by its registry tarball URL (EALLOWREMOTE, npm/cli#9800), which breaks lockfile updates. npm 11 is what Node 24 ships. Drop the constraint once #9800 is fixed.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BWDQY44qgQoePAsr8zpW4a
Moves the production deploy from AWS to the Frostmoln production cluster (namespace `schemas`), with unboundsoftware/schemas.
- `deploy-prod` (AWS, failing since CI left AWS) → `deploy-prod-frostmoln`: `deploy prod-frostmoln -n schemas`.
- Restricted Pod Security: `nginxinc/nginx-unprivileged` (uid 101, port 8080; 1.31.7 isn't published for it yet, so 1.31.6). `nginx.conf`: no `user`, pid and temp paths under `/tmp`, `listen 8080`. Configs copied with `--chmod=644`. Service is ClusterIP.
- `autoscale-prod`/`pdb-prod` → `-prod-frostmoln`; the ALB ingress → a Traefik one for `/` on `schemas.unbound.se` (the API's `/query` ingress wins on the longer path).
Checked locally (amd64): as uid 101 with all capabilities dropped, `/health`, `/` and SPA routes 200, security headers present.
**Merge with** the schemas PR, after infra#1878 is applied.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_01Ma8eHhW59hLAJuLzBnLvUu
Reviewed-on: #391
## Summary
`k8s/deploy.yaml` takes the image from build-tools: `image: ${IMAGE}` instead of the hard-coded `oci.unbound.se/unboundsoftware/schemas-app:${COMMIT}`.
`deploy` substitutes `${IMAGE}` with `<registry>/<owner>/<name>:<tag>`, where the registry comes from the build-tools config and the tag is the value `${COMMIT}` gets today. The rendered reference is unchanged. Moving off `oci.unbound.se` later becomes one change in infra.
Validated on shiny/time-service#864: merged and deployed to AWS staging and Frostmoln staging with the same image. Prerequisites, all merged:
- unboundsoftware/infra#1808: registry in `BUILDTOOLS_FROSTMOLN_STAGING`
- shiny/acctest#952: acctest pins build-tools to the Gitea registry
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Reviewed-on: #376
## Summary
- Remove `@nuxtjs/eslint-module` — redundant with `@nuxt/eslint`, not referenced in nuxt.config.ts
- Remove `eslint-plugin-nuxt` — not used in eslint.config.mjs, bundles conflicting old deps
- Remove `vite-plugin-eslint2` — peer dep of `@nuxt/eslint`, not needed as direct dep
- Remove `vue-router` — auto-included by Nuxt
This also unblocks the ESLint v10 upgrade by removing `eslint-webpack-plugin` (transitive dep of `@nuxtjs/eslint-module`).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Reviewed-on: #128
Remove cpu from resource limits while keeping memory limits and all
requests intact. CPU limits cause unnecessary throttling and
overcommit alerts when actual usage is far below limits.
Add a package rule in `renovate.json` to disable updates for the
`registry.gitlab.com/unboundsoftware/schemas-app` package
managed by Kubernetes. This change is implemented to prevent
unwanted updates for this specific package, ensuring stability
in the deployment process.
Handle authentication errors related to consent and login in the Apollo
client by redirecting users to the Auth0 login page as necessary. Update
the schema-fetching logic to support dynamic references from the URL,
removing mock data and improving overall data integrity in the
application.
Ensure proper loading states during the fetching process.
Updates the Nuxt configuration to include a custom SVG favicon
for better branding and user experience. Adds the favicon SVG
file to the public directory, enhancing the visual appeal of
the application and ensuring it displays properly in the
browser tab.
This change eliminates the manual deployment requirement in the CI/CD
pipeline for the production branch, allowing for automatic deployments.
It streamlines the deployment process, ensuring that changes to the
production branch are deployed without additional approval steps.
Add the 'all' option to the coverage configuration to ensure that
all files are included in the coverage reports. This improves the
accuracy of the coverage metrics by encompassing all relevant
source files.
Set default values for Auth0 domain and clientId in nuxt.config.ts to
ensure the application works with predefined settings when environment
variables are not provided.
Remove the specific digest from the schemas-app image in
deploy.yaml to allow for easier versioning and flexibility.
The change ensures that the latest image tagged with the
commit hash is always used during deployments, improving
management of application updates.
Adds a new Federation Graph page to display subgraphs and their
schemas. Implements loading state and error handling. Enhances
coverage reporting by including 'lcov' format for better insights
into test coverage metrics.
- Add Nuxt 4 application with Vuetify UI framework
- Implement GraphQL schema registry management interface
- Add Apollo Client integration with Auth0 authentication
- Create organization and API key management
- Add schema and ref browsing capabilities
- Implement organization switcher for multi-org users
- Add delete functionality for organizations and API keys
- Create Kubernetes deployment descriptors
- Add Docker configuration with nginx
Features:
- Dashboard with organization overview
- Schema browsing by ref with supergraph viewing
- Ref management with schema details
- Settings page for organizations and API keys
- User list per organization with provider icons
- Admin-only organization creation
- Delete confirmations with warnings
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>