solver-sdk 3.1.1 → 3.1.3

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.
@@ -1,316 +0,0 @@
1
- # Аутентификация v2.5.0
2
-
3
- Документация по аутентификации в AI Solver SDK v2.5.0.
4
-
5
- ## API ключи
6
-
7
- AI Solver использует API ключи для аутентификации. Ключи имеют специальные префиксы:
8
-
9
- ### Форматы ключей
10
-
11
- ```
12
- dev_sk_test_12345678 # Development key (для разработки)
13
- sk_prod_1234567890abcd # Production key (для продакшна)
14
- sk_temp_abcdef123456 # Temporary key (временный)
15
- ```
16
-
17
- ## Получение API ключа
18
-
19
- ### Development ключ
20
-
21
- Для локальной разработки используйте тестовый ключ:
22
-
23
- ```
24
- dev_sk_test_12345678
25
- ```
26
-
27
- ### Production ключ
28
-
29
- 1. Зарегистрируйтесь на платформе AI Solver
30
- 2. Перейдите в настройки аккаунта
31
- 3. Создайте новый Production API ключ
32
- 4. Сохраните ключ в безопасном месте
33
-
34
- ## Использование API ключа
35
-
36
- ### Рекомендуемый способ (v2.5.0)
37
-
38
- ```javascript
39
- import { CodeSolverSDK } from '@ai-solver/sdk';
40
-
41
- const sdk = CodeSolverSDK.create({
42
- baseURL: 'http://localhost:3000',
43
- apiKey: 'dev_sk_test_12345678'
44
- });
45
- ```
46
-
47
- ### Через переменные окружения
48
-
49
- ```bash
50
- # Development
51
- export AI_SOLVER_API_KEY=dev_sk_test_12345678
52
-
53
- # Production
54
- export AI_SOLVER_API_KEY=sk_prod_1234567890abcd
55
- ```
56
-
57
- ```javascript
58
- import { CodeSolverSDK } from '@ai-solver/sdk';
59
-
60
- const sdk = CodeSolverSDK.create({
61
- baseURL: process.env.NODE_ENV === 'production'
62
- ? 'https://api.ai-solver.com'
63
- : 'http://localhost:3000',
64
- apiKey: process.env.AI_SOLVER_API_KEY
65
- });
66
- ```
67
-
68
- ### Динамическое обновление ключа
69
-
70
- ```javascript
71
- // Обновление API ключа в runtime
72
- sdk.updateOptions({
73
- apiKey: 'new_api_key_12345678'
74
- });
75
- ```
76
-
77
- ## Типы ключей
78
-
79
- | Тип | Префикс | Описание | Срок действия |
80
- |-----|---------|----------|---------------|
81
- | Development | `dev_sk_test_` | Для локальной разработки | Неограничен |
82
- | Production | `sk_prod_` | Для production использования | 1 год |
83
- | Temporary | `sk_temp_` | Временный доступ | 7-30 дней |
84
-
85
- ## Области действия (Scopes)
86
-
87
- API ключи v2.5.0 поддерживают следующие области:
88
-
89
- ### Базовые права
90
-
91
- - `projects:read` - Чтение проектов
92
- - `projects:write` - Создание и изменение проектов
93
- - `projects:index` - Запуск индексации
94
-
95
- ### AI права
96
-
97
- - `chat:access` - Доступ к AI чату
98
- - `chat:stream` - Потоковый чат
99
- - `reasoning:access` - Доступ к reasoning API
100
- - `reasoning:manage` - Управление reasoning процессами
101
-
102
- ### Поиск и данные
103
-
104
- - `search:access` - Семантический поиск
105
- - `context:access` - Доступ к контексту проекта
106
- - `websocket:connect` - WebSocket соединения
107
-
108
- ### Development ключ
109
-
110
- Development ключ `dev_sk_test_12345678` имеет **все права** для удобства разработки.
111
-
112
- ## Проверка аутентификации
113
-
114
- ### Диагностика API
115
-
116
- ```javascript
117
- // Полная диагностика включая аутентификацию
118
- const results = await sdk.diagnoseAPI();
119
- console.log('API diagnostics:', results);
120
-
121
- /* Пример ответа:
122
- {
123
- '/api/v1/projects': { status: 200, authenticated: true },
124
- '/api/v1/chat': { status: 200, authenticated: true },
125
- '/api/v1/reasoning': { status: 401, authenticated: false, error: 'Invalid API key' }
126
- }
127
- */
128
- ```
129
-
130
- ### Простая проверка
131
-
132
- ```javascript
133
- try {
134
- const projects = await sdk.projects.getAll();
135
- console.log('✅ Authentication successful');
136
- } catch (error) {
137
- if (error.status === 401) {
138
- console.error('❌ Invalid API key');
139
- } else if (error.status === 403) {
140
- console.error('❌ Insufficient permissions');
141
- }
142
- }
143
- ```
144
-
145
- ## Заголовки аутентификации
146
-
147
- SDK автоматически добавляет заголовки:
148
-
149
- ```http
150
- Authorization: Bearer dev_sk_test_12345678
151
- Content-Type: application/json
152
- ```
153
-
154
- ### Дополнительные заголовки
155
-
156
- ```javascript
157
- const sdk = CodeSolverSDK.create({
158
- baseURL: 'http://localhost:3000',
159
- apiKey: 'dev_sk_test_12345678',
160
- headers: {
161
- 'X-Client-Version': '2.5.0',
162
- 'X-User-Agent': 'My-App/1.0'
163
- }
164
- });
165
- ```
166
-
167
- ## WebSocket аутентификация
168
-
169
- WebSocket соединения автоматически используют API ключ:
170
-
171
- ```javascript
172
- // API ключ автоматически передается в WebSocket
173
- await sdk.projects.connectWebSocket();
174
- await sdk.reasoning.connectWebSocket();
175
- await sdk.chat.connectWebSocket();
176
- ```
177
-
178
- ## Ошибки аутентификации
179
-
180
- ### 401 Unauthorized
181
-
182
- ```json
183
- {
184
- "error": "Unauthorized",
185
- "message": "Invalid or missing API key",
186
- "code": "AUTH_INVALID_KEY"
187
- }
188
- ```
189
-
190
- **Решение:** Проверьте правильность API ключа.
191
-
192
- ### 403 Forbidden
193
-
194
- ```json
195
- {
196
- "error": "Forbidden",
197
- "message": "Insufficient permissions for this operation",
198
- "code": "AUTH_INSUFFICIENT_SCOPE",
199
- "required_scope": "projects:write"
200
- }
201
- ```
202
-
203
- **Решение:** Используйте ключ с нужными правами.
204
-
205
- ### 429 Rate Limited
206
-
207
- ```json
208
- {
209
- "error": "Too Many Requests",
210
- "message": "Rate limit exceeded",
211
- "retry_after": 60
212
- }
213
- ```
214
-
215
- **Решение:** Подождите указанное время или используйте Production ключ.
216
-
217
- ## Безопасность
218
-
219
- ### ✅ Рекомендации
220
-
221
- - Используйте переменные окружения для хранения ключей
222
- - Никогда не коммитьте ключи в git
223
- - Регулярно ротируйте Production ключи
224
- - Используйте минимальные необходимые права
225
- - Мониторьте использование ключей
226
-
227
- ### ❌ Не делайте
228
-
229
- ```javascript
230
- // ❌ НЕ ДЕЛАЙТЕ ТАК
231
- const sdk = CodeSolverSDK.create({
232
- apiKey: 'sk_prod_1234567890abcd' // Хардкод в коде
233
- });
234
-
235
- // ❌ НЕ ДЕЛАЙТЕ ТАК
236
- fetch('/api/client-side', {
237
- headers: {
238
- 'Authorization': 'Bearer sk_prod_1234567890abcd' // В браузере
239
- }
240
- });
241
- ```
242
-
243
- ### ✅ Правильно
244
-
245
- ```javascript
246
- // ✅ ПРАВИЛЬНО
247
- const sdk = CodeSolverSDK.create({
248
- apiKey: process.env.AI_SOLVER_API_KEY
249
- });
250
-
251
- // ✅ ПРАВИЛЬНО - для браузера используйте proxy
252
- fetch('/api/proxy/ai-solver', {
253
- headers: {
254
- 'Authorization': 'Bearer ' + clientToken // Только client token
255
- }
256
- });
257
- ```
258
-
259
- ## Environment Configuration
260
-
261
- ### Development
262
-
263
- ```bash
264
- # .env.local
265
- AI_SOLVER_API_KEY=dev_sk_test_12345678
266
- AI_SOLVER_BASE_URL=http://localhost:3000
267
- ```
268
-
269
- ### Production
270
-
271
- ```bash
272
- # .env.production
273
- AI_SOLVER_API_KEY=sk_prod_1234567890abcd
274
- AI_SOLVER_BASE_URL=https://api.ai-solver.com
275
- ```
276
-
277
- ### Configuration helper
278
-
279
- ```javascript
280
- function createSDK() {
281
- const isDev = process.env.NODE_ENV === 'development';
282
-
283
- return CodeSolverSDK.create({
284
- baseURL: isDev
285
- ? 'http://localhost:3000'
286
- : 'https://api.ai-solver.com',
287
- apiKey: process.env.AI_SOLVER_API_KEY,
288
- autoConnect: false
289
- });
290
- }
291
- ```
292
-
293
- ## Отзыв ключей
294
-
295
- При компрометации ключа:
296
-
297
- 1. **Немедленно** удалите ключ из системы
298
- 2. Обновите переменные окружения
299
- 3. Перезапустите все сервисы
300
- 4. Создайте новый ключ
301
- 5. Проверьте логи на подозрительную активность
302
-
303
- ```javascript
304
- // Проверка активности ключа
305
- const diagnostics = await sdk.diagnoseAPI();
306
- if (diagnostics.unauthorized) {
307
- console.error('🚨 API key might be compromised or revoked');
308
- // Логика восстановления
309
- }
310
- ```
311
-
312
- ---
313
-
314
- **Документация аутентификации для SDK v2.5.0**
315
- **Совместимость:** AI Solver Backend v1.0.0
316
- **Обновлено:** 28 июня 2025