From be152728009db3b888f7c1c944e4122cec49132f Mon Sep 17 00:00:00 2001 From: amphineko Date: Sun, 21 Jan 2024 05:17:03 +0000 Subject: [PATCH] chore: update roadmap --- .devcontainer/devcontainer.json | 1 + README.md | 102 ++++++++++++++------------------ 2 files changed, 46 insertions(+), 57 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index ae6a85c..5a8f7ab 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -20,6 +20,7 @@ "customizations": { "vscode": { "extensions": [ + "bierner.github-markdown-preview", "dbaeumer.vscode-eslint", "esbenp.prettier-vscode" ], diff --git a/README.md b/README.md index 32e8ccf..cbe2cad 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,51 @@ - Restart by using the reload button on the top-right corner, to apply changes of your NAS clients/~~MPSKs~~/PKI +## Features & Roadmap + +- Web Portal + + - MPSK Authentication Dashboard + - CRUD: Name/Phy Address/PSK + - Export/Import + - PKI Dashboard + - CA/Server/Client Certificate Issue and Delete + - Client Certificate Export (PKCS#12 with trust chain) + - ~~PKCS#12 Export Password Input~~ (WIP:hourglass:) + - ~~Password-based Authentication Dashboard~~ (WIP:hourglass:) + - NAS Client Dashboard + - CRUD: Name/Allowed Subnet/Secret + - Export/Import + - Radiusd Dashboard + - Log Inspection + - Regenerate/Reload + +- Supervisor (Backend Service and Radiusd Manager) + + - API Server + - Client (NAS) CRUD/Bulk-Upsert + - MPSK CRUD/Bulk-Upsert + - PKI CA/Server/Client CRUD + - ~~Password-based User CRUD~~ (WIP:hourglass:) + - Radiusd [rlm_rest](https://github.com/FreeRADIUS/freeradius-server/blob/v3.0.x/raddb/mods-available/rest) Interface + - Radiusd Log/Status/Reload + - PKI + - Certificate Authority + - Self-Signed CA and Certificate Issue + - ~~Existing CA/Intermediate Importing~~ (WIP:hourglass:) + - CA/Server Deployment to Radiusd + - Client Certificate Export over API (PKCS#12 with trust chain) + - Radiusd + - Child Process Management + - Configuration Rendering + - Storage + - File/JSON-based Storage + - Clients, MPSKs + - PKI + - PostgreSQL-backed Storage + - Clients, MPSKs + - ~~PKI~~ (WIP:hourglass:) + ## Project Structure - `/common` - Shared Libraries: Serializers and Typings on [io-ts](https://github.com/gcanti/io-ts) @@ -38,63 +83,6 @@ - `/app` - React pages with some shiny server components - `/lib` - Shared libraries for all pages -## Roadmap - -- Supervisor - - [ ] API Server - - [x] Client (NAS) CRUD - - [x] MPSK CRUD - - [ ] Password/Certificate-based User CRUD - - [x] PKI CRUD - - [x] Radiusd Log/Status - - [x] Radiusd Reload - - [ ] Configuration Generator/Renderer - - [x] Aruba/Cisco Multi Pre-Shared Key - - [ ] EAP-GTC/MSCHAPv2 - - [x] EAP-TLS - - [ ] PKI - - [ ] Certificate Authority - - [x] Self-Signed CA - - [ ] Existing CA/intermediate import - - [x] Certificate Issue - - [x] CA/Server/Client CRUD - - [x] Deployment - - [x] Client Certificate Export (PKCS#12 with trust chain) - - [x] CA/Server/Client Deployment to Radiusd - - [ ] Radiusd - - [x] Child Process Management - - [ ] Storage - - [x] File/JSON-based Storage - - [ ] PostgreSQL-backed Storage -- Web Portal - - [ ] MPSK Authentication Dashboard - - [x] CRUD: Name/Phy Address/PSK - - [ ] Password/Certificate-based Authentication Dashboard - - [ ] PKI Dashboard - - [x] CA/Server/Client Certificate Issue and Delete - - [x] Client Certificate Export (PKCS#12 with trust chain) - - [ ] PKCS#12 Export Password Input - - [ ] NAS Client Dashboard - - [x] CRUD: Name/Allowed Subnet/Secret - - [x] Radiusd Dashboard - - [x] Log Inspection - - [x] Regenerate/Reload - -## Backlogs - -- Supervisor - - API Server - - [ ] Standardize API request/responses with mandatory typed responses - - [x] Return types should be strongly typed (e.g. /api/v1/clients should return `ListClientResponse` instead of `Record`) - - [ ] Request types should be also strongly typed - - [x] Decorators on API methods to signal io-ts codecs for encoding (e.g. encoding `ReadonlyMap<>` into `Record<>` to accommodate `JSON.stringify`) - - Storage - - [ ] Move storage-related code from `@yonagi/common` to `@yonagi/supervisor` -- Web - - [x] Migrate away from Fluent UI to candidates: - - ~~Base UI~~ - - **MUI** (migrated) - ## Dependencies - [fp-ts](https://github.com/gcanti/fp-ts/)/[io-ts](https://github.com/gcanti/io-ts/): Functional Programming and Type-Safe Serialization/Vaidation