Files
zitadel/README.md

66 lines
2.8 KiB
Markdown
Raw Normal View History

2023-04-03 15:38:50 +02:00
# ZITADEL typescript with Turborepo and Changesets
2023-04-03 11:45:27 +02:00
2023-04-03 15:38:50 +02:00
This is an monorepo containing all typescript/javascript packages and applications for ZITADEL. Versioning and package publishing is handled by [Changesets](https://github.com/changesets/changesets) and fully automated with GitHub Actions.
2023-04-03 11:45:27 +02:00
## What's inside?
This Turborepo includes the following:
### Apps and Packages
- `login`: The new login UI powered by Next.js
2023-04-14 09:09:21 +02:00
- `@zitadel/server`: core components for establishing node client connection, grpc stub
- `@zitadel/client`: core components for establishing web client connection, grpc stub
2023-04-14 14:35:21 +02:00
- `@zitadel/react`: shared React utilities and components built with tailwindcss
2023-04-03 15:38:50 +02:00
- `@zitadel/next`: shared Next.js utilities
2023-04-03 11:45:27 +02:00
- `@zitadel/tsconfig`: shared `tsconfig.json`s used throughout the monorepo
- `eslint-config-zitadel`: ESLint preset
Each package and app is 100% [TypeScript](https://www.typescriptlang.org/).
### Utilities
2023-04-03 15:38:50 +02:00
This repo has some additional tools:
2023-04-03 11:45:27 +02:00
- [TypeScript](https://www.typescriptlang.org/) for static type checking
- [ESLint](https://eslint.org/) for code linting
- [Prettier](https://prettier.io) for code formatting
### Useful commands
2023-04-03 15:38:50 +02:00
- `pnpm build` - Build all packages and the docs site
- `pnpm dev` - Develop all packages and the docs site
- `pnpm lint` - Lint all packages
- `pnpm changeset` - Generate a changeset
- `pnpm clean` - Clean up all `node_modules` and `dist` folders (runs each package's clean script)
2023-04-03 11:45:27 +02:00
## Versioning and Publishing packages
2023-04-03 15:38:50 +02:00
Package publishing has been configured using [Changesets](https://github.com/changesets/changesets). Here is their [documentation](https://github.com/changesets/changesets#documentation) for more information about the workflow.
2023-04-03 11:45:27 +02:00
2023-04-03 15:38:50 +02:00
The [GitHub Action](https://github.com/changesets/action) needs an `NPM_TOKEN` and `GITHUB_TOKEN` in the repository settings. The [Changesets bot](https://github.com/apps/changeset-bot) should also be installed on the GitHub repository.
2023-04-03 11:45:27 +02:00
2023-04-03 15:38:50 +02:00
Read the [changesets documentation](https://github.com/changesets/changesets/blob/main/docs/automating-changesets.md) for more information about this automation
2023-04-03 11:45:27 +02:00
### npm
If you want to publish package to the public npm registry and make them publicly available, this is already setup.
To publish packages to a private npm organization scope, **remove** the following from each of the `package.json`'s
```diff
- "publishConfig": {
- "access": "public"
- },
```
### GitHub Package Registry
See [Working with the npm registry](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-npm-registry#publishing-a-package-using-publishconfig-in-the-packagejson-file)
2023-04-03 15:38:50 +02:00
### TODOs
- Buf setup to get grpc stub in the core package
- Decide whether a seperate client package is required to expose public client convenience methods only or generate a grpc-web output there
- Fix #/\* path in login application