@snokam/mcp-api 0.58.0 → 0.60.0

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.
@@ -0,0 +1,559 @@
1
+ {
2
+ "openapi": "3.0.1",
3
+ "info": {
4
+ "title": "Notifications API",
5
+ "description": "Notification hub service",
6
+ "version": "v1.0.0"
7
+ },
8
+ "servers": [
9
+ {
10
+ "url": "https://notifications.api.test.snokam.no"
11
+ }
12
+ ],
13
+ "paths": {
14
+ "/v1.0/protected/alerts/azure": {
15
+ "post": {
16
+ "tags": [
17
+ "Alerts"
18
+ ],
19
+ "summary": "Receive Azure Monitor alert",
20
+ "description": "Action Group webhook receiver for the Azure Monitor common alert schema. Posts a formatted summary to the channel given by ?channel= (defaults to #feed-errors).",
21
+ "operationId": "ReceiveAzureAlert",
22
+ "parameters": [
23
+ {
24
+ "name": "channel",
25
+ "in": "query",
26
+ "schema": {
27
+ "type": "string"
28
+ },
29
+ "x-ms-summary": "Slack channel including the leading # (defaults to #feed-errors)"
30
+ }
31
+ ],
32
+ "responses": {
33
+ "200": {
34
+ "description": "Alert relayed",
35
+ "x-ms-summary": "Success"
36
+ }
37
+ },
38
+ "security": [
39
+ {
40
+ "Implicit": [
41
+ "api://246713d5-cd48-4a00-84dd-7fc7ae290a62/.default"
42
+ ]
43
+ }
44
+ ]
45
+ }
46
+ },
47
+ "/v1.0/protected/newsletter/trigger": {
48
+ "post": {
49
+ "tags": [
50
+ "Notifications"
51
+ ],
52
+ "summary": "Trigger newsletter summarizer",
53
+ "description": "Manually runs the weekly knowledge-summarizer cron (iterates active newsletterSeries, posts Olaf's summary to the configured Slack channel per series, and emails subscribers for series with sendEmails=true).",
54
+ "operationId": "TriggerKnowledgeSummarizer",
55
+ "responses": {
56
+ "200": {
57
+ "description": "Summarizer run completed",
58
+ "x-ms-summary": "Success"
59
+ }
60
+ },
61
+ "security": [
62
+ {
63
+ "Implicit": [
64
+ "api://246713d5-cd48-4a00-84dd-7fc7ae290a62/.default"
65
+ ]
66
+ }
67
+ ]
68
+ }
69
+ },
70
+ "/v1.0/protected/newsletter/debug": {
71
+ "post": {
72
+ "tags": [
73
+ "Notifications"
74
+ ],
75
+ "summary": "Preview newsletters by email",
76
+ "description": "Generates Olaf's summary for each active newsletterSeries and emails the rendered body (same composition the real cron uses) to the caller-supplied address. Skips Sanity persistence, Slack posts, and the 7-day dedup check — subscribers are never touched. Defaults to utvikling@snokam.no.",
77
+ "operationId": "DebugNewsletterEmail",
78
+ "parameters": [
79
+ {
80
+ "name": "to",
81
+ "in": "query",
82
+ "schema": {
83
+ "type": "string"
84
+ },
85
+ "x-ms-summary": "Recipient email (defaults to utvikling@snokam.no)"
86
+ }
87
+ ],
88
+ "responses": {
89
+ "200": {
90
+ "description": "Payload of Object",
91
+ "content": {
92
+ "application/json": {
93
+ "schema": {
94
+ "type": "object"
95
+ }
96
+ }
97
+ },
98
+ "x-ms-summary": "Preview sent"
99
+ }
100
+ },
101
+ "security": [
102
+ {
103
+ "Implicit": [
104
+ "api://246713d5-cd48-4a00-84dd-7fc7ae290a62/.default"
105
+ ]
106
+ }
107
+ ]
108
+ }
109
+ },
110
+ "/v1.0/protected/push/register": {
111
+ "post": {
112
+ "tags": [
113
+ "Push"
114
+ ],
115
+ "summary": "Register device for push notifications",
116
+ "description": "Creates or updates a device installation in Azure Notification Hub",
117
+ "operationId": "RegisterDevice",
118
+ "requestBody": {
119
+ "description": "Device registration data",
120
+ "content": {
121
+ "application/json": {
122
+ "schema": {
123
+ "$ref": "#/components/schemas/deviceInstallation"
124
+ }
125
+ }
126
+ },
127
+ "required": true
128
+ },
129
+ "responses": {
130
+ "200": {
131
+ "description": "Device registered successfully",
132
+ "x-ms-summary": "Success"
133
+ }
134
+ },
135
+ "security": [
136
+ {
137
+ "Implicit": [
138
+ "api://246713d5-cd48-4a00-84dd-7fc7ae290a62/.default"
139
+ ]
140
+ }
141
+ ]
142
+ }
143
+ },
144
+ "/v1.0/protected/push/register/{installationId}": {
145
+ "delete": {
146
+ "tags": [
147
+ "Push"
148
+ ],
149
+ "summary": "Unregister device from push notifications",
150
+ "description": "Removes a device installation from Azure Notification Hub",
151
+ "operationId": "UnregisterDevice",
152
+ "responses": {
153
+ "200": {
154
+ "description": "Device unregistered successfully",
155
+ "x-ms-summary": "Success"
156
+ }
157
+ },
158
+ "security": [
159
+ {
160
+ "Implicit": [
161
+ "api://246713d5-cd48-4a00-84dd-7fc7ae290a62/.default"
162
+ ]
163
+ }
164
+ ]
165
+ }
166
+ },
167
+ "/v1.0/protected/slack": {
168
+ "post": {
169
+ "tags": [
170
+ "Notifications"
171
+ ],
172
+ "summary": "Send Slack notification",
173
+ "description": "Queues a Slack message for delivery",
174
+ "operationId": "SendSlackNotification",
175
+ "requestBody": {
176
+ "description": "Slack notification to send",
177
+ "content": {
178
+ "application/json": {
179
+ "schema": {
180
+ "$ref": "#/components/schemas/sendSlackRequest"
181
+ }
182
+ }
183
+ },
184
+ "required": true
185
+ },
186
+ "responses": {
187
+ "200": {
188
+ "description": "Notification queued successfully",
189
+ "x-ms-summary": "Success"
190
+ }
191
+ },
192
+ "security": [
193
+ {
194
+ "Implicit": [
195
+ "api://246713d5-cd48-4a00-84dd-7fc7ae290a62/.default"
196
+ ]
197
+ }
198
+ ]
199
+ }
200
+ },
201
+ "/v1.0/protected/sms": {
202
+ "post": {
203
+ "tags": [
204
+ "Notifications"
205
+ ],
206
+ "summary": "Send SMS notification",
207
+ "description": "Queues an SMS message for delivery",
208
+ "operationId": "SendSmsNotification",
209
+ "requestBody": {
210
+ "description": "SMS notification to send",
211
+ "content": {
212
+ "application/json": {
213
+ "schema": {
214
+ "$ref": "#/components/schemas/sendSmsRequest"
215
+ }
216
+ }
217
+ },
218
+ "required": true
219
+ },
220
+ "responses": {
221
+ "200": {
222
+ "description": "Notification queued successfully",
223
+ "x-ms-summary": "Success"
224
+ }
225
+ },
226
+ "security": [
227
+ {
228
+ "Implicit": [
229
+ "api://246713d5-cd48-4a00-84dd-7fc7ae290a62/.default"
230
+ ]
231
+ }
232
+ ]
233
+ }
234
+ },
235
+ "/v1.0/protected/email": {
236
+ "post": {
237
+ "tags": [
238
+ "Notifications"
239
+ ],
240
+ "summary": "Send email notification",
241
+ "description": "Queues an email for delivery",
242
+ "operationId": "SendEmailNotification",
243
+ "requestBody": {
244
+ "description": "Email notification to send",
245
+ "content": {
246
+ "application/json": {
247
+ "schema": {
248
+ "$ref": "#/components/schemas/sendEmailRequest"
249
+ }
250
+ }
251
+ },
252
+ "required": true
253
+ },
254
+ "responses": {
255
+ "200": {
256
+ "description": "Notification queued successfully",
257
+ "x-ms-summary": "Success"
258
+ }
259
+ },
260
+ "security": [
261
+ {
262
+ "Implicit": [
263
+ "api://246713d5-cd48-4a00-84dd-7fc7ae290a62/.default"
264
+ ]
265
+ }
266
+ ]
267
+ }
268
+ },
269
+ "/v1.0/protected/push": {
270
+ "post": {
271
+ "tags": [
272
+ "Notifications"
273
+ ],
274
+ "summary": "Send push notification",
275
+ "description": "Queues a push notification for delivery",
276
+ "operationId": "SendPushNotification",
277
+ "requestBody": {
278
+ "description": "Push notification to send",
279
+ "content": {
280
+ "application/json": {
281
+ "schema": {
282
+ "$ref": "#/components/schemas/sendPushRequest"
283
+ }
284
+ }
285
+ },
286
+ "required": true
287
+ },
288
+ "responses": {
289
+ "200": {
290
+ "description": "Notification queued successfully",
291
+ "x-ms-summary": "Success"
292
+ }
293
+ },
294
+ "security": [
295
+ {
296
+ "Implicit": [
297
+ "api://246713d5-cd48-4a00-84dd-7fc7ae290a62/.default"
298
+ ]
299
+ }
300
+ ]
301
+ }
302
+ },
303
+ "/v1.0/protected/notify": {
304
+ "post": {
305
+ "tags": [
306
+ "Notifications"
307
+ ],
308
+ "summary": "Send notification",
309
+ "description": "Queues a notification for delivery to one or more channels (Slack, SMS, email)",
310
+ "operationId": "SendNotification",
311
+ "requestBody": {
312
+ "description": "Notification with one or more channels",
313
+ "content": {
314
+ "application/json": {
315
+ "schema": {
316
+ "$ref": "#/components/schemas/sendNotificationRequest"
317
+ }
318
+ }
319
+ },
320
+ "required": true
321
+ },
322
+ "responses": {
323
+ "200": {
324
+ "description": "Notification queued successfully",
325
+ "x-ms-summary": "Success"
326
+ }
327
+ },
328
+ "security": [
329
+ {
330
+ "Implicit": [
331
+ "api://246713d5-cd48-4a00-84dd-7fc7ae290a62/.default"
332
+ ]
333
+ }
334
+ ]
335
+ }
336
+ },
337
+ "/v1.0/protected/sprint-notification/trigger": {
338
+ "post": {
339
+ "tags": [
340
+ "Notifications"
341
+ ],
342
+ "summary": "Trigger weekly sprint summary",
343
+ "description": "Manually triggers the weekly sprint summary notification to Slack #general",
344
+ "operationId": "TriggerSprintNotification",
345
+ "responses": {
346
+ "200": {
347
+ "description": "Summary sent successfully",
348
+ "x-ms-summary": "Success"
349
+ }
350
+ },
351
+ "security": [
352
+ {
353
+ "Implicit": [
354
+ "api://246713d5-cd48-4a00-84dd-7fc7ae290a62/.default"
355
+ ]
356
+ }
357
+ ]
358
+ }
359
+ },
360
+ "/v1.0/protected/sprint-notification/debug": {
361
+ "get": {
362
+ "tags": [
363
+ "Notifications"
364
+ ],
365
+ "summary": "Debug friday summary",
366
+ "description": "Returns the full friday summary including ChatGPT output for debugging",
367
+ "operationId": "DebugSprintSummary",
368
+ "responses": {
369
+ "200": {
370
+ "description": "Payload of Object",
371
+ "content": {
372
+ "application/json": {
373
+ "schema": {
374
+ "type": "object"
375
+ }
376
+ }
377
+ },
378
+ "x-ms-summary": "Debug data"
379
+ }
380
+ },
381
+ "security": [
382
+ {
383
+ "Implicit": [
384
+ "api://246713d5-cd48-4a00-84dd-7fc7ae290a62/.default"
385
+ ]
386
+ }
387
+ ]
388
+ }
389
+ }
390
+ },
391
+ "components": {
392
+ "schemas": {
393
+ "deviceInstallation": {
394
+ "type": "object",
395
+ "properties": {
396
+ "installationId": {
397
+ "type": "string"
398
+ },
399
+ "platform": {
400
+ "type": "string"
401
+ },
402
+ "pushChannel": {
403
+ "type": "string"
404
+ },
405
+ "tags": {
406
+ "type": "array",
407
+ "items": {
408
+ "type": "string"
409
+ }
410
+ }
411
+ }
412
+ },
413
+ "sendEmailAttachmentRequest": {
414
+ "type": "object",
415
+ "properties": {
416
+ "content": {
417
+ "type": "string"
418
+ },
419
+ "filename": {
420
+ "type": "string"
421
+ },
422
+ "contentType": {
423
+ "type": "string"
424
+ }
425
+ }
426
+ },
427
+ "sendEmailRequest": {
428
+ "type": "object",
429
+ "properties": {
430
+ "receiver": {
431
+ "type": "string"
432
+ },
433
+ "receivers": {
434
+ "type": "array",
435
+ "items": {
436
+ "type": "string"
437
+ }
438
+ },
439
+ "title": {
440
+ "type": "string"
441
+ },
442
+ "body": {
443
+ "type": "string"
444
+ },
445
+ "htmlBody": {
446
+ "type": "string"
447
+ },
448
+ "sender": {
449
+ "type": "string"
450
+ },
451
+ "senderName": {
452
+ "type": "string"
453
+ },
454
+ "replyTo": {
455
+ "type": "string"
456
+ },
457
+ "attachments": {
458
+ "type": "array",
459
+ "items": {
460
+ "$ref": "#/components/schemas/sendEmailAttachmentRequest"
461
+ }
462
+ }
463
+ }
464
+ },
465
+ "sendNotificationRequest": {
466
+ "type": "object",
467
+ "properties": {
468
+ "slack": {
469
+ "$ref": "#/components/schemas/sendSlackRequest"
470
+ },
471
+ "sms": {
472
+ "$ref": "#/components/schemas/sendSmsRequest"
473
+ },
474
+ "email": {
475
+ "$ref": "#/components/schemas/sendEmailRequest"
476
+ },
477
+ "push": {
478
+ "$ref": "#/components/schemas/sendPushRequest"
479
+ }
480
+ }
481
+ },
482
+ "sendPushRequest": {
483
+ "type": "object",
484
+ "properties": {
485
+ "title": {
486
+ "type": "string"
487
+ },
488
+ "body": {
489
+ "type": "string"
490
+ },
491
+ "email": {
492
+ "type": "string"
493
+ },
494
+ "tags": {
495
+ "type": "array",
496
+ "items": {
497
+ "type": "string"
498
+ }
499
+ },
500
+ "data": {
501
+ "type": "object",
502
+ "additionalProperties": {
503
+ "type": "string"
504
+ }
505
+ }
506
+ }
507
+ },
508
+ "sendSlackRequest": {
509
+ "type": "object",
510
+ "properties": {
511
+ "channelId": {
512
+ "type": "string"
513
+ },
514
+ "message": {
515
+ "type": "string"
516
+ },
517
+ "blocksJson": {
518
+ "type": "string"
519
+ },
520
+ "attachmentsJson": {
521
+ "type": "string"
522
+ },
523
+ "iconEmoji": {
524
+ "type": "string"
525
+ },
526
+ "username": {
527
+ "type": "string"
528
+ }
529
+ }
530
+ },
531
+ "sendSmsRequest": {
532
+ "type": "object",
533
+ "properties": {
534
+ "phoneNumber": {
535
+ "type": "string"
536
+ },
537
+ "message": {
538
+ "type": "string"
539
+ }
540
+ }
541
+ }
542
+ },
543
+ "securitySchemes": {
544
+ "Implicit": {
545
+ "type": "oauth2",
546
+ "flows": {
547
+ "implicit": {
548
+ "authorizationUrl": "https://login.microsoftonline.com/a8533784-aa3c-403b-a61a-1533ecc6e3ed/oauth2/v2.0/authorize",
549
+ "tokenUrl": "https://login.microsoftonline.com/a8533784-aa3c-403b-a61a-1533ecc6e3ed/oauth2/v2.0/token",
550
+ "refreshUrl": "https://login.microsoftonline.com/a8533784-aa3c-403b-a61a-1533ecc6e3ed/oauth2/v2.0/token",
551
+ "scopes": {
552
+ "api://246713d5-cd48-4a00-84dd-7fc7ae290a62/.default": "Default function scope"
553
+ }
554
+ }
555
+ }
556
+ }
557
+ }
558
+ }
559
+ }