You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).
1
+
# Northware Cockpit
2
2
3
-
## Getting Started
4
-
5
-
First, run the development server:
6
-
7
-
```bash
8
-
npm run dev
9
-
# or
10
-
yarn dev
11
-
# or
12
-
pnpm dev
13
-
# or
14
-
bun dev
15
-
```
16
-
17
-
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
18
-
19
-
You can start editing the page by modifying `app/page.js`. The page auto-updates as you edit the file.
20
-
21
-
This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font.
22
-
23
-
## Learn More
24
-
25
-
To learn more about Next.js, take a look at the following resources:
26
-
27
-
-[Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
28
-
-[Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
29
-
30
-
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
31
-
32
-
## Deploy on Vercel
33
-
34
-
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
35
-
36
-
Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
3
+
This [Next.js App](https://nextjs.org) is part of the Northware Suite. The App is used to manage the internal bussiness of the fictional NCS Group and administer the Northware Suite itself.
Copy file name to clipboardExpand all lines: apps/docs/content/docs/(home)/github/release-strategy.mdx
+14-6Lines changed: 14 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,19 +7,26 @@ description: Wie die Apps und Packages der Northware Suite versioniert werden
7
7
8
8
Das Tool [Changesets](https://github.com/changesets/changesets) wird verwendet, um die Versionierung und das erstellen von Changelogs zu vereinfachen.
9
9
10
-
Zu jedem Pull Request, der einen neuen Release (major, minor oder patch) auslösen soll benötigt ein Changeset. Ein Changeset ist eine Markdown-Datei im `.changesets/*` Ordner, der beschreibt welche Art von Release passiert, wenn die beschriebene Code-Änderung in die App übernommen wird (Versionsänderung) und was mit dieser Code-Änderung passiert (Changelog Eintrag zur neuen Version).
10
+
Zu jedem Pull Request, der einen neuen Release (major, minor oder patch) auslösen soll, wird ein Changeset benötigt.
11
+
Ein Changeset ist eine Markdown-Datei im `.changesets/*` Ordner, die beschreibt welche Art von Release passiert,
12
+
wenn die beschriebene Code-Änderung in die App übernommen wird (Versionsänderung) und was mit dieser Code-Änderung passiert (Changelog Eintrag zur neuen Version).
11
13
12
-
Der [Changeset Bot](https://github.com/apps/changeset-bot) prüft bei jedem Pull Request, ob ein Changeset existiert und erinnert ggf. mit einem Kommentar im PR daran, ein Changeset hinzuzufügen.
14
+
Der [Changeset Bot](https://github.com/apps/changeset-bot) prüft bei jedem Pull Request,
15
+
ob ein Changeset existiert und erinnert ggf. mit einem Kommentar im PR daran, ein Changeset hinzuzufügen.
13
16
14
-
Ein Changeset kann schon vor Eröffnung des Pull Requests oder per Link in dem Kommentar vom Changesets Bot direkt in GitHub oder als nachträglicher Commit hinzugefügt werden. Es bietet sich an, zur Erstellung eines Changesets den CLI Command `pnpm changeset` oder `pnpm changeset add` zu verwenden, Da dieser Command interaktiv durch die Erstellung eines Changesets führt.
17
+
Ein Changeset kann schon vor Eröffnung des Pull Requests oder per Link in dem Kommentar vom Changesets Bot direkt in GitHub
18
+
oder als nachträglicher Commit hinzugefügt werden.
19
+
Es bietet sich an, zur Erstellung eines Changesets den CLI Command `pnpm changeset` oder `pnpm changeset add` zu verwenden,
20
+
da dieser Command interaktiv durch die Erstellung eines Changesets führt.
15
21
16
-
Innerhalb einer Changeset-Datei wird definiert, welche Packages durch den Merge dieses Changesets welche Art von Version Bump erhalten. Außerdem wird im Changeset für das Changelog beschrieben, welche Änderungen vorgenommen wurden.
22
+
Innerhalb einer Changeset-Datei wird definiert, welche Packages durch den Merge dieses Changesets welche Art von Version Bump erhalten.
23
+
Außerdem wird im Changeset für das Changelog beschrieben, welche Änderungen vorgenommen wurden.
Copy file name to clipboardExpand all lines: apps/docs/content/docs/(home)/github/workflows.mdx
+23-2Lines changed: 23 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -86,7 +86,8 @@ Die Workflows sind nicht mit klassischen GitHub Actions sondern über das [integ
86
86
87
87
### Turborepo CI
88
88
89
-
Der Workflow **Turborepo CI** (`.github/workflows/turborepo-ci.yml`) wird immer dann ausgelöst, wenn Code auf den `main` Branch gepusht wird oder ein neuer Pull Request eröffnet oder aktualisiert wird.
89
+
Der Workflow **Turborepo CI** (`.github/workflows/turborepo-ci.yml`) wird immer dann ausgelöst,
90
+
wenn Code auf den `main` Branch gepusht wird oder ein neuer Pull Request eröffnet oder aktualisiert wird.
90
91
91
92
- Der Workflow nutzt den vorliegenden Code und installiert das Projekt in einer Node.js Umgebung mit `pnpm`.
92
93
- Mit `pnpm build --affected` werden die von der Änderung betroffenen Code-Teile gebaut.
@@ -96,7 +97,8 @@ Sollte es während dieses Workflows zu Problemen kommen, wird der Workflow abgeb
96
97
97
98
<Callouttype="info">
98
99
Der Turborepo CI-Workflow durchläuft bei jedem Pull Request und bei jedem Merge die Schritte `pnpm turbo build --affected` und `pnpm turbo run lint:ci`.
99
-
Damit diese Schritte nicht immer erst gemacht werden, wenn alles fertig ist lässt sich dieser Ablauf mit `pnpm localci` auch lokal abbilden, damit Fehler schon vor dem CI-Durchlauf auffallen.
100
+
Damit diese Schritte nicht immer erst gemacht werden, wenn alles fertig ist lässt sich dieser Ablauf mit `pnpm localci` auch lokal abbilden,
101
+
damit Fehler schon vor dem CI-Durchlauf auffallen.
100
102
</Callout>
101
103
102
104
### autofix.ci
@@ -108,6 +110,25 @@ Wenn durch den Durchlauf des Workflows Änderungen am Code vorgenommen wurden, w
108
110
109
111
**Dieser Commit unterbricht nun alle laufenden Workflows.** Diese Workflows scheitern. Anschließend starten alle vorgesehenen Workflows wieder von neuem.
110
112
113
+
### Changesets Auto Release
114
+
115
+
Der Workflow **Changesets Auto Release** (.github/workflows/changesets-release.yml) wird ausgeführt, wenn Code auf den `main` Branch gepusht wird.
116
+
117
+
Der Workflow nutzt [changesets/action](https://github.com/changesets/action), um einen Pull Request mit dem Titel `chore(release): New Package Versions` zu erstellen. Wird dieser Pull Request in `main` gemerged,
118
+
werden alle Packages und Apps entsprechend der im Repository enthaltenen Changesets versioniert und die `CHANGELOG.md` wird entsprechend der Changesets aktualisiert.
119
+
Alle vorhandenen Changesets werden gelöscht. [Weitere Infos zur Release Strategie](./release-strategy.mdx)
120
+
121
+
Exisitiert bereits ein durch Changesets erstellter Pull Request, wird dieser bei jedem push auf den `main` Branch aktualisiert.
122
+
Enthält der gepushte Code ein neues oder geändertes Changeset, wird dieses in das `CHANGELOG` aufgenommen.
123
+
Enthält der gepushte Code keine Veränderungen an Changesets, wird der Branch lediglich auf den Stand des `main` Branch gebracht.
124
+
125
+
### Typescript Syntax Checks
126
+
127
+
Der Workflow **Typescript Syntax Checks** (.github/workflows/tsc-check) wird bei jedem neu eröffneten oder aktualisierten Pull Request und bei Pushes auf den `main` Branch ausgeführt.
128
+
Das Projekt wird mit den Commands `pnpm tsc-check:root` (für Dateien im Root-Verzeichnis) und `pnpm turbo tsc-check` (für die einzelnen Apps und Packages) auf Typescript-Fehler untersucht.
129
+
Die beschriebenen Commands führen dazu den Command `tsc --noEmit` aus. Werden Fehler im Typescript-Code festgestellt, scheitert der Durchlauf des Workflows. Die Fehler sollten behoben werden,
130
+
bevor der Pull Request gemerged wird.
131
+
111
132
## Renovate Bot
112
133
113
134
Mit dem [Renovate Bot](https://www.mend.io/renovate/) werden die Dependencies im GitHub Repository aktuell gehalten.
description: Funktionen, mit der die Northware Suite technisch administriert werden
4
+
---
5
+
6
+
Über das Admin Panel wird die Northware Suite technisch administriert.
7
+
8
+
## Benutzerverwaltung
9
+
10
+
Über die Benutzerverwaltung können die Benutzerkonten der Endnutzer der Northware Suite verwaltet werden. Es können Benutzer und ihre Berechtigungen verwaltet werden.
11
+
12
+
Ein Benutzer besteht aus einem User-Account und den Relationen des Butzers zu Rollen und Berechtigungen in der Northware Suite.
13
+
Die Benutzerverwaltung ist die Oberfläche, mit der Adminstratoren diese Benutzer, Rollen und Berechtigungen aus `@northware/auth` und der Northware Datenbank verwalten können.
14
+
15
+
Jeder User-Account enthält E-Mail-Adresse, Benutzernamen und Passwort sowie optional Vorname und Nachname des Benutzers.
16
+
Dieser Benutzer wird bei [Clerk](https://clerk.com/) gespeichert.
17
+
18
+
Darüber hinaus erhält jeder Benutzer Rollen und Berechtigungen zur Nutzung der Northware Apps. Diese Daten werden in der Northware Datenbank gespeichert.
19
+
In der Codebase wird abgefragt, ob ein Benutzer eine bestimmte Berechtigung hat. Die verfügbaren Berechtigungen werden in der Datenbank gespeichert.
20
+
Diese Daten können zu Rollen zusammengefasst werden. Diese Rollen können einer Gruppe von Benutzern zugewiesen werden.
21
+
Wurde einem Nutzer eine Rolle zugewiesen, erhält er alle Berechtigungen, die der Rolle zugewiesen wurden. Ein Benutzer kann mehrere Rollen erhalten.
22
+
Es ist auch möglich, einem Benutzer einzelne Berechtigungen zuzuweisen, die über die Rollenberechtigungen zu erweitern.
23
+
Es ist nicht möglich einem Benutzer eine Rollenberechtigung zu entziehen.
24
+
25
+
### Rollendetails
26
+
27
+
| Feldname | Beschreibung | Eingabeformat | Beispiel |
| Berechtigungsschlüssel | Der eindeutige Schlüssel der Berechtigung zur Verwendung im Code | app::feature:subfeature.permission | app::hr:employee.create |
38
+
| Bezeichnung | Die kurze lesbare Bezeichnung der Berechtigung | String | Mitarbeiter erstellen |
description: Die Webapp zur Verwaltung der NCS Group und der Northware Suite
4
+
---
5
+
6
+
<Callouttype="info">
7
+
Das Northware Cockpit wird lokal unter dem Port 40110 betrieben und unter [northware-cockpit.netlify.app](https://northware-cockpit.netlify.app) veröffentlicht.
8
+
</Callout>
9
+
10
+
Die NCS Group verwendet das Northware Cockpit um das eigene Unternehmen zu verwalten. Außerdem wird die Northware Suite über das Northware Cockpit administriert.
Das Storybook wird lokal unter dem Port 40181 betrieben und unter [northware-storybook.netlify.app](https://northware-storybook.netlify.app) veröffentlicht.
8
+
</Callout>
9
+
10
+
Im Storybook ist alles rund um [`@northware/ui`](/packages/ui/) dokumentiert.
11
+
Dort ist beschrieben, wie das Package in den Northware Apps verwendet werden.
12
+
`@northware/ui` stellt die Grundstruktur und das gemeinsame Styling für die Apps genau so bereit, wie gemeinsame Komponenten und Icons.
description: Funktionen zum Umgang mit Authentifizierung und Zugriffsbeschränkungen von Benutzern.
4
4
---
5
5
6
-
Das Package `@northware/auth` stellt die Authentifizierungs- und Loginfunktion für die Northware Apps bereit.
7
-
Das Package nutzt für diese Funktionalität [Auth.js](https://authjs.dev/) mit dem Credentials Provider.
6
+
Das Package `@northware/auth` stellt die Authentifizierungsfunktion für die Northware Apps bereit.
7
+
Außerdem wird über dieses Package der Umgang mit Zugriffsberechtigungen gesteuert.
8
+
Das Package nutzt für diese Funktionalität den Service von [Clerk](https://clerk.com/) und einige spezielle Funktionen zum Abruf von Zugriffsberechtigungen.
8
9
9
-
Die User-Daten werden in der Neon API gespeichert. Die Definition der Tabelle der Nutzerdaten wird vom `@northware/database` Package übernommen.
10
-
Innerhalb von `@northware/auth` wird auf die Nutzerdaten zugegriffen und validiert.
10
+
Das Package stellt alle Funktionen des Packages `@clerk/nextjs` client- und serverseitig bereit.
11
+
Mithilfe dieser Funktionen kann sich ein Benutzer in einer App an- und abmelden.
12
+
Außerdem werden die von Clerk gespeicherten Nutzerdaten von diesem Package bereitgestellt.
11
13
12
-
Der Code im`@northware/auth`Package ist vom Repository [vercel/nextjs-postgres-auth-starter](https://github.com/vercel/nextjs-postgres-auth-starter) inspiriert.
14
+
Darauf aufbauend stellt`@northware/auth`einige Funktionen bereit, um die Berechtigungen eines Benutzers aus der Northware Datenbank abzurufen.
description: Config Presets für TypeScript in den Apss und Packages
4
+
---
5
+
6
+
Das Package `@northware/tsconfig` stellt einige Config-Presets für TypeScript zur Verfügung, die von Apps und Packages verwendet werden.
7
+
Durch die Verwendung dieser Presets wird sichergestellt, das alle Apps und Packages den gleichen Konfigurationsstandards unterliegen.
8
+
9
+
Das Package basiert auf einem Standard-Package von Turborepo. Die Standard-Konfigurationen allerdings auf den Stack in diesem Projekt abgestimmt.
10
+
Auf der [Website von Turborepo](https://turborepo.com/docs/guides/tools/typescript) ist genauer beschrieben,
11
+
wie das Package funktioniert und konfiguriert werden kann.
12
+
13
+
## Das Base Preset
14
+
15
+
In der Datei `base.json` ist die Basis-Konfiguration von TypeScript definiert. Diese Konfiguration wird von allen übrigen Presets verwendet und erweitert.
16
+
17
+
## TSConfig in einer Next.js App
18
+
19
+
Das Preset `@northware/tsconfig/nextjs.json` enthält die Standard-Konfiguration für Next.js Apps.
20
+
Innerhalb der einzelnen Apps muss dieses Preset dann nur noch importiert werden und die `baseUrl`,
21
+
einzelne `paths` und die zu prüfenden Dateien müssen definiert werden.
Sollte es in einer App spezielle Anforderungen an die TypeScript Konfiguration geben, kann das Next.js Preset in der `tsconfig.json` der App erweitert werdem.
40
+
41
+
## TSConfig in einem Package
42
+
43
+
Das Preset `@northware/tsconfig/react-library.json` enthält die Standard-Konfiguration für alle Packages ([Library Packages](https://turborepo.com/docs/core-concepts/package-types#library-packages))
44
+
innerhalb des Monorepos.
45
+
46
+
Das Preset kann innerhalb der einzelnen Packages importiert werden. Hier müssen dann nur noch die `baseUrl` und die zu beachtenden Dateien definiert werden.
0 commit comments