View Markdown

Dashboard configuration ownership

On this page

The dashboard exposes live edits, deployment drafts and operational observations. Each setting keeps its own source of truth and activation mechanism. Read-only observations, counts, protocol versions and availability are not editable settings.

Use the table to find where a change belongs. The release scope identifies the runtime covered by qualification; a screenshot or local UI check does not qualify a gateway image.

Family Authoritative source and scope Activation / UI treatment Documentation
Providers RegistryProvider, global registry; dynamic client only for openai_compatible Live typed conditional edit. Adapter immutable. Dynamic endpoint/ref/timeout/quirks/non-secret headers; built-in OpenAI/Anthropic/Ollama client fields disabled and deployment managed. Probe is explicit and potentially billable. Provider/model setup
Credential pools RegistryProviderCredential, per provider; primary ref on provider API-only by deliberate v1 scope: existing collection read is unbounded, no exact-member read or edit revision. Use label/ref/enabled/TPM and explicit rotate API; no fake paged pool panel. No secret values stored. Second key, pool contract
Models and prices RegistryModel, registration identity Live conditional edits; four USD/1000-token prices, blank undeclared and zero free. Advanced typed capability vocabulary, tier/family, encoding, input/overflow and adapter-specific reasoning effort. Server validates all; declarations are not upstream support evidence. Setup, admin API
Model lifecycle, aliases, fallback Registry lifecycle and successor validation Existing monotonic state machine; deprecation timestamp preserved, not independently authored. Bounded suggestions and complete server validation. Legacy YAML is seed-only once database registry owns the snapshot; no competing YAML editor. Routing
Routing groups RoutingProperties, gateway deployment Complete ordered local draft with strategy/objective/weights/conditions/affinity; bounded member lookup, whole-draft validation. Export is not activation; merge, restart and verify. Split traffic
Resolution, tiers, fallback, provider ceilings RoutingProperties, RequestAdmission, FallbackLadder, ModelResolver Effective readouts; reviewed Studio subset only. Other structured settings remain documented deployment configuration. Missing/unknown/denied and tier directions remain distinct. Configure, controls
Organization defaults / key resolution Identity policies, scoped DB rows Existing live scoped editors preserve complete replacement fields, inherited and empty-allowlist semantics. Authorized catalog exact lookups independent of pages. Auth/tenancy
Adaptive balanced/cost/direct learning Group objective, gateway sampler snapshots, deployment flags Preserve objective/provenance/read-only learning views. The matching qualified gateway/dashboard exposes provider/model cost-arm identity and objective; these views do not establish real-model quality or savings. Outcome learning
Quality profiles/evaluation/latency Quality policy/evidence stores, expected versions Existing complete promotion/rollback reviews; metadata histories and explicit evidence detail. Advanced evaluation ingestion remains supported API/tool workflow, not a new wizard. Classification confidence is not output quality. Quality routing
Jev classifier Actual JevProperties holder when enabled; validated configured bean when disabled Separate starter and deployed draft. Sanitized baseline/version, explicit consent/tenant UUIDs, ordered canonical model-ID rankings, bounded exact references, changed-key exports. Secret-manager binding preserved; probability tolerance read-only. No classifier calls from reads/review/export/artifact inspection. Jev
Budget/rate/concurrency RateLimitProperties, limit rules, identity limits, RequestAdmission Existing live scoped rules/limits and inherited caps; global reviewed deployment drafts. Failure mode, fence and store-check posture read-only. No fail-open/reset controls. Keys/budgets, controls
Identities/allow policies/grants Core scopes/grants/policies and identity DB Scoped live authorized writes; bounded pages/exact references, full allowlist validation, enforcement flag remains deployment owned. Hierarchy
Guardrails Descriptors, DB settings and restrict-only resolver Existing descriptor-driven live controls/dry-run and inheritance. Boot regex/schema/external moderator wiring stays deployment/API managed; dry-run is not provider readiness evidence. Guardrails
Cache CacheProperties, live thresholds/context/temperature policy, verifier Existing cache readouts and reviewed numeric/boolean Studio drafts. Operational readouts include effective byte ceilings and cached L2 guard. Context relaxation, generation contract and verifier are read-only/deployment managed; no index recreation. Cache tuning, semantics
Tokenization/embedder TokenEstimator/admission, ContentEmbedder pipeline Read-only actual capacities/wait, identity/readiness/token window; no model download. Embedder/index dimension change requires migration planning. Operational limits
Streaming/retry/cancellation/outbound pools ModelRouter, StreamIdleTimeout, controller and adapter clients Actual first-event/idle/total ms readouts, deployment managed; no retry-all action. Outbound pools remain deployment configuration. Operational limits
Journal/recovery/restore UsageJournal, epoch stores, budget trust/evidence Read-only configured admission/Q and explicit protected existing recovery workflows. Q means waiting admission capacity. Volume durability/topology and full report/manifest runtime computation remain deployment/runtime owned. No real recovery executed in local checks. Journal epochs, readiness
Retention Tenant DB retention and global deployment windows Existing scoped retention edit/reset; deletion consequences explained. Global ledger/evaluation/recovery windows/purge scheduling deployment owned. Operating notes
Telemetry/alerts/audit/content capture Tracer/capped capture holders, observation/collector configuration Read-only availability/content posture; delivery unknown without evidence. Collector/alert destinations, Spring AI logging and privacy decisions deployment owned. Charts do not prove alerts configured. Operating notes, security
Security/infrastructure Auth pepper/bootstrap, egress, Redis/DB, TLS/CORS, JVM/cgroups/volumes Deployment-only. Safe readiness facts exclude secrets, addresses and environment dumps. No browser actuator writes, topology editors or convenient recovery bypass. Deploy, security, multi-instance
Learner configuration Python Settings/environment and authenticated gateway-held snapshot Deployment-only tuning; gateway reports cached provenance/age/degraded state without querying the learner. No authenticated sanitized learner-settings source exists. Learning
Studio/Canvas/Rehearse/Delivery Reviewed UI metadata plus existing effective APIs Studio drafts, feature pages edit supported live fields, Canvas explains, Delivery reviews complete local changes. Draft/saved/applied/observed/verified are separate. No generic settings writer. Dashboard tutorial
MCP No shipped management backend Deliberately excluded: future scoped server/tool/schema discovery, inherited access, bounded status refresh and reviewed writes require a real backend. Dashboard audit

