Skip to main content

codex_exec_server/
environment_registry.rs

1use serde::Deserialize;
2use serde::Serialize;
3
4use crate::NoiseChannelPublicKey;
5
6/// Request body for registering an executor with the environment registry.
7#[derive(Clone, Deserialize, Eq, PartialEq, Serialize)]
8pub struct EnvironmentRegistryRegistrationRequest {
9    pub security_profile: String,
10    pub executor_public_key: NoiseChannelPublicKey,
11}
12
13/// Environment registry response returned after executor registration.
14#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
15pub struct EnvironmentRegistryRegistrationResponse {
16    pub environment_id: String,
17    pub url: String,
18    pub security_profile: String,
19    pub executor_registration_id: String,
20}
21
22/// Request body for connecting a harness key with the environment registry.
23#[derive(Clone, Deserialize, Eq, PartialEq, Serialize)]
24pub struct EnvironmentRegistryConnectRequest {
25    pub harness_public_key: NoiseChannelPublicKey,
26}
27
28/// Environment registry response returned after connecting a harness key.
29#[derive(Clone, Deserialize, Eq, PartialEq, Serialize)]
30pub struct EnvironmentRegistryConnectResponse {
31    pub environment_id: String,
32    pub url: String,
33    pub security_profile: String,
34    pub executor_registration_id: String,
35    pub executor_public_key: NoiseChannelPublicKey,
36    pub harness_key_authorization: String,
37}
38
39impl std::fmt::Debug for EnvironmentRegistryConnectResponse {
40    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
41        f.debug_struct("EnvironmentRegistryConnectResponse")
42            .field("environment_id", &self.environment_id)
43            .field("url", &"<redacted>")
44            .field("security_profile", &self.security_profile)
45            .field("executor_registration_id", &self.executor_registration_id)
46            .field("executor_public_key", &self.executor_public_key)
47            .field("harness_key_authorization", &"<redacted>")
48            .finish()
49    }
50}
51
52/// Request body for authorizing a harness key with the environment registry.
53#[derive(Clone, Deserialize, Eq, PartialEq, Serialize)]
54pub struct EnvironmentRegistryHarnessKeyValidationRequest {
55    pub executor_registration_id: String,
56    pub harness_public_key: NoiseChannelPublicKey,
57    pub harness_key_authorization: String,
58}
59
60/// Environment registry response returned after harness key validation.
61#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
62pub struct EnvironmentRegistryHarnessKeyValidationResponse {
63    pub valid: bool,
64}
65
66#[cfg(test)]
67#[path = "environment_registry_tests.rs"]
68mod tests;