mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-08-24 08:01:38 +00:00
27bf4e34d8
* init checkpoint * ui second pass... * round 1 backend + saving settings + detecting changes... * checkpoint * fix openapi * saving + correct wmill.yaml diff * cli refactor * cli and tests refactor done * cli multi workspace support * cli support skip core types to align with ui * new test framework * sqlx * openapi spec * frontend * sync + settings changes * some fixes * some fixes * security: Remove hardcoded EE license key, use environment variable only - Remove hardcoded license key from containerized test backend - Environment variable EE_LICENSE_KEY now required for EE features - License key no longer stored in database during tests * sqlx * tests * fixing tests * fix tests * checkpoint * checkpoint * cli build * frontend - cli exchange * settings match * ee repo ref * npm check * openapi * tests * checkpoint * cli + tests * reset to preview on changes * merge issue ee * cleanup * hubscript * simplifications * ee repo ref * cli fixes * fix sync and add tests * extra test * git sync settings / key change aware * ee-repo ref * ee-repo ref * ee repo ref * ee ref * review 1 * ee ref * Update frontend/src/lib/components/PullGitRepoPopover.svelte Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> * Update frontend/src/routes/(root)/(logged)/workspace_settings/+page.svelte Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> * ee ref * remove extra includes from ui --------- Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
102 lines
4.3 KiB
Rust
102 lines
4.3 KiB
Rust
/*
|
|
* Author: Ruben Fiszel
|
|
* Copyright: Windmill Labs, Inc 2022
|
|
* This file and its contents are licensed under the AGPLv3 License.
|
|
* Please see the included NOTICE for copyright information and
|
|
* LICENSE-AGPL for a copy of the license.
|
|
*/
|
|
|
|
use sqlx::{Pool, Postgres};
|
|
|
|
use windmill_common::scripts::ScriptHash;
|
|
|
|
#[cfg(feature = "private")]
|
|
pub mod git_sync_ee;
|
|
pub mod git_sync_oss;
|
|
|
|
pub use git_sync_oss::handle_deployment_metadata;
|
|
pub type DB = Pool<Postgres>;
|
|
|
|
#[derive(Clone, Debug)]
|
|
pub enum DeployedObject {
|
|
Script { hash: ScriptHash, path: String, parent_path: Option<String> },
|
|
Flow { path: String, parent_path: Option<String>, version: i64 },
|
|
App { path: String, version: i64, parent_path: Option<String> },
|
|
Folder { path: String },
|
|
Resource { path: String, parent_path: Option<String> },
|
|
Variable { path: String, parent_path: Option<String> },
|
|
Schedule { path: String },
|
|
ResourceType { path: String },
|
|
User { email: String },
|
|
Group { name: String },
|
|
HttpTrigger { path: String },
|
|
WebsocketTrigger { path: String },
|
|
KafkaTrigger { path: String },
|
|
NatsTrigger { path: String },
|
|
PostgresTrigger { path: String },
|
|
MqttTrigger { path: String },
|
|
SqsTrigger { path: String },
|
|
GcpTrigger { path: String },
|
|
Settings { setting_type: String },
|
|
Key { key_type: String },
|
|
}
|
|
|
|
impl DeployedObject {
|
|
pub fn get_path(&self) -> String {
|
|
match self {
|
|
DeployedObject::Script { path, .. } => path.to_owned(),
|
|
DeployedObject::Flow { path, .. } => path.to_owned(),
|
|
DeployedObject::App { path, .. } => path.to_owned(),
|
|
DeployedObject::Folder { path, .. } => path.to_owned(),
|
|
DeployedObject::Resource { path, .. } => path.to_owned(),
|
|
DeployedObject::Variable { path, .. } => path.to_owned(),
|
|
DeployedObject::Schedule { path, .. } => path.to_owned(),
|
|
DeployedObject::ResourceType { path, .. } => path.to_owned(),
|
|
DeployedObject::User { email } => format!("users/{email}"),
|
|
DeployedObject::Group { name } => format!("groups/{name}"),
|
|
DeployedObject::HttpTrigger { path } => path.to_owned(),
|
|
DeployedObject::WebsocketTrigger { path } => path.to_owned(),
|
|
DeployedObject::KafkaTrigger { path } => path.to_owned(),
|
|
DeployedObject::NatsTrigger { path } => path.to_owned(),
|
|
DeployedObject::PostgresTrigger { path } => path.to_owned(),
|
|
DeployedObject::MqttTrigger { path } => path.to_owned(),
|
|
DeployedObject::SqsTrigger { path } => path.to_owned(),
|
|
DeployedObject::GcpTrigger { path } => path.to_owned(),
|
|
DeployedObject::Settings { .. } => "settings.yaml".to_string(),
|
|
DeployedObject::Key { .. } => "encryption_key.yaml".to_string(),
|
|
}
|
|
}
|
|
|
|
pub fn get_ignore_regex_filter(&self) -> bool {
|
|
match self {
|
|
Self::User { .. } | Self::Group { .. } | Self::ResourceType { .. } | Self::Settings { .. } | Self::Key { .. } => true,
|
|
_ => false,
|
|
}
|
|
}
|
|
|
|
pub fn get_parent_path(&self) -> Option<String> {
|
|
match self {
|
|
DeployedObject::Script { parent_path, .. } => parent_path.to_owned(),
|
|
DeployedObject::Flow { parent_path, .. } => parent_path.to_owned(),
|
|
DeployedObject::App { parent_path, .. } => parent_path.to_owned(),
|
|
DeployedObject::Folder { .. } => None,
|
|
DeployedObject::Resource { parent_path, .. } => parent_path.to_owned(),
|
|
DeployedObject::Variable { parent_path, .. } => parent_path.to_owned(),
|
|
DeployedObject::Schedule { .. } => None,
|
|
DeployedObject::ResourceType { .. } => None,
|
|
DeployedObject::User { .. } => None,
|
|
DeployedObject::Group { .. } => None,
|
|
DeployedObject::HttpTrigger { .. } => None,
|
|
DeployedObject::WebsocketTrigger { .. } => None,
|
|
DeployedObject::KafkaTrigger { .. } => None,
|
|
DeployedObject::NatsTrigger { .. } => None,
|
|
DeployedObject::PostgresTrigger { .. } => None,
|
|
DeployedObject::MqttTrigger { .. } => None,
|
|
DeployedObject::SqsTrigger { .. } => None,
|
|
DeployedObject::GcpTrigger { .. } => None,
|
|
DeployedObject::Settings { .. } => None,
|
|
DeployedObject::Key { .. } => None,
|
|
}
|
|
}
|
|
}
|