src/api2/types.rs: introduce PROXMOX_SAFE_ID_REGEX, use it for DATASTORE_SCHEMA
This commit is contained in:
parent
66c49c21c3
commit
d0adf270fb
|
@ -23,6 +23,15 @@ const_regex!{
|
||||||
pub IP_FORMAT_REGEX = IPRE!();
|
pub IP_FORMAT_REGEX = IPRE!();
|
||||||
pub SHA256_HEX_REGEX = r"^[a-f0-9]{64}$"; // fixme: define in common_regex ?
|
pub SHA256_HEX_REGEX = r"^[a-f0-9]{64}$"; // fixme: define in common_regex ?
|
||||||
pub SYSTEMD_DATETIME_REGEX = r"^\d{4}-\d{2}-\d{2}( \d{2}:\d{2}(:\d{2})?)?$"; // fixme: define in common_regex ?
|
pub SYSTEMD_DATETIME_REGEX = r"^\d{4}-\d{2}-\d{2}( \d{2}:\d{2}(:\d{2})?)?$"; // fixme: define in common_regex ?
|
||||||
|
|
||||||
|
/// Regex for safe identifiers.
|
||||||
|
///
|
||||||
|
/// This
|
||||||
|
/// [article](https://dwheeler.com/essays/fixing-unix-linux-filenames.html)
|
||||||
|
/// contains further information why it is reasonable to restict
|
||||||
|
/// names this way. This is not only useful for filenames, but for
|
||||||
|
/// any identifier command line tools work with.
|
||||||
|
pub PROXMOX_SAFE_ID_REGEX = r"^[A-Za-z0-9_][A-Za-z0-9._\-]*";
|
||||||
}
|
}
|
||||||
|
|
||||||
pub const SYSTEMD_DATETIME_FORMAT: ApiStringFormat =
|
pub const SYSTEMD_DATETIME_FORMAT: ApiStringFormat =
|
||||||
|
@ -34,6 +43,9 @@ pub const IP_FORMAT: ApiStringFormat =
|
||||||
pub const PVE_CONFIG_DIGEST_FORMAT: ApiStringFormat =
|
pub const PVE_CONFIG_DIGEST_FORMAT: ApiStringFormat =
|
||||||
ApiStringFormat::Pattern(&SHA256_HEX_REGEX);
|
ApiStringFormat::Pattern(&SHA256_HEX_REGEX);
|
||||||
|
|
||||||
|
pub const PROXMOX_SAFE_ID_FORMAT: ApiStringFormat =
|
||||||
|
ApiStringFormat::Pattern(&PROXMOX_SAFE_ID_REGEX);
|
||||||
|
|
||||||
pub const PVE_CONFIG_DIGEST_SCHEMA: Schema = StringSchema::new(r#"\
|
pub const PVE_CONFIG_DIGEST_SCHEMA: Schema = StringSchema::new(r#"\
|
||||||
Prevent changes if current configuration file has different SHA256 digest.
|
Prevent changes if current configuration file has different SHA256 digest.
|
||||||
This can be used to prevent concurrent modifications.
|
This can be used to prevent concurrent modifications.
|
||||||
|
@ -103,5 +115,6 @@ pub const UPID_SCHEMA: Schema = StringSchema::new("Unique Process/Task ID.")
|
||||||
.schema();
|
.schema();
|
||||||
|
|
||||||
pub const DATASTORE_SCHEMA: Schema = StringSchema::new("Datastore name.")
|
pub const DATASTORE_SCHEMA: Schema = StringSchema::new("Datastore name.")
|
||||||
|
.format(&PROXMOX_SAFE_ID_FORMAT)
|
||||||
.max_length(32)
|
.max_length(32)
|
||||||
.schema();
|
.schema();
|
||||||
|
|
Loading…
Reference in New Issue