Client SDK · Start here

Configuration.

Constructor options, trusted base URLs, and per-instance isolation.

MatildaClientOptions

Extends ClientConfig. All fields are optional except baseUrl.

Fieldtypedescription
baseUrlstringThe Matilda API base URL. Must be absolute for auth flows. Defaults to '/api'.
accessTokenstringA static access token. Use this for simple setups, or use getToken for managed refresh.
getTokenGetTokenDynamic token provider. Called on every request. The SDK's TokenManager implements this.
apiVersionstring | nullAPI version sent via the X-Matilda-API-Version header. Omit to use the current version.
urlPolicyTrustedApiBaseUrlPolicyURL validation policy for trustApiBaseUrl().
publicConfigEndpointPublicConfigEndpointWhich public runtime config endpoint to use.
getCsrfToken() => string | nullCSRF token provider for web BFF cookie auth.
reportedRequestMetadataReportedRequestMetadataConfig | nullSDK identification metadata. Auto-set to { sdkName: 'matilda-client', version }.

TrustedApiBaseUrlPolicy

Fieldtypedescription
allowRelativebooleanAllow relative URLs (e.g. /api).
allowedHostsreadonly string[]Allowlist of hostnames.
allowLocalHttpbooleanAllow http://localhost / 127.0.0.1 (development).
requiredPathPrefixstringRequire a specific path prefix (e.g. /api).
requireHttpsbooleanEnforce HTTPS (loopback exempt).

PublicConfigEndpoint

TypeScript
type PublicConfigEndpoint =
  | 'web-bff'
  | 'core-api-relative'
  | 'core-api-localhost'
  | 'core-api-localhost-3000'
  | 'core-api-android-emulator'
  | 'core-api-production';

Environment URLs

EnvironmentBase URL
Productionhttps://matilda.maincode.com/api
Staginghttps://staging.matilda.maincode.com/api

Instance isolation

Each Matilda instance holds its own independent config. Multiple instances in the same process are fully isolated — constructor options and configure() writes are scoped to that instance.

TypeScript
const staging = new Matilda({ baseUrl: 'https://staging.matilda.maincode.com/api' });
const prod = new Matilda({ baseUrl: 'https://matilda.maincode.com/api' });

console.log(staging.config.baseUrl); // https://staging.matilda.maincode.com/api
console.log(prod.config.baseUrl);    // https://matilda.maincode.com/api

// Reconfiguring one never affects the other:
staging.configure({ baseUrl: 'https://override.example/api' });
console.log(staging.config.baseUrl); // https://override.example/api
console.log(prod.config.baseUrl);    // https://matilda.maincode.com/api (unchanged)

configure(options)

Updates the instance config in place. Returns this for chaining.

TypeScript
client.configure({ accessToken: newToken }).chat.create(/* … */);
Fieldtypedescription
optionsMatildaClientOptionsNew config to merge.

config (getter)

Returns the current ClientConfig.

TypeScript
const cfg = client.config;
console.log(cfg.baseUrl, cfg.accessToken);

trustApiBaseUrl(rawUrl, policy?)

Validates and brands a URL as a trusted API base URL.

Fieldtypedescription
rawUrlstringThe URL to validate.
policyTrustedApiBaseUrlPolicyOptional override policy.

Returns a TrustedApiBaseUrl (a branded string).