Skip to main content

systemprompt_models/profile/
secrets.rs

1//! Profile `secrets:` block naming the secret source and file path.
2//!
3//! Copyright (c) systemprompt.io — Business Source License 1.1.
4//! See <https://systemprompt.io> for licensing details.
5
6use serde::{Deserialize, Serialize};
7
8#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)]
9#[serde(rename_all = "lowercase")]
10pub enum SecretsSource {
11    File,
12    Env,
13}
14
15#[derive(Debug, Clone, Serialize, Deserialize, schemars::JsonSchema)]
16#[serde(deny_unknown_fields)]
17pub struct SecretsConfig {
18    pub secrets_path: String,
19
20    #[serde(default)]
21    pub validation: SecretsValidationMode,
22
23    pub source: SecretsSource,
24}
25
26#[derive(
27    Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, Default, schemars::JsonSchema,
28)]
29#[serde(rename_all = "lowercase")]
30pub enum SecretsValidationMode {
31    Strict,
32
33    #[default]
34    Warn,
35
36    Skip,
37}