commit WIP

This commit is contained in:
Florian Forster
2025-08-05 18:23:00 -07:00
parent b7f147d0fc
commit ec0c5f2a71
14 changed files with 4025 additions and 340 deletions

View File

@@ -155,10 +155,9 @@ core_integration_test: core_integration_server_start core_integration_test_packa
.PHONY: core_lint
core_lint:
golangci-lint run \
go run github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.3.1 run \
--timeout 10m \
--config ./.golangci.yaml \
--out-format=github-actions \
--concurrency=$$(getconf _NPROCESSORS_ONLN)
.PHONY: login_pull

View File

@@ -4,44 +4,12 @@ This is the ZITADEL Console Angular application.
## Development
### Prerequisites
- Node.js 18 or later
- pnpm (latest)
### Installation
```bash
pnpm install
```
### Proto Generation
The Console app uses **dual proto generation** with Turbo dependency management:
1. **`@zitadel/proto` generation**: Modern ES modules with `@bufbuild/protobuf` for v2 APIs
2. **Local `buf.gen.yaml` generation**: Traditional protobuf JavaScript classes for v1 APIs
The Console app's `turbo.json` ensures that `@zitadel/proto#generate` runs before the Console's own generation, providing both:
- Modern schemas from `@zitadel/proto` (e.g., `UserSchema`, `DetailsSchema`)
- Legacy classes from `src/app/proto/generated` (e.g., `User`, `Project`)
Generated files:
- **`@zitadel/proto`**: Modern ES modules in `login/packages/zitadel-proto/`
- **Local generation**: Traditional protobuf files in `src/app/proto/generated/`
- TypeScript definition files (`.d.ts`)
- JavaScript files (`.js`)
- gRPC client files (`*ServiceClientPb.ts`)
- OpenAPI/Swagger JSON files (`.swagger.json`)
To generate proto files:
```bash
pnpm run generate
```
This automatically runs both generations in the correct order via Turbo dependencies.
### Development Server
@@ -49,7 +17,7 @@ This automatically runs both generations in the correct order via Turbo dependen
To start the development server:
```bash
pnpm start
nx run @zitadel/console:dev
```
This will:
@@ -62,7 +30,7 @@ This will:
To build for production:
```bash
pnpm run build
nx run @zitadel/console:build
```
This will:
@@ -75,63 +43,10 @@ This will:
To run linting and formatting checks:
```bash
pnpm run lint
nx run @zitadel/console:lint
```
To auto-fix formatting issues:
```bash
pnpm run lint:fix
```
## Project Structure
- `src/app/proto/generated/` - Generated proto files (Angular-specific format)
- `buf.gen.yaml` - Local proto generation configuration
- `turbo.json` - Turbo dependency configuration for proto generation
- `prebuild.development.js` - Development environment configuration script
## Proto Generation Details
The Console app uses **dual proto generation** managed by Turbo dependencies:
### Dependency Chain
The Console app has the following build dependencies managed by Turbo:
1. `@zitadel/proto#generate` - Generates modern protobuf files
2. `@zitadel/client#build` - Builds the TypeScript gRPC client library
3. `console#generate` - Generates Console-specific protobuf files
4. `console#build` - Builds the Angular application
This ensures that the Console always has access to the latest client library and protobuf definitions.
### Legacy v1 API (Traditional Protobuf)
- Uses local `buf.gen.yaml` configuration
- Generates traditional Google protobuf JavaScript classes extending `jspb.Message`
- Uses plugins: `protocolbuffers/js`, `grpc/web`, `grpc-ecosystem/openapiv2`
- Output: `src/app/proto/generated/`
- Used for: Most existing Console functionality
### Modern v2 API (ES Modules)
- Uses `@zitadel/proto` package generation
- Generates modern ES modules with `@bufbuild/protobuf`
- Uses plugin: `@bufbuild/es` with ES modules and JSON types
- Output: `login/packages/zitadel-proto/`
- Used for: New user v2 API and services
### Dependency Management
The Console's `turbo.json` ensures proper execution order:
1. `@zitadel/proto#generate` runs first (modern ES modules)
2. Console's local generation runs second (traditional protobuf)
3. Build/lint/start tasks depend on both generations being complete
This approach allows the Console app to use both v1 and v2 APIs while maintaining proper build dependencies.
## Legacy Information
This project was originally generated with Angular CLI version 8.3.20 and has been updated over time.
nx run @zitadel/console:lint:fix

View File

@@ -86,7 +86,10 @@
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"port": 3001,
"host": "0.0.0.0"
},
"configurations": {
"production": {
"browserTarget": "console:build:production"

View File

@@ -23,16 +23,15 @@
"@zitadel/client:build"
]
},
"dev": {
"dependsOn": [
"generate"
]
},
"docker:build": {
"dependsOn": [
"build"
],
"options": {
"push": false,
"tags": [
"zitadel/console:latest"
]
}
]
},
"docker:run": {
"options": {

View File

@@ -4,7 +4,7 @@
"private": true,
"type": "module",
"scripts": {
"dev": "next dev",
"dev": "next dev --port 3002 --host 0.0.0.0",
"build": "next build",
"build:login:standalone": "NEXT_PUBLIC_BASE_PATH=/ui/v2/login NEXT_OUTPUT_MODE=standalone next build",
"start": "next start",