Every row is a family-level coverage decision, not a claim to expose every nested property. The source inventory below also covers boot-bound types that the environment-file reference cannot enumerate. Direct Environment policies (context, temperature, thresholds), registry/core/quality DB settings and Python/deployment configuration are covered by the families above. A declaration does not imply live mutability. Exact keys/defaults/constraints remain on the authoritative types and runbooks.

Conditional registry edits#

Edit and resolve conflicts#

Use this workflow for PATCH /admin/registry/models/{id} and /admin/registry/providers/{id}:

  1. Read the row and retain its opaque expected_revision.
  2. Send typed changes with that revision. Omitted fields preserve their value; explicit null clears nullable fields. Identity, enabled and lifecycle fields cannot be cleared; unknown fields are refused.
  3. For a toggle, send only enabled and the revision.
  4. On 409, review the current row and explicitly save again. The UI retains the draft and does not automatically merge or retry.

Optimistic comparison, validation, registry version and audit commit in the same transaction; publication follows commit. A conflict rolls the write back. Existing POST/PUT/import replacement semantics remain available.

Upgrade boundary: every registry writer must use version-aware code, or writes must be frozen before conditional editing. JPA @Version covers PUT, import and probe; an older binary cannot advance the V66 edit_version column.

Per-row provider reads return stored non-secret headers; import/export/review redacts values with the existing digest marker and refuses that marker as input. Do not import a redacted export as a complete editable row. New API-only credential-pool scope is not a claim that one primary ref represents the entire pool.

Deployment drafts and observations#

These root-ADMIN endpoints distinguish configuration review from live actions.

Endpoint Returns or validates Does not do
GET /admin/control/jev-configuration Sanitized settings, credential presence, receipt and disabled/effective/unready state Create a classifier client
POST /admin/control/jev-configuration/review Receipt, complete proposed settings, tenant UUIDs and model rankings Write configuration or classify content
GET /admin/control/operational-readiness Runtime holders and cached observations for this instance Refresh stores, probe health, recover state or call a provider

Apply a reviewed Jev export#

  1. Merge the exported changed keys and preserve omitted settings and the existing secret binding.
  2. If task-models changes, replace the complete ordered map and remove deleted tasks. A shallow merge can retain obsolete tasks.
  3. Check environment overrides, validate, restart and fetch readback.

max-calls-per-process resets with the process. It is neither a durable dollar budget nor a fleet-wide quota.

Interpret readiness observations#

  • Distinct Redis endpoint settings do not prove physical separation.
  • Cached age -1 means never observed. Missing holders remain unavailable; stale data does not imply health.
  • Volume durability and collector delivery need their operating procedures and evidence.
  • Readouts describe one instance, not cluster state or acceptance of the qualified profile.

Guided configuration lifecycle#

Get started offers first-request, shared-budget and adaptive-decision recipes within the existing console. Its dismissible journey links existing actions and never sends traffic automatically. Only account/origin-scoped recipe and dismissal preferences persist. Correlation is memory-only; organization selection clears on account change or reload. No credentials, prompts, outputs or tenant selections are saved by the guide.

