@accelerated-software-development/caddy-api-client - v0.4.3
    Preparing search index...

    Function buildSecurityApp

    • Build a complete security app configuration

      Creates the full security app configuration for /config/apps/security.

      Parameters

      Returns {
          config?: {
              authentication_portals?: {
                  cookie_config?: {
                      domains?: Record<
                          string,
                          { insecure?: ...; lifetime?: ...; same_site?: ... },
                      >;
                      insecure?: boolean;
                      lifetime?: number;
                      path?: string;
                      same_site?: string;
                  };
                  identity_providers?: string[];
                  identity_stores?: string[];
                  name: string;
                  ui?: { custom_css?: string; logo_url?: string; theme?: string };
                  user_transformer_configs?: Record<string, unknown>[];
              }[];
              authorization_policies?: {
                  access_list_rules?: {
                      action?: "allow"
                      | "deny";
                      comment?: string;
                      conditions?: (...)[];
                  }[];
                  bypass_configs?: { match_type: string; uri?: string }[];
                  crypto_key_configs?: { source?: string; token_name?: string }[];
                  name: string;
              }[];
              credentials?: { generic?: Record<string, unknown> };
              identity_providers?: {
                  kind: "oauth";
                  name: string;
                  params:
                      | objectOutputType<
                          {
                              authorization_url: ZodOptional<ZodString>;
                              client_id: ZodOptional<ZodString>;
                              client_secret: ZodOptional<ZodString>;
                              driver: ZodOptional<ZodString>;
                              realm: ZodOptional<ZodString>;
                              scopes: ZodOptional<ZodArray<(...), (...)>>;
                              token_url: ZodOptional<ZodString>;
                          },
                          ZodTypeAny,
                          "passthrough",
                      >
                      | objectOutputType<
                          {
                              client_id: ZodOptional<ZodString>;
                              client_secret: ZodOptional<ZodString>;
                              driver: ZodOptional<ZodString>;
                              metadata_url: ZodOptional<ZodString>;
                              realm: ZodOptional<ZodString>;
                              scopes: ZodOptional<ZodArray<(...), (...)>>;
                          },
                          ZodTypeAny,
                          "passthrough",
                      >;
              }[];
              identity_stores?: (
                  | {
                      kind: "local";
                      name: string;
                      params: { path: string; realm?: string };
                  }
                  | {
                      kind: "ldap";
                      name: string;
                      params: {
                          bind_password?: string;
                          bind_username?: string;
                          groups?: (...)[];
                          realm?: string;
                          search_base_dn?: string;
                          search_user_filter?: string;
                          servers?: (...)[];
                      } & { [k: string]: unknown };
                  }
              )[];
          };
          secrets_managers?: objectOutputType<
              { driver: ZodString },
              ZodTypeAny,
              "passthrough",
          >[];
      }

      Validated security app configuration

      import { buildSecurityApp, buildSecurityConfig } from "@.../caddy-api-client/plugins/caddy-security";

      const app = buildSecurityApp({
      config: buildSecurityConfig({
      // ... config options
      }),
      });

      // Apply to Caddy
      await client.request("/config/apps/security", {
      method: "PUT",
      body: JSON.stringify(app),
      });