From 3f81779445ccc9e059f7472d4af3ea1052bbd434 Mon Sep 17 00:00:00 2001 From: c0repwn3r Date: Thu, 27 Apr 2023 13:42:48 -0400 Subject: [PATCH] migrations and entities for hosts --- trifid-api/src/routes/v1/signup.rs | 2 +- .../trifid_api_entities/src/entity/api_key.rs | 41 ------------- .../src/entity/api_key_scope.rs | 32 ---------- .../src/entity/auth_token.rs | 32 ---------- .../src/entity/firewall_rule.rs | 38 ------------ .../src/entity/magic_link.rs | 32 ---------- .../trifid_api_entities/src/entity/mod.rs | 16 ----- .../trifid_api_entities/src/entity/network.rs | 52 ----------------- .../src/entity/organization.rs | 57 ------------------ .../trifid_api_entities/src/entity/prelude.rs | 14 ----- .../trifid_api_entities/src/entity/role.rs | 36 ------------ .../src/entity/session_token.rs | 32 ---------- .../src/entity/signing_ca.rs | 31 ---------- .../src/entity/totp_authenticator.rs | 38 ------------ .../trifid_api_entities/src/entity/user.rs | 58 ------------------- trifid-api/trifid_api_migration/src/lib.rs | 6 ++ 16 files changed, 7 insertions(+), 510 deletions(-) delete mode 100644 trifid-api/trifid_api_entities/src/entity/api_key.rs delete mode 100644 trifid-api/trifid_api_entities/src/entity/api_key_scope.rs delete mode 100644 trifid-api/trifid_api_entities/src/entity/auth_token.rs delete mode 100644 trifid-api/trifid_api_entities/src/entity/firewall_rule.rs delete mode 100644 trifid-api/trifid_api_entities/src/entity/magic_link.rs delete mode 100644 trifid-api/trifid_api_entities/src/entity/mod.rs delete mode 100644 trifid-api/trifid_api_entities/src/entity/network.rs delete mode 100644 trifid-api/trifid_api_entities/src/entity/organization.rs delete mode 100644 trifid-api/trifid_api_entities/src/entity/prelude.rs delete mode 100644 trifid-api/trifid_api_entities/src/entity/role.rs delete mode 100644 trifid-api/trifid_api_entities/src/entity/session_token.rs delete mode 100644 trifid-api/trifid_api_entities/src/entity/signing_ca.rs delete mode 100644 trifid-api/trifid_api_entities/src/entity/totp_authenticator.rs delete mode 100644 trifid-api/trifid_api_entities/src/entity/user.rs diff --git a/trifid-api/src/routes/v1/signup.rs b/trifid-api/src/routes/v1/signup.rs index ea18691..c40806b 100644 --- a/trifid-api/src/routes/v1/signup.rs +++ b/trifid-api/src/routes/v1/signup.rs @@ -14,7 +14,7 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . // -//#POST /v1/signup t+parity:full t+type:reverse_engineered t+status:done t+feature:definednetworking +//#POST /v1/signup t+parity:full t+type:reverse_engineered t+status:done t+features:definednetworking // This endpoint has full parity with the original API. It has been reverse-engineered from the original API as the original API docs do not have this item. // This endpoint is considered done. No major features should be added or removed, unless it fixes bugs. // This endpoint requires the `definednetworking` extension to be enabled to be used. diff --git a/trifid-api/trifid_api_entities/src/entity/api_key.rs b/trifid-api/trifid_api_entities/src/entity/api_key.rs deleted file mode 100644 index 04aa795..0000000 --- a/trifid-api/trifid_api_entities/src/entity/api_key.rs +++ /dev/null @@ -1,41 +0,0 @@ -//! `SeaORM` Entity. Generated by sea-orm-codegen 0.11.2 - -use sea_orm::entity::prelude::*; - -#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)] -#[sea_orm(table_name = "api_key")] -pub struct Model { - #[sea_orm(primary_key, auto_increment = false)] - pub id: String, - #[sea_orm(unique)] - pub key: String, - pub organization: String, -} - -#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)] -pub enum Relation { - #[sea_orm(has_many = "super::api_key_scope::Entity")] - ApiKeyScope, - #[sea_orm( - belongs_to = "super::organization::Entity", - from = "Column::Organization", - to = "super::organization::Column::Id", - on_update = "Cascade", - on_delete = "Cascade" - )] - Organization, -} - -impl Related for Entity { - fn to() -> RelationDef { - Relation::ApiKeyScope.def() - } -} - -impl Related for Entity { - fn to() -> RelationDef { - Relation::Organization.def() - } -} - -impl ActiveModelBehavior for ActiveModel {} diff --git a/trifid-api/trifid_api_entities/src/entity/api_key_scope.rs b/trifid-api/trifid_api_entities/src/entity/api_key_scope.rs deleted file mode 100644 index 1deffbc..0000000 --- a/trifid-api/trifid_api_entities/src/entity/api_key_scope.rs +++ /dev/null @@ -1,32 +0,0 @@ -//! `SeaORM` Entity. Generated by sea-orm-codegen 0.11.2 - -use sea_orm::entity::prelude::*; - -#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)] -#[sea_orm(table_name = "api_key_scope")] -pub struct Model { - #[sea_orm(primary_key, auto_increment = false)] - pub id: String, - pub scope: String, - pub api_key: String, -} - -#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)] -pub enum Relation { - #[sea_orm( - belongs_to = "super::api_key::Entity", - from = "Column::ApiKey", - to = "super::api_key::Column::Id", - on_update = "Cascade", - on_delete = "Cascade" - )] - ApiKey, -} - -impl Related for Entity { - fn to() -> RelationDef { - Relation::ApiKey.def() - } -} - -impl ActiveModelBehavior for ActiveModel {} diff --git a/trifid-api/trifid_api_entities/src/entity/auth_token.rs b/trifid-api/trifid_api_entities/src/entity/auth_token.rs deleted file mode 100644 index db14039..0000000 --- a/trifid-api/trifid_api_entities/src/entity/auth_token.rs +++ /dev/null @@ -1,32 +0,0 @@ -//! `SeaORM` Entity. Generated by sea-orm-codegen 0.11.2 - -use sea_orm::entity::prelude::*; - -#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)] -#[sea_orm(table_name = "auth_token")] -pub struct Model { - #[sea_orm(primary_key, auto_increment = false)] - pub id: String, - pub user: String, - pub expires_on: i64, -} - -#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)] -pub enum Relation { - #[sea_orm( - belongs_to = "super::user::Entity", - from = "Column::User", - to = "super::user::Column::Id", - on_update = "Cascade", - on_delete = "Cascade" - )] - User, -} - -impl Related for Entity { - fn to() -> RelationDef { - Relation::User.def() - } -} - -impl ActiveModelBehavior for ActiveModel {} diff --git a/trifid-api/trifid_api_entities/src/entity/firewall_rule.rs b/trifid-api/trifid_api_entities/src/entity/firewall_rule.rs deleted file mode 100644 index 6a8c64f..0000000 --- a/trifid-api/trifid_api_entities/src/entity/firewall_rule.rs +++ /dev/null @@ -1,38 +0,0 @@ -//! `SeaORM` Entity. Generated by sea-orm-codegen 0.11.2 - -use sea_orm::entity::prelude::*; - -#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)] -#[sea_orm(table_name = "firewall_rule")] -pub struct Model { - #[sea_orm(primary_key, auto_increment = false)] - pub id: String, - pub role: String, - pub protocol: String, - pub description: String, - pub allowed_role_id: Option, - pub port_range_from: i32, - pub port_range_to: i32, -} - -#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)] -pub enum Relation { - #[sea_orm( - belongs_to = "super::role::Entity", - from = "Column::AllowedRoleId", - to = "super::role::Column::Id", - on_update = "NoAction", - on_delete = "Cascade" - )] - Role2, - #[sea_orm( - belongs_to = "super::role::Entity", - from = "Column::Role", - to = "super::role::Column::Id", - on_update = "Cascade", - on_delete = "Cascade" - )] - Role1, -} - -impl ActiveModelBehavior for ActiveModel {} diff --git a/trifid-api/trifid_api_entities/src/entity/magic_link.rs b/trifid-api/trifid_api_entities/src/entity/magic_link.rs deleted file mode 100644 index 1707d7e..0000000 --- a/trifid-api/trifid_api_entities/src/entity/magic_link.rs +++ /dev/null @@ -1,32 +0,0 @@ -//! `SeaORM` Entity. Generated by sea-orm-codegen 0.11.2 - -use sea_orm::entity::prelude::*; - -#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)] -#[sea_orm(table_name = "magic_link")] -pub struct Model { - #[sea_orm(primary_key, auto_increment = false)] - pub id: String, - pub user: String, - pub expires_on: i64, -} - -#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)] -pub enum Relation { - #[sea_orm( - belongs_to = "super::user::Entity", - from = "Column::User", - to = "super::user::Column::Id", - on_update = "Cascade", - on_delete = "Cascade" - )] - User, -} - -impl Related for Entity { - fn to() -> RelationDef { - Relation::User.def() - } -} - -impl ActiveModelBehavior for ActiveModel {} diff --git a/trifid-api/trifid_api_entities/src/entity/mod.rs b/trifid-api/trifid_api_entities/src/entity/mod.rs deleted file mode 100644 index 35ee697..0000000 --- a/trifid-api/trifid_api_entities/src/entity/mod.rs +++ /dev/null @@ -1,16 +0,0 @@ -//! `SeaORM` Entity. Generated by sea-orm-codegen 0.11.2 - -pub mod prelude; - -pub mod api_key; -pub mod api_key_scope; -pub mod auth_token; -pub mod firewall_rule; -pub mod magic_link; -pub mod network; -pub mod organization; -pub mod role; -pub mod session_token; -pub mod signing_ca; -pub mod totp_authenticator; -pub mod user; diff --git a/trifid-api/trifid_api_entities/src/entity/network.rs b/trifid-api/trifid_api_entities/src/entity/network.rs deleted file mode 100644 index 7d575e6..0000000 --- a/trifid-api/trifid_api_entities/src/entity/network.rs +++ /dev/null @@ -1,52 +0,0 @@ -//! `SeaORM` Entity. Generated by sea-orm-codegen 0.11.2 - -use sea_orm::entity::prelude::*; - -#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)] -#[sea_orm(table_name = "network")] -pub struct Model { - #[sea_orm(primary_key, auto_increment = false)] - pub id: String, - pub cidr: String, - #[sea_orm(unique)] - pub organization: String, - #[sea_orm(unique)] - pub signing_ca: String, - pub created_at: i64, - pub name: String, - pub lighthouses_as_relays: bool, -} - -#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)] -pub enum Relation { - #[sea_orm( - belongs_to = "super::organization::Entity", - from = "Column::Organization", - to = "super::organization::Column::Id", - on_update = "Cascade", - on_delete = "Cascade" - )] - Organization, - #[sea_orm( - belongs_to = "super::signing_ca::Entity", - from = "Column::SigningCa", - to = "super::signing_ca::Column::Id", - on_update = "Cascade", - on_delete = "Cascade" - )] - SigningCa, -} - -impl Related for Entity { - fn to() -> RelationDef { - Relation::Organization.def() - } -} - -impl Related for Entity { - fn to() -> RelationDef { - Relation::SigningCa.def() - } -} - -impl ActiveModelBehavior for ActiveModel {} diff --git a/trifid-api/trifid_api_entities/src/entity/organization.rs b/trifid-api/trifid_api_entities/src/entity/organization.rs deleted file mode 100644 index 25d4ff9..0000000 --- a/trifid-api/trifid_api_entities/src/entity/organization.rs +++ /dev/null @@ -1,57 +0,0 @@ -//! `SeaORM` Entity. Generated by sea-orm-codegen 0.11.2 - -use sea_orm::entity::prelude::*; - -#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)] -#[sea_orm(table_name = "organization")] -pub struct Model { - #[sea_orm(primary_key, auto_increment = false)] - pub id: String, - pub name: String, - #[sea_orm(unique)] - pub owner: String, -} - -#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)] -pub enum Relation { - #[sea_orm(has_many = "super::api_key::Entity")] - ApiKey, - #[sea_orm(has_one = "super::network::Entity")] - Network, - #[sea_orm(has_many = "super::role::Entity")] - Role, - #[sea_orm( - belongs_to = "super::user::Entity", - from = "Column::Owner", - to = "super::user::Column::Id", - on_update = "Cascade", - on_delete = "Cascade" - )] - User, -} - -impl Related for Entity { - fn to() -> RelationDef { - Relation::ApiKey.def() - } -} - -impl Related for Entity { - fn to() -> RelationDef { - Relation::Network.def() - } -} - -impl Related for Entity { - fn to() -> RelationDef { - Relation::Role.def() - } -} - -impl Related for Entity { - fn to() -> RelationDef { - Relation::User.def() - } -} - -impl ActiveModelBehavior for ActiveModel {} diff --git a/trifid-api/trifid_api_entities/src/entity/prelude.rs b/trifid-api/trifid_api_entities/src/entity/prelude.rs deleted file mode 100644 index 93cce0c..0000000 --- a/trifid-api/trifid_api_entities/src/entity/prelude.rs +++ /dev/null @@ -1,14 +0,0 @@ -//! `SeaORM` Entity. Generated by sea-orm-codegen 0.11.2 - -pub use super::api_key::Entity as ApiKey; -pub use super::api_key_scope::Entity as ApiKeyScope; -pub use super::auth_token::Entity as AuthToken; -pub use super::firewall_rule::Entity as FirewallRule; -pub use super::magic_link::Entity as MagicLink; -pub use super::network::Entity as Network; -pub use super::organization::Entity as Organization; -pub use super::role::Entity as Role; -pub use super::session_token::Entity as SessionToken; -pub use super::signing_ca::Entity as SigningCa; -pub use super::totp_authenticator::Entity as TotpAuthenticator; -pub use super::user::Entity as User; diff --git a/trifid-api/trifid_api_entities/src/entity/role.rs b/trifid-api/trifid_api_entities/src/entity/role.rs deleted file mode 100644 index b31b820..0000000 --- a/trifid-api/trifid_api_entities/src/entity/role.rs +++ /dev/null @@ -1,36 +0,0 @@ -//! `SeaORM` Entity. Generated by sea-orm-codegen 0.11.2 - -use sea_orm::entity::prelude::*; - -#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)] -#[sea_orm(table_name = "role")] -pub struct Model { - #[sea_orm(primary_key, auto_increment = false)] - pub id: String, - #[sea_orm(unique)] - pub name: String, - pub description: String, - pub organization: String, - pub created_at: i64, - pub modified_at: i64, -} - -#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)] -pub enum Relation { - #[sea_orm( - belongs_to = "super::organization::Entity", - from = "Column::Organization", - to = "super::organization::Column::Id", - on_update = "Cascade", - on_delete = "Cascade" - )] - Organization, -} - -impl Related for Entity { - fn to() -> RelationDef { - Relation::Organization.def() - } -} - -impl ActiveModelBehavior for ActiveModel {} diff --git a/trifid-api/trifid_api_entities/src/entity/session_token.rs b/trifid-api/trifid_api_entities/src/entity/session_token.rs deleted file mode 100644 index a648966..0000000 --- a/trifid-api/trifid_api_entities/src/entity/session_token.rs +++ /dev/null @@ -1,32 +0,0 @@ -//! `SeaORM` Entity. Generated by sea-orm-codegen 0.11.2 - -use sea_orm::entity::prelude::*; - -#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)] -#[sea_orm(table_name = "session_token")] -pub struct Model { - #[sea_orm(primary_key, auto_increment = false)] - pub id: String, - pub user: String, - pub expires_on: i64, -} - -#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)] -pub enum Relation { - #[sea_orm( - belongs_to = "super::user::Entity", - from = "Column::User", - to = "super::user::Column::Id", - on_update = "Cascade", - on_delete = "Cascade" - )] - User, -} - -impl Related for Entity { - fn to() -> RelationDef { - Relation::User.def() - } -} - -impl ActiveModelBehavior for ActiveModel {} diff --git a/trifid-api/trifid_api_entities/src/entity/signing_ca.rs b/trifid-api/trifid_api_entities/src/entity/signing_ca.rs deleted file mode 100644 index d0770a9..0000000 --- a/trifid-api/trifid_api_entities/src/entity/signing_ca.rs +++ /dev/null @@ -1,31 +0,0 @@ -//! `SeaORM` Entity. Generated by sea-orm-codegen 0.11.2 - -use sea_orm::entity::prelude::*; - -#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)] -#[sea_orm(table_name = "signing_ca")] -pub struct Model { - #[sea_orm(primary_key, auto_increment = false)] - pub id: String, - pub organization: String, - pub cert: String, - #[sea_orm(unique)] - pub key: String, - pub expires: i64, - #[sea_orm(unique)] - pub nonce: String, -} - -#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)] -pub enum Relation { - #[sea_orm(has_one = "super::network::Entity")] - Network, -} - -impl Related for Entity { - fn to() -> RelationDef { - Relation::Network.def() - } -} - -impl ActiveModelBehavior for ActiveModel {} diff --git a/trifid-api/trifid_api_entities/src/entity/totp_authenticator.rs b/trifid-api/trifid_api_entities/src/entity/totp_authenticator.rs deleted file mode 100644 index 5437596..0000000 --- a/trifid-api/trifid_api_entities/src/entity/totp_authenticator.rs +++ /dev/null @@ -1,38 +0,0 @@ -//! `SeaORM` Entity. Generated by sea-orm-codegen 0.11.2 - -use sea_orm::entity::prelude::*; - -#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)] -#[sea_orm(table_name = "totp_authenticator")] -pub struct Model { - #[sea_orm(primary_key, auto_increment = false)] - pub id: String, - #[sea_orm(unique)] - pub secret: String, - #[sea_orm(unique)] - pub url: String, - pub verified: bool, - pub expires_on: i64, - #[sea_orm(unique)] - pub user: String, -} - -#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)] -pub enum Relation { - #[sea_orm( - belongs_to = "super::user::Entity", - from = "Column::User", - to = "super::user::Column::Id", - on_update = "Cascade", - on_delete = "Cascade" - )] - User, -} - -impl Related for Entity { - fn to() -> RelationDef { - Relation::User.def() - } -} - -impl ActiveModelBehavior for ActiveModel {} diff --git a/trifid-api/trifid_api_entities/src/entity/user.rs b/trifid-api/trifid_api_entities/src/entity/user.rs deleted file mode 100644 index 0d7b61f..0000000 --- a/trifid-api/trifid_api_entities/src/entity/user.rs +++ /dev/null @@ -1,58 +0,0 @@ -//! `SeaORM` Entity. Generated by sea-orm-codegen 0.11.2 - -use sea_orm::entity::prelude::*; - -#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)] -#[sea_orm(table_name = "user")] -pub struct Model { - #[sea_orm(primary_key, auto_increment = false)] - pub id: String, - #[sea_orm(unique)] - pub email: String, -} - -#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)] -pub enum Relation { - #[sea_orm(has_many = "super::auth_token::Entity")] - AuthToken, - #[sea_orm(has_many = "super::magic_link::Entity")] - MagicLink, - #[sea_orm(has_one = "super::organization::Entity")] - Organization, - #[sea_orm(has_many = "super::session_token::Entity")] - SessionToken, - #[sea_orm(has_one = "super::totp_authenticator::Entity")] - TotpAuthenticator, -} - -impl Related for Entity { - fn to() -> RelationDef { - Relation::AuthToken.def() - } -} - -impl Related for Entity { - fn to() -> RelationDef { - Relation::MagicLink.def() - } -} - -impl Related for Entity { - fn to() -> RelationDef { - Relation::Organization.def() - } -} - -impl Related for Entity { - fn to() -> RelationDef { - Relation::SessionToken.def() - } -} - -impl Related for Entity { - fn to() -> RelationDef { - Relation::TotpAuthenticator.def() - } -} - -impl ActiveModelBehavior for ActiveModel {} diff --git a/trifid-api/trifid_api_migration/src/lib.rs b/trifid-api/trifid_api_migration/src/lib.rs index cd1b240..ef066c6 100644 --- a/trifid-api/trifid_api_migration/src/lib.rs +++ b/trifid-api/trifid_api_migration/src/lib.rs @@ -14,6 +14,9 @@ pub mod m20230403_142517_create_table_signing_cas; pub mod m20230403_173431_create_table_networks; mod m20230404_133809_create_table_roles; mod m20230404_133813_create_table_firewall_rules; +mod m20230427_170037_create_table_hosts; +mod m20230427_171517_create_table_hosts_static_addresses; +mod m20230427_171529_create_table_hosts_config_overrides; #[async_trait::async_trait] impl MigratorTrait for Migrator { @@ -31,6 +34,9 @@ impl MigratorTrait for Migrator { Box::new(m20230403_173431_create_table_networks::Migration), Box::new(m20230404_133809_create_table_roles::Migration), Box::new(m20230404_133813_create_table_firewall_rules::Migration), + Box::new(m20230427_170037_create_table_hosts::Migration), + Box::new(m20230427_171517_create_table_hosts_static_addresses::Migration), + Box::new(m20230427_171529_create_table_hosts_config_overrides::Migration), ] } }