DESIGN_READY_FOR_OPERATOR_REVIEW: Identity Domain Server account enumeration #167
Labels
No labels
bug
design
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
research
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
nsaspy/starintel-auto-research#167
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Authority / state
lost-rob0t/starintel-server#45READY_FOR_DESIGNDESIGN_READY_FOR_OPERATOR_REVIEWThis design does not authorize implementation and must not enter the executable RAGE queue until the operator explicitly approves an implementation slice.
StarIntel problem solved
The current dormant
user-huntsubsystem is architecturally broken and operationally unsafe. StarIntel needs one bounded Identity Domain Server capability for account enumeration that can consume versioned platform registries such as WhatsMyName and richer Sherlock/Maigret-derived definitions without copying those Python runtimes or inventing a second fetch/concurrency stack.Ownership
StarLang / shared runtime
Owns only reusable semantics already required elsewhere:
Identity Domain Server
Owns:
identity.enumerateAccountscapability;Source Acquisition Domain Server
Owns HTTP/browser mechanics, redirects, response/body ceilings, rate limits, challenge continuation, credential/session refs and SSRF/network policy. Identity does not duplicate any of that.
Expert/entity-resolution layer
Owns corroboration, alias/entity merging, confidence reasoning and relationship inference. A matching username on two sites is not automatically the same person.
Platform Probe Registry
Use one normalized registry schema capable of importing multiple upstream registries while retaining lineage.
Required entry fields include:
probeId;httporbrowser;Registry data may never name arbitrary Lisp functions, shell commands or executable callbacks.
Probe strategy model
Initial closed strategy family:
status— classify allowed status sets;body-marker— bounded required/forbidden marker checks;final-url— classify bounded redirect/final URL patterns;json-field— bounded typed field/path predicate for explicit APIs;composite— bounded AND/OR composition of closed primitive strategies.A positive or negative classification must preserve the exact strategy/reason used.
Unknown/malformed strategy is a registry validation error, not executable fallback behavior.
Capability contract
Conceptual request:
Per-probe result:
Terminal aggregate:
with counts and refs to per-probe results.
partialremains visible.Execution semantics
Result semantics
foundRequires a strategy-specific positive classification with enough evidence to distinguish it from known negative/ambiguous behavior.
notFoundRequires an explicit negative condition from the probe definition. Never derive this from timeout, network failure, CAPTCHA, 403, rate limiting, parse error or unknown response.
unknownResponse arrived but cannot be classified safely: drift, conflicting markers, unexpected status/redirect/schema, or insufficient evidence.
blockedChallenge, policy restriction, denied transport or other explicit blocking condition.
unavailableProvider/site cannot currently be contacted within policy, including bounded repeated transport failures.
failedInternal validated-probe execution failure after policy/adapters accepted the operation.
Registry health and refresh
Registry refresh is an explicit job, never load-time network I/O.
Refresh flow:
Health state is scoped by probe + registry version and, where materially relevant, principal/credential/egress context. Do not use one global
workingboolean.Demotion is reversible and preserves history. A failing health check does not erase prior account observations.
Canonical ingest/provenance
A
foundresult yields a typed account observation, not a direct speculative identity merge.Minimum provenance:
The Identity Domain Server hands observations to canonical ingest. It must never publish directly to
documents.new.*as the olduser-huntactor does.Adversarial review
Rejected designs:
user-huntactor. It duplicates scheduling/concurrency and has no bounded lifecycle.nilas not-found/error. Destroys partial/blocked/drift evidence.Dependency-ordered proposed implementation slices
All are AWAITING_OPERATOR_IMPLEMENTATION_APPROVAL.
enumerateAccountscontract — typed request/per-probe/aggregate outcomes, no production network yet.Mandatory RED-first targets
Slice 1
On untouched server/Identity code, a deterministic normalized WMN fixture must fail because there is no Platform Probe Registry schema/normalizer with source version/digest and closed strategy validation.
Negative RED fixtures:
Slice 2
A contract fixture must fail because current
user-huntcannot representunknown,blocked,unavailable, registry version identity, per-probe provenance, or terminalpartial.Slice 3
A fake registry with more sites than configured
maxPlatformsmust prove untouched/current execution lacks the required bounded Identity contract. The GREEN implementation must never exceed configured total/concurrency ceilings.Slice 4
A registry refresh fixture must prove loading the library performs zero network I/O and an invalid/drifting candidate registry never replaces the active version.
Slice 5
A fake
foundresult must prove the old direct-Rabbit path is not acceptable: the new result must pass through canonical ingest and preserve probe/registry provenance.Acceptance
notFoundis only emitted from explicit negative evidence;Implementation approval
PENDING / AWAITING_OPERATOR_IMPLEMENTATION_APPROVALARDR has no authority to change this state.