The dashboard keeps these configuration stages separate.

Stage What it establishes What remains
Local draft A proposed change Save or export review
Saved configuration Storage accepted a change Activation, where required
Deployment required Restart or deployment work is pending Apply and read back
Observed effective value A runtime value was read Verify the intended behavior
Behavior verified A relevant check observed the outcome Stay within that check's scope and conditions

An enabled row, successful save or recent timestamp does not prove all stages completed. When an API supplies only a value, explicit/default/inherited provenance remains unknown.

Global limits and activation#

The four pointsman.ratelimit.global-* ceilings are gateway-wide, shared across organizations; organization/application/user/key limits are additional constraints. The three RPM/TPM/spend values come from the immutable PlatformCeilingRules snapshot that the engine appends, with source: runtime-holder and mutability: boot. They show Loaded platform rules and Restart required, not Operator refresh. Later property rebinding cannot change those readouts or rebuild those rules. Current configured targets are not separately projected for these three entries; inspect deployment configuration before a restart. This readout is loaded policy, not proof of observed enforcement, available counters or production health.

The active rule amount is reported in the existing wire units: requests, tokens and exact micro-dollars (USD multiplied by 1,000,000). An absent rule is null, including when null, zero or a negative value at construction synthesized no rule; a later positive property target cannot create one. Loaded windows are described from the rules themselves: RPM/TPM roll over one minute, spending uses a calendar day anchored at 00:00 UTC. Separately labelled configured counter-window properties are not those loaded windows.

Concurrency is deliberately separate: its existing mutable property value and refreshable metadata remain, and admission reads that holder on each call. Only a positive concurrency value adds the global scope; null/non-positive adds none. The UI does not reinterpret zero for unrelated controls.

Policy path versus enforcement#

The tree's enforced_on_request_path describes policy path mode, not every rule or grant. With it off, mirrored fixed-chain rules still apply, and deeper-only rules do not automatically join that path. With it on, stored-path mode is reported, with runtime fallback where applicable. Missing/loading/stale/error mode evidence is unverified. Scope binding previews are not per-request enforcement certificates; management permissions remain separate.

Request correlation#

Requests use the numeric ledger ID for exact authorized detail. X-Request-ID is log correlation; X-Pointsman-Request-ID is the gateway UUID stored as request_id. There is no exact UUID lookup in this console API. The journey provides copyable correlation and manual ID verification, never a newest-row guess or automatic polling. Missing records can be delayed or hidden; recorded 2xx is status evidence only. Missing usage/cost stays unknown. Stream completion, settlement and quality have separate evidence requirements.

See the dashboard recipes and fixed-chain boundary. Existing deployment-only secrets/infrastructure, API-only credential pools and absent MCP management remain intentional boundaries; this guidance adds no runtime controls.

Bound source inventory#

