Concept
What is Pseudentity?
Section titled “What is Pseudentity?”Pseudentity is a stateless OpenID Connect (OIDC) provider and visual companion for the pseudata ecosystem. While pseudata provides the engine for generating deterministic mock data, Pseudentity provides the interface for visualizing and authenticating with those identities.
The Mission
Section titled “The Mission”Pseudentity acts as three things:
- A Profile Viewer - Instantly visualize any “fake user” generated by pseudata
- An OpenID Provider - Allow developers to “Login with Pseudentity” in their apps
- An Enterprise Mock - Simulate complex provisioning flows (SCIM 2.0) without expensive SaaS subscriptions
Stateless Architecture
Section titled “Stateless Architecture”The core innovation is that Pseudentity is entirely stateless. It uses CPU (math) instead of storage (disk).
Instead of storing user profiles in a database, Pseudentity encodes all generation parameters directly into a PseudoID (RFC 9562 UUID v8). Any server can “inflate” the full user profile instantly just by decoding the ID.
Example PseudoID:
00000000-0000-8002-a800-6500000003e8This ID encodes:
- World Seed:
42 - Type Sequence:
101(User) - Index:
1000
Decode it, and you can regenerate the complete user profile deterministically—same name, email, avatar, everything.
Learn more: PseudoID Technical Documentation
URL Namespaces
Section titled “URL Namespaces”Pseudentity is organized into four distinct namespaces:
Profile Namespace (/u/)
Section titled “Profile Namespace (/u/)”Human-readable representations of a specific identity.
| URL Pattern | Type | Description |
|---|---|---|
/u/{uuid} | HTML | Profile page with Svelte UI |
/u/{uuid}/data.json | JSON | Raw user object (Name, Bio, Job) |
/u/{uuid}/contact.vcf | VCF | VCard 4.0 for mobile contacts |
/u/{uuid}/avatar.png | PNG | Deterministic avatar image |
/u/{uuid}/cover.png | PNG | Deterministic banner image |
/u/{uuid}/qr.png | PNG | QR code for mobile scanning |
/u/lookup | 307 | Redirector (converts ?seed=X to /u/{uuid}) |
Factory Namespace (/api/)
Section titled “Factory Namespace (/api/)”Machine endpoints to generate/search for identities.
| URL Pattern | Method | Description |
|---|---|---|
/api/v1/user | GET | Params: ?seed=X&index=Y, Returns user with ID |
/api/v1/company | GET | (Future) Returns company object + ID |
OIDC Namespace (/oidc/)
Section titled “OIDC Namespace (/oidc/)”Authentication protocol endpoints (OpenID Connect compliant).
| URL Pattern | Description |
|---|---|
/oidc/authorize | Login screen (user inputs seed or UUID) |
/oidc/token | Token exchange (stateless, signed JWTs) |
/oidc/introspect | Validates token signature (RFC 7662) |
/oidc/userinfo | Returns profile data for authenticated token |
/.well-known/openid-configuration | OpenID Connect Discovery |
Enterprise Namespace (/scim/v2/)
Section titled “Enterprise Namespace (/scim/v2/)”Mock SCIM 2.0 endpoints for testing user provisioning.
| URL Pattern | Method | Description |
|---|---|---|
/scim/v2/Users | GET | List users (simulates pagination via O(1) access) |
/scim/v2/Users/{id} | GET | Returns RFC 7643 compliant user schema |
Use Cases
Section titled “Use Cases”Testing Auth Flows
Section titled “Testing Auth Flows”Add “Login with Pseudentity” to your app without configuring a real identity provider. Perfect for:
- Local development
- Integration tests
- Demo environments
- QA workflows
Profile Visualization
Section titled “Profile Visualization”See what your generated users actually look like:
- Profile photos (deterministic avatars)
- Complete contact information
- Job titles and companies
- Export to mobile contacts (VCard)
Enterprise SSO Testing
Section titled “Enterprise SSO Testing”Simulate complex provisioning scenarios:
- SCIM 2.0 user sync (Okta, Azure AD)
- Group assignments
- Deprovisioning workflows
- Pagination with millions of users
Sales Demos
Section titled “Sales Demos”Show authentication features with consistent, repeatable identities:
- Same user appears every time
- Professional-looking profiles
- Cross-language consistency
- No setup required
Technical Stack
Section titled “Technical Stack”| Component | Choice | Rationale |
|---|---|---|
| Framework | Astro | Best for mixing API routes with UI |
| Mode | Server (SSR) | Required for dynamic generation |
| Interactivity | Svelte | Islands architecture keeps pages lightweight |
| Engine | Pseudata | Shared logic library for data generation |
| Hosting | Vercel | Edge network + serverless functions |
| Database | None | All state is in the UUID or signed tokens |
Powered by Pseudata
Section titled “Powered by Pseudata”Pseudentity is built on pseudata, the deterministic mock data generator that produces identical data across Go, Java, Python, and TypeScript.
Visit pseudata.dev to learn about:
- PCG32 algorithm for cross-language consistency
- Virtual arrays with O(1) infinite scale
- Multi-locale support
- Zero-dependency implementations
Development Status
Section titled “Development Status”Early Stage: Pseudentity is in active development and not yet ready for public deployment.
The core PseudoID format and architecture are finalized. Implementation of the web interface, OIDC endpoints, and SCIM provider is ongoing.
© 2025 Pseudentity Project. Part of the Pseudata Ecosystem. Open Source under Apache License 2.0.