@agentuity/auth 0.0.109 → 0.0.110
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +82 -28
- package/README.md +259 -236
- package/dist/agentuity/config.d.ts +2386 -0
- package/dist/agentuity/config.d.ts.map +1 -0
- package/dist/agentuity/config.js +220 -0
- package/dist/agentuity/config.js.map +1 -0
- package/dist/agentuity/plugins/api-key.d.ts +152 -0
- package/dist/agentuity/plugins/api-key.d.ts.map +1 -0
- package/dist/agentuity/plugins/api-key.js +21 -0
- package/dist/agentuity/plugins/api-key.js.map +1 -0
- package/dist/agentuity/plugins/index.d.ts +23 -0
- package/dist/agentuity/plugins/index.d.ts.map +1 -0
- package/dist/agentuity/plugins/index.js +10 -0
- package/dist/agentuity/plugins/index.js.map +1 -0
- package/dist/agentuity/plugins/jwt.d.ts +34 -0
- package/dist/agentuity/plugins/jwt.d.ts.map +1 -0
- package/dist/agentuity/plugins/jwt.js +11 -0
- package/dist/agentuity/plugins/jwt.js.map +1 -0
- package/dist/agentuity/plugins/organization.d.ts +355 -0
- package/dist/agentuity/plugins/organization.d.ts.map +1 -0
- package/dist/agentuity/plugins/organization.js +12 -0
- package/dist/agentuity/plugins/organization.js.map +1 -0
- package/dist/agentuity/react.d.ts +1375 -0
- package/dist/agentuity/react.d.ts.map +1 -0
- package/dist/agentuity/react.js +206 -0
- package/dist/agentuity/react.js.map +1 -0
- package/dist/agentuity/server.d.ts +220 -0
- package/dist/agentuity/server.d.ts.map +1 -0
- package/dist/agentuity/server.js +505 -0
- package/dist/agentuity/server.js.map +1 -0
- package/dist/agentuity/types.d.ts +172 -0
- package/dist/agentuity/types.d.ts.map +1 -0
- package/dist/agentuity/types.js +7 -0
- package/dist/agentuity/types.js.map +1 -0
- package/dist/index.d.ts +31 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +33 -8
- package/dist/index.js.map +1 -1
- package/dist/schema.d.ts +2922 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +223 -0
- package/dist/schema.js.map +1 -0
- package/dist/types.d.ts +14 -18
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -1
- package/package.json +15 -39
- package/src/agentuity/config.ts +401 -0
- package/src/agentuity/plugins/api-key.ts +158 -0
- package/src/agentuity/plugins/index.ts +35 -0
- package/src/agentuity/plugins/jwt.ts +30 -0
- package/src/agentuity/plugins/organization.ts +345 -0
- package/src/agentuity/react.tsx +328 -0
- package/src/agentuity/server.ts +734 -0
- package/src/agentuity/types.ts +201 -0
- package/src/index.ts +76 -8
- package/src/schema.ts +270 -0
- package/src/types.ts +14 -22
- package/test/agentuity/config.test.ts +621 -0
- package/test/agentuity/server.test.ts +537 -0
- package/test/schema.test.ts +147 -0
- package/tsconfig.json +3 -2
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/auth0/client.d.ts +0 -44
- package/dist/auth0/client.d.ts.map +0 -1
- package/dist/auth0/client.js +0 -79
- package/dist/auth0/client.js.map +0 -1
- package/dist/auth0/index.d.ts +0 -35
- package/dist/auth0/index.d.ts.map +0 -1
- package/dist/auth0/index.js +0 -38
- package/dist/auth0/index.js.map +0 -1
- package/dist/auth0/server.d.ts +0 -91
- package/dist/auth0/server.d.ts.map +0 -1
- package/dist/auth0/server.js +0 -237
- package/dist/auth0/server.js.map +0 -1
- package/dist/clerk/client.d.ts +0 -42
- package/dist/clerk/client.d.ts.map +0 -1
- package/dist/clerk/client.js +0 -65
- package/dist/clerk/client.js.map +0 -1
- package/dist/clerk/index.d.ts +0 -37
- package/dist/clerk/index.d.ts.map +0 -1
- package/dist/clerk/index.js +0 -35
- package/dist/clerk/index.js.map +0 -1
- package/dist/clerk/server.d.ts +0 -55
- package/dist/clerk/server.d.ts.map +0 -1
- package/dist/clerk/server.js +0 -111
- package/dist/clerk/server.js.map +0 -1
- package/docs/adding-providers.md +0 -261
- package/src/auth0/client.tsx +0 -109
- package/src/auth0/index.ts +0 -40
- package/src/auth0/server.ts +0 -378
- package/src/clerk/client.tsx +0 -86
- package/src/clerk/index.ts +0 -37
- package/src/clerk/server.ts +0 -168
- package/test/clerk-client.test.tsx +0 -21
- package/test/clerk-server.test.ts +0 -51
package/AGENTS.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## Package Overview
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
First-class authentication for Agentuity projects, powered by BetterAuth. Provides server middleware, React components, and Drizzle schema.
|
|
6
6
|
|
|
7
7
|
## Commands
|
|
8
8
|
|
|
@@ -14,50 +14,104 @@ Authentication helpers for identity providers (Clerk, WorkOS, etc.). Provides Re
|
|
|
14
14
|
## Architecture
|
|
15
15
|
|
|
16
16
|
- **Runtime**: Dual-target (browser for client, Bun/Node for server)
|
|
17
|
-
- **
|
|
18
|
-
- **
|
|
17
|
+
- **Server**: Hono middleware with OpenTelemetry integration
|
|
18
|
+
- **Client**: React hooks via `@agentuity/react` context
|
|
19
|
+
- **Database**: Drizzle ORM schema with BetterAuth adapters
|
|
20
|
+
- **Engine**: BetterAuth (internal implementation detail)
|
|
19
21
|
|
|
20
22
|
## Structure
|
|
21
23
|
|
|
22
24
|
```
|
|
23
25
|
src/
|
|
24
|
-
├── index.ts
|
|
25
|
-
├── types.ts
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
├──
|
|
29
|
-
|
|
26
|
+
├── index.ts # Root package exports (server + client)
|
|
27
|
+
├── types.ts # Generic AgentuityAuth interface
|
|
28
|
+
├── schema.ts # Drizzle table definitions and relations
|
|
29
|
+
└── agentuity/
|
|
30
|
+
├── index.tsx # Main exports (re-exports from submodules)
|
|
31
|
+
├── config.ts # createAuth factory
|
|
32
|
+
├── server.ts # Hono middleware (session, API key)
|
|
33
|
+
├── client.tsx # AuthProvider React component
|
|
34
|
+
├── react.ts # createAuthClient factory
|
|
35
|
+
└── types.ts # Agentuity-specific types (org, API key context)
|
|
30
36
|
```
|
|
31
37
|
|
|
32
38
|
## Code Conventions
|
|
33
39
|
|
|
34
|
-
- **Naming**:
|
|
35
|
-
- **
|
|
36
|
-
- **
|
|
37
|
-
- **
|
|
40
|
+
- **Naming**: All public APIs use "AgentuityAuth" prefix, not "BetterAuth"
|
|
41
|
+
- **Env vars**: Prefer `AGENTUITY_AUTH_SECRET` over `BETTER_AUTH_SECRET`
|
|
42
|
+
- **Defaults**: basePath `/api/auth`, emailAndPassword enabled
|
|
43
|
+
- **React imports**: All React code from `@agentuity/auth/react` (AuthProvider, createAuthClient, useAuth)
|
|
38
44
|
|
|
39
45
|
## Key Patterns
|
|
40
46
|
|
|
47
|
+
### Server Setup
|
|
48
|
+
|
|
49
|
+
```typescript
|
|
50
|
+
import { createAuth, createSessionMiddleware, mountAuthRoutes } from '@agentuity/auth';
|
|
51
|
+
|
|
52
|
+
const auth = createAuth({
|
|
53
|
+
connectionString: process.env.DATABASE_URL,
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
api.on(['GET', 'POST'], '/api/auth/*', mountAuthRoutes(auth));
|
|
57
|
+
api.use('/api/*', createSessionMiddleware(auth));
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Agent Handler (ctx.auth is native)
|
|
61
|
+
|
|
41
62
|
```typescript
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
// Error handling - include setup instructions
|
|
50
|
-
if (!secretKey) {
|
|
51
|
-
console.error('[Provider] SECRET_KEY not set. Add to .env');
|
|
52
|
-
throw new Error('Provider secret key required');
|
|
53
|
-
}
|
|
63
|
+
export default createAgent('my-agent', {
|
|
64
|
+
handler: async (ctx, input) => {
|
|
65
|
+
if (!ctx.auth) return { error: 'Unauthorized' };
|
|
66
|
+
return { userId: ctx.auth.user.id };
|
|
67
|
+
},
|
|
68
|
+
});
|
|
54
69
|
```
|
|
55
70
|
|
|
56
|
-
|
|
71
|
+
### React Client
|
|
72
|
+
|
|
73
|
+
```tsx
|
|
74
|
+
import { createAuthClient, AuthProvider } from '@agentuity/auth/react';
|
|
75
|
+
|
|
76
|
+
const authClient = createAuthClient();
|
|
77
|
+
|
|
78
|
+
<AuthProvider authClient={authClient}>
|
|
79
|
+
<App />
|
|
80
|
+
</AuthProvider>;
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Important Types
|
|
84
|
+
|
|
85
|
+
- `AuthInterface` - Full auth on `c.var.auth` (user + org + API key helpers)
|
|
86
|
+
- `AuthContext` - Auth context with user, session, org
|
|
87
|
+
- `AuthOrgContext` - Organization with role and membership
|
|
88
|
+
- `AuthApiKeyContext` - API key with permissions
|
|
89
|
+
- `AuthMethod` - 'session' | 'api-key' | 'bearer'
|
|
90
|
+
|
|
91
|
+
## Database Options
|
|
92
|
+
|
|
93
|
+
1. **connectionString** - Simplest: we create Bun SQL connection + drizzle internally
|
|
94
|
+
2. **database** - Bring your own drizzle adapter or other BetterAuth adapter
|
|
95
|
+
3. **@agentuity/auth/schema** - Export for merging with app schema
|
|
96
|
+
|
|
97
|
+
## Default Plugins
|
|
98
|
+
|
|
99
|
+
- `organization` - Multi-tenancy
|
|
100
|
+
- `jwt` - Token generation
|
|
101
|
+
- `bearer` - Bearer token auth
|
|
102
|
+
- `apiKey` - API key management
|
|
103
|
+
|
|
104
|
+
Use `skipDefaultPlugins: true` to disable.
|
|
105
|
+
|
|
106
|
+
## Testing
|
|
57
107
|
|
|
58
|
-
|
|
108
|
+
- Use `bun test` for all tests
|
|
109
|
+
- Mock auth context in route tests
|
|
110
|
+
- Test both session and API key middleware
|
|
111
|
+
- When running tests, prefer using a subagent (Task tool) to avoid context bloat
|
|
59
112
|
|
|
60
113
|
## Publishing
|
|
61
114
|
|
|
62
115
|
1. Run build, typecheck, test
|
|
63
|
-
2. Publish **after** `@agentuity/
|
|
116
|
+
2. Publish **after** `@agentuity/core` and `@agentuity/react`
|
|
117
|
+
3. `@agentuity/runtime` depends on this package for types
|