Files
user-engine/INTENT.md

3.0 KiB

INTENT

This file captures why this repository exists, the direction it is moving toward, and the kind of system it is meant to become. It is intentionally aspirational and stable, not a description of current implementation.

Purpose

user-engine exists to provide a reusable, headless user-domain service for products and platforms that need account, profile, preference, membership, and application-specific user attribute management without coupling those concerns to a particular identity provider, authorization engine, or user interface.

Primary Utility

The project provides a canonical user layer that can start small in a standalone service and grow into governed multi-tenant, multi-application, and multi-team environments.

It manages:

  • users and account state;
  • external identity links;
  • profile and preference data;
  • tenant, application, and team memberships;
  • application-registered customization attributes;
  • catalog-driven profile schemas;
  • profile projections for consuming applications;
  • lifecycle and profile-change events.

Strategic Role

user-engine separates user-domain management from authentication, authorization, credential lifecycle, and UI experience concerns.

It is intended to integrate through standards-aligned interfaces with identity providers, provisioning sources, directories, authorization systems, event sinks, and optional UI surfaces while remaining useful in simple standalone deployments.

Intended Users

  • application developers adding user/account functionality to a service;
  • platform teams managing users across multiple applications;
  • product teams needing self-service account and preference capabilities;
  • operators and tenant administrators managing scoped user populations;
  • agentic systems that need structured access to user preferences and profile context.

Product Boundaries

user-engine is the headless backend and domain service.

It does not aim to be:

  • a full identity provider;
  • a password, passkey, session, or MFA system;
  • a fine-grained authorization engine;
  • a directory server;
  • a UI application.

It provides the user-domain APIs, catalog metadata, projections, events, and audit records that those surrounding systems can consume.

Design Principles

  • headless first;
  • optional UI, not UI-driven;
  • standalone-friendly;
  • enterprise-integratable;
  • identity-provider agnostic;
  • authorization-engine agnostic;
  • catalog-driven customization;
  • explicit ownership, visibility, mutability, and sensitivity of attributes;
  • layered profiles instead of one global metadata blob;
  • deterministic and inspectable effective profile resolution;
  • concrete user-domain focus with a possible future extraction path toward a generic profile engine.

Success Definition

user-engine succeeds when a repository or application can add robust user-domain capabilities with minimal coupling while keeping a clear path from a simple local setup to a governed multi-tenant, multi-application deployment.