Skip to main content
Glama
v1.rs65 kB
use serde::{ Deserialize, Serialize, }; use si_id::{ ApprovalRequirementDefinitionId, EntityId, ManagementPrototypeId, UserPk, }; use strum::{ Display, EnumDiscriminants, }; use crate::{ ActionKind, ActionPrototypeId, Actor, AttributeValueId, AuthenticationMethod, ChangeSetId, ChangeSetStatus, ComponentId, FuncArgumentId, FuncId, FuncKind, FuncRunId, InputSocketId, OutputSocketId, PropId, SchemaId, SchemaVariantId, SecretId, ViewId, WorkspacePk, func_run::FuncArgumentKind, }; type MetadataDiscrim = AuditLogMetadataV1Discriminants; type Kind = AuditLogKindV1; type Metadata = AuditLogMetadataV1; #[derive(Debug, Deserialize, Serialize, Clone, PartialEq, Eq)] pub struct AuditLogV1 { pub actor: Actor, pub kind: AuditLogKindV1, pub entity_name: String, pub timestamp: String, pub change_set_id: Option<ChangeSetId>, pub authentication_method: Option<AuthenticationMethod>, } #[remain::sorted] #[derive(Debug, Deserialize, Serialize, Clone, PartialEq, Eq, Display, EnumDiscriminants)] pub enum AuditLogKindV1 { AbandonChangeSet { from_status: ChangeSetStatus, }, AddAction { prototype_id: ActionPrototypeId, action_kind: ActionKind, func_id: FuncId, func_display_name: Option<String>, func_name: String, component_id: Option<ComponentId>, }, AddApprover { approval_requirement_definition_id: ApprovalRequirementDefinitionId, entity_name: Option<String>, entity_kind: String, entity_id: EntityId, user_id: UserPk, }, ApplyChangeSet, ApproveChangeSetApply { from_status: ChangeSetStatus, }, AttachActionFunc { func_id: FuncId, func_display_name: Option<String>, schema_variant_id: Option<SchemaVariantId>, component_id: Option<ComponentId>, action_kind: Option<ActionKind>, }, AttachAttributeFunc { func_id: FuncId, func_display_name: Option<String>, schema_variant_id: Option<SchemaVariantId>, component_id: Option<ComponentId>, subject_name: String, prop_id: Option<PropId>, output_socket_id: Option<OutputSocketId>, destination_name: String, }, AttachAuthFunc { func_id: FuncId, func_display_name: Option<String>, schema_variant_id: Option<SchemaVariantId>, }, AttachCodeGenFunc { func_id: FuncId, func_display_name: Option<String>, schema_variant_id: Option<SchemaVariantId>, component_id: Option<ComponentId>, subject_name: String, }, AttachManagementFunc { func_id: FuncId, func_display_name: Option<String>, schema_variant_id: Option<SchemaVariantId>, schema_id: Option<SchemaId>, component_id: Option<ComponentId>, subject_name: String, }, AttachQualificationFunc { func_id: FuncId, func_display_name: Option<String>, schema_variant_id: Option<SchemaVariantId>, component_id: Option<ComponentId>, subject_name: String, }, CancelAction { prototype_id: ActionPrototypeId, action_kind: ActionKind, func_id: FuncId, func_display_name: Option<String>, func_name: String, component_id: Option<ComponentId>, }, ContributeModule { version: String, schema_id: Option<SchemaId>, schema_variant_id: Option<SchemaVariantId>, schema_variant_version: Option<String>, }, CreateApprovalRequirementDefinition { individual_approvers: Vec<UserPk>, approval_requirement_definition_id: ApprovalRequirementDefinitionId, entity_name: Option<String>, entity_kind: String, entity_id: EntityId, }, CreateChangeSet, CreateComponent { name: String, component_id: ComponentId, schema_variant_id: SchemaVariantId, schema_variant_name: String, }, CreateConnection { from_component_id: ComponentId, from_component_name: String, from_socket_id: OutputSocketId, from_socket_name: String, to_component_id: ComponentId, to_component_name: String, to_socket_id: InputSocketId, to_socket_name: String, }, CreateFunc { func_display_name: Option<String>, func_kind: FuncKind, }, CreateFuncArgument { func_id: FuncId, func_display_name: Option<String>, func_name: String, kind: FuncArgumentKind, element_kind: Option<FuncArgumentKind>, }, CreateSchemaVariant { schema_id: SchemaId, schema_variant_id: SchemaVariantId, }, CreateSecret { name: String, secret_id: SecretId, }, CreateView { view_id: ViewId, }, DeleteApprovalRequirementDefinition { approval_requirement_definition_id: ApprovalRequirementDefinitionId, entity_name: Option<String>, entity_kind: String, entity_id: EntityId, individual_approvers: Vec<UserPk>, // later add approver_groups once implemented for users }, DeleteComponent { name: String, component_id: ComponentId, schema_variant_id: SchemaVariantId, schema_variant_name: String, }, DeleteConnection { from_component_id: ComponentId, from_component_name: String, from_socket_id: OutputSocketId, from_socket_name: String, to_component_id: ComponentId, to_component_name: String, to_socket_id: InputSocketId, to_socket_name: String, }, DeleteFunc { func_id: FuncId, func_display_name: Option<String>, func_kind: FuncKind, }, DeleteFuncArgument { func_id: FuncId, func_display_name: Option<String>, func_name: String, func_argument_id: FuncArgumentId, }, DeleteSchemaVariant { schema_variant_id: SchemaVariantId, schema_id: SchemaId, }, DeleteSecret { name: String, secret_id: SecretId, }, DeleteView { view_id: ViewId, }, DetachFunc { func_id: FuncId, func_display_name: Option<String>, schema_variant_id: Option<SchemaVariantId>, schema_ids: Option<Vec<SchemaId>>, component_id: Option<ComponentId>, subject_name: String, }, EraseComponent { name: String, component_id: ComponentId, schema_variant_id: SchemaVariantId, schema_variant_name: String, }, ExecuteFunc { func_id: FuncId, func_display_name: Option<String>, }, ExportWorkspace { id: WorkspacePk, name: String, version: String, }, GenerateTemplate { schema_variant_id: SchemaVariantId, management_prototype_id: ManagementPrototypeId, func_id: FuncId, func_name: String, asset_name: String, }, HoldAction { prototype_id: ActionPrototypeId, action_kind: ActionKind, func_id: FuncId, func_display_name: Option<String>, func_name: String, component_id: Option<ComponentId>, }, InstallSchemaAndVariant { schema_id: SchemaId, schema_variant_id: SchemaVariantId, schema_variant_display_name: String, }, InstallWorkspace { id: WorkspacePk, name: String, version: String, }, Login, ManagementOperationsComplete { component_id: ComponentId, prototype_id: ManagementPrototypeId, func_id: FuncId, func_name: String, status: String, message: Option<String>, }, OrphanComponent { component_id: ComponentId, previous_parent_id: ComponentId, previous_parent_name: String, }, PurgeOpenChangeSets { change_set_ids: Vec<ChangeSetId>, }, PutActionOnHold { prototype_id: ActionPrototypeId, action_kind: ActionKind, func_id: FuncId, func_display_name: Option<String>, func_name: String, }, RegenerateSchemaVariant { schema_variant_id: SchemaVariantId, }, RejectChangeSetApply { from_status: ChangeSetStatus, }, RemoveApprover { approval_requirement_definition_id: ApprovalRequirementDefinitionId, entity_name: Option<String>, entity_kind: String, entity_id: EntityId, user_id: UserPk, }, RemoveDefaultSubscriptionSource { component_id: ComponentId, av_id: AttributeValueId, av_identifier: String, }, RenameComponent { component_id: ComponentId, old_name: String, new_name: String, }, ReopenChangeSet { from_status: ChangeSetStatus, }, RequestChangeSetApproval { from_status: ChangeSetStatus, }, RestoreComponent { name: String, component_id: ComponentId, before_to_delete: bool, schema_id: SchemaId, schema_name: String, schema_variant_id: SchemaVariantId, schema_variant_name: String, }, RetryAction { prototype_id: ActionPrototypeId, action_kind: ActionKind, func_id: FuncId, func_display_name: Option<String>, func_name: String, component_id: Option<ComponentId>, }, RunAction { prototype_id: ActionPrototypeId, action_kind: ActionKind, func_id: FuncId, func_display_name: Option<String>, func_name: String, run_status: bool, }, SetAttribute { component_id: ComponentId, attribute_value_id: AttributeValueId, path: String, before_value: Option<PropValueSource>, after_value: Option<PropValueSource>, }, SetDefaultSubscriptionSource { component_id: ComponentId, av_id: AttributeValueId, av_identifier: String, }, TestFunction { func_id: FuncId, func_display_name: Option<String>, func_run_id: FuncRunId, }, UnlockFunc { func_id: FuncId, func_display_name: Option<String>, schema_variant_id: Option<SchemaVariantId>, component_id: Option<ComponentId>, subject_name: Option<String>, }, UnlockSchemaVariant { schema_variant_id: SchemaVariantId, schema_variant_display_name: String, }, UnsetAttribute { component_id: ComponentId, attribute_value_id: AttributeValueId, path: String, before_value: Option<PropValueSource>, }, UpdateComponent { component_id: ComponentId, component_name: String, }, UpdateComponentParent { component_id: ComponentId, old_parent_id: Option<ComponentId>, old_parent_name: Option<String>, new_parent_id: ComponentId, new_parent_name: String, }, UpdateDependentInputSocket { input_socket_id: InputSocketId, input_socket_name: String, attribute_value_id: AttributeValueId, input_attribute_value_ids: Vec<AttributeValueId>, func_id: FuncId, func_display_name: Option<String>, func_name: String, component_id: ComponentId, component_name: String, schema_variant_id: SchemaVariantId, schema_variant_display_name: String, before_value: Option<serde_json::Value>, after_value: Option<serde_json::Value>, }, UpdateDependentOutputSocket { output_socket_id: OutputSocketId, output_socket_name: String, attribute_value_id: AttributeValueId, input_attribute_value_ids: Vec<AttributeValueId>, func_id: FuncId, func_display_name: Option<String>, func_name: String, component_id: ComponentId, component_name: String, schema_variant_id: SchemaVariantId, schema_variant_display_name: String, before_value: Option<serde_json::Value>, after_value: Option<serde_json::Value>, }, UpdateDependentProperty { prop_id: PropId, prop_name: String, attribute_value_id: AttributeValueId, input_attribute_value_ids: Vec<AttributeValueId>, func_id: FuncId, func_display_name: Option<String>, func_name: String, component_id: ComponentId, component_name: String, schema_variant_id: SchemaVariantId, schema_variant_display_name: String, before_value: Option<serde_json::Value>, after_value: Option<serde_json::Value>, is_leaf_overlay: bool, }, UpdateFuncMetadata { func_id: FuncId, old_display_name: Option<String>, new_display_name: Option<String>, old_description: Option<String>, new_description: Option<String>, }, UpdatePropertyEditorValue { component_id: ComponentId, component_name: String, schema_variant_id: SchemaVariantId, schema_variant_display_name: String, prop_id: PropId, prop_name: String, attribute_value_id: AttributeValueId, before_value: Option<serde_json::Value>, after_value: Option<serde_json::Value>, }, UpdatePropertyEditorValueForSecret { component_id: ComponentId, component_name: String, schema_variant_id: SchemaVariantId, schema_variant_display_name: String, prop_id: PropId, prop_name: String, attribute_value_id: AttributeValueId, before_secret_name: Option<String>, before_secret_id: Option<SecretId>, after_secret_name: Option<String>, after_secret_id: Option<SecretId>, }, UpdateSchemaVariant { old_display_name: String, new_display_name: String, old_description: String, new_description: String, old_category: String, new_category: String, old_link: String, new_link: String, old_color: String, new_color: String, old_component_type: String, new_component_type: String, //todo: what to do about the code? }, UpdateSecret { name: String, secret_id: SecretId, }, UpdateView { view_id: ViewId, old_name: String, }, UpgradeComponent { name: String, component_id: ComponentId, schema_id: SchemaId, new_schema_variant_id: SchemaVariantId, new_schema_variant_name: String, old_schema_variant_id: SchemaVariantId, old_schema_variant_name: String, }, WithdrawRequestForChangeSetApply { from_status: ChangeSetStatus, }, WorkspaceIntegration { old_slack_webhook_url: String, new_slack_webhook_url: String, }, } /// This is an identical copy of latest [`AuditLogKind`], but uses "serde untagged" wrapper. This is used for inserting /// and reading from the "metadata" column in the table as well as for additional columns. /// /// Reference: https://serde.rs/enum-representations.html#untagged /// /// _Note:_ there are multiple uses of renaming to camel case are related to this: https://github.com/serde-rs/serde/issues/1560 #[remain::sorted] #[derive(Debug, Deserialize, Serialize, EnumDiscriminants)] #[serde(untagged, rename_all = "camelCase")] pub enum AuditLogMetadataV1 { #[serde(rename_all = "camelCase")] AbandonChangeSet { from_status: ChangeSetStatus }, #[serde(rename_all = "camelCase")] AddAction { prototype_id: ActionPrototypeId, action_kind: ActionKind, func_id: FuncId, func_display_name: Option<String>, func_name: String, component_id: Option<ComponentId>, }, #[serde(rename_all = "camelCase")] AddApprover { approval_requirement_definition_id: ApprovalRequirementDefinitionId, entity_name: Option<String>, entity_kind: String, entity_id: EntityId, user_id: UserPk, }, #[serde(rename_all = "camelCase")] ApplyChangeSet, #[serde(rename_all = "camelCase")] ApproveChangeSetApply { from_status: ChangeSetStatus }, #[serde(rename_all = "camelCase")] AttachActionFunc { func_id: FuncId, func_display_name: Option<String>, schema_variant_id: Option<SchemaVariantId>, component_id: Option<ComponentId>, action_kind: Option<ActionKind>, }, #[serde(rename_all = "camelCase")] AttachAttributeFunc { func_id: FuncId, func_display_name: Option<String>, schema_variant_id: Option<SchemaVariantId>, component_id: Option<ComponentId>, subject_name: String, prop_id: Option<PropId>, output_socket_id: Option<OutputSocketId>, destination_name: String, }, #[serde(rename_all = "camelCase")] AttachAuthFunc { func_id: FuncId, func_display_name: Option<String>, schema_variant_id: Option<SchemaVariantId>, }, #[serde(rename_all = "camelCase")] AttachCodeGenFunc { func_id: FuncId, func_display_name: Option<String>, schema_variant_id: Option<SchemaVariantId>, component_id: Option<ComponentId>, subject_name: String, }, #[serde(rename_all = "camelCase")] AttachManagementFunc { func_id: FuncId, func_display_name: Option<String>, schema_variant_id: Option<SchemaVariantId>, component_id: Option<ComponentId>, subject_name: String, schema_id: Option<SchemaId>, }, #[serde(rename_all = "camelCase")] AttachQualificationFunc { func_id: FuncId, func_display_name: Option<String>, schema_variant_id: Option<SchemaVariantId>, component_id: Option<ComponentId>, subject_name: String, }, #[serde(rename_all = "camelCase")] CancelAction { prototype_id: ActionPrototypeId, action_kind: ActionKind, func_id: FuncId, func_display_name: Option<String>, func_name: String, component_id: Option<ComponentId>, }, #[serde(rename_all = "camelCase")] ContributeModule { version: String, schema_id: Option<SchemaId>, schema_variant_id: Option<SchemaVariantId>, schema_variant_version: Option<String>, }, #[serde(rename_all = "camelCase")] CreateApprovalRequirementDefinition { individual_approvers: Vec<UserPk>, approval_requirement_definition_id: ApprovalRequirementDefinitionId, entity_name: Option<String>, entity_kind: String, entity_id: EntityId, }, #[serde(rename_all = "camelCase")] CreateChangeSet, #[serde(rename_all = "camelCase")] CreateComponent { name: String, component_id: ComponentId, schema_variant_id: SchemaVariantId, schema_variant_name: String, }, #[serde(rename_all = "camelCase")] CreateConnection { from_component_id: ComponentId, from_component_name: String, from_socket_id: OutputSocketId, from_socket_name: String, to_component_id: ComponentId, to_component_name: String, to_socket_id: InputSocketId, to_socket_name: String, }, #[serde(rename_all = "camelCase")] CreateFunc { func_display_name: Option<String>, func_kind: FuncKind, }, #[serde(rename_all = "camelCase")] CreateFuncArgument { func_id: FuncId, func_display_name: Option<String>, func_name: String, kind: FuncArgumentKind, element_kind: Option<FuncArgumentKind>, }, #[serde(rename_all = "camelCase")] CreateSchemaVariant { schema_id: SchemaId, schema_variant_id: SchemaVariantId, }, #[serde(rename_all = "camelCase")] CreateSecret { name: String, secret_id: SecretId }, #[serde(rename_all = "camelCase")] CreateView { view_id: ViewId }, #[serde(rename_all = "camelCase")] DeleteApprovalRequirementDefinition { individual_approvers: Vec<UserPk>, approval_requirement_definition_id: ApprovalRequirementDefinitionId, entity_name: Option<String>, entity_kind: String, entity_id: EntityId, }, #[serde(rename_all = "camelCase")] DeleteComponent { name: String, component_id: ComponentId, schema_variant_id: SchemaVariantId, schema_variant_name: String, }, #[serde(rename_all = "camelCase")] DeleteConnection { from_component_id: ComponentId, from_component_name: String, from_socket_id: OutputSocketId, from_socket_name: String, to_component_id: ComponentId, to_component_name: String, to_socket_id: InputSocketId, to_socket_name: String, }, #[serde(rename_all = "camelCase")] DeleteFunc { func_id: FuncId, func_display_name: Option<String>, func_kind: FuncKind, }, #[serde(rename_all = "camelCase")] DeleteFuncArgument { func_id: FuncId, func_display_name: Option<String>, func_name: String, func_argument_id: FuncArgumentId, }, #[serde(rename_all = "camelCase")] DeleteSchemaVariant { schema_variant_id: SchemaVariantId, schema_id: SchemaId, }, #[serde(rename_all = "camelCase")] DeleteSecret { name: String, secret_id: SecretId }, #[serde(rename_all = "camelCase")] DeleteView { view_id: ViewId }, #[serde(rename_all = "camelCase")] DetachFunc { func_id: FuncId, func_display_name: Option<String>, schema_variant_id: Option<SchemaVariantId>, schema_ids: Option<Vec<SchemaId>>, component_id: Option<ComponentId>, subject_name: String, }, #[serde(rename_all = "camelCase")] EraseComponent { name: String, component_id: ComponentId, schema_variant_id: SchemaVariantId, schema_variant_name: String, }, #[serde(rename_all = "camelCase")] ExecuteFunc { func_id: FuncId, func_display_name: Option<String>, }, #[serde(rename_all = "camelCase")] ExportWorkspace { id: WorkspacePk, name: String, version: String, }, #[serde(rename_all = "camelCase")] GenerateTemplate { schema_variant_id: SchemaVariantId, management_prototype_id: ManagementPrototypeId, func_id: FuncId, func_name: String, asset_name: String, }, #[serde(rename_all = "camelCase")] HoldAction { prototype_id: ActionPrototypeId, action_kind: ActionKind, func_id: FuncId, func_display_name: Option<String>, func_name: String, component_id: Option<ComponentId>, }, #[serde(rename_all = "camelCase")] InstallSchemaAndVariant { schema_id: SchemaId, schema_variant_id: SchemaVariantId, schema_variant_display_name: String, }, #[serde(rename_all = "camelCase")] InstallWorkspace { id: WorkspacePk, name: String, version: String, }, #[serde(rename_all = "camelCase")] Login, #[serde(rename_all = "camelCase")] ManagementOperationsComplete { component_id: ComponentId, prototype_id: ManagementPrototypeId, func_id: FuncId, func_name: String, status: String, message: Option<String>, }, #[serde(rename_all = "camelCase")] OrphanComponent { component_id: ComponentId, previous_parent_id: ComponentId, previous_parent_name: String, }, #[serde(rename_all = "camelCase")] PurgeOpenChangeSets { change_set_ids: Vec<ChangeSetId> }, #[serde(rename_all = "camelCase")] PutActionOnHold { prototype_id: ActionPrototypeId, action_kind: ActionKind, func_id: FuncId, func_display_name: Option<String>, func_name: String, }, #[serde(rename_all = "camelCase")] RegenerateSchemaVariant { schema_variant_id: SchemaVariantId }, #[serde(rename_all = "camelCase")] RejectChangeSetApply { from_status: ChangeSetStatus }, #[serde(rename_all = "camelCase")] RemoveApprover { approval_requirement_definition_id: ApprovalRequirementDefinitionId, entity_name: Option<String>, entity_kind: String, entity_id: EntityId, user_id: UserPk, }, #[serde(rename_all = "camelCase")] RemoveDefaultSubscriptionSource { component_id: ComponentId, av_id: AttributeValueId, av_identifier: String, }, #[serde(rename_all = "camelCase")] RenameComponent { component_id: ComponentId, old_name: String, new_name: String, }, #[serde(rename_all = "camelCase")] ReopenChangeSet { from_status: ChangeSetStatus }, #[serde(rename_all = "camelCase")] RequestChangeSetApproval { from_status: ChangeSetStatus }, #[serde(rename_all = "camelCase")] RestoreComponent { name: String, component_id: ComponentId, before_to_delete: bool, schema_id: SchemaId, schema_name: String, schema_variant_id: SchemaVariantId, schema_variant_name: String, }, #[serde(rename_all = "camelCase")] RetryAction { prototype_id: ActionPrototypeId, action_kind: ActionKind, func_id: FuncId, func_display_name: Option<String>, func_name: String, component_id: Option<ComponentId>, }, #[serde(rename_all = "camelCase")] RunAction { prototype_id: ActionPrototypeId, action_kind: ActionKind, func_id: FuncId, func_display_name: Option<String>, func_name: String, run_status: bool, }, #[serde(rename_all = "camelCase")] SetAttribute { component_id: ComponentId, attribute_value_id: AttributeValueId, path: String, before_value: Option<PropValueSource>, after_value: Option<PropValueSource>, }, #[serde(rename_all = "camelCase")] SetDefaultSubscriptionSource { component_id: ComponentId, av_id: AttributeValueId, av_identifier: String, }, #[serde(rename_all = "camelCase")] TestFunction { func_id: FuncId, func_display_name: Option<String>, func_run_id: FuncRunId, }, #[serde(rename_all = "camelCase")] UnlockFunc { func_id: FuncId, func_display_name: Option<String>, schema_variant_id: Option<SchemaVariantId>, component_id: Option<ComponentId>, subject_name: Option<String>, }, #[serde(rename_all = "camelCase")] UnlockSchemaVariant { schema_variant_id: SchemaVariantId, schema_variant_display_name: String, }, #[serde(rename_all = "camelCase")] UnsetAttribute { component_id: ComponentId, attribute_value_id: AttributeValueId, path: String, before_value: Option<PropValueSource>, }, #[serde(rename_all = "camelCase")] UpdateComponent { component_id: ComponentId, component_name: String, }, #[serde(rename_all = "camelCase")] UpdateComponentParent { component_id: ComponentId, old_parent_id: Option<ComponentId>, old_parent_name: Option<String>, new_parent_id: ComponentId, new_parent_name: String, }, #[serde(rename_all = "camelCase")] UpdateDependentInputSocket { input_socket_id: InputSocketId, input_socket_name: String, attribute_value_id: AttributeValueId, input_attribute_value_ids: Vec<AttributeValueId>, func_id: FuncId, func_display_name: Option<String>, func_name: String, component_id: ComponentId, component_name: String, schema_variant_id: SchemaVariantId, schema_variant_display_name: String, before_value: Option<serde_json::Value>, after_value: Option<serde_json::Value>, }, #[serde(rename_all = "camelCase")] UpdateDependentOutputSocket { output_socket_id: OutputSocketId, output_socket_name: String, attribute_value_id: AttributeValueId, input_attribute_value_ids: Vec<AttributeValueId>, func_id: FuncId, func_display_name: Option<String>, func_name: String, component_id: ComponentId, component_name: String, schema_variant_id: SchemaVariantId, schema_variant_display_name: String, before_value: Option<serde_json::Value>, after_value: Option<serde_json::Value>, }, #[serde(rename_all = "camelCase")] UpdateDependentProperty { prop_id: PropId, prop_name: String, attribute_value_id: AttributeValueId, input_attribute_value_ids: Vec<AttributeValueId>, func_id: FuncId, func_display_name: Option<String>, func_name: String, component_id: ComponentId, component_name: String, schema_variant_id: SchemaVariantId, schema_variant_display_name: String, before_value: Option<serde_json::Value>, after_value: Option<serde_json::Value>, is_leaf_overlay: bool, }, #[serde(rename_all = "camelCase")] UpdateFuncMetadata { func_id: FuncId, old_display_name: Option<String>, new_display_name: Option<String>, old_description: Option<String>, new_description: Option<String>, }, #[serde(rename_all = "camelCase")] UpdatePropertyEditorValue { component_id: ComponentId, component_name: String, schema_variant_id: SchemaVariantId, schema_variant_display_name: String, prop_id: PropId, prop_name: String, attribute_value_id: AttributeValueId, before_value: Option<serde_json::Value>, after_value: Option<serde_json::Value>, }, #[serde(rename_all = "camelCase")] UpdatePropertyEditorValueForSecret { component_id: ComponentId, component_name: String, schema_variant_id: SchemaVariantId, schema_variant_display_name: String, prop_id: PropId, prop_name: String, attribute_value_id: AttributeValueId, before_secret_name: Option<String>, before_secret_id: Option<SecretId>, after_secret_name: Option<String>, after_secret_id: Option<SecretId>, }, #[serde(rename_all = "camelCase")] UpdateSchemaVariant { old_display_name: String, new_display_name: String, old_description: String, new_description: String, old_category: String, new_category: String, old_link: String, new_link: String, old_color: String, new_color: String, old_component_type: String, new_component_type: String, //todo: what to do about the code? }, #[serde(rename_all = "camelCase")] UpdateSecret { name: String, secret_id: SecretId }, #[serde(rename_all = "camelCase")] UpdateView { view_id: ViewId, old_name: String }, #[serde(rename_all = "camelCase")] UpgradeComponent { name: String, component_id: ComponentId, schema_id: SchemaId, new_schema_variant_id: SchemaVariantId, new_schema_variant_name: String, old_schema_variant_id: SchemaVariantId, old_schema_variant_name: String, }, #[serde(rename_all = "camelCase")] WithdrawRequestForChangeSetApply { from_status: ChangeSetStatus }, #[serde(rename_all = "camelCase")] WorkspaceIntegration { old_slack_webhook_url: String, new_slack_webhook_url: String, }, } impl AuditLogMetadataV1 { pub fn title_and_entity_type(&self) -> (&'static str, Option<&'static str>) { // Please keep this in alphabetical order! // #[remain::sorted] // NOTE(nick): this is not yet stable match self.into() { MetadataDiscrim::AbandonChangeSet => ("Abandoned", Some("Change Set")), MetadataDiscrim::AddAction => ("Enqueued", Some("Action")), MetadataDiscrim::AddApprover => ("User Added", Some("Approval Requirement Definition")), MetadataDiscrim::ApplyChangeSet => ("Applied", Some("Change Set")), MetadataDiscrim::ApproveChangeSetApply => { ("Approved Request to Apply", Some("Change Set")) } MetadataDiscrim::AttachActionFunc => ("Attached", Some("Action Function")), MetadataDiscrim::AttachAttributeFunc => ("Attached", Some("Attribute Function")), MetadataDiscrim::AttachAuthFunc => ("Attached", Some("Authentication Function")), MetadataDiscrim::AttachCodeGenFunc => ("Attached", Some("Code Generation Function")), MetadataDiscrim::AttachManagementFunc => ("Attached", Some("Management Function")), MetadataDiscrim::AttachQualificationFunc => { ("Attached", Some("Qualification Function")) } MetadataDiscrim::CancelAction => ("Removed", Some("Action")), MetadataDiscrim::ContributeModule => ("Contributed", Some("Module")), MetadataDiscrim::CreateApprovalRequirementDefinition => { ("Created", Some("Approval Requirement Definition")) } MetadataDiscrim::CreateChangeSet => ("Created", Some("Change Set")), MetadataDiscrim::CreateComponent => ("Created", Some("Component")), MetadataDiscrim::CreateConnection => ("Created", Some("Connection")), MetadataDiscrim::CreateFunc => ("Created", Some("Function")), MetadataDiscrim::CreateFuncArgument => ("Created", Some("Function Argument")), MetadataDiscrim::CreateSchemaVariant => ("Created", Some("Schema Variant")), MetadataDiscrim::CreateSecret => ("Created", Some("Secret")), MetadataDiscrim::CreateView => ("Created", Some("View")), MetadataDiscrim::DeleteApprovalRequirementDefinition => { ("Deleted", Some("Approval Requirement Definition")) } MetadataDiscrim::DeleteComponent => ("Deleted", Some("Component")), MetadataDiscrim::DeleteConnection => ("Deleted", Some("Connection")), MetadataDiscrim::DeleteFunc => ("Deleted", Some("Function")), MetadataDiscrim::DeleteFuncArgument => ("Deleted", Some("Function Argument")), MetadataDiscrim::DeleteSchemaVariant => ("Deleted", Some("Schema Variant")), MetadataDiscrim::DeleteSecret => ("Deleted", Some("Secret")), MetadataDiscrim::DeleteView => ("Deleted", Some("View")), MetadataDiscrim::DetachFunc => ("Detached", Some("Function")), MetadataDiscrim::EraseComponent => ("Erased", Some("Component")), MetadataDiscrim::ExecuteFunc => ("Executed", Some("Function")), MetadataDiscrim::ExportWorkspace => ("Exported", Some("Workspace")), MetadataDiscrim::InstallSchemaAndVariant => ("Installed", Some("Schema")), MetadataDiscrim::InstallWorkspace => ("Installed", Some("Workspace")), MetadataDiscrim::GenerateTemplate => ("Generated", Some("Template")), MetadataDiscrim::HoldAction => ("Held", Some("Action")), MetadataDiscrim::Login => ("Authenticated", None), MetadataDiscrim::ManagementOperationsComplete => { ("Executed", Some("Management Operations")) } MetadataDiscrim::OrphanComponent => ("Orphaned", Some("Component")), MetadataDiscrim::PurgeOpenChangeSets => ("Purged Open", Some("Change Sets")), MetadataDiscrim::PutActionOnHold => ("Paused", Some("Action")), MetadataDiscrim::RegenerateSchemaVariant => ("Regenerated", Some("Schema Variant")), MetadataDiscrim::RejectChangeSetApply => { ("Rejected Request to Apply", Some("Change Set")) } MetadataDiscrim::RemoveApprover => { ("User removed", Some("Approval Requirement Definition")) } MetadataDiscrim::RemoveDefaultSubscriptionSource => { ("Removed Default", Some("Subscription Source")) } MetadataDiscrim::RenameComponent => ("Renamed", Some("Component")), MetadataDiscrim::ReopenChangeSet => ("Reopened", Some("Change Set")), MetadataDiscrim::RequestChangeSetApproval => ("Requested to Apply", Some("Change Set")), MetadataDiscrim::RestoreComponent => ("Restored", Some("Component")), MetadataDiscrim::RetryAction => ("Retried", Some("Action")), MetadataDiscrim::RunAction => ("Ran", Some("Action")), MetadataDiscrim::SetAttribute => ("Set", Some("Attribute")), MetadataDiscrim::SetDefaultSubscriptionSource => { ("Set Default", Some("Subscription Source")) } MetadataDiscrim::TestFunction => ("Tested", Some("Function")), MetadataDiscrim::UnlockFunc => ("Unlocked", Some("Function")), MetadataDiscrim::UnlockSchemaVariant => ("Unlocked", Some("Schema Variant")), MetadataDiscrim::UnsetAttribute => ("Unset", Some("Attribute")), MetadataDiscrim::UpdateComponent => ("Updated", Some("Component")), MetadataDiscrim::UpdateComponentParent => ("Updated Parent", Some("Component")), MetadataDiscrim::UpdateDependentInputSocket => ("Set Dependent", Some("Input Socket")), MetadataDiscrim::UpdateDependentOutputSocket => { ("Set Dependent", Some("Output Socket")) } MetadataDiscrim::UpdateDependentProperty => ("Set Dependent", Some("Property")), MetadataDiscrim::UpdateFuncMetadata => ("Updated Func", Some("Metadata")), MetadataDiscrim::UpdatePropertyEditorValue => ("Updated Component", Some("Property")), MetadataDiscrim::UpdatePropertyEditorValueForSecret => { ("Updated Component", Some("Property for Secret")) } MetadataDiscrim::UpdateSecret => ("Updated", Some("Secret")), MetadataDiscrim::UpdateSchemaVariant => ("Updated", Some("Schema Variant")), MetadataDiscrim::UpdateView => ("Updated", Some("View")), MetadataDiscrim::UpgradeComponent => ("Upgraded", Some("Component")), MetadataDiscrim::WithdrawRequestForChangeSetApply => { ("Withdrew Request to Apply", Some("Change Set")) } MetadataDiscrim::WorkspaceIntegration => ("Workspace Integration Updated", None), } } } impl From<Kind> for Metadata { fn from(value: Kind) -> Self { // Please keep this in alphabetical order! // #[remain::sorted] // NOTE(nick): this is not yet stable match value { Kind::AbandonChangeSet { from_status } => Self::AbandonChangeSet { from_status }, Kind::AddAction { prototype_id, action_kind, func_id, func_display_name, func_name, component_id, } => Self::AddAction { prototype_id, action_kind, func_id, func_display_name, func_name, component_id, }, Kind::AddApprover { approval_requirement_definition_id, entity_name, user_id, entity_kind, entity_id, } => Self::AddApprover { approval_requirement_definition_id, entity_name, user_id, entity_kind, entity_id, }, Kind::ApplyChangeSet => Self::ApplyChangeSet, Kind::ApproveChangeSetApply { from_status } => { Self::ApproveChangeSetApply { from_status } } Kind::AttachActionFunc { func_id, func_display_name, schema_variant_id, component_id, action_kind, } => Self::AttachActionFunc { func_id, func_display_name, schema_variant_id, component_id, action_kind, }, Kind::AttachAttributeFunc { func_id, func_display_name, schema_variant_id, component_id, subject_name, prop_id, output_socket_id, destination_name, } => Self::AttachAttributeFunc { func_id, func_display_name, schema_variant_id, component_id, subject_name, prop_id, output_socket_id, destination_name, }, Kind::AttachAuthFunc { func_id, func_display_name, schema_variant_id, } => Self::AttachAuthFunc { func_id, func_display_name, schema_variant_id, }, Kind::AttachCodeGenFunc { func_id, func_display_name, schema_variant_id, component_id, subject_name, } => Self::AttachCodeGenFunc { func_id, func_display_name, schema_variant_id, component_id, subject_name, }, Kind::AttachManagementFunc { func_id, func_display_name, schema_variant_id, component_id, subject_name, schema_id, } => Self::AttachManagementFunc { func_id, func_display_name, schema_variant_id, component_id, subject_name, schema_id, }, Kind::AttachQualificationFunc { func_id, func_display_name, schema_variant_id, component_id, subject_name, } => Self::AttachQualificationFunc { func_id, func_display_name, schema_variant_id, component_id, subject_name, }, Kind::CancelAction { prototype_id, action_kind, func_id, func_display_name, func_name, component_id, } => Self::CancelAction { prototype_id, action_kind, func_id, func_display_name, func_name, component_id, }, Kind::ContributeModule { version, schema_id, schema_variant_id, schema_variant_version, } => Self::ContributeModule { version, schema_id, schema_variant_id, schema_variant_version, }, Kind::CreateApprovalRequirementDefinition { individual_approvers: approvers, approval_requirement_definition_id, entity_name, entity_kind, entity_id, } => Self::CreateApprovalRequirementDefinition { individual_approvers: approvers, approval_requirement_definition_id, entity_name, entity_kind, entity_id, }, Kind::CreateChangeSet => Self::CreateChangeSet, Kind::CreateComponent { name, component_id, schema_variant_id, schema_variant_name, } => Self::CreateComponent { name, component_id, schema_variant_id, schema_variant_name, }, Kind::CreateConnection { from_component_id, from_component_name, from_socket_id, from_socket_name, to_component_id, to_component_name, to_socket_id, to_socket_name, } => Self::CreateConnection { from_component_id, from_component_name, from_socket_id, from_socket_name, to_component_id, to_component_name, to_socket_id, to_socket_name, }, Kind::CreateFunc { func_display_name, func_kind, } => Self::CreateFunc { func_display_name, func_kind, }, Kind::CreateFuncArgument { func_id, func_display_name, func_name, kind, element_kind, } => Self::CreateFuncArgument { func_id, func_display_name, func_name, kind, element_kind, }, Kind::CreateSchemaVariant { schema_id, schema_variant_id, } => Self::CreateSchemaVariant { schema_id, schema_variant_id, }, Kind::CreateSecret { name, secret_id } => Self::CreateSecret { name, secret_id }, Kind::CreateView { view_id } => Self::CreateView { view_id }, Kind::DeleteApprovalRequirementDefinition { individual_approvers, approval_requirement_definition_id, entity_name, entity_kind, entity_id, } => Self::DeleteApprovalRequirementDefinition { approval_requirement_definition_id, individual_approvers, entity_name, entity_kind, entity_id, }, Kind::DeleteComponent { name, component_id, schema_variant_id, schema_variant_name, } => Self::DeleteComponent { name, component_id, schema_variant_id, schema_variant_name, }, Kind::DeleteConnection { from_component_id, from_component_name, from_socket_id, from_socket_name, to_component_id, to_component_name, to_socket_id, to_socket_name, } => Self::DeleteConnection { from_component_id, from_component_name, from_socket_id, from_socket_name, to_component_id, to_component_name, to_socket_id, to_socket_name, }, Kind::DeleteFunc { func_id, func_display_name, func_kind, } => Self::DeleteFunc { func_id, func_display_name, func_kind, }, Kind::DeleteFuncArgument { func_id, func_display_name, func_name, func_argument_id, } => Self::DeleteFuncArgument { func_id, func_display_name, func_name, func_argument_id, }, Kind::DeleteSchemaVariant { schema_variant_id, schema_id, } => Self::DeleteSchemaVariant { schema_variant_id, schema_id, }, Kind::DeleteSecret { name, secret_id } => Self::DeleteSecret { name, secret_id }, Kind::DeleteView { view_id } => Self::DeleteView { view_id }, Kind::DetachFunc { func_id, func_display_name, schema_variant_id, component_id, subject_name, schema_ids, } => Self::DetachFunc { func_id, func_display_name, schema_variant_id, schema_ids, component_id, subject_name, }, Kind::EraseComponent { name, component_id, schema_variant_id, schema_variant_name, } => Self::EraseComponent { name, component_id, schema_variant_id, schema_variant_name, }, Kind::ExecuteFunc { func_id, func_display_name, } => Self::ExecuteFunc { func_id, func_display_name, }, Kind::ExportWorkspace { id, name, version } => { Self::ExportWorkspace { id, name, version } } Kind::GenerateTemplate { schema_variant_id, management_prototype_id, func_id, func_name, asset_name, } => Self::GenerateTemplate { schema_variant_id, management_prototype_id, func_id, func_name, asset_name, }, Kind::HoldAction { prototype_id, action_kind, func_id, func_display_name, func_name, component_id, } => Self::HoldAction { prototype_id, action_kind, func_id, func_display_name, func_name, component_id, }, Kind::InstallSchemaAndVariant { schema_id, schema_variant_id, schema_variant_display_name, } => Self::InstallSchemaAndVariant { schema_id, schema_variant_id, schema_variant_display_name, }, Kind::InstallWorkspace { id, name, version } => { Self::InstallWorkspace { id, name, version } } Kind::Login => Self::Login, Kind::ManagementOperationsComplete { component_id, prototype_id, func_id, func_name, status, message, } => Self::ManagementOperationsComplete { component_id, prototype_id, func_id, func_name, status, message, }, Kind::OrphanComponent { component_id, previous_parent_id, previous_parent_name, } => Self::OrphanComponent { component_id, previous_parent_id, previous_parent_name, }, Kind::PurgeOpenChangeSets { change_set_ids } => { Self::PurgeOpenChangeSets { change_set_ids } } Kind::PutActionOnHold { prototype_id, action_kind, func_id, func_display_name, func_name, } => Self::PutActionOnHold { prototype_id, action_kind, func_id, func_display_name, func_name, }, Kind::RegenerateSchemaVariant { schema_variant_id } => { Self::RegenerateSchemaVariant { schema_variant_id } } Kind::RejectChangeSetApply { from_status } => { Self::RejectChangeSetApply { from_status } } Kind::RenameComponent { component_id, old_name, new_name, } => Self::RenameComponent { component_id, old_name, new_name, }, Kind::RemoveApprover { approval_requirement_definition_id, entity_name, entity_kind, entity_id, user_id, } => Self::RemoveApprover { approval_requirement_definition_id, entity_name, entity_kind, entity_id, user_id, }, Kind::RemoveDefaultSubscriptionSource { component_id, av_id, av_identifier, } => Self::RemoveDefaultSubscriptionSource { component_id, av_id, av_identifier, }, Kind::ReopenChangeSet { from_status } => Self::ReopenChangeSet { from_status }, Kind::RestoreComponent { name, component_id, before_to_delete, schema_id, schema_name, schema_variant_id, schema_variant_name, } => Self::RestoreComponent { name, component_id, before_to_delete, schema_id, schema_name, schema_variant_id, schema_variant_name, }, Kind::RequestChangeSetApproval { from_status } => { Self::RequestChangeSetApproval { from_status } } Kind::RetryAction { prototype_id, action_kind, func_id, func_display_name, func_name, component_id, } => Self::RetryAction { prototype_id, action_kind, func_id, func_display_name, func_name, component_id, }, Kind::RunAction { prototype_id, action_kind, func_id, func_display_name, func_name, run_status, } => Self::RunAction { prototype_id, action_kind, func_id, func_display_name, func_name, run_status, }, Kind::SetAttribute { component_id, attribute_value_id, path, before_value, after_value, } => Self::SetAttribute { component_id, attribute_value_id, path, before_value, after_value, }, Kind::SetDefaultSubscriptionSource { component_id, av_id, av_identifier, } => Self::SetDefaultSubscriptionSource { component_id, av_id, av_identifier, }, Kind::TestFunction { func_id, func_display_name, func_run_id, } => Self::TestFunction { func_id, func_display_name, func_run_id, }, Kind::UnlockFunc { func_id, func_display_name, schema_variant_id, component_id, subject_name, } => Self::UnlockFunc { func_id, func_display_name, schema_variant_id, component_id, subject_name, }, Kind::UnlockSchemaVariant { schema_variant_id, schema_variant_display_name, } => Self::UnlockSchemaVariant { schema_variant_id, schema_variant_display_name, }, Kind::UnsetAttribute { component_id, attribute_value_id, path, before_value, } => Self::UnsetAttribute { component_id, attribute_value_id, path, before_value, }, Kind::UpdateComponent { component_id, component_name, } => Self::UpdateComponent { component_id, component_name, }, Kind::UpdateComponentParent { component_id, old_parent_id, old_parent_name, new_parent_id, new_parent_name, } => Self::UpdateComponentParent { component_id, old_parent_id, old_parent_name, new_parent_id, new_parent_name, }, Kind::UpdateDependentInputSocket { input_socket_id, input_socket_name, attribute_value_id, input_attribute_value_ids, func_id, func_display_name, func_name, component_id, component_name, schema_variant_id, schema_variant_display_name, before_value, after_value, } => Self::UpdateDependentInputSocket { input_socket_id, input_socket_name, attribute_value_id, input_attribute_value_ids, func_id, func_display_name, func_name, component_id, component_name, schema_variant_id, schema_variant_display_name, before_value, after_value, }, Kind::UpdateDependentOutputSocket { output_socket_id, output_socket_name, attribute_value_id, input_attribute_value_ids, func_id, func_display_name, func_name, component_id, component_name, schema_variant_id, schema_variant_display_name, before_value, after_value, } => Self::UpdateDependentOutputSocket { output_socket_id, output_socket_name, attribute_value_id, input_attribute_value_ids, func_id, func_display_name, func_name, component_id, component_name, schema_variant_id, schema_variant_display_name, before_value, after_value, }, Kind::UpdateDependentProperty { prop_id, prop_name, attribute_value_id, input_attribute_value_ids, func_id, func_display_name, func_name, component_id, component_name, schema_variant_id, schema_variant_display_name, before_value, after_value, is_leaf_overlay, } => Self::UpdateDependentProperty { prop_id, prop_name, attribute_value_id, input_attribute_value_ids, func_id, func_display_name, func_name, component_id, component_name, schema_variant_id, schema_variant_display_name, before_value, after_value, is_leaf_overlay, }, Kind::UpdateFuncMetadata { func_id, old_display_name, new_display_name, old_description, new_description, } => Self::UpdateFuncMetadata { func_id, old_display_name, new_display_name, old_description, new_description, }, Kind::UpdatePropertyEditorValue { component_id, component_name, schema_variant_id, schema_variant_display_name, prop_id, prop_name, attribute_value_id, before_value, after_value, } => Self::UpdatePropertyEditorValue { component_id, component_name, schema_variant_id, schema_variant_display_name, prop_id, prop_name, attribute_value_id, before_value, after_value, }, Kind::UpdatePropertyEditorValueForSecret { component_id, component_name, schema_variant_id, schema_variant_display_name, prop_id, prop_name, attribute_value_id, before_secret_name, before_secret_id, after_secret_name, after_secret_id, } => Self::UpdatePropertyEditorValueForSecret { component_id, component_name, schema_variant_id, schema_variant_display_name, prop_id, prop_name, attribute_value_id, before_secret_name, before_secret_id, after_secret_name, after_secret_id, }, Kind::UpdateSchemaVariant { old_display_name, new_display_name, old_description, new_description, old_category, new_category, old_link, new_link, old_color, new_color, old_component_type, new_component_type, } => Self::UpdateSchemaVariant { old_display_name, new_display_name, old_description, new_description, old_category, new_category, old_link, new_link, old_color, new_color, old_component_type, new_component_type, }, Kind::UpdateSecret { name, secret_id } => Self::UpdateSecret { name, secret_id }, Kind::UpdateView { view_id, old_name } => Self::UpdateView { view_id, old_name }, Kind::UpgradeComponent { name, component_id, schema_id, new_schema_variant_id, new_schema_variant_name, old_schema_variant_id, old_schema_variant_name, } => Self::UpgradeComponent { name, component_id, schema_id, new_schema_variant_id, new_schema_variant_name, old_schema_variant_id, old_schema_variant_name, }, Kind::WithdrawRequestForChangeSetApply { from_status } => { Self::WithdrawRequestForChangeSetApply { from_status } } Kind::WorkspaceIntegration { old_slack_webhook_url, new_slack_webhook_url, } => Self::WorkspaceIntegration { old_slack_webhook_url, new_slack_webhook_url, }, } } } #[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)] #[allow(dead_code)] pub enum PropValueSource { Value(serde_json::Value), Subscription { value: Option<serde_json::Value>, source_component_id: ComponentId, source_path: String, }, None, }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/systeminit/si'

If you have feedback or need assistance with the MCP directory API, please join our Discord server