Class BowireScimOptions
- Namespace
- Kuestenlogik.Bowire.Scim
- Assembly
- Kuestenlogik.Bowire.Scim.dll
What an install has said about letting an identity provider manage its
user list (#96, #28 Phase C). Bound from Bowire:Scim.
public sealed class BowireScimOptions
- Inheritance
-
BowireScimOptions
- Inherited Members
Constructors
BowireScimOptions()
public BowireScimOptions()
Properties
AdminGroup
The group whose members Bowire treats as administrators.
public string AdminGroup { get; set; }
Property Value
Remarks
Named rather than assumed: an IdP's group for this is called whatever
the operator's directory calls it, and hard-coding admin would
make provisioning work only for directories that happen to agree.
BasePath
Where the endpoints mount. /scim/v2 by default.
public string BasePath { get; set; }
Property Value
Remarks
Outside the workbench's route group on purpose. Those routes are gated by the workbench's own auth provider, and an IdP's provisioning connector has a shared secret, not a user session — it could never get through that gate.
DefaultPageSize
How many resources a list response returns when the caller does not say. RFC 7644 §3.4.2.4 leaves this to the service provider.
public int DefaultPageSize { get; set; }
Property Value
Enabled
Whether the SCIM endpoints are mounted at all. Off by default.
public bool Enabled { get; set; }
Property Value
Remarks
A provisioning API is an administrative surface reachable with one shared secret. It exists when an operator asks for it and not a moment before — least of all as a side effect of upgrading.
EnforceActive
Whether a deactivated identity is refused at the door.
public bool EnforceActive { get; set; }
Property Value
Remarks
On by default, because it is the difference between provisioning and bookkeeping: an install where deprovisioning records a flag that nothing reads has not deprovisioned anybody. Turn it off only when something in front of Bowire already enforces the same thing.
MaxPageSize
The largest page a caller can ask for.
public int MaxPageSize { get; set; }
Property Value
PurgeAfter
How long a deprovisioned identity's state is kept before it is deleted. 30 days by default; Zero deletes immediately.
public TimeSpan PurgeAfter { get; set; }
Property Value
Remarks
The window exists because deprovisioning is routinely undone — someone changes team, an IdP sync misfires, a contract is extended. Deleting on the DELETE call makes those recoverable only from a backup, if there is one.
RequireProvisioned
Whether an identity the directory has never heard of is refused.
public bool RequireProvisioned { get; set; }
Property Value
Remarks
Off by default, and the default is the careful one: an IdP that has not finished its first sync would otherwise lock out the operator who just turned provisioning on, including their way back in to turn it off. Installs that want the directory to be the allow-list rather than an additional check set this once the first sync has landed.
Token
The bearer token the identity provider presents.
public string? Token { get; set; }
Property Value
Remarks
Enabling without one is refused at startup rather than served open: an unauthenticated provisioning endpoint is a way for anyone who can reach the host to create identities.
TraceProvisioning
Record every SCIM request to scim/trace.jsonl (#639). Off by
default.
public bool TraceProvisioning { get; set; }
Property Value
Remarks
For a provisioning round-trip against a real identity provider, where
the questions are about the connector rather than about Bowire: how it
pages a directory, what it sends that Bowire does not model, which
PATCH dialect it actually uses, how long it takes to notice a
deactivation. events.jsonl cannot answer those — it records
mutations and their outcome, so a provider's reads leave no trace, and
the reads are most of what a round-trip is for.
Off by default because the lines contain what the connector sent: user names, e-mail addresses, the filters a directory walk used. Personal data about people who did not agree to be in a debug file, wanted for a bounded exercise rather than for normal operation. Turn it on for the exercise, and off again after.