Frodo Library - v5.0.0-36
    Preparing search index...

    Type Alias Frodo

    Frodo Library

    type Frodo = {
        admin: Admin;
        agent: Agent;
        am: { config: AmConfig };
        app: Application;
        authn: { journey: Journey; node: Node; settings: AuthenticationSettings };
        authz: { policy: Policy; policySet: PolicySet; resourceType: ResourceType };
        cache: TokenCache;
        cloud: EsvCount & {
            adminFed: AdminFederation;
            env: EnvAIAgent & EnvContentSecurityPolicy & EnvCookieDomains & EnvCustomDomains & EnvDirectConfigurationSession & EnvFederationEnforcement & EnvRelease & EnvServiceAccountScopes & EnvSSOCookieConfig & {
                cert: EnvCertificate;
                csr: EnvCSR;
                promotion: EnvPromotion;
            };
            esvCount: EsvCount;
            feature: Feature;
            idmFeature: IdmFeature;
            iga: {
                certificationTemplate: CertificationTemplate;
                event: IgaEvent;
                glossary: Glossary;
                requestForm: RequestForm;
                requestType: RequestType;
                workflow: Workflow;
            };
            log: Log;
            secret: Secret;
            serviceAccount: ServiceAccount;
            startup: Startup;
            telemetry: Telemetry;
            variable: Variable;
            wsfed: WSFed;
        };
        config: Config;
        conn: ConnectionProfile;
        email: { template: EmailTemplate };
        factory: ApiFactory;
        idm: {
            config: IdmConfig;
            connector: Connector;
            crypto: IdmCrypto;
            managed: ManagedObject & { schema: ManagedObjectSchemaOps };
            managedSystem: ManagedSystemObject & {
                schema: ManagedSystemObjectSchemaOps;
            };
            mapping: Mapping;
            organization: Organization;
            recon: Recon;
            remoteProxy: RemoteProxy;
            script: IdmScript;
            staticUserMapping: StaticUserMapping;
            system: IdmSystem;
        };
        info: Info;
        login: Authenticate;
        mcp: Mcp;
        oauth2oidc: {
            client: OAuth2Client;
            endpoint: OAuth2Oidc;
            external: Idp;
            issuer: OAuth2TrustedJwtIssuer;
            provider: OAuth2Provider;
        };
        rawConfig: RawConfig;
        realm: Realm;
        role: InternalRole;
        saml2: { circlesOfTrust: CirclesOfTrust; entityProvider: Saml2 };
        script: Script;
        scriptType: ScriptType;
        secretStore: SecretStore;
        server: Server;
        service: Service;
        session: Session;
        site: Site;
        state: State;
        theme: Theme;
        user: User;
        utils: FRUtils & FrodoUtils & HelpUtils & ScriptValidation & ExportImport & Base64 & {
            constants: Constants;
            crypto: FrodoCrypto;
            jose: Jose;
            json: Json;
            terminal: Terminal;
            version: Version;
        };
        createInstance(config: StateInterface): Frodo;
        createInstanceWithAccessToken(
            host: string,
            realm?: string,
            deploymentType?: string,
            allowInsecureConnection?: boolean,
            debug?: boolean,
            curlirize?: boolean,
        ): Frodo;
        createInstanceWithAdminAccount(
            host: string,
            username: string,
            password: string,
            realm?: string,
            deploymentType?: string,
            allowInsecureConnection?: boolean,
            debug?: boolean,
            curlirize?: boolean,
        ): Frodo;
        createInstanceWithAmsterAccount(
            host: string,
            amsterPrivateKey: string,
            authenticationService?: string,
            realm?: string,
            deploymentType?: string,
            allowInsecureConnection?: boolean,
            debug?: boolean,
            curlirize?: boolean,
        ): Frodo;
        createInstanceWithBrowserLogin(
            host: string,
            loginClientId?: string,
            loginScope?: string,
            loginRedirectUri?: string,
            realm?: string,
            deploymentType?: string,
            allowInsecureConnection?: boolean,
            debug?: boolean,
            curlirize?: boolean,
        ): Frodo;
        createInstanceWithServiceAccount(
            host: string,
            serviceAccountId: string,
            serviceAccountJwkStr: string,
            realm?: string,
            deploymentType?: string,
            allowInsecureConnection?: boolean,
            debug?: boolean,
            curlirize?: boolean,
        ): Frodo;
        createRemoteProxyView(proxyId: string): RemoteProxyView;
    }
    Index
    admin: Admin
    agent: Agent
    am: { config: AmConfig }
    authn: { journey: Journey; node: Node; settings: AuthenticationSettings }
    authz: { policy: Policy; policySet: PolicySet; resourceType: ResourceType }
    cache: TokenCache
    cloud: EsvCount & {
        adminFed: AdminFederation;
        env: EnvAIAgent & EnvContentSecurityPolicy & EnvCookieDomains & EnvCustomDomains & EnvDirectConfigurationSession & EnvFederationEnforcement & EnvRelease & EnvServiceAccountScopes & EnvSSOCookieConfig & {
            cert: EnvCertificate;
            csr: EnvCSR;
            promotion: EnvPromotion;
        };
        esvCount: EsvCount;
        feature: Feature;
        idmFeature: IdmFeature;
        iga: {
            certificationTemplate: CertificationTemplate;
            event: IgaEvent;
            glossary: Glossary;
            requestForm: RequestForm;
            requestType: RequestType;
            workflow: Workflow;
        };
        log: Log;
        secret: Secret;
        serviceAccount: ServiceAccount;
        startup: Startup;
        telemetry: Telemetry;
        variable: Variable;
        wsfed: WSFed;
    }

    Type Declaration

    config: Config
    email: { template: EmailTemplate }
    factory: ApiFactory
    idm: {
        config: IdmConfig;
        connector: Connector;
        crypto: IdmCrypto;
        managed: ManagedObject & { schema: ManagedObjectSchemaOps };
        managedSystem: ManagedSystemObject & {
            schema: ManagedSystemObjectSchemaOps;
        };
        mapping: Mapping;
        organization: Organization;
        recon: Recon;
        remoteProxy: RemoteProxy;
        script: IdmScript;
        staticUserMapping: StaticUserMapping;
        system: IdmSystem;
    }
    info: Info
    mcp: Mcp
    oauth2oidc: {
        client: OAuth2Client;
        endpoint: OAuth2Oidc;
        external: Idp;
        issuer: OAuth2TrustedJwtIssuer;
        provider: OAuth2Provider;
    }
    rawConfig: RawConfig
    realm: Realm
    saml2: { circlesOfTrust: CirclesOfTrust; entityProvider: Saml2 }
    script: Script
    scriptType: ScriptType
    secretStore: SecretStore
    server: Server
    service: Service
    session: Session
    site: Site
    state: State
    theme: Theme
    user: User
    utils: FRUtils & FrodoUtils & HelpUtils & ScriptValidation & ExportImport & Base64 & {
        constants: Constants;
        crypto: FrodoCrypto;
        jose: Jose;
        json: Json;
        terminal: Terminal;
        version: Version;
    }
    • Factory helper to create a frodo instance ready to use an already-issued, externally-obtained OAuth2 access token (e.g. one an MCP server verified as an OAuth2 resource server). Like createInstanceWithBrowserLogin, this alone doesn't make the instance immediately usable — call .login.applyAccessToken(token) on the returned instance before using it. Never persists to the local token cache, regardless of the environment's default: this credential belongs to whoever presented the token, not to the operator running this process.

      Parameters

      • host: string
      • Optionalrealm: string

        (optional) override default realm

      • OptionaldeploymentType: string

        deployment type ('cloud', 'forgeops', or 'classic') — required, since there is no existing session to auto-detect it from

      • OptionalallowInsecureConnection: boolean

        (optional) allow insecure connection

      • Optionaldebug: boolean

        (optional) enable debug output

      • Optionalcurlirize: boolean

        (optional) enable output of all library REST calls as curl commands

      Returns Frodo

      frodo instance, not yet ready to use

    • Factory helper to create a frodo instance ready for logging in with an admin user account

      Parameters

      • host: string
      • username: string

        admin account username

      • password: string

        admin account password

      • Optionalrealm: string

        (optional) override default realm

      • OptionaldeploymentType: string

        (optional) override deployment type ('cloud', 'forgeops', or 'classic')

      • OptionalallowInsecureConnection: boolean

        (optional) allow insecure connection

      • Optionaldebug: boolean

        (optional) enable debug output

      • Optionalcurlirize: boolean

        (optional) enable output of all library REST calls as curl commands

      Returns Frodo

      frodo instance

    • Factory helper to create a frodo instance ready for logging in with Amster credentials

      Parameters

      • host: string

        host base URL, e.g. 'https://am.example.com:8443/am'

      • amsterPrivateKey: string

        the pem encoded private key used to authenticate with Amster

      • OptionalauthenticationService: string

        (optional) the authentication service used to authenticate with Amster (default: 'amsterService')

      • Optionalrealm: string

        (optional) override default realm

      • OptionaldeploymentType: string

        (optional) override deployment type ('cloud', 'forgeops', or 'classic')

      • OptionalallowInsecureConnection: boolean

        (optional) allow insecure connection

      • Optionaldebug: boolean

        (optional) enable debug output

      • Optionalcurlirize: boolean

        (optional) enable output of all library REST calls as curl commands

      Returns Frodo

      frodo instance

    • Factory helper to create a frodo instance ready for a real interactive browser login. Unlike the other three factories, this one alone doesn't make the instance immediately usable — a real interactive round trip is required first (there is no unattended way to redo it, unlike every other auth mode's silent background re-login). Call .login.getTokensInteractive(...) on the returned instance before using it, supplying a promptHandler to present the login step.

      Parameters

      • host: string
      • OptionalloginClientId: string

        (optional) OAuth2 client id — mandatory for forgeops/classic (no built-in default); cloud has one

      • OptionalloginScope: string

        (optional) override the default scope requested for the target deployment type

      • OptionalloginRedirectUri: string

        (optional) full, absolute redirect URI to use, for a client registered with an exact-match redirect URI (shared with the non-interactive synthetic flow's own redirect URI setting)

      • Optionalrealm: string

        (optional) override default realm

      • OptionaldeploymentType: string

        (optional) deployment type ('cloud', 'forgeops', or 'classic') — required for browser login, since there is no existing session to auto-detect it from

      • OptionalallowInsecureConnection: boolean

        (optional) allow insecure connection

      • Optionaldebug: boolean

        (optional) enable debug output

      • Optionalcurlirize: boolean

        (optional) enable output of all library REST calls as curl commands

      Returns Frodo

      frodo instance, not yet logged in

    • Factory helper to create a frodo instance ready for logging in with a service account

      Parameters

      • host: string
      • serviceAccountId: string

        service account uuid

      • serviceAccountJwkStr: string

        service account JWK as stringified JSON

      • Optionalrealm: string

        (optional) override default realm

      • OptionaldeploymentType: string

        (optional) override deployment type ('cloud', 'forgeops', or 'classic')

      • OptionalallowInsecureConnection: boolean

        (optional) allow insecure connection

      • Optionaldebug: boolean

        (optional) enable debug output

      • Optionalcurlirize: boolean

        (optional) enable output of all library REST calls as curl commands

      Returns Frodo

      frodo instance

    • Create a view of the IDM of another tenant, reached through a remote proxy of this tenant.

      Every IDM operation of the view (idm.managed, idm.config, ...) is made on the receiving tenant of the remote proxy, as the user the proxy maps to there. The view shares the login of this instance: it needs no login of its own, a token this instance refreshes is the token the view uses, and this instance keeps talking to its own tenant. Create one view per remote proxy.

      Only IDM operations are part of the view; everything else (AM, cloud administration) is not reachable through a remote proxy. Writes are not restricted by the view; what the proxy may do is decided by the mapping of its user on the receiving tenant.

      Parameters

      • proxyId: string

        id/name of the remote proxy (the name of the receiving tenant)

      Returns RemoteProxyView

      a view of the IDM of the receiving tenant