From d78e4f0d67c99cefd22993dca3e49b9a2d03b754 Mon Sep 17 00:00:00 2001 From: c0repwn3r Date: Thu, 30 Mar 2023 12:45:18 -0400 Subject: [PATCH] project documentation --- Cargo.lock | 2 +- README.md | 19 ++++++++++--------- index.md | 38 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 49 insertions(+), 10 deletions(-) create mode 100644 index.md diff --git a/Cargo.lock b/Cargo.lock index 66579ec..a4bbbd1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2469,7 +2469,7 @@ dependencies = [ [[package]] name = "tfclient" -version = "0.1.0" +version = "0.1.1" dependencies = [ "base64 0.21.0", "base64-serde", diff --git a/README.md b/README.md index 7d9809d..2fbff0d 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,11 @@ trifid is an open-souce reimplementation of the [Defined Networking](https://defined.net) management protocol for [Nebula](https://github.com/slackhq/nebula) networks. -It includes a reimplementation of the [API Server](https://api.defined.net), the [Web UI](https://admin.defined.net), and `dnclient` - all fully compatible with the original implementation. +It includes a reimplementation of the [API Server](https://api.defined.net), the [Web UI](https://admin.defined.net), `dnclient`, `nebula-cert` and `dnapi` - all fully API-compatible with the original versions. -We also include a Rust library for interacting with keys and certificates in the Nebula PKI. Find it in `trifid-pki/`, or on crates.rs as `trifid-pki` +We also include a Rust library for interacting with keys and certificates in the Nebula PKI. Find it in `trifid-pki/`, or on crates.rs as `trifid-pki`. + +Want to make your own Defined Networking client? Check out `dnapi-rs`! `dnapi-rs` is a Rust port of the official `dnapi` Go library, to allow for easy interactions with Defined Networking-compatible API servers. Find it in `dnapi-rs/`, or on crates.rs as `dnapi-rs`. The API implementation is tested with the official dnclient implementaiton, and the dnclient implementation is tested with the official API server, to ensure complete feature parity between the two. @@ -20,15 +22,14 @@ trifid-api feature table: | Automatic config update polling by dnclient | Not yet | Yes | | Group-based firewalling | Not yet | Yes | | SSO authentication | Not yet | Yes | -| Extensive API documentation | In the works | No | | Open-source server | Yes | No | -| All functionality avaliable via API | Yes | No | tfclient feature table: -| Feature | tfclient | dnclient | -|--------------------------------------------|----------|----------| -| Enroll in trifid-api/api.defined.net sites | Not yet | Yes | -| Automatic VPN profile setup | Not yet | Yes | -| CLI for using the full API | Not yet | No | +| Feature | tfclient | dnclient | +|----------------------------------------------|----------|----------| +| Enroll in trifid-api/api.defined.net sites | Yes | Yes | +| Automatic VPN profile setup | Yes | Yes | +| Poll the API server for config updates | Yes | Yes | +| Secure Ed25519 signing for API communication | Yes | Yes | diff --git a/index.md b/index.md new file mode 100644 index 0000000..fe23c03 --- /dev/null +++ b/index.md @@ -0,0 +1,38 @@ +# trifid + +trifid is an open-souce reimplementation of the [Defined Networking](https://defined.net) management protocol for [Nebula](https://github.com/slackhq/nebula) networks. + +It includes a reimplementation of the [API Server](https://api.defined.net), the [Web UI](https://admin.defined.net), `dnclient`, `nebula-cert` and `dnapi` - all fully API-compatible with the original versions. + +We also include a Rust library for interacting with keys and certificates in the Nebula PKI. Find it in `trifid-pki/`, or on crates.rs as `trifid-pki`. + +Want to make your own Defined Networking client? Check out `dnapi-rs`! `dnapi-rs` is a Rust port of the official `dnapi` Go library, to allow for easy interactions with Defined Networking-compatible API servers. Find it in `dnapi-rs/`, or on crates.rs as `dnapi-rs`. + +The API implementation is tested with the official dnclient implementaiton, and the dnclient implementation is tested with the official API server, to ensure complete feature parity between the two. + +# Links + +- [tfclient documentation](./docs/tfclient/index.md) +- [trifid-api documentation](./docs/trifid-api/index.md) +- [dnapi-rs documentation](https://docs.rs/dnapi-rs) +- [dnapi-rs on crates.io](https://crates.io/crates/dnapi-rs) +- [trifid-pki documentation](https://docs.rs/trifid-pki) +- [trifid-pki on crates.io](https://crates.io/crates/trifid-pki) +- [trifid git repository](https://git.e3t.cc/~core/trifid) +- [trifid announcements mailing list](https://lists.e3t.cc/~core/trifid-announce) +- [trifid patch mailing list](https://lists.e3t.cc/~core/trifid-devel) +- [trifid discussion mailing list](https://lists.e3t.cc/~core/trifid-discuss) + +# Get in touch + +Have a question about trifid? Check out the [discussion mailing list](https://lists.e3t.cc/~core/trifid-discuss)! `trifid-discuss` is a mailing list for end-user discussion and questions related to the trifid project. + +Run a trifid-api server or otherwise just want to hear news about trifid? Subscribe to our [announcements list](https://lists.e3t.cc/~core/trifid-announce)! `trifid-announce` is a low-volume mailing list for announcements related to the trifid project. + +# Contributing + +trifid is open source at its heart and we are happy to take your contribution. Send in your patches to the [development mailing list](https://lists.e3t.cc/~core/trifid-devel) and we will get back to you as fast as we can and work on getting your changes merged. Need help sending patches to this list? Check out the handy guide at https://git-send-email.io - or just shoot an email to `trifid-discuss` and we would be happy to help. + +# Report a bug + +Found a bug in any of the components of trifid? Submit it to [our issue tracker](https://todo.e3t.cc/~core/trifid) to let us know! \ No newline at end of file