Skip to content

Architecture: OU placement, reboot deferral, session-based user tracking - #1

Merged
mastacontrola merged 1 commit into
mainfrom
docs/architecture-directory-deferral-sessions
Sep 4, 2026
Merged

Architecture: OU placement, reboot deferral, session-based user tracking#1
mastacontrola merged 1 commit into
mainfrom
docs/architecture-directory-deferral-sessions

Conversation

@mastacontrola

Copy link
Copy Markdown
Member

Three design rows in docs/design/0001-architecture.md, no code.

  • Directory placement. A computer object lives in exactly one OU. ou is a single string, ensured by moving on mismatch; "several OUs" means security groups, carried as a groups list. Converged is read back from the DN, not the join call's return code.
  • Deferral (open). Server-side policy on the reboot block: postpone count and duration, kept per reason. A software install may be postponed; an imaging task keeps the hard grace countdown. Absent or zero means today's behavior.
  • User tracking is a refactor. OS-sourced session events (logind, WTS/4624/4634, macOS console-user notification) with session id, boot id, kind and end reason, so an unmatched login is explainable as an interrupted session or an unclean shutdown. Server shape becomes sessions with an end reason.

🤖 Generated with Claude Code

https://claude.ai/code/session_01KMx1TtgaroLE9xvJWGFgKT

…racking

Three rows added to docs/design/0001-architecture.md from a design pass:

- Directory placement: a computer object lives in exactly one OU, so
  `ou` is a single string with move-on-mismatch; "several OUs" is
  really security groups, carried as a list. Converged is read back
  from the object's DN.
- Deferral: an open item on the coordinator. Server-side policy on the
  reboot block (count and duration), kept per reason, so an install can
  be postponed while an imaging task keeps its hard countdown.
- User tracking: a refactor, not a port. Take session events from the
  OS with session id, boot id, kind and end reason, so a login whose
  previous session never closed is explainable as an interrupted
  session or an unclean shutdown. Server representation becomes
  sessions with an end reason rather than disconnected event rows.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KMx1TtgaroLE9xvJWGFgKT
@mastacontrola
mastacontrola merged commit 82b1d45 into main Sep 4, 2026
@mastacontrola
mastacontrola deleted the docs/architecture-directory-deferral-sessions branch September 4, 2026 00:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant