@nasebanal/cli 0.1.0 → 0.2.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.
- package/README.md +75 -4
- package/dist/apis.js +1 -0
- package/dist/index.js +9 -1
- package/dist/loginPage.js +112 -0
- package/dist/logo.js +7 -0
- package/dist/oauth.js +13 -5
- package/dist/reports/ci.js +59 -0
- package/dist/reports/csv.js +56 -0
- package/dist/reports/junit.js +119 -0
- package/dist/reports/locust.js +68 -0
- package/dist/reports/upload.js +288 -0
- package/package.json +1 -1
- package/specs/account.yaml +351 -298
- package/specs/app-template.yaml +64 -62
- package/specs/assurance.yaml +1730 -0
- package/specs/recorder.yaml +298 -416
- package/specs/target.yaml +344 -360
package/specs/app-template.yaml
CHANGED
|
@@ -1,15 +1,10 @@
|
|
|
1
1
|
openapi: 3.0.3
|
|
2
2
|
info:
|
|
3
3
|
title: NASEBANAL - App Template API
|
|
4
|
-
description:
|
|
5
|
-
A template API for NASEBANAL applications. Provides sample CRUD endpoints, user authentication via Auth0 JWT and
|
|
6
|
-
Personal Access Tokens (PAT), and integration with the Account API.
|
|
4
|
+
description: |-
|
|
5
|
+
A template API for NASEBANAL applications. Provides sample CRUD endpoints, user authentication via Auth0 JWT and Personal Access Tokens (PAT), and integration with the Account API.
|
|
7
6
|
|
|
8
|
-
|
|
9
|
-
All responses use a uniform envelope: successful responses are `{ "success": true, "data": ... }` and failures are
|
|
10
|
-
`{ "success": false, "error": { "code", "message" } }`. This mirrors `successResponse()` / `errorResponse()` in the
|
|
11
|
-
implementation. The `success` discriminator is pinned with `enum` so both Specmatic stub generation and contract
|
|
12
|
-
tests treat it as a fixed value per response class.
|
|
7
|
+
All responses use a uniform envelope: successful responses are `{ "success": true, "data": ... }` and failures are `{ "success": false, "error": { "code", "message" } }`. This mirrors `successResponse()` / `errorResponse()` in the implementation. The `success` discriminator is pinned with `enum` so both Specmatic stub generation and contract tests treat it as a fixed value per response class.
|
|
13
8
|
version: 1.1.1
|
|
14
9
|
contact:
|
|
15
10
|
name: NASEBANAL
|
|
@@ -31,7 +26,7 @@ paths:
|
|
|
31
26
|
description: Returns the health status of the API.
|
|
32
27
|
security: []
|
|
33
28
|
responses:
|
|
34
|
-
|
|
29
|
+
"200":
|
|
35
30
|
description: API is healthy
|
|
36
31
|
content:
|
|
37
32
|
application/json:
|
|
@@ -43,7 +38,8 @@ paths:
|
|
|
43
38
|
properties:
|
|
44
39
|
success:
|
|
45
40
|
type: boolean
|
|
46
|
-
enum:
|
|
41
|
+
enum:
|
|
42
|
+
- true
|
|
47
43
|
data:
|
|
48
44
|
type: object
|
|
49
45
|
required:
|
|
@@ -61,7 +57,7 @@ paths:
|
|
|
61
57
|
success: true
|
|
62
58
|
data:
|
|
63
59
|
status: ok
|
|
64
|
-
timestamp:
|
|
60
|
+
timestamp: 2026-05-14T12:00:00Z
|
|
65
61
|
/api/v1/me:
|
|
66
62
|
get:
|
|
67
63
|
operationId: getCurrentUser
|
|
@@ -70,12 +66,12 @@ paths:
|
|
|
70
66
|
summary: Get current user profile
|
|
71
67
|
description: Returns the authenticated user's profile information from the Account API.
|
|
72
68
|
responses:
|
|
73
|
-
|
|
69
|
+
"200":
|
|
74
70
|
description: User profile
|
|
75
71
|
content:
|
|
76
72
|
application/json:
|
|
77
73
|
schema:
|
|
78
|
-
$ref:
|
|
74
|
+
$ref: "#/components/schemas/UserResponse"
|
|
79
75
|
examples:
|
|
80
76
|
valid:
|
|
81
77
|
value:
|
|
@@ -88,9 +84,9 @@ paths:
|
|
|
88
84
|
language: ja
|
|
89
85
|
plan: pro
|
|
90
86
|
subscription_status: active
|
|
91
|
-
subscription_expires_at:
|
|
92
|
-
|
|
93
|
-
$ref:
|
|
87
|
+
subscription_expires_at: 2026-12-31T23:59:59Z
|
|
88
|
+
"401":
|
|
89
|
+
$ref: "#/components/responses/Unauthorized"
|
|
94
90
|
/api/v1/items:
|
|
95
91
|
get:
|
|
96
92
|
operationId: listItems
|
|
@@ -99,7 +95,7 @@ paths:
|
|
|
99
95
|
summary: List items
|
|
100
96
|
description: Returns all items belonging to the authenticated user.
|
|
101
97
|
responses:
|
|
102
|
-
|
|
98
|
+
"200":
|
|
103
99
|
description: List of items
|
|
104
100
|
content:
|
|
105
101
|
application/json:
|
|
@@ -111,7 +107,8 @@ paths:
|
|
|
111
107
|
properties:
|
|
112
108
|
success:
|
|
113
109
|
type: boolean
|
|
114
|
-
enum:
|
|
110
|
+
enum:
|
|
111
|
+
- true
|
|
115
112
|
data:
|
|
116
113
|
type: object
|
|
117
114
|
required:
|
|
@@ -121,7 +118,7 @@ paths:
|
|
|
121
118
|
data:
|
|
122
119
|
type: array
|
|
123
120
|
items:
|
|
124
|
-
$ref:
|
|
121
|
+
$ref: "#/components/schemas/Item"
|
|
125
122
|
total:
|
|
126
123
|
type: integer
|
|
127
124
|
examples:
|
|
@@ -134,11 +131,11 @@ paths:
|
|
|
134
131
|
user_id: 42
|
|
135
132
|
name: My Item
|
|
136
133
|
description: A sample item description
|
|
137
|
-
created_at:
|
|
138
|
-
updated_at:
|
|
134
|
+
created_at: 2026-05-14T12:00:00Z
|
|
135
|
+
updated_at: 2026-05-14T12:00:00Z
|
|
139
136
|
total: 1
|
|
140
|
-
|
|
141
|
-
$ref:
|
|
137
|
+
"401":
|
|
138
|
+
$ref: "#/components/responses/Unauthorized"
|
|
142
139
|
post:
|
|
143
140
|
operationId: createItem
|
|
144
141
|
tags:
|
|
@@ -150,19 +147,19 @@ paths:
|
|
|
150
147
|
content:
|
|
151
148
|
application/json:
|
|
152
149
|
schema:
|
|
153
|
-
$ref:
|
|
150
|
+
$ref: "#/components/schemas/CreateItemInput"
|
|
154
151
|
examples:
|
|
155
152
|
valid:
|
|
156
153
|
value:
|
|
157
154
|
name: My Item
|
|
158
155
|
description: A sample item description
|
|
159
156
|
responses:
|
|
160
|
-
|
|
157
|
+
"201":
|
|
161
158
|
description: Item created
|
|
162
159
|
content:
|
|
163
160
|
application/json:
|
|
164
161
|
schema:
|
|
165
|
-
$ref:
|
|
162
|
+
$ref: "#/components/schemas/ItemResponse"
|
|
166
163
|
examples:
|
|
167
164
|
valid:
|
|
168
165
|
value:
|
|
@@ -172,10 +169,10 @@ paths:
|
|
|
172
169
|
user_id: 42
|
|
173
170
|
name: My Item
|
|
174
171
|
description: A sample item description
|
|
175
|
-
created_at:
|
|
176
|
-
updated_at:
|
|
177
|
-
|
|
178
|
-
$ref:
|
|
172
|
+
created_at: 2026-05-14T12:00:00Z
|
|
173
|
+
updated_at: 2026-05-14T12:00:00Z
|
|
174
|
+
"401":
|
|
175
|
+
$ref: "#/components/responses/Unauthorized"
|
|
179
176
|
/api/v1/items/{id}:
|
|
180
177
|
get:
|
|
181
178
|
operationId: getItem
|
|
@@ -193,12 +190,12 @@ paths:
|
|
|
193
190
|
valid:
|
|
194
191
|
value: itm_a1b2c3d4
|
|
195
192
|
responses:
|
|
196
|
-
|
|
193
|
+
"200":
|
|
197
194
|
description: Item details
|
|
198
195
|
content:
|
|
199
196
|
application/json:
|
|
200
197
|
schema:
|
|
201
|
-
$ref:
|
|
198
|
+
$ref: "#/components/schemas/ItemResponse"
|
|
202
199
|
examples:
|
|
203
200
|
valid:
|
|
204
201
|
value:
|
|
@@ -208,12 +205,12 @@ paths:
|
|
|
208
205
|
user_id: 42
|
|
209
206
|
name: My Item
|
|
210
207
|
description: A sample item description
|
|
211
|
-
created_at:
|
|
212
|
-
updated_at:
|
|
213
|
-
|
|
214
|
-
$ref:
|
|
215
|
-
|
|
216
|
-
$ref:
|
|
208
|
+
created_at: 2026-05-14T12:00:00Z
|
|
209
|
+
updated_at: 2026-05-14T12:00:00Z
|
|
210
|
+
"401":
|
|
211
|
+
$ref: "#/components/responses/Unauthorized"
|
|
212
|
+
"404":
|
|
213
|
+
$ref: "#/components/responses/NotFound"
|
|
217
214
|
put:
|
|
218
215
|
operationId: updateItem
|
|
219
216
|
tags:
|
|
@@ -234,19 +231,19 @@ paths:
|
|
|
234
231
|
content:
|
|
235
232
|
application/json:
|
|
236
233
|
schema:
|
|
237
|
-
$ref:
|
|
234
|
+
$ref: "#/components/schemas/UpdateItemInput"
|
|
238
235
|
examples:
|
|
239
236
|
valid:
|
|
240
237
|
value:
|
|
241
238
|
name: Updated Item
|
|
242
239
|
description: An updated item description
|
|
243
240
|
responses:
|
|
244
|
-
|
|
241
|
+
"200":
|
|
245
242
|
description: Item updated
|
|
246
243
|
content:
|
|
247
244
|
application/json:
|
|
248
245
|
schema:
|
|
249
|
-
$ref:
|
|
246
|
+
$ref: "#/components/schemas/ItemResponse"
|
|
250
247
|
examples:
|
|
251
248
|
valid:
|
|
252
249
|
value:
|
|
@@ -256,12 +253,12 @@ paths:
|
|
|
256
253
|
user_id: 42
|
|
257
254
|
name: Updated Item
|
|
258
255
|
description: An updated item description
|
|
259
|
-
created_at:
|
|
260
|
-
updated_at:
|
|
261
|
-
|
|
262
|
-
$ref:
|
|
263
|
-
|
|
264
|
-
$ref:
|
|
256
|
+
created_at: 2026-05-14T12:00:00Z
|
|
257
|
+
updated_at: 2026-05-15T09:30:00Z
|
|
258
|
+
"401":
|
|
259
|
+
$ref: "#/components/responses/Unauthorized"
|
|
260
|
+
"404":
|
|
261
|
+
$ref: "#/components/responses/NotFound"
|
|
265
262
|
delete:
|
|
266
263
|
operationId: deleteItem
|
|
267
264
|
tags:
|
|
@@ -278,22 +275,22 @@ paths:
|
|
|
278
275
|
valid:
|
|
279
276
|
value: itm_a1b2c3d4
|
|
280
277
|
responses:
|
|
281
|
-
|
|
278
|
+
"200":
|
|
282
279
|
description: Item deleted
|
|
283
280
|
content:
|
|
284
281
|
application/json:
|
|
285
282
|
schema:
|
|
286
|
-
$ref:
|
|
283
|
+
$ref: "#/components/schemas/SuccessResponse"
|
|
287
284
|
examples:
|
|
288
285
|
valid:
|
|
289
286
|
value:
|
|
290
287
|
success: true
|
|
291
288
|
data:
|
|
292
289
|
success: true
|
|
293
|
-
|
|
294
|
-
$ref:
|
|
295
|
-
|
|
296
|
-
$ref:
|
|
290
|
+
"401":
|
|
291
|
+
$ref: "#/components/responses/Unauthorized"
|
|
292
|
+
"404":
|
|
293
|
+
$ref: "#/components/responses/NotFound"
|
|
297
294
|
components:
|
|
298
295
|
securitySchemes:
|
|
299
296
|
BearerAuth:
|
|
@@ -354,9 +351,10 @@ components:
|
|
|
354
351
|
properties:
|
|
355
352
|
success:
|
|
356
353
|
type: boolean
|
|
357
|
-
enum:
|
|
354
|
+
enum:
|
|
355
|
+
- true
|
|
358
356
|
data:
|
|
359
|
-
$ref:
|
|
357
|
+
$ref: "#/components/schemas/User"
|
|
360
358
|
Item:
|
|
361
359
|
type: object
|
|
362
360
|
required:
|
|
@@ -389,9 +387,10 @@ components:
|
|
|
389
387
|
properties:
|
|
390
388
|
success:
|
|
391
389
|
type: boolean
|
|
392
|
-
enum:
|
|
390
|
+
enum:
|
|
391
|
+
- true
|
|
393
392
|
data:
|
|
394
|
-
$ref:
|
|
393
|
+
$ref: "#/components/schemas/Item"
|
|
395
394
|
CreateItemInput:
|
|
396
395
|
type: object
|
|
397
396
|
required:
|
|
@@ -422,7 +421,8 @@ components:
|
|
|
422
421
|
properties:
|
|
423
422
|
success:
|
|
424
423
|
type: boolean
|
|
425
|
-
enum:
|
|
424
|
+
enum:
|
|
425
|
+
- true
|
|
426
426
|
data:
|
|
427
427
|
type: object
|
|
428
428
|
required:
|
|
@@ -430,7 +430,8 @@ components:
|
|
|
430
430
|
properties:
|
|
431
431
|
success:
|
|
432
432
|
type: boolean
|
|
433
|
-
enum:
|
|
433
|
+
enum:
|
|
434
|
+
- true
|
|
434
435
|
Error:
|
|
435
436
|
type: object
|
|
436
437
|
required:
|
|
@@ -439,7 +440,8 @@ components:
|
|
|
439
440
|
properties:
|
|
440
441
|
success:
|
|
441
442
|
type: boolean
|
|
442
|
-
enum:
|
|
443
|
+
enum:
|
|
444
|
+
- false
|
|
443
445
|
error:
|
|
444
446
|
type: object
|
|
445
447
|
required:
|
|
@@ -456,7 +458,7 @@ components:
|
|
|
456
458
|
content:
|
|
457
459
|
application/json:
|
|
458
460
|
schema:
|
|
459
|
-
$ref:
|
|
461
|
+
$ref: "#/components/schemas/Error"
|
|
460
462
|
examples:
|
|
461
463
|
unauthorized:
|
|
462
464
|
value:
|
|
@@ -469,7 +471,7 @@ components:
|
|
|
469
471
|
content:
|
|
470
472
|
application/json:
|
|
471
473
|
schema:
|
|
472
|
-
$ref:
|
|
474
|
+
$ref: "#/components/schemas/Error"
|
|
473
475
|
examples:
|
|
474
476
|
not_found:
|
|
475
477
|
value:
|