Login: implement authentication requests, responses, and seed capabilities #56

Closed
opened 2026-08-08 08:19:17 +00:00 by hugo · 1 comment
Owner

Objective

Implement login parameter construction, URI/XML-RPC transport, response parsing, successful session initialization, and typed failure states.

Deliverables

  • Preserve credential hashing/token rules, channel/version/start/location options, login response fields, redirects, errors, timeouts, cancellation, and initial simulator/caps handoff.
  • Never retain or log plaintext credentials/capability tokens.
  • Use fake login/caps servers for deterministic tests.

Validation

  • All login/response/GridClient lifecycle tests pass offline.
  • Secret-redaction tests cover Debug/errors/tracing.
  • Failure leaves no half-connected simulator/tasks.

Prerequisite

Wire codegen and the foundational implementation milestones are complete; the fixed API/test gates remain authoritative.

Project constraints

  • Native Rust networking only; no C# bridge, helper service, subprocess, or fallback.
  • Keep mapped APIs and translated assertions fixed, use bounded resources, and never log secrets.
  • Validate offline with deterministic fake servers before live-grid use and update docs/coverage evidence.
## Objective Implement login parameter construction, URI/XML-RPC transport, response parsing, successful session initialization, and typed failure states. ## Deliverables - Preserve credential hashing/token rules, channel/version/start/location options, login response fields, redirects, errors, timeouts, cancellation, and initial simulator/caps handoff. - Never retain or log plaintext credentials/capability tokens. - Use fake login/caps servers for deterministic tests. ## Validation - All login/response/GridClient lifecycle tests pass offline. - Secret-redaction tests cover Debug/errors/tracing. - Failure leaves no half-connected simulator/tasks. ## Prerequisite Wire codegen and the foundational implementation milestones are complete; the fixed API/test gates remain authoritative. ## Project constraints - Native Rust networking only; no C# bridge, helper service, subprocess, or fallback. - Keep mapped APIs and translated assertions fixed, use bounded resources, and never log secrets. - Validate offline with deterministic fake servers before live-grid use and update docs/coverage evidence.
hugo added this to the 08 - Networking and client lifecycle milestone 2026-08-08 08:19:17 +00:00
hugo added the enhancement label 2026-08-08 08:19:17 +00:00
Author
Owner

Implemented in commit 3951bdb. Added native Rust login credentials/parameters, LLSD XML authentication transport, password hashing and MFA/options handling, bounded redirects, timeout/cancellation, complete response parsing (inventory, buddies, home, benefits, service configuration), typed status/failure reporting, and initial UDP simulator/session/seed-capability handoff. Failed login paths clear session/capability state and partial simulator work; Debug output redacts credentials, session secrets, estate tokens, and capability URLs. GridClient now exposes a stable shared NetworkManager identity, and the fixed API mappings, coverage evidence, README, and networking documentation were updated. Deterministic offline fake HTTP/UDP tests verify successful login wire fields and session handoff, redirects/failure, invalid simulator cleanup, timeout, cancellation, callback semantics, and secret redaction. Verification: 18/18 network-manager tests, 4/4 login unit tests, 2/2 core runtime compatibility tests; cargo fmt --check; generator/API coverage checks; both exact codegen workflow Clippy commands with -D warnings; cargo check --workspace --all-targets --locked -j1; isolated api-compile check; and warnings-denied Rustdoc all pass. This also fixes Actions run 90 by teaching the generated-shim validator that real crate::message_decoder delegates are native implementations rather than fake generated bodies.

Implemented in commit 3951bdb. Added native Rust login credentials/parameters, LLSD XML authentication transport, password hashing and MFA/options handling, bounded redirects, timeout/cancellation, complete response parsing (inventory, buddies, home, benefits, service configuration), typed status/failure reporting, and initial UDP simulator/session/seed-capability handoff. Failed login paths clear session/capability state and partial simulator work; Debug output redacts credentials, session secrets, estate tokens, and capability URLs. GridClient now exposes a stable shared NetworkManager identity, and the fixed API mappings, coverage evidence, README, and networking documentation were updated. Deterministic offline fake HTTP/UDP tests verify successful login wire fields and session handoff, redirects/failure, invalid simulator cleanup, timeout, cancellation, callback semantics, and secret redaction. Verification: 18/18 network-manager tests, 4/4 login unit tests, 2/2 core runtime compatibility tests; cargo fmt --check; generator/API coverage checks; both exact codegen workflow Clippy commands with -D warnings; cargo check --workspace --all-targets --locked -j1; isolated api-compile check; and warnings-denied Rustdoc all pass. This also fixes Actions run 90 by teaching the generated-shim validator that real crate::message_decoder delegates are native implementations rather than fake generated bodies.
hugo closed this issue 2026-08-09 18:19:08 +00:00
Sign in to join this conversation.