40adeb15ee8bfa633b7920c5849be807b0005beb
- Add subscription fields to organizations (status, plan, trial_ends_at, etc.) - Add subscription middleware for access control - Add /auth/me returns subscription info - Add admin endpoints for subscription management: - GET/PUT /admin/organizations/:id/subscription - POST /admin/organizations/:id/pause - POST /admin/organizations/:id/activate - POST /admin/organizations/:id/extend-trial - GET /admin/subscriptions (with filters) - New orgs get 14-day trial automatically
SeCu Backend
Deno + Oak Backend für die SeCu Mitarbeiterverwaltung.
Tech Stack
- Runtime: Deno
- Framework: Oak
- Database: PostgreSQL
- Auth: JWT + Argon2
Setup
1. Datenbank einrichten
# PostgreSQL Container starten
docker run -d \
--name secu-db \
-e POSTGRES_USER=secu \
-e POSTGRES_PASSWORD=SeCu2026!SecureDB \
-e POSTGRES_DB=secu \
-p 5434:5432 \
postgres:16
# Migrations ausführen
psql -h localhost -p 5434 -U secu -d secu -f ../secu/db/migrations/001_initial_schema.sql
psql -h localhost -p 5434 -U secu -d secu -f ../secu/db/migrations/002_seed_modules.sql
2. Environment
cp .env.example .env
# JWT_SECRET ändern!
3. Starten
# Development (mit Watch)
deno task dev
# Production
deno task start
API Endpoints
Auth (/api/auth)
| Method | Endpoint | Beschreibung |
|---|---|---|
| POST | /register | Registrierung (erster User = Chef) |
| POST | /login | Login |
| POST | /refresh | Token erneuern |
| POST | /logout | Logout |
| GET | /me | Aktueller User |
| POST | /change-password | Passwort ändern |
Users (/api/users)
| Method | Endpoint | Beschreibung | Rolle |
|---|---|---|---|
| GET | / | Alle User | Chef: alle, Disponent: eigene MA |
| GET | /:id | User Details | - |
| POST | / | User anlegen | Chef/Disponent |
| PUT | /:id | User bearbeiten | - |
| DELETE | /:id | User deaktivieren | Chef/Disponent |
Orders (/api/orders)
| Method | Endpoint | Beschreibung | Rolle |
|---|---|---|---|
| GET | / | Alle Aufträge | MA: nur zugewiesene |
| GET | /:id | Auftrag Details | - |
| POST | / | Auftrag erstellen | Chef/Disponent |
| PUT | /:id | Auftrag bearbeiten | Chef/Disponent |
| DELETE | /:id | Auftrag löschen | Chef/Disponent |
| POST | /:id/assign | MA zuweisen | Chef/Disponent |
| DELETE | /:id/assign/:userId | Zuweisung entfernen | Chef/Disponent |
| PUT | /:id/assignment | Bestätigen/Ablehnen | MA |
Availability (/api/availability)
| Method | Endpoint | Beschreibung |
|---|---|---|
| GET | / | Verfügbarkeiten |
| GET | /calendar | Kalender-Übersicht |
| POST | / | Verfügbarkeit melden |
| POST | /bulk | Mehrere Tage |
| DELETE | /:id | Eintrag löschen |
Timesheets (/api/timesheets)
| Method | Endpoint | Beschreibung | Rolle |
|---|---|---|---|
| GET | / | Stundenzettel | MA: nur eigene |
| GET | /:id | Details | - |
| POST | / | Einreichen | Alle |
| PUT | /:id | Bearbeiten | Nur pending + eigene |
| POST | /:id/review | Genehmigen/Ablehnen | Chef/Disponent |
| DELETE | /:id | Löschen | - |
| GET | /summary/:userId | Zusammenfassung | Chef/Disponent |
| POST | /upload | Foto hochladen | Alle |
Modules (/api/modules)
| Method | Endpoint | Beschreibung | Rolle |
|---|---|---|---|
| GET | / | Alle Module | Alle |
| GET | /org | Org-Konfiguration | Alle |
| POST | /:id/toggle | Ein/Ausschalten | Chef |
| PUT | /:id/config | Konfigurieren | Chef |
| GET | /check/:name | Status prüfen | Alle |
| GET | /developer/status | System-Status | Chef + Dev-Modul |
| GET | /developer/logs | Audit-Logs | Chef + Dev-Modul |
Rollen
| Rolle | Kürzel | Berechtigungen |
|---|---|---|
| Chef | chef |
Vollzugriff |
| Disponent | disponent |
MA verwalten, Aufträge, Stundenzettel |
| Mitarbeiter | mitarbeiter |
Eigene Aufträge/Verfügbarkeit/Stundenzettel |
Port
Standard: 8004
SeCu Backend v1.0.0
Description
Languages
TypeScript
100%