x-readiness-mcp 0.3.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,374 @@
1
+ # Siemens X-API Readiness Master Checklist
2
+
3
+ **Version:** 2.5.0
4
+ **Last Updated:** 2026-01-28
5
+ **Description:** Master template for X-API readiness validation based on Siemens API Guidelines
6
+
7
+ ---
8
+
9
+ ## Sources
10
+
11
+ ### Common API Guidelines
12
+ - Common API Guidelines - Overview
13
+ - API Lifecycle Phases
14
+ - API Specification
15
+ - API Documentation
16
+ - API Versioning
17
+ - JSON Property Naming
18
+ - HTTP API Protection
19
+ - Common Guidelines Changelog
20
+
21
+ ### REST API Guidelines
22
+ - REST API Guidelines - Overview
23
+ - Media Types
24
+ - REST Versioning
25
+ - Error Handling
26
+ - Common Operations
27
+ - Bulk Operations
28
+ - Sparse Fieldsets
29
+ - Filtering
30
+ - Pagination
31
+ - Sorting
32
+ - Security
33
+ - Best Practices
34
+ - Tools
35
+ - Appendix: Data Types
36
+ - REST Guidelines Changelog
37
+
38
+ ---
39
+
40
+ ## Scopes
41
+
42
+ ### x_api_readiness
43
+ **Description:** Full X-API readiness check covering all common and REST guidelines
44
+
45
+ **Includes:**
46
+ - All Common Guidelines
47
+ - All REST Guidelines
48
+
49
+ ---
50
+
51
+ ### pagination_ready
52
+ **Description:** Pagination readiness including related query operations
53
+
54
+ **Includes:**
55
+ - Pagination
56
+ - Sorting
57
+ - Filtering
58
+ - Sparse Fieldsets
59
+ - Common Operations
60
+ - Error Handling
61
+ - Security
62
+ - JSON Property Naming
63
+
64
+ ---
65
+
66
+ ### security_ready
67
+ **Description:** Security readiness for API protection
68
+
69
+ **Includes:**
70
+ - Security
71
+ - HTTP API Protection
72
+ - Error Handling
73
+
74
+ ---
75
+
76
+ ### error_handling_ready
77
+ **Description:** Error handling and status code compliance
78
+
79
+ **Includes:**
80
+ - Error Handling
81
+ - Media Types
82
+ - JSON Property Naming
83
+
84
+ ---
85
+
86
+ ### versioning_ready
87
+ **Description:** API versioning compliance
88
+
89
+ **Includes:**
90
+ - API Versioning
91
+ - REST Versioning
92
+ - Media Types
93
+
94
+ ---
95
+
96
+ ### media_types_ready
97
+ **Description:** Media types and naming conventions
98
+
99
+ **Includes:**
100
+ - Media Types
101
+ - JSON Property Naming
102
+
103
+ ---
104
+
105
+ ### operations_ready
106
+ **Description:** CRUD and bulk operations compliance
107
+
108
+ **Includes:**
109
+ - Common Operations
110
+ - Bulk Operations
111
+ - Error Handling
112
+
113
+ ---
114
+
115
+ ### query_ready
116
+ **Description:** Query capabilities: filtering, sorting, sparse fieldsets
117
+
118
+ **Includes:**
119
+ - Filtering
120
+ - Sorting
121
+ - Sparse Fieldsets
122
+ - Pagination
123
+
124
+ ---
125
+
126
+ ## Rule Categories
127
+
128
+ ### 1. PAGINATION
129
+ **Priority:** High
130
+ **Guideline:** [Pagination](https://developer.siemens.com/guidelines/api-guidelines/rest/pagination.html)
131
+
132
+ **Rules:**
133
+ - 600: Pagination links
134
+ - 601: Pagination strategies
135
+ - 601.1: Cursor based strategy
136
+ - 601.1.1: Server MAY provide pagination meta information
137
+ - 601.2: Offset based strategy
138
+ - 601.2.1: Offset pagination meta information
139
+ - 601.3: Index based strategy
140
+ - 601.3.1: Index pagination meta information
141
+
142
+ ---
143
+
144
+ ### 2. ERROR_HANDLING
145
+ **Priority:** Critical
146
+ **Guideline:** [Error Handling](https://developer.siemens.com/guidelines/api-guidelines/rest/error.html)
147
+
148
+ **Rules:**
149
+ - 300: API MUST use official HTTP status codes as intended
150
+ - 301: API SHOULD only use most common HTTP status codes
151
+ - 301.3: Client Error 4xx Status Codes
152
+ - 301.4: Server Error 5xx Status Codes
153
+ - 302: API SHOULD use most specific HTTP status code for error
154
+ - 303: API SHOULD not expose stack traces of the error
155
+ - 304: API SHOULD report problems with an errors object
156
+ - 305: Error object SHOULD be represented according to defined structure
157
+ - 305.1: The values of the code field SHOULD be unique
158
+ - 305.2: All error codes SHOULD be documented
159
+ - 305.3: The values of title and detail fields SHOULD be in English
160
+
161
+ ---
162
+
163
+ ### 3. MEDIA_TYPES
164
+ **Priority:** High
165
+ **Guideline:** [Media Types](https://developer.siemens.com/guidelines/api-guidelines/rest/media-type.html)
166
+
167
+ **Rules:**
168
+ - 100: API SHOULD use JSON-based media types
169
+ - 101: API SHOULD use the following document structure
170
+ - 101.1: API SHOULD use a top-level JSON object
171
+ - 101.2: API SHOULD use the defined document structure
172
+ - 101.3: The primary data MUST be represented by resource objects
173
+ - 101.4: API MUST represent resources with resource objects
174
+ - 101.4.1: Fields MUST follow the naming convention
175
+ - 101.5: A links object SHOULD contain one or more links
176
+ - 101.6: A link SHOULD be represented according to defined structure
177
+ - 101.6.1: A link object SHOULD have defined structure fields
178
+ - 101.7: A JSON document MAY provide meta information
179
+ - 101.7.1: A meta field MUST contain meta information
180
+ - 101.7.2: meta MUST be represented as JSON object
181
+ - 101.7.3: meta fields SHOULD consider common field semantics
182
+ - 101.8: Field names SHOULD apply naming conventions
183
+ - 101.8.1: Field names MUST use allowed characters only
184
+ - 101.9: Resource names SHOULD be in lowercase with hyphens
185
+ - 102: Collection resource names SHOULD pluralize single resource
186
+
187
+ ---
188
+
189
+ ### 4. NAMING_CONVENTIONS
190
+ **Priority:** Medium
191
+ **Guideline:** [JSON Property Naming](https://developer.siemens.com/guidelines/api-guidelines/common/json-property-naming.html)
192
+
193
+ **Rules:**
194
+ - naming_01: Names MUST start with a lower case letter
195
+ - naming_02: Names MUST use camelCase for multi-word concatenation
196
+ - naming_03: Abbreviations and acronyms MUST be treated as words
197
+ - naming_04: Names MUST only consist of ASCII characters
198
+ - naming_05: Words in names SHOULD use American English
199
+ - naming_06: Names SHOULD be kept short and concise
200
+ - naming_07: Resource names SHOULD use kebab-case
201
+ - naming_08: Abbreviations SHOULD NOT be used except commonly used forms
202
+
203
+ ---
204
+
205
+ ### 5. SECURITY
206
+ **Priority:** Critical
207
+ **Guideline:** [Security](https://developer.siemens.com/guidelines/api-guidelines/rest/security.html) | [HTTP API Protection](https://developer.siemens.com/guidelines/api-guidelines/common/http-api-protection.html)
208
+
209
+ **Rules:**
210
+ - sec_01: REST APIs MUST be secured with OAuth 2.0 Bearer Token
211
+ - sec_02: APIs MUST use TLS for HTTP protection
212
+ - sec_03: Token format SHOULD be JWT
213
+ - sec_04: API implementation MUST check token signature
214
+ - sec_05: API implementation MUST check token expiry
215
+ - sec_06: API implementation MUST check token issuer
216
+ - sec_07: API implementation MUST check scope
217
+ - sec_08: API implementation SHOULD check token audience
218
+ - sec_09: Authorization header with Bearer token SHOULD be present
219
+
220
+ ---
221
+
222
+ ### 6. VERSIONING
223
+ **Priority:** Medium
224
+ **Guideline:** [API Versioning](https://developer.siemens.com/guidelines/api-guidelines/common/api-versioning.html) | [REST Versioning](https://developer.siemens.com/guidelines/api-guidelines/rest/versioning.html)
225
+
226
+ **Rules:**
227
+ - 200: API version in HTTP requests
228
+ - 200.1: Option 1 - API version in URI path
229
+ - 200.2: Option 2 - API version in custom request header
230
+ - 201: API Version in HTTP Responses
231
+ - ver_01: Version number MUST be expressed as MAJOR.MINOR.PATCH
232
+ - ver_02: MUST increment MAJOR for incompatible changes
233
+ - ver_03: MUST increment MINOR for backward compatible additions
234
+ - ver_04: MUST increment PATCH for backward compatible fixes
235
+
236
+ ---
237
+
238
+ ### 7. COMMON_OPERATIONS
239
+ **Priority:** High
240
+ **Guideline:** [Common Operations](https://developer.siemens.com/guidelines/api-guidelines/rest/common-operations.html)
241
+
242
+ **Rules:**
243
+ - ops_01: Use appropriate HTTP methods for operations
244
+ - ops_02: GET requests MUST be safe and idempotent
245
+ - ops_03: PUT and DELETE MUST be idempotent
246
+ - ops_04: POST creates new resources
247
+ - ops_05: Use PATCH for partial updates
248
+
249
+ ---
250
+
251
+ ### 8. BULK_OPERATIONS
252
+ **Priority:** Medium
253
+ **Guideline:** [Bulk Operations](https://developer.siemens.com/guidelines/api-guidelines/rest/bulk-operations.html)
254
+
255
+ **Rules:**
256
+ - bulk_01: Support bulk operations for efficiency
257
+ - bulk_02: Provide partial success reporting
258
+
259
+ ---
260
+
261
+ ### 9. FILTERING
262
+ **Priority:** Medium
263
+ **Guideline:** [Filtering](https://developer.siemens.com/guidelines/api-guidelines/rest/filtering.html)
264
+
265
+ **Rules:**
266
+ - 400: API MAY support filtering
267
+ - filter_01: Use query parameters for filtering
268
+ - filter_02: Support common filter operations
269
+
270
+ ---
271
+
272
+ ### 10. SORTING
273
+ **Priority:** Low
274
+ **Guideline:** [Sorting](https://developer.siemens.com/guidelines/api-guidelines/rest/sorting.html)
275
+
276
+ **Rules:**
277
+ - 700: API MAY provide sorting of collections
278
+ - 700.1: Parameter sort MUST specify sort fields
279
+ - 700.2: API MAY support multiple sort fields
280
+ - 700.3: API MAY support defining sort order per field
281
+
282
+ ---
283
+
284
+ ### 11. SPARSE_FIELDSETS
285
+ **Priority:** Low
286
+ **Guideline:** [Sparse Fieldsets](https://developer.siemens.com/guidelines/api-guidelines/rest/sparse-fieldsets.html)
287
+
288
+ **Rules:**
289
+ - 500: API MAY support sparse fieldsets
290
+ - fields_01: Use fields parameter for field selection
291
+
292
+ ---
293
+
294
+ ## Compliance Levels
295
+
296
+ ### Basic Compliance (30%)
297
+ **Description:** MUST requirements only for critical categories
298
+
299
+ **Categories:**
300
+ - SECURITY
301
+ - ERROR_HANDLING
302
+
303
+ **Required Rules:** 9
304
+
305
+ ---
306
+
307
+ ### Recommended Compliance (80%)
308
+ **Description:** All MUST and SHOULD requirements
309
+
310
+ **Categories:**
311
+ - SECURITY
312
+ - ERROR_HANDLING
313
+ - MEDIA_TYPES
314
+ - PAGINATION
315
+ - NAMING_CONVENTIONS
316
+ - VERSIONING
317
+
318
+ **Required Rules:** 60
319
+
320
+ ---
321
+
322
+ ### Full X-Readiness (100%)
323
+ **Description:** All standards including MAY considerations
324
+
325
+ **Categories:**
326
+ - PAGINATION
327
+ - ERROR_HANDLING
328
+ - MEDIA_TYPES
329
+ - NAMING_CONVENTIONS
330
+ - SECURITY
331
+ - VERSIONING
332
+ - COMMON_OPERATIONS
333
+ - BULK_OPERATIONS
334
+ - FILTERING
335
+ - SORTING
336
+ - SPARSE_FIELDSETS
337
+
338
+ **Estimated Rules:** 80
339
+
340
+ ---
341
+
342
+ ## Quick Summary
343
+
344
+ | Category | Priority | Rules Count |
345
+ |----------|----------|-------------|
346
+ | PAGINATION | High | 8 |
347
+ | ERROR_HANDLING | Critical | 11 |
348
+ | MEDIA_TYPES | High | 18 |
349
+ | NAMING_CONVENTIONS | Medium | 8 |
350
+ | SECURITY | Critical | 9 |
351
+ | VERSIONING | Medium | 8 |
352
+ | COMMON_OPERATIONS | High | 5 |
353
+ | BULK_OPERATIONS | Medium | 2 |
354
+ | FILTERING | Medium | 3 |
355
+ | SORTING | Low | 4 |
356
+ | SPARSE_FIELDSETS | Low | 2 |
357
+ | **TOTAL** | | **~80** |
358
+
359
+ ---
360
+
361
+ **Intent Keywords Mapping:**
362
+
363
+ - **pagination, paging, page** → PAGINATION
364
+ - **error, error handling** → ERROR_HANDLING
365
+ - **media type, content type, json** → MEDIA_TYPES
366
+ - **naming, camelCase** → NAMING_CONVENTIONS
367
+ - **security, auth, oauth, jwt** → SECURITY
368
+ - **versioning, version** → VERSIONING
369
+ - **sorting, sort** → SORTING
370
+ - **filtering, filter** → FILTERING
371
+ - **bulk, batch** → BULK_OPERATIONS
372
+ - **sparse, fields** → SPARSE_FIELDSETS
373
+ - **operations, crud** → COMMON_OPERATIONS
374
+ - **x-readiness, api readiness, full check** → All Categories