# ==================================== # Nexus API Routes (Rust Backend) # ==================================== # Static files - public, no auth (logo for emails, etc.) - id: "nexus:static:public" version: "v0.40.0" upstream: url: "http://127.0.0.1:5050" preserve_host: false match: url: "https://api.example.com/static/<**>" methods: - GET - HEAD authenticators: - handler: noop authorizer: handler: allow mutators: - handler: noop # Health endpoint - public, no auth - id: "nexus:health:public" version: "v0.40.0" upstream: url: "http://127.0.0.1:5050" preserve_host: false match: url: "https://api.example.com/health" methods: - GET authenticators: - handler: noop authorizer: handler: allow mutators: - handler: noop # GraphQL endpoint - CORS preflight (must come before authenticated rule) - id: "nexus:graphql:preflight" version: "v0.40.0" upstream: url: "http://127.0.0.1:5050" preserve_host: false match: url: "https://api.example.com/graphql" methods: - OPTIONS authenticators: - handler: noop authorizer: handler: allow mutators: - handler: noop # GraphQL endpoint - authenticated - id: "nexus:graphql:authenticated" version: "v0.40.0" upstream: url: "http://127.0.0.1:5050" preserve_host: false match: url: "https://api.example.com/graphql" methods: - GET - POST authenticators: - handler: cookie_session authorizer: handler: allow mutators: - handler: header # GraphQL Playground - authenticated (same as graphql) - id: "nexus:graphql:playground" version: "v0.40.0" upstream: url: "http://127.0.0.1:5050" preserve_host: false match: url: "https://api.example.com/graphql/playground" methods: - GET authenticators: - handler: cookie_session - handler: anonymous authorizer: handler: allow mutators: - handler: noop # Media endpoint - authenticated (session photos/videos) - id: "nexus:media:authenticated" version: "v0.40.0" upstream: url: "http://127.0.0.1:5050" preserve_host: false match: url: "https://api.example.com/api/media/<**>" methods: - GET - HEAD - OPTIONS authenticators: - handler: cookie_session authorizer: handler: allow mutators: - handler: header errors: - handler: json # ==================================== # Local Development Routes (port 7200) # ==================================== # Health endpoint - localhost - id: "nexus:health:localhost" version: "v0.40.0" upstream: url: "http://127.0.0.1:5050" preserve_host: false match: url: "http://localhost:7200/health" methods: - GET authenticators: - handler: noop authorizer: handler: allow mutators: - handler: noop # GraphQL endpoint - localhost - id: "nexus:graphql:localhost" version: "v0.40.0" upstream: url: "http://127.0.0.1:5050" preserve_host: false match: url: "http://localhost:7200/graphql" methods: - GET - POST - OPTIONS authenticators: - handler: cookie_session authorizer: handler: allow mutators: - handler: header # Media endpoint - localhost - id: "nexus:media:localhost" version: "v0.40.0" upstream: url: "http://127.0.0.1:5050" preserve_host: false match: url: "http://localhost:7200/api/media/<**>" methods: - GET - HEAD - OPTIONS authenticators: - handler: cookie_session authorizer: handler: allow mutators: - handler: header