@bpinhosilva/agent-orchestrator 1.0.0-alpha.22 → 1.0.0-alpha.23

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.
Files changed (85) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/README.md +198 -28
  3. package/dist/agents/agents.controller.js +5 -0
  4. package/dist/agents/agents.controller.js.map +1 -1
  5. package/dist/agents/dto/agent-request.dto.js +2 -1
  6. package/dist/agents/dto/agent-request.dto.js.map +1 -1
  7. package/dist/agents/dto/create-agent.dto.js +6 -1
  8. package/dist/agents/dto/create-agent.dto.js.map +1 -1
  9. package/dist/app.module.js +5 -0
  10. package/dist/app.module.js.map +1 -1
  11. package/dist/auth/auth.controller.d.ts +6 -1
  12. package/dist/auth/auth.controller.js +23 -7
  13. package/dist/auth/auth.controller.js.map +1 -1
  14. package/dist/auth/auth.service.d.ts +1 -0
  15. package/dist/auth/decorators/current-user.decorator.d.ts +1 -0
  16. package/dist/auth/decorators/current-user.decorator.js +9 -0
  17. package/dist/auth/decorators/current-user.decorator.js.map +1 -0
  18. package/dist/auth/decorators/roles.decorator.d.ts +3 -0
  19. package/dist/auth/decorators/roles.decorator.js +8 -0
  20. package/dist/auth/decorators/roles.decorator.js.map +1 -0
  21. package/dist/auth/entities/refresh-token.entity.js +2 -1
  22. package/dist/auth/entities/refresh-token.entity.js.map +1 -1
  23. package/dist/auth/guards/roles.guard.d.ts +7 -0
  24. package/dist/auth/guards/roles.guard.js +52 -0
  25. package/dist/auth/guards/roles.guard.js.map +1 -0
  26. package/dist/common/storage.service.d.ts +2 -0
  27. package/dist/common/storage.service.js +27 -0
  28. package/dist/common/storage.service.js.map +1 -1
  29. package/dist/config/env.validation.js +2 -0
  30. package/dist/config/env.validation.js.map +1 -1
  31. package/dist/config/typeorm.js +1 -1
  32. package/dist/config/typeorm.js.map +1 -1
  33. package/dist/main.js +16 -13
  34. package/dist/main.js.map +1 -1
  35. package/dist/migrations/1775103764402-AddRbacAndProjectMembership.d.ts +6 -0
  36. package/dist/migrations/1775103764402-AddRbacAndProjectMembership.js +124 -0
  37. package/dist/migrations/1775103764402-AddRbacAndProjectMembership.js.map +1 -0
  38. package/dist/models/models.controller.js +5 -0
  39. package/dist/models/models.controller.js.map +1 -1
  40. package/dist/projects/dto/add-member.dto.d.ts +5 -0
  41. package/dist/projects/dto/add-member.dto.js +33 -0
  42. package/dist/projects/dto/add-member.dto.js.map +1 -0
  43. package/dist/projects/entities/project-member.entity.d.ts +13 -0
  44. package/dist/projects/entities/project-member.entity.js +61 -0
  45. package/dist/projects/entities/project-member.entity.js.map +1 -0
  46. package/dist/projects/entities/project.entity.d.ts +2 -0
  47. package/dist/projects/entities/project.entity.js +9 -2
  48. package/dist/projects/entities/project.entity.js.map +1 -1
  49. package/dist/projects/projects.controller.d.ts +10 -5
  50. package/dist/projects/projects.controller.js +64 -15
  51. package/dist/projects/projects.controller.js.map +1 -1
  52. package/dist/projects/projects.module.js +5 -1
  53. package/dist/projects/projects.module.js.map +1 -1
  54. package/dist/projects/projects.service.d.ts +14 -6
  55. package/dist/projects/projects.service.js +125 -12
  56. package/dist/projects/projects.service.js.map +1 -1
  57. package/dist/providers/providers.controller.js +5 -0
  58. package/dist/providers/providers.controller.js.map +1 -1
  59. package/dist/tasks/entities/recurrent-task-exec.entity.js +1 -0
  60. package/dist/tasks/entities/recurrent-task-exec.entity.js.map +1 -1
  61. package/dist/tasks/entities/recurrent-task.entity.d.ts +2 -0
  62. package/dist/tasks/entities/recurrent-task.entity.js +14 -2
  63. package/dist/tasks/entities/recurrent-task.entity.js.map +1 -1
  64. package/dist/tasks/recurrent-tasks.controller.d.ts +9 -6
  65. package/dist/tasks/recurrent-tasks.controller.js +51 -30
  66. package/dist/tasks/recurrent-tasks.controller.js.map +1 -1
  67. package/dist/tasks/recurrent-tasks.service.d.ts +5 -5
  68. package/dist/tasks/recurrent-tasks.service.js +24 -11
  69. package/dist/tasks/recurrent-tasks.service.js.map +1 -1
  70. package/dist/tasks/task-scheduler.service.d.ts +4 -1
  71. package/dist/tasks/task-scheduler.service.js +15 -2
  72. package/dist/tasks/task-scheduler.service.js.map +1 -1
  73. package/dist/tasks/tasks.controller.d.ts +11 -8
  74. package/dist/tasks/tasks.controller.js +43 -23
  75. package/dist/tasks/tasks.controller.js.map +1 -1
  76. package/dist/tsconfig.build.tsbuildinfo +1 -1
  77. package/dist/users/entities/user.entity.d.ts +5 -0
  78. package/dist/users/entities/user.entity.js +10 -1
  79. package/dist/users/entities/user.entity.js.map +1 -1
  80. package/dist/users/users.controller.d.ts +0 -2
  81. package/dist/users/users.controller.js +3 -12
  82. package/dist/users/users.controller.js.map +1 -1
  83. package/dist/users/users.service.js +9 -1
  84. package/dist/users/users.service.js.map +1 -1
  85. package/package.json +3 -2
