From e360c56ffa1d59139fa8e196ba421f48ecdf7876 Mon Sep 17 00:00:00 2001 From: Benjamyn Love Date: Sat, 6 Sep 2025 18:01:01 +1000 Subject: [PATCH] Initial --- .gitignore | 1 + Cargo.lock | 7 +++++++ Cargo.toml | 6 ++++++ docs/ideas.md | 24 ++++++++++++++++++++++++ docs/layout.md | 9 +++++++++ src/main.rs | 3 +++ 6 files changed, 50 insertions(+) create mode 100644 .gitignore create mode 100644 Cargo.lock create mode 100644 Cargo.toml create mode 100644 docs/ideas.md create mode 100644 docs/layout.md create mode 100644 src/main.rs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/target diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..aaa5a01 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "railroad" +version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..d2557ff --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "railroad" +version = "0.1.0" +edition = "2021" + +[dependencies] diff --git a/docs/ideas.md b/docs/ideas.md new file mode 100644 index 0000000..12becb8 --- /dev/null +++ b/docs/ideas.md @@ -0,0 +1,24 @@ +# Ideas + +## Must haves +SSH just in time sessions + - Using on the fly generated certificates +Session recording + - Terminal playback +OIDC auth +RBAC +Audit trails + + +## Nice to haves +SQL support + - Playback of changes + - All sessions are transactional by default + - Will have PII removal +Session recording + - Web playback + - SQL sessions +Web UI + - Web terminal + - OIDC Settings + - General admin settings \ No newline at end of file diff --git a/docs/layout.md b/docs/layout.md new file mode 100644 index 0000000..e89db90 --- /dev/null +++ b/docs/layout.md @@ -0,0 +1,9 @@ +# Layout +The application will have utilities that are designed to do small tasks and communicate with the other parts of the system + +## Systems +Auth (OIDC and permissions) +Agent (Handles session requests from master) +Master (Server that accepts requests from clients and services) +Client (CLI utility for interacting with the master or starting sessions) +Recording Proxy (Will handle the recording data for sessions along with playback requests) \ No newline at end of file diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..e7a11a9 --- /dev/null +++ b/src/main.rs @@ -0,0 +1,3 @@ +fn main() { + println!("Hello, world!"); +}