feat: initial schemas-app implementation

- 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>
This commit is contained in:
2025-11-22 16:42:35 +01:00
commit 072e1b10f1
41 changed files with 25557 additions and 0 deletions
+72
View File
@@ -0,0 +1,72 @@
// https://nuxt.com/docs/api/configuration/nuxt-config
export default defineNuxtConfig({
compatibilityDate: '2024-11-21',
devtools: { enabled: true },
ssr: false,
devServer: {
port: 3500,
},
modules: [
'vuetify-nuxt-module',
'@nuxt/eslint',
'@nuxtjs/stylelint-module',
],
eslint: {
checker: true,
},
stylelint: {
lintOnStart: false,
},
vuetify: {
moduleOptions: {
/* module specific options */
},
vuetifyOptions: {
theme: {
defaultTheme: 'light',
themes: {
light: {
colors: {
primary: '#1976D2',
secondary: '#424242',
accent: '#82B1FF',
error: '#FF5252',
info: '#2196F3',
success: '#4CAF50',
warning: '#FB8C00',
},
},
},
},
},
},
app: {
head: {
title: 'Unbound Schemas',
meta: [
{ charset: 'utf-8' },
{ name: 'viewport', content: 'width=device-width, initial-scale=1' },
{ name: 'description', content: 'View and manage your federated GraphQL schemas' },
],
},
},
runtimeConfig: {
public: {
apiBase: process.env.NUXT_PUBLIC_API_BASE || 'http://localhost:8080',
auth0: {
domain: process.env.NUXT_PUBLIC_AUTH0_DOMAIN || '',
clientId: process.env.NUXT_PUBLIC_AUTH0_CLIENT_ID || '',
audience: process.env.NUXT_PUBLIC_AUTH0_AUDIENCE || 'https://schemas.unbound.se',
},
},
},
})