package/CHANGELOG.md CHANGED
@@ -1,3 +1,12 @@
1
+ # [1.0.0-alpha.23](https://github.com/bpinhosilva/agent-orchestrator/compare/v1.0.0-alpha.22...v1.0.0-alpha.23) (2026-04-02)
2
+
3
+
4
+ ### Features
5
+
6
+ * enhance project management with user roles and member management ([877832f](https://github.com/bpinhosilva/agent-orchestrator/commit/877832fc4ad8d77499124a4da23c14a1270622a4))
7
+ * implement release workflow with semantic release and build steps; remove old release.yml ([f17eb48](https://github.com/bpinhosilva/agent-orchestrator/commit/f17eb48c64b165c8fd05e142d175716f7990f670))
8
+ * update CI workflow to include E2E and UI tests; bump lodash version ([b8ceee6](https://github.com/bpinhosilva/agent-orchestrator/commit/b8ceee6adf0855b54d4a45d959e87ec338c55887))
9
+
1
10
  # [1.0.0-alpha.22](https://github.com/bpinhosilva/agent-orchestrator/compare/v1.0.0-alpha.21...v1.0.0-alpha.22) (2026-04-02)
2
11
 
3
12
 
package/README.md CHANGED
@@ -3,68 +3,230 @@
3
3
  [![CI](https://github.com/bpinhosilva/agent-orchestrator/actions/workflows/ci.yml/badge.svg)](https://github.com/bpinhosilva/agent-orchestrator/actions/workflows/ci.yml)
4
4
  [![Release](https://github.com/bpinhosilva/agent-orchestrator/actions/workflows/release.yml/badge.svg)](https://github.com/bpinhosilva/agent-orchestrator/actions/workflows/release.yml)
5
5
  [![Gitleaks](https://github.com/bpinhosilva/agent-orchestrator/actions/workflows/gitleaks.yml/badge.svg)](https://github.com/bpinhosilva/agent-orchestrator/actions/workflows/gitleaks.yml)
6
+ [![Socket Badge](https://socket.dev/api/badge/npm/package/@bpinhosilva/agent-orchestrator)](https://socket.dev/npm/package/@bpinhosilva/agent-orchestrator)
6
7
 
7
8
  Agent Orchestrator is an open-source project designed to manage and orchestrate AI agents using both back-end services and front-end applications. It provides an automated agentic execution environment where you can create multiple agent profiles (e.g., Head Agent, Researcher, CMO) and delegate tasks to them through automated workflows.
8
9
 
9
10
  ## Features (In Progress & Planned)
10
11
  - **Agent Delegation**: Delegate tasks to specialized AI agents.
12
+ - **Multi-Provider Support**: Google Gemini and Anthropic Claude providers.
11
13
  - **Job Scheduler**: Create and schedule recurring agentic tasks.
12
14
  - **Workflow Engine**: Drag-and-drop workflow builder supporting triggers, agent chaining, and outputs.
13
- - **Agent Capabilities**: File reading/writing, web search, email capabilities, and image generation using NanoBanana.
15
+ - **Agent Capabilities**: File reading/writing, web search, email capabilities, and image generation.
16
+ - **Role-Based Access Control**: Admin and member roles with project-level membership.
14
17
  - **TUI/CLI Tooling**: CLI executables to manage the installation and local agent configuration.
15
18
 
16
- ## Current Architecture
17
- - **Backend Framework**: NestJS + TypeScript
18
- - **Frontend SPA**: React (Currently served as a single placeholder HTML file by the backend for MVP)
19
- - **Database**: PostgreSQL (via Docker Compose)
19
+ ## Architecture
20
+ - **Backend Framework**: NestJS 11 + TypeScript 5
21
+ - **Frontend SPA**: React (built separately, served as static files)
22
+ - **Database**: PostgreSQL (production) / SQLite (development)
20
23
  - **Testing**: Jest (TDD Approach with Unit & E2E)
21
- - **Architecture**: 3-Tier (Controller, Service, DAL/Adapter Interfaces)
24
+ - **Architecture**: 3-Tier (Controller Service Repository)
22
25
 
23
26
  ## Prerequisites
24
27
  - [Node.js](https://nodejs.org/) (v18+)
25
- - [Docker](https://www.docker.com/) and Docker Compose (Optional for local PostgreSQL deployment)
26
- - A [Google Gemini API Key](https://aistudio.google.com/)
28
+ - [Docker](https://www.docker.com/) and Docker Compose (optional, for PostgreSQL)
29
+ - A [Google Gemini API Key](https://aistudio.google.com/) or [Anthropic API Key](https://console.anthropic.com/)
27
30
 
28
- ## Installation
31
+ ## Quick Start
32
+
33
+ ### 1. Install Dependencies
34
+
35
+ ```bash
36
+ npm install
37
+ ```
38
+
39
+ > **Note**: The project uses `ignore-scripts=true` in `.npmrc` for supply chain security. After installing, run `npm rebuild` to compile native modules (bcrypt, sqlite3).
40
+
41
+ ### 2. Configure Environment
42
+
43
+ Create a `.env` file in the project root (or set `AGENT_ORCHESTRATOR_HOME` to point to a directory containing `.env`):
44
+
45
+ ```bash
46
+ # Required
47
+ JWT_SECRET="at-least-32-characters-long-secret-key"
48
+
49
+ # AI Providers (at least one required for agent functionality)
50
+ GEMINI_API_KEY="your-gemini-api-key"
51
+ ANTHROPIC_API_KEY="your-anthropic-api-key"
52
+
53
+ # Optional
54
+ PORT=3000 # Server port (default: 3000)
55
+ NODE_ENV=development # development | production | test
56
+ DATABASE_URL= # PostgreSQL connection string (omit for SQLite)
57
+ ALLOWED_ORIGINS=http://localhost:5173,http://localhost:3000
58
+ SCHEDULER_ENABLED=true # Enable/disable task scheduler CRON
59
+ DB_LOGGING=false # Enable TypeORM query logging
60
+ ```
61
+
62
+ ### 3. Set Up the Database
63
+
64
+ **Option A: SQLite (Development — zero config)**
65
+
66
+ SQLite is used automatically when `DATABASE_URL` is not set. The database file is created at `local.sqlite` in the project root (or `$AGENT_ORCHESTRATOR_HOME/local.sqlite`).
67
+
68
+ **Option B: PostgreSQL (Production)**
69
+
70
+ ```bash
71
+ # Start PostgreSQL via Docker Compose
72
+ docker compose up -d
73
+
74
+ # Set the connection string
75
+ export DATABASE_URL="postgresql://orchestrator:orchestrator_password@localhost:5433/agent_orchestrator"
76
+ ```
77
+
78
+ Then run migrations and seed the admin user:
79
+
80
+ ```bash
81
+ # Apply database migrations
82
+ npm run migration:run
83
+
84
+ # Create the initial admin user (interactive prompt)
85
+ npm run seed:admin
86
+ ```
87
+
88
+ ### 4. Run the Application
89
+
90
+ ```bash
91
+ # Development (API + UI with hot reload)
92
+ npm run dev
93
+
94
+ # Or API only in watch mode
95
+ npm run start:dev
96
+
97
+ # Production build
98
+ npm run build
99
+ npm run start:prod
100
+ ```
101
+
102
+ The dashboard is available at `http://localhost:3000` and the API at `http://localhost:3000/api/v1/`.
103
+
104
+ ## Database Management
105
+
106
+ The project uses [TypeORM](https://typeorm.io/) migrations to manage schema changes. **Never rely on `synchronize: true`** — it is disabled in all environments.
107
+
108
+ ### Migration Commands
29
109
 
30
110
  ```bash
31
- $ npm install
111
+ # Generate a new migration from entity changes
112
+ npm run typeorm -- migration:generate src/migrations/DescriptiveName
113
+
114
+ # Apply all pending migrations
115
+ npm run migration:run
116
+
117
+ # Revert the last applied migration
118
+ npm run migration:revert
119
+
120
+ # Drop the entire database schema (use with caution!)
121
+ npm run schema:drop
32
122
  ```
33
123
 
34
- ## Running the app
124
+ ### Migration Workflow
35
125
 
36
- Before running the application, ensure you have set the `GEMINI_API_KEY` in your environment variables, as the default agent is the `GeminiAgent`.
126
+ 1. Modify your entity files in `src/`
127
+ 2. Generate a migration: `npm run typeorm -- migration:generate src/migrations/YourMigrationName`
128
+ 3. Review the generated file in `src/migrations/`
129
+ 4. Apply it: `npm run migration:run`
130
+ 5. Verify with tests: `npm run test:all`
131
+
132
+ ### Seeding
37
133
 
38
134
  ```bash
39
- # Start the PostgreSQL Database
40
- $ docker compose up -d
135
+ # Create the initial admin user
136
+ npm run seed:admin
137
+ ```
41
138
 
42
- # development
43
- $ GEMINI_API_KEY="your-api-key" npm run start
139
+ This creates a user with the `admin` role. All subsequent users registered via `POST /auth/register` (admin-only endpoint) default to `member` role.
44
140
 
45
- # watch mode
46
- $ GEMINI_API_KEY="your-api-key" npm run start:dev
141
+ ## Deployment
47
142
 
48
- # production mode
49
- $ GEMINI_API_KEY="your-api-key" npm run start:prod
143
+ ### Production Checklist
144
+
145
+ 1. **Database**: Use PostgreSQL — set `DATABASE_URL` environment variable
146
+ 2. **Migrations**: Run `npm run migration:run` before starting the app
147
+ 3. **Environment**:
148
+ - `NODE_ENV=production` — disables Swagger UI and enables secure cookies
149
+ - `JWT_SECRET` — strong secret, minimum 32 characters
150
+ - `ALLOWED_ORIGINS` — comma-separated list of allowed CORS origins (required in production)
151
+ 4. **Build**: Run `npm run build` to compile TypeScript and bundle the UI
152
+ 5. **Start**: `npm run start:prod` (or `node dist/main.js`)
153
+
154
+ ### Docker
155
+
156
+ ```bash
157
+ # Build and run with Docker Compose (includes PostgreSQL)
158
+ docker compose up -d
159
+
160
+ # Apply migrations
161
+ DATABASE_URL="postgresql://orchestrator:orchestrator_password@localhost:5433/agent_orchestrator" \
162
+ npm run migration:run
163
+
164
+ # Seed admin
165
+ DATABASE_URL="postgresql://orchestrator:orchestrator_password@localhost:5433/agent_orchestrator" \
166
+ npm run seed:admin
50
167
  ```
51
168
 
52
- Once running, you can access the frontend dashboard container URL at `http://localhost:3000`. The API endpoints are accessible via `http://localhost:3000/api/v1/`.
169
+ ### Updating an Existing Deployment
170
+
171
+ 1. Pull the latest code
172
+ 2. Install dependencies: `npm ci && npm rebuild`
173
+ 3. Build: `npm run build`
174
+ 4. Run new migrations: `npm run migration:run`
175
+ 5. Restart the application
53
176
 
54
177
  ## Testing
55
178
 
56
179
  ```bash
57
- # unit tests
58
- $ npm run test
180
+ # Unit tests
181
+ npm test
59
182
 
60
- # e2e tests
61
- $ npm run test:e2e
183
+ # Unit tests in watch mode
184
+ npm run test:watch
62
185
 
63
- # test coverage
64
- $ npm run test:cov
186
+ # E2E tests
187
+ npm run test:e2e
188
+
189
+ # All tests (unit + UI + E2E)
190
+ npm run test:all
191
+
192
+ # Test coverage
193
+ npm run test:cov
194
+
195
+ # Run a single test file
196
+ npm test -- src/auth/auth.service.spec.ts
197
+
198
+ # Run tests matching a name pattern
199
+ npm test -- --testNamePattern="should validate email"
65
200
  ```
66
201
 
67
- ## API usage
202
+ ## Security
203
+
204
+ ### Authentication & Authorization
205
+
206
+ - **JWT-based authentication** with httpOnly cookie transport (no tokens in response bodies)
207
+ - **Role-Based Access Control (RBAC)**: `admin` and `member` roles
208
+ - **Admin**: Full access to all resources
209
+ - **Member**: Access scoped to projects they own or are members of
210
+ - **Project membership**: Many-to-many model with `owner` and `member` roles per project
211
+ - **Rate limiting**: 60 req/min globally, 5 req/min on auth endpoints
212
+ - All routes protected by default — use `@Public()` decorator for public endpoints
213
+
214
+ ### Supply Chain Protection
215
+
216
+ - `.npmrc` hardened: registry pinned to `registry.npmjs.org`, install scripts disabled
217
+ - `lockfile-lint` validates lockfile integrity in CI and pre-commit hooks
218
+ - `npm audit signatures` checks package provenance in CI
219
+ - [Socket.dev](https://socket.dev) monitors dependencies for supply chain risks
220
+
221
+ ### Additional Hardening
222
+
223
+ - Helmet.js security headers with Content Security Policy
224
+ - CORS restricted to `ALLOWED_ORIGINS` (deny-all in production without explicit config)
225
+ - Swagger UI disabled in production
226
+ - File upload validation: MIME type allowlist + 10MB size limit
227
+ - Input length limits on all text fields via class-validator
228
+
229
+ ## API Usage
68
230
 
69
231
  **Endpoint**: `POST /api/v1/agents/process`
70
232
  **Payload**:
@@ -73,3 +235,11 @@ $ npm run test:cov
73
235
  "input": "Write a short poem about automation."
74
236
  }
75
237
  ```
238
+
239
+ ## Contributing
240
+
241
+ See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
242
+
243
+ ## License
244
+
245
+ See [LICENSE](LICENSE) for details.
@@ -19,6 +19,8 @@ const agents_service_1 = require("./agents.service");
19
19
  const agent_request_dto_1 = require("./dto/agent-request.dto");
20
20
  const create_agent_dto_1 = require("./dto/create-agent.dto");
21
21
  const update_agent_dto_1 = require("./dto/update-agent.dto");
22
+ const roles_decorator_1 = require("../auth/decorators/roles.decorator");
23
+ const user_entity_1 = require("../users/entities/user.entity");
22
24
  let AgentsController = class AgentsController {
23
25
  agentsService;
24
26
  constructor(agentsService) {
@@ -48,6 +50,7 @@ let AgentsController = class AgentsController {
48
50
  };
49
51
  exports.AgentsController = AgentsController;
50
52
  __decorate([
53
+ (0, roles_decorator_1.Roles)(user_entity_1.UserRole.ADMIN),
51
54
  (0, common_1.Post)(),
52
55
  openapi.ApiResponse({ status: 201, type: require("./entities/agent.entity").AgentEntity }),
53
56
  __param(0, (0, common_1.Body)()),
@@ -71,6 +74,7 @@ __decorate([
71
74
  __metadata("design:returntype", void 0)
72
75
  ], AgentsController.prototype, "findOne", null);
73
76
  __decorate([
77
+ (0, roles_decorator_1.Roles)(user_entity_1.UserRole.ADMIN),
74
78
  (0, common_1.Patch)(':id'),
75
79
  openapi.ApiResponse({ status: 200, type: require("./entities/agent.entity").AgentEntity }),
76
80
  __param(0, (0, common_1.Param)('id')),
@@ -80,6 +84,7 @@ __decorate([
80
84
  __metadata("design:returntype", void 0)
81
85
  ], AgentsController.prototype, "update", null);
82
86
  __decorate([
87
+ (0, roles_decorator_1.Roles)(user_entity_1.UserRole.ADMIN),
83
88
  (0, common_1.Delete)(':id'),
84
89
  openapi.ApiResponse({ status: 200 }),
85
90
  __param(0, (0, common_1.Param)('id')),
@@ -1 +1 @@
1
- {"version":3,"file":"agents.controller.js","sourceRoot":"","sources":["../../src/agents/agents.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAUwB;AACxB,qDAAiD;AACjD,+DAA0D;AAE1D,6DAAwD;AACxD,6DAAwD;AAGjD,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IACE;IAA7B,YAA6B,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAG7D,MAAM,CAAS,cAA8B;QAC3C,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACnD,CAAC;IAGD,OAAO;QACL,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;IACtC,CAAC;IAGD,OAAO,CAAc,EAAU;QAC7B,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC;IAGD,MAAM,CAAc,EAAU,EAAU,cAA8B;QACpE,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;IACvD,CAAC;IAGD,MAAM,CAAc,EAAU;QAC5B,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC;IAIK,AAAN,KAAK,CAAC,WAAW,CACP,UAA2B;QAEnC,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,CACtC,UAAU,CAAC,OAAO,EAClB,UAAU,CAAC,KAAK,CACjB,CAAC;IACJ,CAAC;IAIK,AAAN,KAAK,CAAC,KAAK,CAAS,UAA2B;QAC7C,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IACxE,CAAC;CACF,CAAA;AA5CY,4CAAgB;AAI3B;IADC,IAAA,aAAI,GAAE;;IACC,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAiB,iCAAc;;8CAE5C;AAGD;IADC,IAAA,YAAG,GAAE;;;;;+CAGL;AAGD;IADC,IAAA,YAAG,EAAC,KAAK,CAAC;;IACF,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;;;;+CAEnB;AAGD;IADC,IAAA,cAAK,EAAC,KAAK,CAAC;;IACL,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;IAAc,WAAA,IAAA,aAAI,GAAE,CAAA;;6CAAiB,iCAAc;;8CAErE;AAGD;IADC,IAAA,eAAM,EAAC,KAAK,CAAC;;IACN,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;;;;8CAElB;AAIK;IAFL,IAAA,aAAI,EAAC,SAAS,CAAC;IACf,IAAA,iBAAQ,EAAC,mBAAU,CAAC,EAAE,CAAC;kCAAd,mBAAU,CAAC,EAAE;IAEpB,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAa,mCAAe;;mDAMpC;AAIK;IAFL,IAAA,aAAI,EAAC,OAAO,CAAC;IACb,IAAA,iBAAQ,EAAC,mBAAU,CAAC,EAAE,CAAC;kCAAd,mBAAU,CAAC,EAAE;IACV,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAa,mCAAe;;6CAE9C;2BA3CU,gBAAgB;IAD5B,IAAA,mBAAU,EAAC,QAAQ,CAAC;qCAEyB,8BAAa;GAD9C,gBAAgB,CA4C5B"}
1
+ {"version":3,"file":"agents.controller.js","sourceRoot":"","sources":["../../src/agents/agents.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAUwB;AACxB,qDAAiD;AACjD,+DAA0D;AAE1D,6DAAwD;AACxD,6DAAwD;AACxD,wEAA2D;AAC3D,+DAAyD;AAGlD,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IACE;IAA7B,YAA6B,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAI7D,MAAM,CAAS,cAA8B;QAC3C,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACnD,CAAC;IAGD,OAAO;QACL,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;IACtC,CAAC;IAGD,OAAO,CAAc,EAAU;QAC7B,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC;IAID,MAAM,CAAc,EAAU,EAAU,cAA8B;QACpE,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;IACvD,CAAC;IAID,MAAM,CAAc,EAAU;QAC5B,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC;IAIK,AAAN,KAAK,CAAC,WAAW,CACP,UAA2B;QAEnC,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,CACtC,UAAU,CAAC,OAAO,EAClB,UAAU,CAAC,KAAK,CACjB,CAAC;IACJ,CAAC;IAIK,AAAN,KAAK,CAAC,KAAK,CAAS,UAA2B;QAC7C,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IACxE,CAAC;CACF,CAAA;AA/CY,4CAAgB;AAK3B;IAFC,IAAA,uBAAK,EAAC,sBAAQ,CAAC,KAAK,CAAC;IACrB,IAAA,aAAI,GAAE;;IACC,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAiB,iCAAc;;8CAE5C;AAGD;IADC,IAAA,YAAG,GAAE;;;;;+CAGL;AAGD;IADC,IAAA,YAAG,EAAC,KAAK,CAAC;;IACF,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;;;;+CAEnB;AAID;IAFC,IAAA,uBAAK,EAAC,sBAAQ,CAAC,KAAK,CAAC;IACrB,IAAA,cAAK,EAAC,KAAK,CAAC;;IACL,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;IAAc,WAAA,IAAA,aAAI,GAAE,CAAA;;6CAAiB,iCAAc;;8CAErE;AAID;IAFC,IAAA,uBAAK,EAAC,sBAAQ,CAAC,KAAK,CAAC;IACrB,IAAA,eAAM,EAAC,KAAK,CAAC;;IACN,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;;;;8CAElB;AAIK;IAFL,IAAA,aAAI,EAAC,SAAS,CAAC;IACf,IAAA,iBAAQ,EAAC,mBAAU,CAAC,EAAE,CAAC;kCAAd,mBAAU,CAAC,EAAE;IAEpB,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAa,mCAAe;;mDAMpC;AAIK;IAFL,IAAA,aAAI,EAAC,OAAO,CAAC;IACb,IAAA,iBAAQ,EAAC,mBAAU,CAAC,EAAE,CAAC;kCAAd,mBAAU,CAAC,EAAE;IACV,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAa,mCAAe;;6CAE9C;2BA9CU,gBAAgB;IAD5B,IAAA,mBAAU,EAAC,QAAQ,CAAC;qCAEyB,8BAAa;GAD9C,gBAAgB,CA+C5B"}
@@ -16,7 +16,7 @@ class AgentRequestDto {
16
16
  agentId;
17
17
  input;
18
18
  static _OPENAPI_METADATA_FACTORY() {
19
- return { agentId: { required: true, type: () => String }, input: { required: true, type: () => String } };
19
+ return { agentId: { required: true, type: () => String }, input: { required: true, type: () => String, maxLength: 50000 } };
20
20
  }
21
21
  }
22
22
  exports.AgentRequestDto = AgentRequestDto;
@@ -28,6 +28,7 @@ __decorate([
28
28
  __decorate([
29
29
  (0, class_validator_1.IsString)(),
30
30
  (0, class_validator_1.IsNotEmpty)(),
31
+ (0, class_validator_1.MaxLength)(50000),
31
32
  __metadata("design:type", String)
32
33
  ], AgentRequestDto.prototype, "input", void 0);
33
34
  //# sourceMappingURL=agent-request.dto.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-request.dto.js","sourceRoot":"","sources":["../../../src/agents/dto/agent-request.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,qDAAuD;AAEvD,MAAa,eAAe;IAG1B,OAAO,CAAS;IAIhB,KAAK,CAAS;;;;CACf;AARD,0CAQC;AALC;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;gDACG;AAIhB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;8CACC"}
1
+ {"version":3,"file":"agent-request.dto.js","sourceRoot":"","sources":["../../../src/agents/dto/agent-request.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,qDAAkE;AAElE,MAAa,eAAe;IAG1B,OAAO,CAAS;IAKhB,KAAK,CAAS;;;;CACf;AATD,0CASC;AANC;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;gDACG;AAKhB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,EAAC,KAAK,CAAC;;8CACH"}
@@ -21,28 +21,32 @@ class CreateAgentDto {
21
21
  status;
22
22
  providerId;
23
23
  static _OPENAPI_METADATA_FACTORY() {
24
- return { name: { required: true, type: () => String }, description: { required: false, type: () => String }, role: { required: false, type: () => String }, systemInstructions: { required: false, type: () => String }, modelId: { required: true, type: () => String }, status: { required: false, type: () => String }, providerId: { required: true, type: () => String, format: "uuid" } };
24
+ return { name: { required: true, type: () => String, maxLength: 200 }, description: { required: false, type: () => String, maxLength: 2000 }, role: { required: false, type: () => String, maxLength: 200 }, systemInstructions: { required: false, type: () => String, maxLength: 10000 }, modelId: { required: true, type: () => String }, status: { required: false, type: () => String, enum: ['active', 'inactive'] }, providerId: { required: true, type: () => String, format: "uuid" } };
25
25
  }
26
26
  }
27
27
  exports.CreateAgentDto = CreateAgentDto;
28
28
  __decorate([
29
29
  (0, class_validator_1.IsString)(),
30
30
  (0, class_validator_1.IsNotEmpty)(),
31
+ (0, class_validator_1.MaxLength)(200),
31
32
  __metadata("design:type", String)
32
33
  ], CreateAgentDto.prototype, "name", void 0);
33
34
  __decorate([
34
35
  (0, class_validator_1.IsString)(),
35
36
  (0, class_validator_1.IsOptional)(),
37
+ (0, class_validator_1.MaxLength)(2000),
36
38
  __metadata("design:type", String)
37
39
  ], CreateAgentDto.prototype, "description", void 0);
38
40
  __decorate([
39
41
  (0, class_validator_1.IsString)(),
40
42
  (0, class_validator_1.IsOptional)(),
43
+ (0, class_validator_1.MaxLength)(200),
41
44
  __metadata("design:type", String)
42
45
  ], CreateAgentDto.prototype, "role", void 0);
43
46
  __decorate([
44
47
  (0, class_validator_1.IsString)(),
45
48
  (0, class_validator_1.IsOptional)(),
49
+ (0, class_validator_1.MaxLength)(10000),
46
50
  __metadata("design:type", String)
47
51
  ], CreateAgentDto.prototype, "systemInstructions", void 0);
48
52
  __decorate([
@@ -53,6 +57,7 @@ __decorate([
53
57
  __decorate([
54
58
  (0, class_validator_1.IsString)(),
55
59
  (0, class_validator_1.IsOptional)(),
60
+ (0, class_validator_1.IsIn)(['active', 'inactive']),
56
61
  __metadata("design:type", String)
57
62
  ], CreateAgentDto.prototype, "status", void 0);
58
63
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"create-agent.dto.js","sourceRoot":"","sources":["../../../src/agents/dto/create-agent.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,qDAA2E;AAE3E,MAAa,cAAc;IAGzB,IAAI,CAAS;IAIb,WAAW,CAAU;IAIrB,IAAI,CAAU;IAId,kBAAkB,CAAU;IAI5B,OAAO,CAAS;IAIhB,MAAM,CAAU;IAIhB,UAAU,CAAS;;;;CACpB;AA5BD,wCA4BC;AAzBC;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;4CACA;AAIb;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;mDACQ;AAIrB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;4CACC;AAId;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;0DACe;AAI5B;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;+CACG;AAIhB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;8CACG;AAIhB;IAFC,IAAA,wBAAM,GAAE;IACR,IAAA,4BAAU,GAAE;;kDACM"}
1
+ {"version":3,"file":"create-agent.dto.js","sourceRoot":"","sources":["../../../src/agents/dto/create-agent.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,qDAOyB;AAEzB,MAAa,cAAc;IAIzB,IAAI,CAAS;IAKb,WAAW,CAAU;IAKrB,IAAI,CAAU;IAKd,kBAAkB,CAAU;IAI5B,OAAO,CAAS;IAKhB,MAAM,CAAU;IAIhB,UAAU,CAAS;;0YALb,CAAC,QAAQ,EAAE,UAAU,CAAC;;CAM7B;AAjCD,wCAiCC;AA7BC;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,EAAC,GAAG,CAAC;;4CACF;AAKb;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,EAAC,IAAI,CAAC;;mDACK;AAKrB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,EAAC,GAAG,CAAC;;4CACD;AAKd;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,EAAC,KAAK,CAAC;;0DACW;AAI5B;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;+CACG;AAKhB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,sBAAI,EAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;;8CACb;AAIhB;IAFC,IAAA,wBAAM,GAAE;IACR,IAAA,4BAAU,GAAE;;kDACM"}
@@ -28,6 +28,7 @@ const throttler_1 = require("@nestjs/throttler");
28
28
  const core_1 = require("@nestjs/core");
29
29
  const auth_module_1 = require("./auth/auth.module");
30
30
  const jwt_auth_guard_1 = require("./auth/guards/jwt-auth.guard");
31
+ const roles_guard_1 = require("./auth/guards/roles.guard");
31
32
  const typeorm_2 = require("./config/typeorm");
32
33
  const APP_HOME = process.env.AGENT_ORCHESTRATOR_HOME;
33
34
  const ENV_PATH = APP_HOME ? (0, path_1.join)(APP_HOME, '.env') : '.env';
@@ -93,6 +94,10 @@ exports.AppModule = AppModule = __decorate([
93
94
  provide: core_1.APP_GUARD,
94
95
  useClass: jwt_auth_guard_1.JwtAuthGuard,
95
96
  },
97
+ {
98
+ provide: core_1.APP_GUARD,
99
+ useClass: roles_guard_1.RolesGuard,
100
+ },
96
101
  ],
97
102
  })
98
103
  ], AppModule);
@@ -1 +1 @@
1
- {"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,uDAAyD;AACzD,6CAAgD;AAChD,+BAA4B;AAC5B,0DAAsD;AACtD,qDAAiD;AACjD,+CAA2C;AAC3C,mEAA+D;AAC/D,0DAAsD;AACtD,uDAAmD;AACnD,gEAA4D;AAC5D,uDAAmD;AACnD,0DAAsD;AACtD,6DAAyD;AACzD,+CAAkD;AAClD,2CAA6D;AAC7D,4DAA8D;AAC9D,iDAAoE;AACpE,uCAAyC;AACzC,oDAAgD;AAChD,iEAA4D;AAC5D,8CAAoD;AAEpD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;AACrD,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAA,WAAI,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AA+DrD,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,8BAAS;oBAAT,SAAS;IA7DrB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,qBAAY,CAAC,OAAO,CAAC;gBACnB,QAAQ,EAAE,IAAI;gBACd,gBAAgB,EAAE,oCAAmB;gBACrC,WAAW,EAAE,QAAQ;aACtB,CAAC;YACF,2BAAe,CAAC,YAAY,CAAC;gBAC3B,OAAO,EAAE,CAAC,qBAAY,CAAC;gBACvB,MAAM,EAAE,CAAC,sBAAa,CAAC;gBACvB,UAAU,EAAE,CAAC,MAAqB,EAAE,EAAE,CAAC;oBACrC;wBACE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,KAAK;wBACxC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE;qBAC1C;iBACF;aACF,CAAC;YACF,yBAAc,CAAC,OAAO,EAAE;YACxB,uBAAa,CAAC,YAAY,CAAC;gBACzB,OAAO,EAAE,CAAC,qBAAY,CAAC;gBACvB,MAAM,EAAE,CAAC,sBAAa,CAAC;gBACvB,UAAU,EAAE,CAAC,aAA4B,EAAE,EAAE;oBAC3C,MAAM,UAAU,GAAG,IAAA,0BAAgB,EAAC,aAAa,CAAC,CAAC;oBACnD,OAAO;wBACL,GAAG,UAAU;wBACb,QAAQ,EAAE,EAAE;wBACZ,gBAAgB,EAAE,IAAI;wBACtB,WAAW,EAAE,UAAU,CAAC,WAAW;wBACnC,aAAa,EAAE,KAAK;qBACrB,CAAC;gBACJ,CAAC;aACF,CAAC;YACF,gCAAiB,CAAC,OAAO,CAAC;gBACxB,QAAQ,EACN,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;oBACnC,CAAC,CAAC,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,CAAC;oBACvB,CAAC,CAAC,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC;aAC1C,CAAC;YACF,4BAAY;YACZ,8BAAa;YACb,4BAAY;YACZ,kCAAe;YACf,4BAAY;YACZ,0BAAW;YACX,gCAAc;YACd,0BAAW;YACX,wBAAU;SACX;QACD,WAAW,EAAE,CAAC,8BAAa,CAAC;QAC5B,SAAS,EAAE;YACT,wBAAU;YACV;gBACE,OAAO,EAAE,gBAAS;gBAClB,QAAQ,EAAE,0BAAc;aACzB;YACD;gBACE,OAAO,EAAE,gBAAS;gBAClB,QAAQ,EAAE,6BAAY;aACvB;SACF;KACF,CAAC;GACW,SAAS,CAAG"}
1
+ {"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,uDAAyD;AACzD,6CAAgD;AAChD,+BAA4B;AAC5B,0DAAsD;AACtD,qDAAiD;AACjD,+CAA2C;AAC3C,mEAA+D;AAC/D,0DAAsD;AACtD,uDAAmD;AACnD,gEAA4D;AAC5D,uDAAmD;AACnD,0DAAsD;AACtD,6DAAyD;AACzD,+CAAkD;AAClD,2CAA6D;AAC7D,4DAA8D;AAC9D,iDAAoE;AACpE,uCAAyC;AACzC,oDAAgD;AAChD,iEAA4D;AAC5D,2DAAuD;AACvD,8CAAoD;AAEpD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;AACrD,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAA,WAAI,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AAmErD,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,8BAAS;oBAAT,SAAS;IAjErB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,qBAAY,CAAC,OAAO,CAAC;gBACnB,QAAQ,EAAE,IAAI;gBACd,gBAAgB,EAAE,oCAAmB;gBACrC,WAAW,EAAE,QAAQ;aACtB,CAAC;YACF,2BAAe,CAAC,YAAY,CAAC;gBAC3B,OAAO,EAAE,CAAC,qBAAY,CAAC;gBACvB,MAAM,EAAE,CAAC,sBAAa,CAAC;gBACvB,UAAU,EAAE,CAAC,MAAqB,EAAE,EAAE,CAAC;oBACrC;wBACE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,KAAK;wBACxC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE;qBAC1C;iBACF;aACF,CAAC;YACF,yBAAc,CAAC,OAAO,EAAE;YACxB,uBAAa,CAAC,YAAY,CAAC;gBACzB,OAAO,EAAE,CAAC,qBAAY,CAAC;gBACvB,MAAM,EAAE,CAAC,sBAAa,CAAC;gBACvB,UAAU,EAAE,CAAC,aAA4B,EAAE,EAAE;oBAC3C,MAAM,UAAU,GAAG,IAAA,0BAAgB,EAAC,aAAa,CAAC,CAAC;oBACnD,OAAO;wBACL,GAAG,UAAU;wBACb,QAAQ,EAAE,EAAE;wBACZ,gBAAgB,EAAE,IAAI;wBACtB,WAAW,EAAE,UAAU,CAAC,WAAW;wBACnC,aAAa,EAAE,KAAK;qBACrB,CAAC;gBACJ,CAAC;aACF,CAAC;YACF,gCAAiB,CAAC,OAAO,CAAC;gBACxB,QAAQ,EACN,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;oBACnC,CAAC,CAAC,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,CAAC;oBACvB,CAAC,CAAC,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC;aAC1C,CAAC;YACF,4BAAY;YACZ,8BAAa;YACb,4BAAY;YACZ,kCAAe;YACf,4BAAY;YACZ,0BAAW;YACX,gCAAc;YACd,0BAAW;YACX,wBAAU;SACX;QACD,WAAW,EAAE,CAAC,8BAAa,CAAC;QAC5B,SAAS,EAAE;YACT,wBAAU;YACV;gBACE,OAAO,EAAE,gBAAS;gBAClB,QAAQ,EAAE,0BAAc;aACzB;YACD;gBACE,OAAO,EAAE,gBAAS;gBAClB,QAAQ,EAAE,6BAAY;aACvB;YACD;gBACE,OAAO,EAAE,gBAAS;gBAClB,QAAQ,EAAE,wBAAU;aACrB;SACF;KACF,CAAC;GACW,SAAS,CAAG"}
@@ -1,14 +1,19 @@
1
+ import { ConfigService } from '@nestjs/config';
1
2
  import { AuthService } from './auth.service';
2
3
  import { RegisterDto } from './dto/register.dto';
3
4
  import { LoginDto } from './dto/login.dto';
5
+ import { UserRole } from '../users/entities/user.entity';
4
6
  import type { Response as ExpressResponse, Request as ExpressRequest } from 'express';
5
7
  export declare class AuthController {
6
8
  private readonly authService;
7
- constructor(authService: AuthService);
9
+ private readonly configService;
10
+ private readonly isProduction;
11
+ constructor(authService: AuthService, configService: ConfigService);
8
12
  register(registerDto: RegisterDto): Promise<{
9
13
  id: string;
10
14
  name: string;
11
15
  email: string;
16
+ role: UserRole;
12
17
  createdAt: Date;
13
18
  updatedAt: Date;
14
19
  }>;
@@ -16,15 +16,23 @@ exports.AuthController = void 0;
16
16
  const openapi = require("@nestjs/swagger");
17
17
  const common_1 = require("@nestjs/common");
18
18
  const throttler_1 = require("@nestjs/throttler");
19
+ const config_1 = require("@nestjs/config");
19
20
  const auth_service_1 = require("./auth.service");
20
21
  const register_dto_1 = require("./dto/register.dto");
21
22
  const login_dto_1 = require("./dto/login.dto");
22
23
  const public_decorator_1 = require("./decorators/public.decorator");
24
+ const roles_decorator_1 = require("./decorators/roles.decorator");
25
+ const user_entity_1 = require("../users/entities/user.entity");
23
26
  const swagger_1 = require("@nestjs/swagger");
24
27
  let AuthController = class AuthController {
25
28
  authService;
26
- constructor(authService) {
29
+ configService;
30
+ isProduction;
31
+ constructor(authService, configService) {
27
32
  this.authService = authService;
33
+ this.configService = configService;
34
+ this.isProduction =
35
+ this.configService.get('NODE_ENV') === 'production';
28
36
  }
29
37
  register(registerDto) {
30
38
  return this.authService.register(registerDto);
@@ -33,14 +41,14 @@ let AuthController = class AuthController {
33
41
  const data = await this.authService.login(loginDto);
34
42
  res.cookie('auth_token', data.access_token, {
35
43
  httpOnly: true,
36
- secure: process.env.NODE_ENV === 'production',
44
+ secure: this.isProduction,
37
45
  sameSite: 'strict',
38
46
  maxAge: data.expires_in * 1000,
39
47
  path: '/',
40
48
  });
41
49
  res.cookie('refresh_token', data.refresh_token, {
42
50
  httpOnly: true,
43
- secure: process.env.NODE_ENV === 'production',
51
+ secure: this.isProduction,
44
52
  sameSite: 'strict',
45
53
  maxAge: data.refresh_expires_in * 1000,
46
54
  path: '/',
@@ -56,15 +64,22 @@ let AuthController = class AuthController {
56
64
  }
57
65
  try {
58
66
  const data = await this.authService.refresh(refreshToken);
67
+ res.cookie('auth_token', data.access_token, {
68
+ httpOnly: true,
69
+ secure: this.isProduction,
70
+ sameSite: 'strict',
71
+ maxAge: data.expires_in * 1000,
72
+ path: '/',
73
+ });
59
74
  res.cookie('refresh_token', data.refresh_token, {
60
75
  httpOnly: true,
61
- secure: process.env.NODE_ENV === 'production',
76
+ secure: this.isProduction,
62
77
  sameSite: 'strict',
63
78
  maxAge: data.refresh_expires_in * 1000,
64
79
  path: '/',
65
80
  });
66
81
  return res.json({
67
- access_token: data.access_token,
82
+ message: 'Token refreshed successfully',
68
83
  expires_in: data.expires_in,
69
84
  token_type: data.token_type,
70
85
  });
@@ -92,7 +107,7 @@ let AuthController = class AuthController {
92
107
  };
93
108
  exports.AuthController = AuthController;
94
109
  __decorate([
95
- (0, public_decorator_1.Public)(),
110
+ (0, roles_decorator_1.Roles)(user_entity_1.UserRole.ADMIN),
96
111
  (0, throttler_1.Throttle)({ default: { limit: 5, ttl: 60000 } }),
97
112
  (0, common_1.Post)('register'),
98
113
  openapi.ApiResponse({ status: 201 }),
@@ -145,6 +160,7 @@ __decorate([
145
160
  exports.AuthController = AuthController = __decorate([
146
161
  (0, swagger_1.ApiTags)('auth'),
147
162
  (0, common_1.Controller)('auth'),
148
- __metadata("design:paramtypes", [auth_service_1.AuthService])
163
+ __metadata("design:paramtypes", [auth_service_1.AuthService,
164
+ config_1.ConfigService])
149
165
  ], AuthController);
150
166
  //# sourceMappingURL=auth.controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.controller.js","sourceRoot":"","sources":["../../src/auth/auth.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.controller.js","sourceRoot":"","sources":["../../src/auth/auth.controller.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,7 @@ export declare class AuthService {
23
23
  id: string;
24
24
  name: string;
25
25
  email: string;
26
+ role: import("../users/entities/user.entity").UserRole;
26
27
  createdAt: Date;
27
28
  updatedAt: Date;
28
29
  }>;
@@ -0,0 +1 @@
1
+ export declare const CurrentUser: (...dataOrPipes: unknown[]) => ParameterDecorator;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CurrentUser = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ exports.CurrentUser = (0, common_1.createParamDecorator)((data, ctx) => {
6
+ const request = ctx.switchToHttp().getRequest();
7
+ return request.user;
8
+ });
9
+ //# sourceMappingURL=current-user.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"current-user.decorator.js","sourceRoot":"","sources":["../../../src/auth/decorators/current-user.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAAwE;AAE3D,QAAA,WAAW,GAAG,IAAA,6BAAoB,EAC7C,CAAC,IAAa,EAAE,GAAqB,EAAE,EAAE;IACvC,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC,UAAU,EAAqB,CAAC;IACnE,OAAO,OAAO,CAAC,IAAI,CAAC;AACtB,CAAC,CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { UserRole } from '../../users/entities/user.entity';
2
+ export declare const ROLES_KEY = "roles";
3
+ export declare const Roles: (...roles: UserRole[]) => import("@nestjs/common").CustomDecorator<string>;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Roles = exports.ROLES_KEY = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ exports.ROLES_KEY = 'roles';
6
+ const Roles = (...roles) => (0, common_1.SetMetadata)(exports.ROLES_KEY, roles);
7
+ exports.Roles = Roles;
8
+ //# sourceMappingURL=roles.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roles.decorator.js","sourceRoot":"","sources":["../../../src/auth/decorators/roles.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAA6C;AAGhC,QAAA,SAAS,GAAG,OAAO,CAAC;AAC1B,MAAM,KAAK,GAAG,CAAC,GAAG,KAAiB,EAAE,EAAE,CAAC,IAAA,oBAAW,EAAC,iBAAS,EAAE,KAAK,CAAC,CAAC;AAAhE,QAAA,KAAK,SAA2D"}
@@ -67,6 +67,7 @@ __decorate([
67
67
  ], RefreshToken.prototype, "revokedAt", void 0);
68
68
  exports.RefreshToken = RefreshToken = __decorate([
69
69
  (0, typeorm_1.Entity)('refresh_tokens'),
70
- (0, typeorm_1.Index)(['userId', 'expiresAt'])
70
+ (0, typeorm_1.Index)(['userId', 'expiresAt']),
71
+ (0, typeorm_1.Index)(['userId', 'revokedAt'])
71
72
  ], RefreshToken);
72
73
  //# sourceMappingURL=refresh-token.entity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"refresh-token.entity.js","sourceRoot":"","sources":["../../../src/auth/entities/refresh-token.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,qCAQiB;AACjB,kEAAwD;AAIjD,IAAM,YAAY,GAAlB,MAAM,YAAY;IAEvB,EAAE,CAAS;IAGX,MAAM,CAAS;IAIf,IAAI,CAAO;IAGX,KAAK,CAAS;IAGd,QAAQ,CAAO;IAGf,SAAS,CAAO;IAGhB,cAAc,CAAO;IAGrB,SAAS,CAAO;IAGhB,SAAS,CAAc;;;;CACxB,CAAA;AA5BY,oCAAY;AAEvB;IADC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;wCACpB;AAGX;IADC,IAAA,gBAAM,GAAE;;4CACM;AAIf;IAFC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,kBAAI,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAC9C,IAAA,oBAAU,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;8BACzB,kBAAI;0CAAC;AAGX;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;2CACX;AAGd;IADC,IAAA,0BAAgB,GAAE;8BACT,IAAI;8CAAC;AAGf;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;8BAClB,IAAI;+CAAC;AAGhB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;8BACb,IAAI;oDAAC;AAGrB;IADC,IAAA,0BAAgB,GAAE;8BACR,IAAI;+CAAC;AAGhB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CACtB;uBA3BZ,YAAY;IAFxB,IAAA,gBAAM,EAAC,gBAAgB,CAAC;IACxB,IAAA,eAAK,EAAC,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;GAClB,YAAY,CA4BxB"}
1
+ {"version":3,"file":"refresh-token.entity.js","sourceRoot":"","sources":["../../../src/auth/entities/refresh-token.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,qCAQiB;AACjB,kEAAwD;AAKjD,IAAM,YAAY,GAAlB,MAAM,YAAY;IAEvB,EAAE,CAAS;IAGX,MAAM,CAAS;IAIf,IAAI,CAAO;IAGX,KAAK,CAAS;IAGd,QAAQ,CAAO;IAGf,SAAS,CAAO;IAGhB,cAAc,CAAO;IAGrB,SAAS,CAAO;IAGhB,SAAS,CAAc;;;;CACxB,CAAA;AA5BY,oCAAY;AAEvB;IADC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;wCACpB;AAGX;IADC,IAAA,gBAAM,GAAE;;4CACM;AAIf;IAFC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,kBAAI,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAC9C,IAAA,oBAAU,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;8BACzB,kBAAI;0CAAC;AAGX;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;2CACX;AAGd;IADC,IAAA,0BAAgB,GAAE;8BACT,IAAI;8CAAC;AAGf;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;8BAClB,IAAI;+CAAC;AAGhB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;8BACb,IAAI;oDAAC;AAGrB;IADC,IAAA,0BAAgB,GAAE;8BACR,IAAI;+CAAC;AAGhB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CACtB;uBA3BZ,YAAY;IAHxB,IAAA,gBAAM,EAAC,gBAAgB,CAAC;IACxB,IAAA,eAAK,EAAC,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC9B,IAAA,eAAK,EAAC,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;GAClB,YAAY,CA4BxB"}
@@ -0,0 +1,7 @@
1
+ import { CanActivate, ExecutionContext } from '@nestjs/common';
2
+ import { Reflector } from '@nestjs/core';
3
+ export declare class RolesGuard implements CanActivate {
4
+ private reflector;
5
+ constructor(reflector: Reflector);
6
+ canActivate(context: ExecutionContext): boolean;
7
+ }