Bound prefix Authoritative declaration Treatment
pointsman.auth gateway/src/main/java/dev/pointsman/gateway/tenancy/AuthProperties.java Deployment/API ownership above; no inferred editor
pointsman.bandit.composition gateway/src/main/java/dev/pointsman/gateway/routing/bandit/RewardCompositionProperties.java Deployment/API ownership above; no inferred editor
pointsman.bandit.exploration gateway/src/main/java/dev/pointsman/gateway/routing/bandit/ExplorationProperties.java Deployment/API ownership above; no inferred editor
pointsman.bandit.reward gateway/src/main/java/dev/pointsman/gateway/routing/bandit/RewardProperties.java Deployment/API ownership above; no inferred editor
pointsman.cache gateway/src/main/java/dev/pointsman/gateway/cache/CacheProperties.java Deployment/API ownership above; no inferred editor
pointsman.catalog gateway/src/main/java/dev/pointsman/gateway/config/CatalogProperties.java Deployment/API ownership above; no inferred editor
pointsman.guardrails.rules.add-prefix gateway/src/main/java/dev/pointsman/gateway/guardrail/rules/MutatorRules.java Deployment/API ownership above; no inferred editor
pointsman.guardrails.rules.azure-content-safety gateway/src/main/java/dev/pointsman/gateway/guardrail/rules/AzureContentSafetyGuardrail.java Deployment/API ownership above; no inferred editor
pointsman.guardrails.rules.blocked-pattern gateway/src/main/java/dev/pointsman/gateway/guardrail/rules/BlockedPatternProperties.java Deployment/API ownership above; no inferred editor
pointsman.guardrails.rules.case-check gateway/src/main/java/dev/pointsman/gateway/guardrail/rules/CaseCheckRule.java Deployment/API ownership above; no inferred editor
pointsman.guardrails.rules.char-count gateway/src/main/java/dev/pointsman/gateway/guardrail/rules/CountRules.java Deployment/API ownership above; no inferred editor
pointsman.guardrails.rules.contains-code gateway/src/main/java/dev/pointsman/gateway/guardrail/rules/OutputCheckRules.java Deployment/API ownership above; no inferred editor
pointsman.guardrails.rules.contains gateway/src/main/java/dev/pointsman/gateway/guardrail/rules/ContainsProperties.java Deployment/API ownership above; no inferred editor
pointsman.guardrails.rules.ends-with gateway/src/main/java/dev/pointsman/gateway/guardrail/rules/EndsWithRule.java Deployment/API ownership above; no inferred editor
pointsman.guardrails.rules.json-keys gateway/src/main/java/dev/pointsman/gateway/guardrail/rules/OutputCheckRules.java Deployment/API ownership above; no inferred editor
pointsman.guardrails.rules.json-schema gateway/src/main/java/dev/pointsman/gateway/guardrail/rules/JsonSchemaRule.java Deployment/API ownership above; no inferred editor
pointsman.guardrails.rules.log gateway/src/main/java/dev/pointsman/gateway/guardrail/rules/LogGuardrail.java Deployment/API ownership above; no inferred editor
pointsman.guardrails.rules.mistral-moderation gateway/src/main/java/dev/pointsman/gateway/guardrail/rules/MistralModerationGuardrail.java Deployment/API ownership above; no inferred editor
pointsman.guardrails.rules.not-null gateway/src/main/java/dev/pointsman/gateway/guardrail/rules/OutputCheckRules.java Deployment/API ownership above; no inferred editor
pointsman.guardrails.rules.openai-moderation gateway/src/main/java/dev/pointsman/gateway/guardrail/rules/OpenAiModerationGuardrail.java Deployment/API ownership above; no inferred editor
pointsman.guardrails.rules.pii gateway/src/main/java/dev/pointsman/gateway/guardrail/rules/PiiProperties.java Deployment/API ownership above; no inferred editor
pointsman.guardrails.rules.regex-replace gateway/src/main/java/dev/pointsman/gateway/guardrail/rules/MutatorRules.java Deployment/API ownership above; no inferred editor
pointsman.guardrails.rules.response-blocked-pattern gateway/src/main/java/dev/pointsman/gateway/guardrail/rules/ResponseBlockedPatternProperties.java Deployment/API ownership above; no inferred editor
pointsman.guardrails.rules.response-pii gateway/src/main/java/dev/pointsman/gateway/guardrail/rules/ResponsePiiProperties.java Deployment/API ownership above; no inferred editor
pointsman.guardrails.rules.sentence-count gateway/src/main/java/dev/pointsman/gateway/guardrail/rules/CountRules.java Deployment/API ownership above; no inferred editor
pointsman.guardrails.rules.valid-urls gateway/src/main/java/dev/pointsman/gateway/guardrail/rules/ValidUrlsRule.java Deployment/API ownership above; no inferred editor
pointsman.guardrails.rules.webhook gateway/src/main/java/dev/pointsman/gateway/guardrail/rules/WebhookGuardrail.java Deployment/API ownership above; no inferred editor
pointsman.guardrails.rules.word-count gateway/src/main/java/dev/pointsman/gateway/guardrail/rules/CountRules.java Deployment/API ownership above; no inferred editor
pointsman.jev gateway/src/main/java/dev/pointsman/gateway/routing/jev/JevProperties.java Deployment/API ownership above; no inferred editor
pointsman.models gateway/src/main/java/dev/pointsman/gateway/config/ModelAliasProperties.java Deployment/API ownership above; no inferred editor
pointsman.pricing gateway/src/main/java/dev/pointsman/gateway/tenancy/PricingProperties.java Deployment/API ownership above; no inferred editor
pointsman.providers gateway/src/main/java/dev/pointsman/gateway/config/ProviderProperties.java Deployment/API ownership above; no inferred editor
pointsman.quality gateway/src/main/java/dev/pointsman/gateway/quality/QualityProperties.java Deployment/API ownership above; no inferred editor
pointsman.ratelimit gateway/src/main/java/dev/pointsman/gateway/ratelimit/RateLimitProperties.java Deployment/API ownership above; no inferred editor
pointsman.redis gateway/src/main/java/dev/pointsman/gateway/redis/RedisProperties.java Deployment/API ownership above; no inferred editor
pointsman.routing gateway/src/main/java/dev/pointsman/gateway/config/RoutingProperties.java Deployment/API ownership above; no inferred editor
Pointsman v1 candidate documentation Source: 0e09f5e7

Search guides, reference pages and architecture.

Documentation

Open full-size image