{ "$schema": "../../node_modules/nx/schemas/project-schema.json", "targets": { "prod": { "description": "Runs the Next.js Login application in production mode from the standalone build", "continuous": true, "dependsOn": ["build"], "defaultConfiguration": "default", "configurations": { "default": {} } }, "dev": { "description": "Runs the Next.js Login application in development mode with hot-reloading", "continuous": true, "dependsOn": ["^build"] }, "build": { "description": "Builds the Next.js Login application in standalone mode for production", "cache": true, "dependsOn": ["^build"], "inputs": [ "default", "{workspaceRoot}/pnpm-lock.yaml", "!{projectRoot}/.env.*", "!{projectRoot}/.local.env", "!{projectRoot}/acceptance/**/*", "!{projectRoot}/dockerized/**/*" ], "outputs": ["{projectRoot}/.next/standalone"] }, "pack": { "description": "Builds a local Docker image for the ZITADEL Login UI (zitadel/zitadel-login:local). Requires Docker daemon.", "dependsOn": ["build"], "command": "docker build -f apps/login/Dockerfile -t zitadel/zitadel-login:local apps/login", "cache": false, "inputs": [ "default", "{workspaceRoot}/pnpm-lock.yaml", "{projectRoot}/Dockerfile", "!{projectRoot}/.env.*", "!{projectRoot}/acceptance/**/*" ] }, "pack-fips": { "description": "Builds a local FIPS-hardened Docker image for the ZITADEL Login UI (zitadel/zitadel-login:local-fips). Requires Docker daemon.", "dependsOn": ["build"], "command": "docker build -f apps/login/Dockerfile.fips -t zitadel/zitadel-login:local-fips apps/login", "cache": false, "inputs": [ "default", "{workspaceRoot}/pnpm-lock.yaml", "{projectRoot}/Dockerfile.fips", "!{projectRoot}/.env.*", "!{projectRoot}/acceptance/**/*" ] }, "build-vercel": { "description": "Builds the Next.js Login application for Vercel deployment", "cache": false, "dependsOn": ["^build"], "inputs": [ "default", "{workspaceRoot}/pnpm-lock.yaml", "!{projectRoot}/.env.*", "!{projectRoot}/.local.env", "!{projectRoot}/acceptance/**/*", "!{projectRoot}/dockerized/**/*" ], "outputs": ["{projectRoot}/.next/!(cache|standalone)/**"] }, "lint": { "description": "Runs all linters", "dependsOn": ["lint-check-*"] }, "lint-check-prettier": { "description": "Checks code formatting with Prettier", "cache": true, "inputs": ["default"] }, "lint-check-next": { "description": "Runs Next.js specific lint checks", "cache": true, "inputs": ["default"], "dependsOn": ["^build"] }, "test": { "description": "Runs all tests (unit, and dockerized)", "dependsOn": ["test-unit", "test-dockerized"] }, "test-unit": { "description": "Runs unit tests using Vitest", "dependsOn": ["build"] }, "test-dockerized": { "description": "Runs dockerized integration tests (OpenTelemetry and custom CA certificate tests)", "dependsOn": ["build"], "executor": "nx:run-commands", "cache": true, "inputs": ["default", "!{projectRoot}/acceptance/**/*", "!{projectRoot}/dockerized/**/output/**/*"], "options": { "cwd": "{projectRoot}", "commands": ["pnpm vitest --run --config vitest.config.dockerized.ts"] } }, "test-ssl": { "description": "Runs TLS integration tests using testcontainers", "dependsOn": ["build"], "executor": "nx:run-commands", "cache": true, "inputs": ["default", "!{projectRoot}/acceptance/**/*", "!{projectRoot}/dockerized/**/output/**/*"], "options": { "cwd": "{projectRoot}", "commands": ["pnpm vitest --run --config vitest.config.dockerized.ts dockerized/ssl"] } }, "test-acceptance": { "description": "Runs the Playwright acceptance test suite in apps/login/acceptance/ against a running ZITADEL stack. Requires LOGIN_BASE_URL, ZITADEL_API_URL, and ZITADEL_ADMIN_TOKEN to be set (or apps/login/.env.test.local to exist). Run the setup script at acceptance/setup/setup.sh first to seed config.", "executor": "nx:run-commands", "options": { "cwd": "{projectRoot}", "command": "pnpm exec playwright test --config acceptance/playwright.config.ts" }, "inputs": [ "{projectRoot}/acceptance/**", "!{projectRoot}/acceptance/playwright-report/**", "!{projectRoot}/acceptance/test-results/**", "{workspaceRoot}/pnpm-lock.yaml" ] }, "pack-archive": { "description": "Packages the standalone Login application build into an archive", "dependsOn": ["build"], "executor": "nx:run-commands", "options": { "parallel": false, "env": { "STANDALONE_DIR": "{projectRoot}/.next/standalone", "PACK_DIR": "{workspaceRoot}/.artifacts/pack" }, "commands": ["mkdir -p ${PACK_DIR}", "tar -czf ${PACK_DIR}/zitadel-login.tar.gz -C ${STANDALONE_DIR} ."] }, "cache": true, "outputs": ["{workspaceRoot}/.artifacts/pack/zitadel-login.tar.gz"] } } }