@oktis-works/auth 0.1.11 → 0.1.13
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/dist/rbac/index.d.ts.map +1 -1
- package/dist/rbac/index.js +5 -10
- package/dist/rbac/index.js.map +1 -1
- package/dist/service.d.ts +5 -0
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +57 -7
- package/dist/service.js.map +1 -1
- package/package.json +5 -5
package/dist/rbac/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rbac/index.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACvC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rbac/index.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACvC;AAmDD,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAa;gBAEf,MAAM,CAAC,EAAE,UAAU;IAI/B,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO;IAqBhH,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE;IAIrD,OAAO,CAAC,kBAAkB;IA2B1B,OAAO,CAAC,eAAe;CAYxB"}
|
package/dist/rbac/index.js
CHANGED
|
@@ -7,16 +7,11 @@ const DEFAULT_POLICY = {
|
|
|
7
7
|
},
|
|
8
8
|
{
|
|
9
9
|
role: 'TENANT_ADMIN',
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
{ action: '*', resource: 'media' },
|
|
16
|
-
{ action: '*', resource: 'plugin' },
|
|
17
|
-
{ action: '*', resource: 'theme' },
|
|
18
|
-
{ action: '*', resource: 'setting' },
|
|
19
|
-
],
|
|
10
|
+
// Administrador completo DENTRO do tenant (isolamento por RLS/JWT):
|
|
11
|
+
// recursas explícitos perdiam recursos reais das rotas (ex.: rota
|
|
12
|
+
// `roles` vs política `role`, taxonomy, content-type...) e davam 403
|
|
13
|
+
// para o próprio dono do tenant.
|
|
14
|
+
permissions: [{ action: '*', resource: '*' }],
|
|
20
15
|
},
|
|
21
16
|
{
|
|
22
17
|
role: 'EDITOR',
|
package/dist/rbac/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rbac/index.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAkBhD,MAAM,cAAc,GAAe;IACjC,KAAK,EAAE;QACL;YACE,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;SAC9C;QACD;YACE,IAAI,EAAE,cAAc;YACpB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rbac/index.ts"],"names":[],"mappings":"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"}
|
package/dist/service.d.ts
CHANGED
|
@@ -5,11 +5,15 @@ export interface AuthResult {
|
|
|
5
5
|
accessToken: string;
|
|
6
6
|
refreshToken: string;
|
|
7
7
|
sessionId: string;
|
|
8
|
+
/** UUID real do tenant (o form de login manda o slug, ex.: "default") */
|
|
9
|
+
tenantId: string;
|
|
8
10
|
}
|
|
9
11
|
export interface RegisterInput {
|
|
10
12
|
email: string;
|
|
11
13
|
password: string;
|
|
12
14
|
name: string;
|
|
15
|
+
/** Slug ou UUID do tenant (default: "default") */
|
|
16
|
+
tenantId?: string;
|
|
13
17
|
}
|
|
14
18
|
export interface LoginInput {
|
|
15
19
|
email: string;
|
|
@@ -25,6 +29,7 @@ export declare class AuthService {
|
|
|
25
29
|
private config;
|
|
26
30
|
constructor(config: AuthConfig);
|
|
27
31
|
register(input: RegisterInput): Promise<User>;
|
|
32
|
+
private linkUserToTenant;
|
|
28
33
|
login(input: LoginInput): Promise<AuthResult>;
|
|
29
34
|
refreshToken(refreshToken: string): Promise<{
|
|
30
35
|
accessToken: string;
|
package/dist/service.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAM/C,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,IAAI,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAM/C,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,IAAI,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAUD,qBAAa,WAAW;IACtB,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,MAAM,CAAa;gBAEf,MAAM,EAAE,UAAU;IAOxB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;YA4BrC,gBAAgB;IAyCxB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAkE7C,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAOjG,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpC,WAAW,CAAC,KAAK,EAAE,MAAM;IAI/B,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO;IAIhH,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE;CAGvC"}
|
package/dist/service.js
CHANGED
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
// @oktis-works/auth - Authentication Service
|
|
2
2
|
import { randomUUID } from 'node:crypto';
|
|
3
|
-
import { getConnection } from '@oktis-works/database';
|
|
3
|
+
import { getConnection, resolveTenantId, seedDefaultRoles, setTenantContext } from '@oktis-works/database';
|
|
4
4
|
import { hashPassword, verifyPassword } from './password/index.js';
|
|
5
5
|
import { JWTService } from './jwt/index.js';
|
|
6
6
|
import { SessionService } from './sessions/index.js';
|
|
7
7
|
import { RBACService } from './rbac/index.js';
|
|
8
|
+
/** Remove credenciais de um usuário vindo de SELECT ou RETURNING * (o casing do driver varia). */
|
|
9
|
+
function sanitizeUser(user) {
|
|
10
|
+
const clone = { ...user };
|
|
11
|
+
delete clone['password_hash'];
|
|
12
|
+
delete clone['passwordHash'];
|
|
13
|
+
return clone;
|
|
14
|
+
}
|
|
8
15
|
export class AuthService {
|
|
9
16
|
jwt;
|
|
10
17
|
session;
|
|
@@ -26,16 +33,58 @@ export class AuthService {
|
|
|
26
33
|
const result = await sql.unsafe(`INSERT INTO users (id, email, name, password_hash, status)
|
|
27
34
|
VALUES ($1, $2, $3, $4, 'ACTIVE')
|
|
28
35
|
RETURNING *`, [randomUUID(), input.email, input.name, passwordHash]);
|
|
29
|
-
|
|
36
|
+
const user = result[0];
|
|
37
|
+
// Onboarding zero-config: sem vínculo em tenant_users o JWT nasce com
|
|
38
|
+
// roles [] e TODO requirePermission responde 403. O primeiro usuário do
|
|
39
|
+
// tenant vira TENANT_ADMIN; os demais recebem VIEWER (upgradeável no
|
|
40
|
+
// admin via POST /users/:id/roles).
|
|
41
|
+
await this.linkUserToTenant(user, input.tenantId ?? 'default');
|
|
42
|
+
return sanitizeUser(user);
|
|
43
|
+
}
|
|
44
|
+
async linkUserToTenant(user, tenantSlug) {
|
|
45
|
+
const sql = getConnection();
|
|
46
|
+
try {
|
|
47
|
+
await seedDefaultRoles();
|
|
48
|
+
const tenantId = await resolveTenantId(tenantSlug);
|
|
49
|
+
const members = await sql.unsafe('SELECT COUNT(*)::int AS count FROM tenant_users WHERE tenant_id = $1', [tenantId]);
|
|
50
|
+
const isFirst = (members[0]?.['count'] ?? 0) === 0;
|
|
51
|
+
const roleSlug = isFirst ? 'TENANT_ADMIN' : 'VIEWER';
|
|
52
|
+
const roles = await sql.unsafe(`SELECT id FROM roles
|
|
53
|
+
WHERE slug = $1 AND (tenant_id IS NULL OR tenant_id = $2)
|
|
54
|
+
ORDER BY tenant_id NULLS LAST
|
|
55
|
+
LIMIT 1`, [roleSlug, tenantId]);
|
|
56
|
+
if (roles.length === 0) {
|
|
57
|
+
console.warn(`[auth] role "${roleSlug}" não encontrada — usuário ${user.email} ficou sem papel`);
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
await sql.unsafe(`INSERT INTO tenant_users (tenant_id, user_id, role_id, status)
|
|
61
|
+
VALUES ($1, $2, $3, 'ACTIVE')
|
|
62
|
+
ON CONFLICT (tenant_id, user_id) DO NOTHING`, [tenantId, user.id, roles[0]['id']]);
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
// Registro não pode quebrar por causa do vínculo — mas o operador precisa ver.
|
|
66
|
+
console.warn(`[auth] falha ao vincular papel de ${user.email}:`, error instanceof Error ? error.message : error);
|
|
67
|
+
}
|
|
30
68
|
}
|
|
31
69
|
async login(input) {
|
|
32
70
|
const sql = getConnection();
|
|
71
|
+
// Slug ("default") → UUID real: sessions.tenant_id é FK UUID e o JWT
|
|
72
|
+
// deve carregar o UUID para as rotas usarem c.get('tenantId') direto.
|
|
73
|
+
const tenantId = await resolveTenantId(input.tenantId);
|
|
74
|
+
await setTenantContext(tenantId);
|
|
33
75
|
const users = await sql.unsafe('SELECT * FROM users WHERE email = $1 AND status = $2', [input.email, 'ACTIVE']);
|
|
34
76
|
if (users.length === 0) {
|
|
35
77
|
throw new Error('Invalid credentials');
|
|
36
78
|
}
|
|
37
79
|
const user = users[0];
|
|
38
|
-
|
|
80
|
+
// SELECT * devolve password_hash (snake_case) — aceita os dois formatos
|
|
81
|
+
// para não depender do casing do driver.
|
|
82
|
+
const row = users[0];
|
|
83
|
+
const storedHash = (row['password_hash'] ?? row['passwordHash']);
|
|
84
|
+
if (typeof storedHash !== 'string') {
|
|
85
|
+
throw new Error('Invalid credentials');
|
|
86
|
+
}
|
|
87
|
+
const valid = await verifyPassword(input.password, storedHash);
|
|
39
88
|
if (!valid) {
|
|
40
89
|
throw new Error('Invalid credentials');
|
|
41
90
|
}
|
|
@@ -44,24 +93,25 @@ export class AuthService {
|
|
|
44
93
|
JOIN tenant_users tu ON tu.role_id = r.id
|
|
45
94
|
WHERE tu.user_id = $1
|
|
46
95
|
AND tu.tenant_id = $2
|
|
47
|
-
AND tu.status = 'ACTIVE'`, [user.id,
|
|
96
|
+
AND tu.status = 'ACTIVE'`, [user.id, tenantId]);
|
|
48
97
|
const userRoles = roles.map((r) => r['slug']);
|
|
49
98
|
const tokens = await this.jwt.generateTokenPair({
|
|
50
99
|
sub: user.id,
|
|
51
100
|
email: user.email,
|
|
52
|
-
tenantId
|
|
101
|
+
tenantId,
|
|
53
102
|
roles: userRoles,
|
|
54
103
|
});
|
|
55
|
-
const session = await this.session.create(user.id,
|
|
104
|
+
const session = await this.session.create(user.id, tenantId, {
|
|
56
105
|
ipAddress: input.ipAddress,
|
|
57
106
|
userAgent: input.userAgent,
|
|
58
107
|
});
|
|
59
108
|
await sql.unsafe('UPDATE users SET last_login_at = NOW() WHERE id = $1', [user.id]);
|
|
60
109
|
return {
|
|
61
|
-
user,
|
|
110
|
+
user: sanitizeUser(user),
|
|
62
111
|
accessToken: tokens.accessToken,
|
|
63
112
|
refreshToken: tokens.refreshToken,
|
|
64
113
|
sessionId: session.id,
|
|
114
|
+
tenantId,
|
|
65
115
|
};
|
|
66
116
|
}
|
|
67
117
|
async refreshToken(refreshToken) {
|
package/dist/service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oktis-works/auth",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.13",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -17,10 +17,10 @@
|
|
|
17
17
|
"clean": "rm -rf dist tsconfig.tsbuildinfo"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@oktis-works/types": "^0.1.
|
|
21
|
-
"@oktis-works/config": "^0.1.
|
|
22
|
-
"@oktis-works/database": "^0.1.
|
|
23
|
-
"@oktis-works/core": "^0.1.
|
|
20
|
+
"@oktis-works/types": "^0.1.13",
|
|
21
|
+
"@oktis-works/config": "^0.1.13",
|
|
22
|
+
"@oktis-works/database": "^0.1.13",
|
|
23
|
+
"@oktis-works/core": "^0.1.13"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"typescript": "5.7.3",
|