@autobe/agent 0.28.0 → 0.28.1
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/lib/index.mjs +308 -202
- package/lib/index.mjs.map +1 -1
- package/lib/orchestrate/analyze/orchestrateAnalyzeScenario.js +13 -8
- package/lib/orchestrate/analyze/orchestrateAnalyzeScenario.js.map +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceAuthorizations.js +29 -19
- package/lib/orchestrate/interface/orchestrateInterfaceAuthorizations.js.map +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceComplement.js +36 -24
- package/lib/orchestrate/interface/orchestrateInterfaceComplement.js.map +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceEndpoints.js +6 -4
- package/lib/orchestrate/interface/orchestrateInterfaceEndpoints.js.map +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceEndpointsReview.js +3 -2
- package/lib/orchestrate/interface/orchestrateInterfaceEndpointsReview.js.map +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceGroups.js +9 -6
- package/lib/orchestrate/interface/orchestrateInterfaceGroups.js.map +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceOperations.js +24 -16
- package/lib/orchestrate/interface/orchestrateInterfaceOperations.js.map +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceOperationsReview.js +26 -17
- package/lib/orchestrate/interface/orchestrateInterfaceOperationsReview.js.map +1 -1
- package/lib/orchestrate/interface/orchestrateInterfacePrerequisites.js +3 -2
- package/lib/orchestrate/interface/orchestrateInterfacePrerequisites.js.map +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceSchemaReview.js +36 -24
- package/lib/orchestrate/interface/orchestrateInterfaceSchemaReview.js.map +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceSchemas.js +36 -24
- package/lib/orchestrate/interface/orchestrateInterfaceSchemas.js.map +1 -1
- package/lib/orchestrate/prisma/orchestratePrismaComponent.js +11 -8
- package/lib/orchestrate/prisma/orchestratePrismaComponent.js.map +1 -1
- package/lib/orchestrate/prisma/orchestratePrismaCorrect.js +23 -14
- package/lib/orchestrate/prisma/orchestratePrismaCorrect.js.map +1 -1
- package/lib/orchestrate/prisma/orchestratePrismaReview.js +23 -14
- package/lib/orchestrate/prisma/orchestratePrismaReview.js.map +1 -1
- package/lib/orchestrate/realize/orchestrateRealizeAuthorization.js +9 -6
- package/lib/orchestrate/realize/orchestrateRealizeAuthorization.js.map +1 -1
- package/lib/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.js +9 -6
- package/lib/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.js.map +1 -1
- package/lib/orchestrate/test/orchestrateTestScenario.js +6 -4
- package/lib/orchestrate/test/orchestrateTestScenario.js.map +1 -1
- package/lib/orchestrate/test/orchestrateTestScenarioReview.js +6 -4
- package/lib/orchestrate/test/orchestrateTestScenarioReview.js.map +1 -1
- package/package.json +8 -8
package/lib/index.mjs
CHANGED
|
@@ -2201,8 +2201,9 @@ const collection$s = {
|
|
|
2201
2201
|
type: "string"
|
|
2202
2202
|
},
|
|
2203
2203
|
prefix: {
|
|
2204
|
-
description: "Prefix for file names and variable names. This will be used for\norganizing documentation files.\n\nDO: Use camelCase naming convention
|
|
2205
|
-
type: "string"
|
|
2204
|
+
description: "Prefix for file names and variable names. This will be used for\norganizing documentation files.\n\nDO: Use camelCase naming convention.",
|
|
2205
|
+
type: "string",
|
|
2206
|
+
pattern: "^[a-z][a-zA-Z0-9]*$"
|
|
2206
2207
|
},
|
|
2207
2208
|
actors: {
|
|
2208
2209
|
description: 'Actors to be assigned for the project.\n\nEach actor has:\n\n- `name`: Actor identifier (camelCase)\n- `kind`: "guest" | "member" | "admin"\n- `description`: Actor\'s permissions and capabilities',
|
|
@@ -2220,11 +2221,12 @@ const collection$s = {
|
|
|
2220
2221
|
type: "number"
|
|
2221
2222
|
},
|
|
2222
2223
|
files: {
|
|
2223
|
-
description: 'Array of document metadata objects defining files to be generated.\n\nEach array element is an AutoBeAnalyzeFile.Scenario object containing:\n- filename: The output file name (e.g., "01-service-overview.md")\n- reason: Why this document is being created\n- documentType, outline, constraints, etc.: Metadata guiding content generation\n\nThese documents represent business-focused planning documentation:\n- Business requirements and functional specifications in natural language\n- User journey mapping and use case scenarios\n- Business rules and workflow definitions\n- Service overview and business model description\n- User actors and permission requirements (described in natural language)\n- Business logic and validation rules\n- DO NOT: Include database schemas, ERD, or API specifications\n- DO: Write all requirements in natural language for clarity\n\nGenerate metadata objects based on actual requirements gathered from conversation.\nDo not create unnecessary documentation - only generate what is needed to\nproperly define the business requirements and system specifications.\n\n# Array Length Rules\n\nThe array length must match the user\'s requested page count plus one for ToC.\nFor example: user requests 3 pages → generate 4 objects (1 ToC + 3 content).\nIf user does not specify a number, generate sufficient objects to adequately\ndocument the service (typically 11+ objects including ToC)
|
|
2224
|
+
description: 'Array of document metadata objects defining files to be generated.\n\nEach array element is an AutoBeAnalyzeFile.Scenario object containing:\n- filename: The output file name (e.g., "01-service-overview.md")\n- reason: Why this document is being created\n- documentType, outline, constraints, etc.: Metadata guiding content generation\n\nThese documents represent business-focused planning documentation:\n- Business requirements and functional specifications in natural language\n- User journey mapping and use case scenarios\n- Business rules and workflow definitions\n- Service overview and business model description\n- User actors and permission requirements (described in natural language)\n- Business logic and validation rules\n- DO NOT: Include database schemas, ERD, or API specifications\n- DO: Write all requirements in natural language for clarity\n\nGenerate metadata objects based on actual requirements gathered from conversation.\nDo not create unnecessary documentation - only generate what is needed to\nproperly define the business requirements and system specifications.\n\n# Array Length Rules\n\nThe array length must match the user\'s requested page count plus one for ToC.\nFor example: user requests 3 pages → generate 4 objects (1 ToC + 3 content).\nIf user does not specify a number, generate sufficient objects to adequately\ndocument the service (typically 11+ objects including ToC).',
|
|
2224
2225
|
type: "array",
|
|
2225
2226
|
items: {
|
|
2226
2227
|
$ref: "#/$defs/AutoBeAnalyzeFile.Scenario"
|
|
2227
|
-
}
|
|
2228
|
+
},
|
|
2229
|
+
minItems: 1
|
|
2228
2230
|
}
|
|
2229
2231
|
},
|
|
2230
2232
|
required: [ "reason", "prefix", "actors", "page", "files" ],
|
|
@@ -2235,8 +2237,10 @@ const collection$s = {
|
|
|
2235
2237
|
type: "object",
|
|
2236
2238
|
properties: {
|
|
2237
2239
|
name: {
|
|
2238
|
-
description: "Unique identifier for the user actor.\n\nThis name will be used as a reference throughout the generated codebase,\nincluding Prisma schema model names, authorization decorator parameters,\nand API documentation.\n\nMUST use camelCase naming convention
|
|
2239
|
-
type: "string"
|
|
2240
|
+
description: "Unique identifier for the user actor.\n\nThis name will be used as a reference throughout the generated codebase,\nincluding Prisma schema model names, authorization decorator parameters,\nand API documentation.\n\nMUST use camelCase naming convention.",
|
|
2241
|
+
type: "string",
|
|
2242
|
+
pattern: "^[a-z][a-zA-Z0-9]*$",
|
|
2243
|
+
minLength: 1
|
|
2240
2244
|
},
|
|
2241
2245
|
kind: {
|
|
2242
2246
|
description: 'Actor category classification for system-wide permission hierarchy.\n\nThis property categorizes actors into three fundamental permission levels,\nestablishing a clear hierarchy for authorization decisions throughout the\napplication. The kind determines baseline access patterns and security\nboundaries:\n\n- "guest": Unauthenticated users or those with minimal permissions. Typically\n limited to public resources and registration/login endpoints.\n- "member": Authenticated users with standard access permissions. Can access\n personal resources and participate in core application features.\n- "admin": System administrators with elevated permissions. Can manage other\n users, access administrative functions, and modify system-wide settings.',
|
|
@@ -2258,8 +2262,9 @@ const collection$s = {
|
|
|
2258
2262
|
type: "string"
|
|
2259
2263
|
},
|
|
2260
2264
|
filename: {
|
|
2261
|
-
description: 'Filename to generate or overwrite. Should be descriptive and follow a\nconsistent naming convention. Examples: "01-service-overview.md",\n"02-user-requirements.md", "03-business-model.md"
|
|
2262
|
-
type: "string"
|
|
2265
|
+
description: 'Filename to generate or overwrite. Should be descriptive and follow a\nconsistent naming convention. Examples: "01-service-overview.md",\n"02-user-requirements.md", "03-business-model.md"',
|
|
2266
|
+
type: "string",
|
|
2267
|
+
pattern: "((.*)\\.md)$"
|
|
2263
2268
|
},
|
|
2264
2269
|
documentType: {
|
|
2265
2270
|
description: 'Document type that determines the structure and content guidelines. This\nhelps the AI understand what kind of document to create and what sections\nor information should be included. Examples:\n\n- "requirement": Functional/non-functional requirements, acceptance\n criteria\n- "user-story": User personas, scenarios, and journey descriptions\n- "user-flow": Step-by-step user interactions and decision points\n- "business-model": Revenue streams, cost structure, value propositions\n- "service-overview": High-level service description, goals, and scope',
|
|
@@ -4859,11 +4864,12 @@ const collection$q = {
|
|
|
4859
4864
|
type: "object",
|
|
4860
4865
|
properties: {
|
|
4861
4866
|
operations: {
|
|
4862
|
-
description: 'Array of API operations to generate authorization operation for.\n\nEach operation in this array must include:\n\n- Specification: Detailed API specification with clear purpose and\n functionality\n- Path: Resource-centric URL path (e.g., "/resources/{resourceId}")\n- Method: HTTP method (get, post, put, delete, patch)\n- Description: Extremely detailed multi-paragraph description referencing\n Prisma schema comments\n- Summary: Concise one-sentence summary of the endpoint\n- Parameters: Array of all necessary parameters with descriptions and\n schema definitions\n- RequestBody: For POST/PUT/PATCH methods, with typeName referencing\n components.schemas\n- ResponseBody: With typeName referencing appropriate response type\n\nAll operations must follow strict quality standards:\n\n1. Detailed descriptions referencing Prisma schema comments\n2. Accurate parameter definitions matching path parameters\n3. Appropriate request/response body type references\n4. Consistent patterns for CRUD operations\n\nFor list retrievals (typically PATCH), include pagination, search, and\nsorting. For detail retrieval (GET), return a single resource. For\ncreation (POST), use .ICreate request body. For modification (PUT), use\n.IUpdate request body
|
|
4867
|
+
description: 'Array of API operations to generate authorization operation for.\n\nEach operation in this array must include:\n\n- Specification: Detailed API specification with clear purpose and\n functionality\n- Path: Resource-centric URL path (e.g., "/resources/{resourceId}")\n- Method: HTTP method (get, post, put, delete, patch)\n- Description: Extremely detailed multi-paragraph description referencing\n Prisma schema comments\n- Summary: Concise one-sentence summary of the endpoint\n- Parameters: Array of all necessary parameters with descriptions and\n schema definitions\n- RequestBody: For POST/PUT/PATCH methods, with typeName referencing\n components.schemas\n- ResponseBody: With typeName referencing appropriate response type\n\nAll operations must follow strict quality standards:\n\n1. Detailed descriptions referencing Prisma schema comments\n2. Accurate parameter definitions matching path parameters\n3. Appropriate request/response body type references\n4. Consistent patterns for CRUD operations\n\nFor list retrievals (typically PATCH), include pagination, search, and\nsorting. For detail retrieval (GET), return a single resource. For\ncreation (POST), use .ICreate request body. For modification (PUT), use\n.IUpdate request body.',
|
|
4863
4868
|
type: "array",
|
|
4864
4869
|
items: {
|
|
4865
4870
|
$ref: "#/$defs/AutoBeOpenApi.IOperation"
|
|
4866
|
-
}
|
|
4871
|
+
},
|
|
4872
|
+
minItems: 1
|
|
4867
4873
|
}
|
|
4868
4874
|
},
|
|
4869
4875
|
required: [ "operations" ],
|
|
@@ -4923,12 +4929,14 @@ const collection$q = {
|
|
|
4923
4929
|
type: "null"
|
|
4924
4930
|
}, {
|
|
4925
4931
|
type: "string",
|
|
4926
|
-
|
|
4932
|
+
pattern: "^[a-z][a-zA-Z0-9]*$",
|
|
4933
|
+
minLength: 1
|
|
4927
4934
|
} ]
|
|
4928
4935
|
},
|
|
4929
4936
|
name: {
|
|
4930
|
-
description: 'Functional name of the API endpoint.\n\nThis is a semantic identifier that represents the primary function or\npurpose of the API endpoint. It serves as a canonical name that can be\nused for code generation, SDK method names, and internal references.\n\n## Reserved Word Restrictions\n\nCRITICAL: The name MUST NOT be a TypeScript/JavaScript reserved word, as\nit will be used as a class method name in generated code. Avoid names\nlike:\n\n- `delete`, `for`, `if`, `else`, `while`, `do`, `switch`, `case`, `break`\n- `continue`, `function`, `return`, `with`, `in`, `of`, `instanceof`\n- `typeof`, `void`, `var`, `let`, `const`, `class`, `extends`, `import`\n- `export`, `default`, `try`, `catch`, `finally`, `throw`, `new`\n- `super`, `this`, `null`, `true`, `false`, `async`, `await`\n- `yield`, `static`, `private`, `protected`, `public`, `implements`\n- `interface`, `package`, `enum`, `debugger`\n\nInstead, use alternative names for these operations:\n\n- Use `erase` instead of `delete`\n- Use `iterate` instead of `for`\n- Use `when` instead of `if`\n- Use `cls` instead of `class`\n\n## Standard Endpoint Names\n\nUse these conventional names based on the endpoint\'s primary function:\n\n- **`index`**: List/search operations that return multiple entities\n\n - Typically used with PATCH method for complex queries\n - Example: `PATCH /users` → `name: "index"`\n- **`at`**: Retrieve a specific entity by identifier\n\n - Typically used with GET method on single resource\n - Example: `GET /users/{userId}` → `name: "at"`\n- **`create`**: Create a new entity\n\n - Typically used with POST method\n - Example: `POST /users` → `name: "create"`\n- **`update`**: Update an existing entity\n\n - Typically used with PUT method\n - Example: `PUT /users/{userId}` → `name: "update"`\n- **`erase`**: Delete/remove an entity (NOT `delete` - reserved word!)\n\n - Typically used with DELETE method\n - Example: `DELETE /users/{userId}` → `name: "erase"`\n\n## Custom Endpoint Names\n\nFor specialized operations beyond basic CRUD, use descriptive verbs:\n\n- **`activate`**: Enable or turn on a feature/entity\n- **`deactivate`**: Disable or turn off a feature/entity\n- **`approve`**: Approve a request or entity\n- **`reject`**: Reject a request or entity\n- **`publish`**: Make content publicly available\n- **`archive`**: Move to archived state\n- **`restore`**: Restore from archived/deleted state\n- **`duplicate`**: Create a copy of an entity\n- **`transfer`**: Move ownership or change assignment\n- **`validate`**: Validate data or state\n- **`process`**: Execute a business process or workflow\n- **`export`**: Generate downloadable data\n- **`import`**: Process uploaded data\n\n## Naming Guidelines\n\n- MUST use camelCase naming convention\n- Use singular verb forms\n- Be concise but descriptive\n- Avoid abbreviations unless widely understood\n- Ensure the name clearly represents the endpoint\'s primary action\n- For nested resources, focus on the action rather than hierarchy\n- NEVER use JavaScript/TypeScript reserved words\n\nValid Examples:\n\n- `index`, `create`, `update`, `erase` (single word)\n- `updatePassword`, `cancelOrder`, `publishArticle` (camelCase)\n- `validateEmail`, `generateReport`, `exportData` (camelCase)\n\nInvalid Examples:\n\n- `update_password` (snake_case not allowed)\n- `UpdatePassword` (PascalCase not allowed)\n- `update-password` (kebab-case not allowed)\n\nPath to Name Examples:\n\n- `GET /shopping/orders/{orderId}/items` → `name: "index"` (lists items)\n- `POST /shopping/orders/{orderId}/cancel` → `name: "cancel"`\n- `PUT /users/{userId}/password` → `name: "updatePassword"`\n\n## Uniqueness Rule\n\nThe `name` must be unique within the API\'s accessor namespace. The\naccessor is formed by combining the path segments (excluding parameters)\nwith the operation name.\n\nAccessor formation:\n\n1. Extract non-parameter segments from the path (remove `{...}` parts)\n2. Join segments with dots\n3. Append the operation name\n\nExamples:\n\n- Path: `/shopping/sale/{saleId}/review/{reviewId}`, Name: `at` → Accessor:\n `shopping.sale.review.at`\n- Path: `/users/{userId}/posts`, Name: `index` → Accessor:\n `users.posts.index`\n- Path: `/auth/login`, Name: `signIn` → Accessor: `auth.login.signIn`\n\nEach accessor must be globally unique across the entire API. This ensures\noperations can be uniquely identified in generated SDKs and prevents\nnaming conflicts
|
|
4931
|
-
type: "string"
|
|
4937
|
+
description: 'Functional name of the API endpoint.\n\nThis is a semantic identifier that represents the primary function or\npurpose of the API endpoint. It serves as a canonical name that can be\nused for code generation, SDK method names, and internal references.\n\n## Reserved Word Restrictions\n\nCRITICAL: The name MUST NOT be a TypeScript/JavaScript reserved word, as\nit will be used as a class method name in generated code. Avoid names\nlike:\n\n- `delete`, `for`, `if`, `else`, `while`, `do`, `switch`, `case`, `break`\n- `continue`, `function`, `return`, `with`, `in`, `of`, `instanceof`\n- `typeof`, `void`, `var`, `let`, `const`, `class`, `extends`, `import`\n- `export`, `default`, `try`, `catch`, `finally`, `throw`, `new`\n- `super`, `this`, `null`, `true`, `false`, `async`, `await`\n- `yield`, `static`, `private`, `protected`, `public`, `implements`\n- `interface`, `package`, `enum`, `debugger`\n\nInstead, use alternative names for these operations:\n\n- Use `erase` instead of `delete`\n- Use `iterate` instead of `for`\n- Use `when` instead of `if`\n- Use `cls` instead of `class`\n\n## Standard Endpoint Names\n\nUse these conventional names based on the endpoint\'s primary function:\n\n- **`index`**: List/search operations that return multiple entities\n\n - Typically used with PATCH method for complex queries\n - Example: `PATCH /users` → `name: "index"`\n- **`at`**: Retrieve a specific entity by identifier\n\n - Typically used with GET method on single resource\n - Example: `GET /users/{userId}` → `name: "at"`\n- **`create`**: Create a new entity\n\n - Typically used with POST method\n - Example: `POST /users` → `name: "create"`\n- **`update`**: Update an existing entity\n\n - Typically used with PUT method\n - Example: `PUT /users/{userId}` → `name: "update"`\n- **`erase`**: Delete/remove an entity (NOT `delete` - reserved word!)\n\n - Typically used with DELETE method\n - Example: `DELETE /users/{userId}` → `name: "erase"`\n\n## Custom Endpoint Names\n\nFor specialized operations beyond basic CRUD, use descriptive verbs:\n\n- **`activate`**: Enable or turn on a feature/entity\n- **`deactivate`**: Disable or turn off a feature/entity\n- **`approve`**: Approve a request or entity\n- **`reject`**: Reject a request or entity\n- **`publish`**: Make content publicly available\n- **`archive`**: Move to archived state\n- **`restore`**: Restore from archived/deleted state\n- **`duplicate`**: Create a copy of an entity\n- **`transfer`**: Move ownership or change assignment\n- **`validate`**: Validate data or state\n- **`process`**: Execute a business process or workflow\n- **`export`**: Generate downloadable data\n- **`import`**: Process uploaded data\n\n## Naming Guidelines\n\n- MUST use camelCase naming convention\n- Use singular verb forms\n- Be concise but descriptive\n- Avoid abbreviations unless widely understood\n- Ensure the name clearly represents the endpoint\'s primary action\n- For nested resources, focus on the action rather than hierarchy\n- NEVER use JavaScript/TypeScript reserved words\n\nValid Examples:\n\n- `index`, `create`, `update`, `erase` (single word)\n- `updatePassword`, `cancelOrder`, `publishArticle` (camelCase)\n- `validateEmail`, `generateReport`, `exportData` (camelCase)\n\nInvalid Examples:\n\n- `update_password` (snake_case not allowed)\n- `UpdatePassword` (PascalCase not allowed)\n- `update-password` (kebab-case not allowed)\n\nPath to Name Examples:\n\n- `GET /shopping/orders/{orderId}/items` → `name: "index"` (lists items)\n- `POST /shopping/orders/{orderId}/cancel` → `name: "cancel"`\n- `PUT /users/{userId}/password` → `name: "updatePassword"`\n\n## Uniqueness Rule\n\nThe `name` must be unique within the API\'s accessor namespace. The\naccessor is formed by combining the path segments (excluding parameters)\nwith the operation name.\n\nAccessor formation:\n\n1. Extract non-parameter segments from the path (remove `{...}` parts)\n2. Join segments with dots\n3. Append the operation name\n\nExamples:\n\n- Path: `/shopping/sale/{saleId}/review/{reviewId}`, Name: `at` → Accessor:\n `shopping.sale.review.at`\n- Path: `/users/{userId}/posts`, Name: `index` → Accessor:\n `users.posts.index`\n- Path: `/auth/login`, Name: `signIn` → Accessor: `auth.login.signIn`\n\nEach accessor must be globally unique across the entire API. This ensures\noperations can be uniquely identified in generated SDKs and prevents\nnaming conflicts.',
|
|
4938
|
+
type: "string",
|
|
4939
|
+
pattern: "^[a-z][a-zA-Z0-9]*$"
|
|
4932
4940
|
},
|
|
4933
4941
|
prerequisites: {
|
|
4934
4942
|
description: 'Prerequisites for this API operation.\n\nThe `prerequisites` field defines API operations that must be\nsuccessfully executed before this operation can be performed. This\ncreates an explicit dependency chain between API endpoints, ensuring\nproper execution order and data availability.\n\n## CRITICAL WARNING: Authentication Prerequisites\n\n**NEVER include authentication-related operations as prerequisites!**\nAuthentication is handled separately through the `authorizationActor`\nfield and should NOT be part of the prerequisite chain. Do NOT add\nprerequisites for:\n\n- Login endpoints\n- Token validation endpoints\n- User authentication checks\n- Permission verification endpoints\n\nPrerequisites are ONLY for business logic dependencies, NOT for\nauthentication/authorization.\n\n## Purpose and Use Cases\n\nPrerequisites are essential for operations that depend on:\n\n1. **Existence Validation**: Ensuring resources exist before manipulation\n2. **State Requirements**: Verifying resources are in the correct state\n3. **Data Dependencies**: Loading necessary data for the current operation\n4. **Business Logic Constraints**: Enforcing domain-specific rules\n\n## Execution Flow\n\nWhen an operation has prerequisites:\n\n1. Each prerequisite API must be called first in the specified order\n2. Prerequisites must return successful responses (2xx status codes)\n3. Only after all prerequisites succeed can the main operation proceed\n4. If any prerequisite fails, the operation should not be attempted\n\n## Common Patterns\n\n### Resource Existence Check\n\n```typescript\n// Before updating an order item, ensure the order exists\nprerequisites: [\n {\n endpoint: { path: "/orders/{orderId}", method: "get" },\n description: "Order must exist in the system",\n },\n];\n```\n\n### State Validation\n\n```typescript\n// Before processing payment, ensure order is in correct state\nprerequisites: [\n {\n endpoint: { path: "/orders/{orderId}/status", method: "get" },\n description: "Order must be in \'pending_payment\' status",\n },\n];\n```\n\n### Hierarchical Dependencies\n\n```typescript\n// Before accessing a deeply nested resource\nprerequisites: [\n {\n endpoint: { path: "/projects/{projectId}", method: "get" },\n description: "Project must exist",\n },\n {\n endpoint: {\n path: "/projects/{projectId}/tasks/{taskId}",\n method: "get",\n },\n description: "Task must exist within the project",\n },\n];\n```\n\n## Important Guidelines\n\n1. **Order Matters**: Prerequisites are executed in array order\n2. **Parameter Inheritance**: Path parameters from prerequisites can be used\n in the main operation\n3. **Error Handling**: Failed prerequisites should prevent main operation\n4. **Performance**: Consider caching prerequisite results when appropriate\n5. **Documentation**: Each prerequisite must have a clear description\n explaining why it\'s required\n6. **No Authentication**: NEVER use prerequisites for authentication checks\n\n## Test Generation Impact\n\nThe Test Agent uses prerequisites to:\n\n- Generate proper test setup sequences\n- Create valid test data in the correct order\n- Ensure test scenarios follow realistic workflows\n- Validate error handling when prerequisites fail',
|
|
@@ -4938,8 +4946,9 @@ const collection$q = {
|
|
|
4938
4946
|
}
|
|
4939
4947
|
},
|
|
4940
4948
|
path: {
|
|
4941
|
-
description: 'HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- "/users"\n- "/users/{userId}"\n- "/articles/{articleId}/comments"\n- "/attachmentFiles"\n- "/orders/{orderId}/items/{itemId}"\n\nInvalid examples:\n\n- "\'/users\'" (contains quotes)\n- "/user profile" (contains space)\n- "/users/[userId]" (wrong bracket format)\n- "/admin/users" (role prefix)\n- "/api/v1/users" (API prefix)
|
|
4942
|
-
type: "string"
|
|
4949
|
+
description: 'HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- "/users"\n- "/users/{userId}"\n- "/articles/{articleId}/comments"\n- "/attachmentFiles"\n- "/orders/{orderId}/items/{itemId}"\n\nInvalid examples:\n\n- "\'/users\'" (contains quotes)\n- "/user profile" (contains space)\n- "/users/[userId]" (wrong bracket format)\n- "/admin/users" (role prefix)\n- "/api/v1/users" (API prefix)',
|
|
4950
|
+
type: "string",
|
|
4951
|
+
pattern: "^\\/[a-zA-Z0-9\\/_{}.-]*$"
|
|
4943
4952
|
},
|
|
4944
4953
|
method: {
|
|
4945
4954
|
description: 'HTTP method of the API operation.\n\n**IMPORTANT**: Methods must be written in lowercase only (e.g., "get",\nnot "GET").\n\nNote that, if the API operation has {@link requestBody}, method must not\nbe `get`.\n\nAlso, even though the API operation has been designed to only get\ninformation, but it needs complicated request information, it must be\ndefined as `patch` method with {@link requestBody} data specification.\n\n- `get`: get information\n- `patch`: get information with complicated request data\n ({@link requestBody})\n- `post`: create new record\n- `put`: update existing record\n- `delete`: remove record',
|
|
@@ -4954,8 +4963,9 @@ const collection$q = {
|
|
|
4954
4963
|
type: "object",
|
|
4955
4964
|
properties: {
|
|
4956
4965
|
name: {
|
|
4957
|
-
description: "Identifier name of the path parameter.\n\nThis name must match exactly with the parameter name in the route path.\nIt must be corresponded to the\n{@link AutoBeOpenApi.IOperation.path API operation path}.\n\nMUST use camelCase naming convention
|
|
4958
|
-
type: "string"
|
|
4966
|
+
description: "Identifier name of the path parameter.\n\nThis name must match exactly with the parameter name in the route path.\nIt must be corresponded to the\n{@link AutoBeOpenApi.IOperation.path API operation path}.\n\nMUST use camelCase naming convention.",
|
|
4967
|
+
type: "string",
|
|
4968
|
+
pattern: "^[a-z][a-zA-Z0-9]*$"
|
|
4959
4969
|
},
|
|
4960
4970
|
description: {
|
|
4961
4971
|
description: "Description about the path parameter.\n\nMake short, concise and clear description about the path parameter.\n\n> MUST be written in English. Never use other languages.",
|
|
@@ -5003,8 +5013,9 @@ const collection$q = {
|
|
|
5003
5013
|
type: "number"
|
|
5004
5014
|
},
|
|
5005
5015
|
multipleOf: {
|
|
5006
|
-
description: "Multiple of value restriction
|
|
5007
|
-
type: "number"
|
|
5016
|
+
description: "Multiple of value restriction.",
|
|
5017
|
+
type: "number",
|
|
5018
|
+
exclusiveMinimum: 0
|
|
5008
5019
|
},
|
|
5009
5020
|
type: {
|
|
5010
5021
|
description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
|
|
@@ -5035,8 +5046,9 @@ const collection$q = {
|
|
|
5035
5046
|
type: "number"
|
|
5036
5047
|
},
|
|
5037
5048
|
multipleOf: {
|
|
5038
|
-
description: "Multiple of value restriction
|
|
5039
|
-
type: "integer"
|
|
5049
|
+
description: "Multiple of value restriction.",
|
|
5050
|
+
type: "integer",
|
|
5051
|
+
exclusiveMinimum: 0
|
|
5040
5052
|
},
|
|
5041
5053
|
type: {
|
|
5042
5054
|
description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
|
|
@@ -5064,12 +5076,14 @@ const collection$q = {
|
|
|
5064
5076
|
type: "string"
|
|
5065
5077
|
},
|
|
5066
5078
|
minLength: {
|
|
5067
|
-
description: "Minimum length restriction
|
|
5068
|
-
type: "integer"
|
|
5079
|
+
description: "Minimum length restriction.",
|
|
5080
|
+
type: "integer",
|
|
5081
|
+
minimum: 0
|
|
5069
5082
|
},
|
|
5070
5083
|
maxLength: {
|
|
5071
|
-
description: "Maximum length restriction
|
|
5072
|
-
type: "integer"
|
|
5084
|
+
description: "Maximum length restriction.",
|
|
5085
|
+
type: "integer",
|
|
5086
|
+
minimum: 0
|
|
5073
5087
|
},
|
|
5074
5088
|
type: {
|
|
5075
5089
|
description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
|
|
@@ -5129,8 +5143,9 @@ const collection$q = {
|
|
|
5129
5143
|
type: "object",
|
|
5130
5144
|
properties: {
|
|
5131
5145
|
path: {
|
|
5132
|
-
description: 'HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- "/users"\n- "/users/{userId}"\n- "/articles/{articleId}/comments"\n- "/attachmentFiles"\n- "/orders/{orderId}/items/{itemId}"\n\nInvalid examples:\n\n- "\'/users\'" (contains quotes)\n- "/user profile" (contains space)\n- "/users/[userId]" (wrong bracket format)\n- "/admin/users" (role prefix)\n- "/api/v1/users" (API prefix)
|
|
5133
|
-
type: "string"
|
|
5146
|
+
description: 'HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- "/users"\n- "/users/{userId}"\n- "/articles/{articleId}/comments"\n- "/attachmentFiles"\n- "/orders/{orderId}/items/{itemId}"\n\nInvalid examples:\n\n- "\'/users\'" (contains quotes)\n- "/user profile" (contains space)\n- "/users/[userId]" (wrong bracket format)\n- "/admin/users" (role prefix)\n- "/api/v1/users" (API prefix)',
|
|
5147
|
+
type: "string",
|
|
5148
|
+
pattern: "^\\/[a-zA-Z0-9\\/_{}.-]*$"
|
|
5134
5149
|
},
|
|
5135
5150
|
method: {
|
|
5136
5151
|
description: 'HTTP method of the API operation.\n\n**IMPORTANT**: Methods must be written in lowercase only (e.g., "get",\nnot "GET").\n\nNote that, if the API operation has {@link requestBody}, method must not\nbe `get`.\n\nAlso, even though the API operation has been designed to only get\ninformation, but it needs complicated request information, it must be\ndefined as `patch` method with {@link requestBody} data specification.\n\n- `get`: get information\n- `patch`: get information with complicated request data\n ({@link requestBody})\n- `post`: create new record\n- `put`: update existing record\n- `delete`: remove record',
|
|
@@ -10726,8 +10741,9 @@ const collection$p = {
|
|
|
10726
10741
|
type: "number"
|
|
10727
10742
|
},
|
|
10728
10743
|
multipleOf: {
|
|
10729
|
-
description: "Multiple of value restriction
|
|
10730
|
-
type: "integer"
|
|
10744
|
+
description: "Multiple of value restriction.",
|
|
10745
|
+
type: "integer",
|
|
10746
|
+
exclusiveMinimum: 0
|
|
10731
10747
|
},
|
|
10732
10748
|
type: {
|
|
10733
10749
|
description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
|
|
@@ -10762,8 +10778,9 @@ const collection$p = {
|
|
|
10762
10778
|
type: "number"
|
|
10763
10779
|
},
|
|
10764
10780
|
multipleOf: {
|
|
10765
|
-
description: "Multiple of value restriction
|
|
10766
|
-
type: "number"
|
|
10781
|
+
description: "Multiple of value restriction.",
|
|
10782
|
+
type: "number",
|
|
10783
|
+
exclusiveMinimum: 0
|
|
10767
10784
|
},
|
|
10768
10785
|
type: {
|
|
10769
10786
|
description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
|
|
@@ -10795,12 +10812,14 @@ const collection$p = {
|
|
|
10795
10812
|
type: "string"
|
|
10796
10813
|
},
|
|
10797
10814
|
minLength: {
|
|
10798
|
-
description: "Minimum length restriction
|
|
10799
|
-
type: "integer"
|
|
10815
|
+
description: "Minimum length restriction.",
|
|
10816
|
+
type: "integer",
|
|
10817
|
+
minimum: 0
|
|
10800
10818
|
},
|
|
10801
10819
|
maxLength: {
|
|
10802
|
-
description: "Maximum length restriction
|
|
10803
|
-
type: "integer"
|
|
10820
|
+
description: "Maximum length restriction.",
|
|
10821
|
+
type: "integer",
|
|
10822
|
+
minimum: 0
|
|
10804
10823
|
},
|
|
10805
10824
|
type: {
|
|
10806
10825
|
description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
|
|
@@ -10827,12 +10846,14 @@ const collection$p = {
|
|
|
10827
10846
|
type: "boolean"
|
|
10828
10847
|
},
|
|
10829
10848
|
minItems: {
|
|
10830
|
-
description: "Minimum items restriction.\n\nRestriction of minimum number of items in the array
|
|
10831
|
-
type: "integer"
|
|
10849
|
+
description: "Minimum items restriction.\n\nRestriction of minimum number of items in the array.",
|
|
10850
|
+
type: "integer",
|
|
10851
|
+
minimum: 0
|
|
10832
10852
|
},
|
|
10833
10853
|
maxItems: {
|
|
10834
|
-
description: "Maximum items restriction.\n\nRestriction of maximum number of items in the array
|
|
10835
|
-
type: "integer"
|
|
10854
|
+
description: "Maximum items restriction.\n\nRestriction of maximum number of items in the array.",
|
|
10855
|
+
type: "integer",
|
|
10856
|
+
minimum: 0
|
|
10836
10857
|
},
|
|
10837
10858
|
type: {
|
|
10838
10859
|
description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
|
|
@@ -10891,8 +10912,9 @@ const collection$p = {
|
|
|
10891
10912
|
type: "number"
|
|
10892
10913
|
},
|
|
10893
10914
|
multipleOf: {
|
|
10894
|
-
description: "Multiple of value restriction
|
|
10895
|
-
type: "integer"
|
|
10915
|
+
description: "Multiple of value restriction.",
|
|
10916
|
+
type: "integer",
|
|
10917
|
+
exclusiveMinimum: 0
|
|
10896
10918
|
},
|
|
10897
10919
|
type: {
|
|
10898
10920
|
description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
|
|
@@ -10923,8 +10945,9 @@ const collection$p = {
|
|
|
10923
10945
|
type: "number"
|
|
10924
10946
|
},
|
|
10925
10947
|
multipleOf: {
|
|
10926
|
-
description: "Multiple of value restriction
|
|
10927
|
-
type: "number"
|
|
10948
|
+
description: "Multiple of value restriction.",
|
|
10949
|
+
type: "number",
|
|
10950
|
+
exclusiveMinimum: 0
|
|
10928
10951
|
},
|
|
10929
10952
|
type: {
|
|
10930
10953
|
description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
|
|
@@ -10952,12 +10975,14 @@ const collection$p = {
|
|
|
10952
10975
|
type: "string"
|
|
10953
10976
|
},
|
|
10954
10977
|
minLength: {
|
|
10955
|
-
description: "Minimum length restriction
|
|
10956
|
-
type: "integer"
|
|
10978
|
+
description: "Minimum length restriction.",
|
|
10979
|
+
type: "integer",
|
|
10980
|
+
minimum: 0
|
|
10957
10981
|
},
|
|
10958
10982
|
maxLength: {
|
|
10959
|
-
description: "Maximum length restriction
|
|
10960
|
-
type: "integer"
|
|
10983
|
+
description: "Maximum length restriction.",
|
|
10984
|
+
type: "integer",
|
|
10985
|
+
minimum: 0
|
|
10961
10986
|
},
|
|
10962
10987
|
type: {
|
|
10963
10988
|
description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
|
|
@@ -11009,12 +11034,14 @@ const collection$p = {
|
|
|
11009
11034
|
type: "boolean"
|
|
11010
11035
|
},
|
|
11011
11036
|
minItems: {
|
|
11012
|
-
description: "Minimum items restriction.\n\nRestriction of minimum number of items in the array
|
|
11013
|
-
type: "integer"
|
|
11037
|
+
description: "Minimum items restriction.\n\nRestriction of minimum number of items in the array.",
|
|
11038
|
+
type: "integer",
|
|
11039
|
+
minimum: 0
|
|
11014
11040
|
},
|
|
11015
11041
|
maxItems: {
|
|
11016
|
-
description: "Maximum items restriction.\n\nRestriction of maximum number of items in the array
|
|
11017
|
-
type: "integer"
|
|
11042
|
+
description: "Maximum items restriction.\n\nRestriction of maximum number of items in the array.",
|
|
11043
|
+
type: "integer",
|
|
11044
|
+
minimum: 0
|
|
11018
11045
|
},
|
|
11019
11046
|
type: {
|
|
11020
11047
|
description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
|
|
@@ -12336,8 +12363,9 @@ const collection$o = {
|
|
|
12336
12363
|
type: "object",
|
|
12337
12364
|
properties: {
|
|
12338
12365
|
path: {
|
|
12339
|
-
description: 'HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- "/users"\n- "/users/{userId}"\n- "/articles/{articleId}/comments"\n- "/attachmentFiles"\n- "/orders/{orderId}/items/{itemId}"\n\nInvalid examples:\n\n- "\'/users\'" (contains quotes)\n- "/user profile" (contains space)\n- "/users/[userId]" (wrong bracket format)\n- "/admin/users" (role prefix)\n- "/api/v1/users" (API prefix)
|
|
12340
|
-
type: "string"
|
|
12366
|
+
description: 'HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- "/users"\n- "/users/{userId}"\n- "/articles/{articleId}/comments"\n- "/attachmentFiles"\n- "/orders/{orderId}/items/{itemId}"\n\nInvalid examples:\n\n- "\'/users\'" (contains quotes)\n- "/user profile" (contains space)\n- "/users/[userId]" (wrong bracket format)\n- "/admin/users" (role prefix)\n- "/api/v1/users" (API prefix)',
|
|
12367
|
+
type: "string",
|
|
12368
|
+
pattern: "^\\/[a-zA-Z0-9\\/_{}.-]*$"
|
|
12341
12369
|
},
|
|
12342
12370
|
method: {
|
|
12343
12371
|
description: 'HTTP method of the API operation.\n\n**IMPORTANT**: Methods must be written in lowercase only (e.g., "get",\nnot "GET").\n\nNote that, if the API operation has {@link requestBody}, method must not\nbe `get`.\n\nAlso, even though the API operation has been designed to only get\ninformation, but it needs complicated request information, it must be\ndefined as `patch` method with {@link requestBody} data specification.\n\n- `get`: get information\n- `patch`: get information with complicated request data\n ({@link requestBody})\n- `post`: create new record\n- `put`: update existing record\n- `delete`: remove record',
|
|
@@ -12747,11 +12775,12 @@ const collection$n = {
|
|
|
12747
12775
|
type: "object",
|
|
12748
12776
|
properties: {
|
|
12749
12777
|
endpoints: {
|
|
12750
|
-
description: "The endpoints to generate
|
|
12778
|
+
description: "The endpoints to generate.",
|
|
12751
12779
|
type: "array",
|
|
12752
12780
|
items: {
|
|
12753
12781
|
$ref: "#/$defs/AutoBeOpenApi.IEndpoint"
|
|
12754
|
-
}
|
|
12782
|
+
},
|
|
12783
|
+
minItems: 1
|
|
12755
12784
|
}
|
|
12756
12785
|
},
|
|
12757
12786
|
required: [ "endpoints" ],
|
|
@@ -12762,8 +12791,9 @@ const collection$n = {
|
|
|
12762
12791
|
type: "object",
|
|
12763
12792
|
properties: {
|
|
12764
12793
|
path: {
|
|
12765
|
-
description: 'HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- "/users"\n- "/users/{userId}"\n- "/articles/{articleId}/comments"\n- "/attachmentFiles"\n- "/orders/{orderId}/items/{itemId}"\n\nInvalid examples:\n\n- "\'/users\'" (contains quotes)\n- "/user profile" (contains space)\n- "/users/[userId]" (wrong bracket format)\n- "/admin/users" (role prefix)\n- "/api/v1/users" (API prefix)
|
|
12766
|
-
type: "string"
|
|
12794
|
+
description: 'HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- "/users"\n- "/users/{userId}"\n- "/articles/{articleId}/comments"\n- "/attachmentFiles"\n- "/orders/{orderId}/items/{itemId}"\n\nInvalid examples:\n\n- "\'/users\'" (contains quotes)\n- "/user profile" (contains space)\n- "/users/[userId]" (wrong bracket format)\n- "/admin/users" (role prefix)\n- "/api/v1/users" (API prefix)',
|
|
12795
|
+
type: "string",
|
|
12796
|
+
pattern: "^\\/[a-zA-Z0-9\\/_{}.-]*$"
|
|
12767
12797
|
},
|
|
12768
12798
|
method: {
|
|
12769
12799
|
description: 'HTTP method of the API operation.\n\n**IMPORTANT**: Methods must be written in lowercase only (e.g., "get",\nnot "GET").\n\nNote that, if the API operation has {@link requestBody}, method must not\nbe `get`.\n\nAlso, even though the API operation has been designed to only get\ninformation, but it needs complicated request information, it must be\ndefined as `patch` method with {@link requestBody} data specification.\n\n- `get`: get information\n- `patch`: get information with complicated request data\n ({@link requestBody})\n- `post`: create new record\n- `put`: update existing record\n- `delete`: remove record',
|
|
@@ -13209,11 +13239,12 @@ const collection$m = {
|
|
|
13209
13239
|
type: "object",
|
|
13210
13240
|
properties: {
|
|
13211
13241
|
groups: {
|
|
13212
|
-
description: "Array of API endpoint groups for organizing development.\n\nDO: Organize groups around existing Prisma schema structure.\nDO: Provide complete coverage of all entities and requirements without\noverlap
|
|
13242
|
+
description: "Array of API endpoint groups for organizing development.\n\nDO: Organize groups around existing Prisma schema structure.\nDO: Provide complete coverage of all entities and requirements without\noverlap.",
|
|
13213
13243
|
type: "array",
|
|
13214
13244
|
items: {
|
|
13215
13245
|
$ref: "#/$defs/IAutoBeInterfaceGroupApplication.IGroup"
|
|
13216
|
-
}
|
|
13246
|
+
},
|
|
13247
|
+
minItems: 1
|
|
13217
13248
|
}
|
|
13218
13249
|
},
|
|
13219
13250
|
required: [ "groups" ],
|
|
@@ -13224,12 +13255,14 @@ const collection$m = {
|
|
|
13224
13255
|
type: "object",
|
|
13225
13256
|
properties: {
|
|
13226
13257
|
name: {
|
|
13227
|
-
description: "Unique identifier name derived from Prisma schema structure.\n\nDO: Correspond to schema namespaces, file names, table prefixes, or\norganizational annotations rather than arbitrary business domain names
|
|
13228
|
-
type: "string"
|
|
13258
|
+
description: "Unique identifier name derived from Prisma schema structure.\n\nDO: Correspond to schema namespaces, file names, table prefixes, or\norganizational annotations rather than arbitrary business domain names.",
|
|
13259
|
+
type: "string",
|
|
13260
|
+
minLength: 1
|
|
13229
13261
|
},
|
|
13230
13262
|
description: {
|
|
13231
|
-
description: 'Concise description of the group\'s core purpose.\n\n**Requirements:**\n- Keep it brief and focused (50-200 characters)\n- State the main purpose and key entities\n- Avoid detailed explanations or mappings\n\nExample: "Handles shopping-related entities and operations"
|
|
13232
|
-
type: "string"
|
|
13263
|
+
description: 'Concise description of the group\'s core purpose.\n\n**Requirements:**\n- Keep it brief and focused (50-200 characters)\n- State the main purpose and key entities\n- Avoid detailed explanations or mappings\n\nExample: "Handles shopping-related entities and operations"',
|
|
13264
|
+
type: "string",
|
|
13265
|
+
minLength: 1
|
|
13233
13266
|
}
|
|
13234
13267
|
},
|
|
13235
13268
|
required: [ "name", "description" ]
|
|
@@ -15467,12 +15500,14 @@ const collection$l = {
|
|
|
15467
15500
|
type: "null"
|
|
15468
15501
|
}, {
|
|
15469
15502
|
type: "string",
|
|
15470
|
-
|
|
15503
|
+
pattern: "^[a-z][a-zA-Z0-9]*$",
|
|
15504
|
+
minLength: 1
|
|
15471
15505
|
} ]
|
|
15472
15506
|
},
|
|
15473
15507
|
name: {
|
|
15474
|
-
description: 'Functional name of the API endpoint.\n\nThis is a semantic identifier that represents the primary function or\npurpose of the API endpoint. It serves as a canonical name that can be\nused for code generation, SDK method names, and internal references.\n\n## Reserved Word Restrictions\n\nCRITICAL: The name MUST NOT be a TypeScript/JavaScript reserved word, as\nit will be used as a class method name in generated code. Avoid names\nlike:\n\n- `delete`, `for`, `if`, `else`, `while`, `do`, `switch`, `case`, `break`\n- `continue`, `function`, `return`, `with`, `in`, `of`, `instanceof`\n- `typeof`, `void`, `var`, `let`, `const`, `class`, `extends`, `import`\n- `export`, `default`, `try`, `catch`, `finally`, `throw`, `new`\n- `super`, `this`, `null`, `true`, `false`, `async`, `await`\n- `yield`, `static`, `private`, `protected`, `public`, `implements`\n- `interface`, `package`, `enum`, `debugger`\n\nInstead, use alternative names for these operations:\n\n- Use `erase` instead of `delete`\n- Use `iterate` instead of `for`\n- Use `when` instead of `if`\n- Use `cls` instead of `class`\n\n## Standard Endpoint Names\n\nUse these conventional names based on the endpoint\'s primary function:\n\n- **`index`**: List/search operations that return multiple entities\n\n - Typically used with PATCH method for complex queries\n - Example: `PATCH /users` → `name: "index"`\n- **`at`**: Retrieve a specific entity by identifier\n\n - Typically used with GET method on single resource\n - Example: `GET /users/{userId}` → `name: "at"`\n- **`create`**: Create a new entity\n\n - Typically used with POST method\n - Example: `POST /users` → `name: "create"`\n- **`update`**: Update an existing entity\n\n - Typically used with PUT method\n - Example: `PUT /users/{userId}` → `name: "update"`\n- **`erase`**: Delete/remove an entity (NOT `delete` - reserved word!)\n\n - Typically used with DELETE method\n - Example: `DELETE /users/{userId}` → `name: "erase"`\n\n## Custom Endpoint Names\n\nFor specialized operations beyond basic CRUD, use descriptive verbs:\n\n- **`activate`**: Enable or turn on a feature/entity\n- **`deactivate`**: Disable or turn off a feature/entity\n- **`approve`**: Approve a request or entity\n- **`reject`**: Reject a request or entity\n- **`publish`**: Make content publicly available\n- **`archive`**: Move to archived state\n- **`restore`**: Restore from archived/deleted state\n- **`duplicate`**: Create a copy of an entity\n- **`transfer`**: Move ownership or change assignment\n- **`validate`**: Validate data or state\n- **`process`**: Execute a business process or workflow\n- **`export`**: Generate downloadable data\n- **`import`**: Process uploaded data\n\n## Naming Guidelines\n\n- MUST use camelCase naming convention\n- Use singular verb forms\n- Be concise but descriptive\n- Avoid abbreviations unless widely understood\n- Ensure the name clearly represents the endpoint\'s primary action\n- For nested resources, focus on the action rather than hierarchy\n- NEVER use JavaScript/TypeScript reserved words\n\nValid Examples:\n\n- `index`, `create`, `update`, `erase` (single word)\n- `updatePassword`, `cancelOrder`, `publishArticle` (camelCase)\n- `validateEmail`, `generateReport`, `exportData` (camelCase)\n\nInvalid Examples:\n\n- `update_password` (snake_case not allowed)\n- `UpdatePassword` (PascalCase not allowed)\n- `update-password` (kebab-case not allowed)\n\nPath to Name Examples:\n\n- `GET /shopping/orders/{orderId}/items` → `name: "index"` (lists items)\n- `POST /shopping/orders/{orderId}/cancel` → `name: "cancel"`\n- `PUT /users/{userId}/password` → `name: "updatePassword"`\n\n## Uniqueness Rule\n\nThe `name` must be unique within the API\'s accessor namespace. The\naccessor is formed by combining the path segments (excluding parameters)\nwith the operation name.\n\nAccessor formation:\n\n1. Extract non-parameter segments from the path (remove `{...}` parts)\n2. Join segments with dots\n3. Append the operation name\n\nExamples:\n\n- Path: `/shopping/sale/{saleId}/review/{reviewId}`, Name: `at` → Accessor:\n `shopping.sale.review.at`\n- Path: `/users/{userId}/posts`, Name: `index` → Accessor:\n `users.posts.index`\n- Path: `/auth/login`, Name: `signIn` → Accessor: `auth.login.signIn`\n\nEach accessor must be globally unique across the entire API. This ensures\noperations can be uniquely identified in generated SDKs and prevents\nnaming conflicts
|
|
15475
|
-
type: "string"
|
|
15508
|
+
description: 'Functional name of the API endpoint.\n\nThis is a semantic identifier that represents the primary function or\npurpose of the API endpoint. It serves as a canonical name that can be\nused for code generation, SDK method names, and internal references.\n\n## Reserved Word Restrictions\n\nCRITICAL: The name MUST NOT be a TypeScript/JavaScript reserved word, as\nit will be used as a class method name in generated code. Avoid names\nlike:\n\n- `delete`, `for`, `if`, `else`, `while`, `do`, `switch`, `case`, `break`\n- `continue`, `function`, `return`, `with`, `in`, `of`, `instanceof`\n- `typeof`, `void`, `var`, `let`, `const`, `class`, `extends`, `import`\n- `export`, `default`, `try`, `catch`, `finally`, `throw`, `new`\n- `super`, `this`, `null`, `true`, `false`, `async`, `await`\n- `yield`, `static`, `private`, `protected`, `public`, `implements`\n- `interface`, `package`, `enum`, `debugger`\n\nInstead, use alternative names for these operations:\n\n- Use `erase` instead of `delete`\n- Use `iterate` instead of `for`\n- Use `when` instead of `if`\n- Use `cls` instead of `class`\n\n## Standard Endpoint Names\n\nUse these conventional names based on the endpoint\'s primary function:\n\n- **`index`**: List/search operations that return multiple entities\n\n - Typically used with PATCH method for complex queries\n - Example: `PATCH /users` → `name: "index"`\n- **`at`**: Retrieve a specific entity by identifier\n\n - Typically used with GET method on single resource\n - Example: `GET /users/{userId}` → `name: "at"`\n- **`create`**: Create a new entity\n\n - Typically used with POST method\n - Example: `POST /users` → `name: "create"`\n- **`update`**: Update an existing entity\n\n - Typically used with PUT method\n - Example: `PUT /users/{userId}` → `name: "update"`\n- **`erase`**: Delete/remove an entity (NOT `delete` - reserved word!)\n\n - Typically used with DELETE method\n - Example: `DELETE /users/{userId}` → `name: "erase"`\n\n## Custom Endpoint Names\n\nFor specialized operations beyond basic CRUD, use descriptive verbs:\n\n- **`activate`**: Enable or turn on a feature/entity\n- **`deactivate`**: Disable or turn off a feature/entity\n- **`approve`**: Approve a request or entity\n- **`reject`**: Reject a request or entity\n- **`publish`**: Make content publicly available\n- **`archive`**: Move to archived state\n- **`restore`**: Restore from archived/deleted state\n- **`duplicate`**: Create a copy of an entity\n- **`transfer`**: Move ownership or change assignment\n- **`validate`**: Validate data or state\n- **`process`**: Execute a business process or workflow\n- **`export`**: Generate downloadable data\n- **`import`**: Process uploaded data\n\n## Naming Guidelines\n\n- MUST use camelCase naming convention\n- Use singular verb forms\n- Be concise but descriptive\n- Avoid abbreviations unless widely understood\n- Ensure the name clearly represents the endpoint\'s primary action\n- For nested resources, focus on the action rather than hierarchy\n- NEVER use JavaScript/TypeScript reserved words\n\nValid Examples:\n\n- `index`, `create`, `update`, `erase` (single word)\n- `updatePassword`, `cancelOrder`, `publishArticle` (camelCase)\n- `validateEmail`, `generateReport`, `exportData` (camelCase)\n\nInvalid Examples:\n\n- `update_password` (snake_case not allowed)\n- `UpdatePassword` (PascalCase not allowed)\n- `update-password` (kebab-case not allowed)\n\nPath to Name Examples:\n\n- `GET /shopping/orders/{orderId}/items` → `name: "index"` (lists items)\n- `POST /shopping/orders/{orderId}/cancel` → `name: "cancel"`\n- `PUT /users/{userId}/password` → `name: "updatePassword"`\n\n## Uniqueness Rule\n\nThe `name` must be unique within the API\'s accessor namespace. The\naccessor is formed by combining the path segments (excluding parameters)\nwith the operation name.\n\nAccessor formation:\n\n1. Extract non-parameter segments from the path (remove `{...}` parts)\n2. Join segments with dots\n3. Append the operation name\n\nExamples:\n\n- Path: `/shopping/sale/{saleId}/review/{reviewId}`, Name: `at` → Accessor:\n `shopping.sale.review.at`\n- Path: `/users/{userId}/posts`, Name: `index` → Accessor:\n `users.posts.index`\n- Path: `/auth/login`, Name: `signIn` → Accessor: `auth.login.signIn`\n\nEach accessor must be globally unique across the entire API. This ensures\noperations can be uniquely identified in generated SDKs and prevents\nnaming conflicts.',
|
|
15509
|
+
type: "string",
|
|
15510
|
+
pattern: "^[a-z][a-zA-Z0-9]*$"
|
|
15476
15511
|
},
|
|
15477
15512
|
prerequisites: {
|
|
15478
15513
|
description: 'Prerequisites for this API operation.\n\nThe `prerequisites` field defines API operations that must be\nsuccessfully executed before this operation can be performed. This\ncreates an explicit dependency chain between API endpoints, ensuring\nproper execution order and data availability.\n\n## CRITICAL WARNING: Authentication Prerequisites\n\n**NEVER include authentication-related operations as prerequisites!**\nAuthentication is handled separately through the `authorizationActor`\nfield and should NOT be part of the prerequisite chain. Do NOT add\nprerequisites for:\n\n- Login endpoints\n- Token validation endpoints\n- User authentication checks\n- Permission verification endpoints\n\nPrerequisites are ONLY for business logic dependencies, NOT for\nauthentication/authorization.\n\n## Purpose and Use Cases\n\nPrerequisites are essential for operations that depend on:\n\n1. **Existence Validation**: Ensuring resources exist before manipulation\n2. **State Requirements**: Verifying resources are in the correct state\n3. **Data Dependencies**: Loading necessary data for the current operation\n4. **Business Logic Constraints**: Enforcing domain-specific rules\n\n## Execution Flow\n\nWhen an operation has prerequisites:\n\n1. Each prerequisite API must be called first in the specified order\n2. Prerequisites must return successful responses (2xx status codes)\n3. Only after all prerequisites succeed can the main operation proceed\n4. If any prerequisite fails, the operation should not be attempted\n\n## Common Patterns\n\n### Resource Existence Check\n\n```typescript\n// Before updating an order item, ensure the order exists\nprerequisites: [\n {\n endpoint: { path: "/orders/{orderId}", method: "get" },\n description: "Order must exist in the system",\n },\n];\n```\n\n### State Validation\n\n```typescript\n// Before processing payment, ensure order is in correct state\nprerequisites: [\n {\n endpoint: { path: "/orders/{orderId}/status", method: "get" },\n description: "Order must be in \'pending_payment\' status",\n },\n];\n```\n\n### Hierarchical Dependencies\n\n```typescript\n// Before accessing a deeply nested resource\nprerequisites: [\n {\n endpoint: { path: "/projects/{projectId}", method: "get" },\n description: "Project must exist",\n },\n {\n endpoint: {\n path: "/projects/{projectId}/tasks/{taskId}",\n method: "get",\n },\n description: "Task must exist within the project",\n },\n];\n```\n\n## Important Guidelines\n\n1. **Order Matters**: Prerequisites are executed in array order\n2. **Parameter Inheritance**: Path parameters from prerequisites can be used\n in the main operation\n3. **Error Handling**: Failed prerequisites should prevent main operation\n4. **Performance**: Consider caching prerequisite results when appropriate\n5. **Documentation**: Each prerequisite must have a clear description\n explaining why it\'s required\n6. **No Authentication**: NEVER use prerequisites for authentication checks\n\n## Test Generation Impact\n\nThe Test Agent uses prerequisites to:\n\n- Generate proper test setup sequences\n- Create valid test data in the correct order\n- Ensure test scenarios follow realistic workflows\n- Validate error handling when prerequisites fail',
|
|
@@ -15482,8 +15517,9 @@ const collection$l = {
|
|
|
15482
15517
|
}
|
|
15483
15518
|
},
|
|
15484
15519
|
path: {
|
|
15485
|
-
description: 'HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- "/users"\n- "/users/{userId}"\n- "/articles/{articleId}/comments"\n- "/attachmentFiles"\n- "/orders/{orderId}/items/{itemId}"\n\nInvalid examples:\n\n- "\'/users\'" (contains quotes)\n- "/user profile" (contains space)\n- "/users/[userId]" (wrong bracket format)\n- "/admin/users" (role prefix)\n- "/api/v1/users" (API prefix)
|
|
15486
|
-
type: "string"
|
|
15520
|
+
description: 'HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- "/users"\n- "/users/{userId}"\n- "/articles/{articleId}/comments"\n- "/attachmentFiles"\n- "/orders/{orderId}/items/{itemId}"\n\nInvalid examples:\n\n- "\'/users\'" (contains quotes)\n- "/user profile" (contains space)\n- "/users/[userId]" (wrong bracket format)\n- "/admin/users" (role prefix)\n- "/api/v1/users" (API prefix)',
|
|
15521
|
+
type: "string",
|
|
15522
|
+
pattern: "^\\/[a-zA-Z0-9\\/_{}.-]*$"
|
|
15487
15523
|
},
|
|
15488
15524
|
method: {
|
|
15489
15525
|
description: 'HTTP method of the API operation.\n\n**IMPORTANT**: Methods must be written in lowercase only (e.g., "get",\nnot "GET").\n\nNote that, if the API operation has {@link requestBody}, method must not\nbe `get`.\n\nAlso, even though the API operation has been designed to only get\ninformation, but it needs complicated request information, it must be\ndefined as `patch` method with {@link requestBody} data specification.\n\n- `get`: get information\n- `patch`: get information with complicated request data\n ({@link requestBody})\n- `post`: create new record\n- `put`: update existing record\n- `delete`: remove record',
|
|
@@ -15498,8 +15534,9 @@ const collection$l = {
|
|
|
15498
15534
|
type: "object",
|
|
15499
15535
|
properties: {
|
|
15500
15536
|
name: {
|
|
15501
|
-
description: "Identifier name of the path parameter.\n\nThis name must match exactly with the parameter name in the route path.\nIt must be corresponded to the\n{@link AutoBeOpenApi.IOperation.path API operation path}.\n\nMUST use camelCase naming convention
|
|
15502
|
-
type: "string"
|
|
15537
|
+
description: "Identifier name of the path parameter.\n\nThis name must match exactly with the parameter name in the route path.\nIt must be corresponded to the\n{@link AutoBeOpenApi.IOperation.path API operation path}.\n\nMUST use camelCase naming convention.",
|
|
15538
|
+
type: "string",
|
|
15539
|
+
pattern: "^[a-z][a-zA-Z0-9]*$"
|
|
15503
15540
|
},
|
|
15504
15541
|
description: {
|
|
15505
15542
|
description: "Description about the path parameter.\n\nMake short, concise and clear description about the path parameter.\n\n> MUST be written in English. Never use other languages.",
|
|
@@ -15547,8 +15584,9 @@ const collection$l = {
|
|
|
15547
15584
|
type: "number"
|
|
15548
15585
|
},
|
|
15549
15586
|
multipleOf: {
|
|
15550
|
-
description: "Multiple of value restriction
|
|
15551
|
-
type: "number"
|
|
15587
|
+
description: "Multiple of value restriction.",
|
|
15588
|
+
type: "number",
|
|
15589
|
+
exclusiveMinimum: 0
|
|
15552
15590
|
},
|
|
15553
15591
|
type: {
|
|
15554
15592
|
description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
|
|
@@ -15579,8 +15617,9 @@ const collection$l = {
|
|
|
15579
15617
|
type: "number"
|
|
15580
15618
|
},
|
|
15581
15619
|
multipleOf: {
|
|
15582
|
-
description: "Multiple of value restriction
|
|
15583
|
-
type: "integer"
|
|
15620
|
+
description: "Multiple of value restriction.",
|
|
15621
|
+
type: "integer",
|
|
15622
|
+
exclusiveMinimum: 0
|
|
15584
15623
|
},
|
|
15585
15624
|
type: {
|
|
15586
15625
|
description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
|
|
@@ -15608,12 +15647,14 @@ const collection$l = {
|
|
|
15608
15647
|
type: "string"
|
|
15609
15648
|
},
|
|
15610
15649
|
minLength: {
|
|
15611
|
-
description: "Minimum length restriction
|
|
15612
|
-
type: "integer"
|
|
15650
|
+
description: "Minimum length restriction.",
|
|
15651
|
+
type: "integer",
|
|
15652
|
+
minimum: 0
|
|
15613
15653
|
},
|
|
15614
15654
|
maxLength: {
|
|
15615
|
-
description: "Maximum length restriction
|
|
15616
|
-
type: "integer"
|
|
15655
|
+
description: "Maximum length restriction.",
|
|
15656
|
+
type: "integer",
|
|
15657
|
+
minimum: 0
|
|
15617
15658
|
},
|
|
15618
15659
|
type: {
|
|
15619
15660
|
description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
|
|
@@ -15673,8 +15714,9 @@ const collection$l = {
|
|
|
15673
15714
|
type: "object",
|
|
15674
15715
|
properties: {
|
|
15675
15716
|
path: {
|
|
15676
|
-
description: 'HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- "/users"\n- "/users/{userId}"\n- "/articles/{articleId}/comments"\n- "/attachmentFiles"\n- "/orders/{orderId}/items/{itemId}"\n\nInvalid examples:\n\n- "\'/users\'" (contains quotes)\n- "/user profile" (contains space)\n- "/users/[userId]" (wrong bracket format)\n- "/admin/users" (role prefix)\n- "/api/v1/users" (API prefix)
|
|
15677
|
-
type: "string"
|
|
15717
|
+
description: 'HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- "/users"\n- "/users/{userId}"\n- "/articles/{articleId}/comments"\n- "/attachmentFiles"\n- "/orders/{orderId}/items/{itemId}"\n\nInvalid examples:\n\n- "\'/users\'" (contains quotes)\n- "/user profile" (contains space)\n- "/users/[userId]" (wrong bracket format)\n- "/admin/users" (role prefix)\n- "/api/v1/users" (API prefix)',
|
|
15718
|
+
type: "string",
|
|
15719
|
+
pattern: "^\\/[a-zA-Z0-9\\/_{}.-]*$"
|
|
15678
15720
|
},
|
|
15679
15721
|
method: {
|
|
15680
15722
|
description: 'HTTP method of the API operation.\n\n**IMPORTANT**: Methods must be written in lowercase only (e.g., "get",\nnot "GET").\n\nNote that, if the API operation has {@link requestBody}, method must not\nbe `get`.\n\nAlso, even though the API operation has been designed to only get\ninformation, but it needs complicated request information, it must be\ndefined as `patch` method with {@link requestBody} data specification.\n\n- `get`: get information\n- `patch`: get information with complicated request data\n ({@link requestBody})\n- `post`: create new record\n- `put`: update existing record\n- `delete`: remove record',
|
|
@@ -17745,20 +17787,23 @@ const collection$k = {
|
|
|
17745
17787
|
} ]
|
|
17746
17788
|
},
|
|
17747
17789
|
name: {
|
|
17748
|
-
description: 'Functional name of the API endpoint.\n\nThis is a semantic identifier that represents the primary function or\npurpose of the API endpoint. It serves as a canonical name that can be\nused for code generation, SDK method names, and internal references.\n\n## Reserved Word Restrictions\n\nCRITICAL: The name MUST NOT be a TypeScript/JavaScript reserved word, as\nit will be used as a class method name in generated code. Avoid names\nlike:\n\n- `delete`, `for`, `if`, `else`, `while`, `do`, `switch`, `case`, `break`\n- `continue`, `function`, `return`, `with`, `in`, `of`, `instanceof`\n- `typeof`, `void`, `var`, `let`, `const`, `class`, `extends`, `import`\n- `export`, `default`, `try`, `catch`, `finally`, `throw`, `new`\n- `super`, `this`, `null`, `true`, `false`, `async`, `await`\n- `yield`, `static`, `private`, `protected`, `public`, `implements`\n- `interface`, `package`, `enum`, `debugger`\n\nInstead, use alternative names for these operations:\n\n- Use `erase` instead of `delete`\n- Use `iterate` instead of `for`\n- Use `when` instead of `if`\n- Use `cls` instead of `class`\n\n## Standard Endpoint Names\n\nUse these conventional names based on the endpoint\'s primary function:\n\n- **`index`**: List/search operations that return multiple entities\n\n - Typically used with PATCH method for complex queries\n - Example: `PATCH /users` → `name: "index"`\n- **`at`**: Retrieve a specific entity by identifier\n\n - Typically used with GET method on single resource\n - Example: `GET /users/{userId}` → `name: "at"`\n- **`create`**: Create a new entity\n\n - Typically used with POST method\n - Example: `POST /users` → `name: "create"`\n- **`update`**: Update an existing entity\n\n - Typically used with PUT method\n - Example: `PUT /users/{userId}` → `name: "update"`\n- **`erase`**: Delete/remove an entity (NOT `delete` - reserved word!)\n\n - Typically used with DELETE method\n - Example: `DELETE /users/{userId}` → `name: "erase"`\n\n## Custom Endpoint Names\n\nFor specialized operations beyond basic CRUD, use descriptive verbs:\n\n- **`activate`**: Enable or turn on a feature/entity\n- **`deactivate`**: Disable or turn off a feature/entity\n- **`approve`**: Approve a request or entity\n- **`reject`**: Reject a request or entity\n- **`publish`**: Make content publicly available\n- **`archive`**: Move to archived state\n- **`restore`**: Restore from archived/deleted state\n- **`duplicate`**: Create a copy of an entity\n- **`transfer`**: Move ownership or change assignment\n- **`validate`**: Validate data or state\n- **`process`**: Execute a business process or workflow\n- **`export`**: Generate downloadable data\n- **`import`**: Process uploaded data\n\n## Naming Guidelines\n\n- MUST use camelCase naming convention\n- Use singular verb forms\n- Be concise but descriptive\n- Avoid abbreviations unless widely understood\n- Ensure the name clearly represents the endpoint\'s primary action\n- For nested resources, focus on the action rather than hierarchy\n- NEVER use JavaScript/TypeScript reserved words\n\nValid Examples:\n\n- `index`, `create`, `update`, `erase` (single word)\n- `updatePassword`, `cancelOrder`, `publishArticle` (camelCase)\n- `validateEmail`, `generateReport`, `exportData` (camelCase)\n\nInvalid Examples:\n\n- `update_password` (snake_case not allowed)\n- `UpdatePassword` (PascalCase not allowed)\n- `update-password` (kebab-case not allowed)\n\nPath to Name Examples:\n\n- `GET /shopping/orders/{orderId}/items` → `name: "index"` (lists items)\n- `POST /shopping/orders/{orderId}/cancel` → `name: "cancel"`\n- `PUT /users/{userId}/password` → `name: "updatePassword"`\n\n## Uniqueness Rule\n\nThe `name` must be unique within the API\'s accessor namespace. The\naccessor is formed by combining the path segments (excluding parameters)\nwith the operation name.\n\nAccessor formation:\n\n1. Extract non-parameter segments from the path (remove `{...}` parts)\n2. Join segments with dots\n3. Append the operation name\n\nExamples:\n\n- Path: `/shopping/sale/{saleId}/review/{reviewId}`, Name: `at` → Accessor:\n `shopping.sale.review.at`\n- Path: `/users/{userId}/posts`, Name: `index` → Accessor:\n `users.posts.index`\n- Path: `/auth/login`, Name: `signIn` → Accessor: `auth.login.signIn`\n\nEach accessor must be globally unique across the entire API. This ensures\noperations can be uniquely identified in generated SDKs and prevents\nnaming conflicts
|
|
17749
|
-
type: "string"
|
|
17790
|
+
description: 'Functional name of the API endpoint.\n\nThis is a semantic identifier that represents the primary function or\npurpose of the API endpoint. It serves as a canonical name that can be\nused for code generation, SDK method names, and internal references.\n\n## Reserved Word Restrictions\n\nCRITICAL: The name MUST NOT be a TypeScript/JavaScript reserved word, as\nit will be used as a class method name in generated code. Avoid names\nlike:\n\n- `delete`, `for`, `if`, `else`, `while`, `do`, `switch`, `case`, `break`\n- `continue`, `function`, `return`, `with`, `in`, `of`, `instanceof`\n- `typeof`, `void`, `var`, `let`, `const`, `class`, `extends`, `import`\n- `export`, `default`, `try`, `catch`, `finally`, `throw`, `new`\n- `super`, `this`, `null`, `true`, `false`, `async`, `await`\n- `yield`, `static`, `private`, `protected`, `public`, `implements`\n- `interface`, `package`, `enum`, `debugger`\n\nInstead, use alternative names for these operations:\n\n- Use `erase` instead of `delete`\n- Use `iterate` instead of `for`\n- Use `when` instead of `if`\n- Use `cls` instead of `class`\n\n## Standard Endpoint Names\n\nUse these conventional names based on the endpoint\'s primary function:\n\n- **`index`**: List/search operations that return multiple entities\n\n - Typically used with PATCH method for complex queries\n - Example: `PATCH /users` → `name: "index"`\n- **`at`**: Retrieve a specific entity by identifier\n\n - Typically used with GET method on single resource\n - Example: `GET /users/{userId}` → `name: "at"`\n- **`create`**: Create a new entity\n\n - Typically used with POST method\n - Example: `POST /users` → `name: "create"`\n- **`update`**: Update an existing entity\n\n - Typically used with PUT method\n - Example: `PUT /users/{userId}` → `name: "update"`\n- **`erase`**: Delete/remove an entity (NOT `delete` - reserved word!)\n\n - Typically used with DELETE method\n - Example: `DELETE /users/{userId}` → `name: "erase"`\n\n## Custom Endpoint Names\n\nFor specialized operations beyond basic CRUD, use descriptive verbs:\n\n- **`activate`**: Enable or turn on a feature/entity\n- **`deactivate`**: Disable or turn off a feature/entity\n- **`approve`**: Approve a request or entity\n- **`reject`**: Reject a request or entity\n- **`publish`**: Make content publicly available\n- **`archive`**: Move to archived state\n- **`restore`**: Restore from archived/deleted state\n- **`duplicate`**: Create a copy of an entity\n- **`transfer`**: Move ownership or change assignment\n- **`validate`**: Validate data or state\n- **`process`**: Execute a business process or workflow\n- **`export`**: Generate downloadable data\n- **`import`**: Process uploaded data\n\n## Naming Guidelines\n\n- MUST use camelCase naming convention\n- Use singular verb forms\n- Be concise but descriptive\n- Avoid abbreviations unless widely understood\n- Ensure the name clearly represents the endpoint\'s primary action\n- For nested resources, focus on the action rather than hierarchy\n- NEVER use JavaScript/TypeScript reserved words\n\nValid Examples:\n\n- `index`, `create`, `update`, `erase` (single word)\n- `updatePassword`, `cancelOrder`, `publishArticle` (camelCase)\n- `validateEmail`, `generateReport`, `exportData` (camelCase)\n\nInvalid Examples:\n\n- `update_password` (snake_case not allowed)\n- `UpdatePassword` (PascalCase not allowed)\n- `update-password` (kebab-case not allowed)\n\nPath to Name Examples:\n\n- `GET /shopping/orders/{orderId}/items` → `name: "index"` (lists items)\n- `POST /shopping/orders/{orderId}/cancel` → `name: "cancel"`\n- `PUT /users/{userId}/password` → `name: "updatePassword"`\n\n## Uniqueness Rule\n\nThe `name` must be unique within the API\'s accessor namespace. The\naccessor is formed by combining the path segments (excluding parameters)\nwith the operation name.\n\nAccessor formation:\n\n1. Extract non-parameter segments from the path (remove `{...}` parts)\n2. Join segments with dots\n3. Append the operation name\n\nExamples:\n\n- Path: `/shopping/sale/{saleId}/review/{reviewId}`, Name: `at` → Accessor:\n `shopping.sale.review.at`\n- Path: `/users/{userId}/posts`, Name: `index` → Accessor:\n `users.posts.index`\n- Path: `/auth/login`, Name: `signIn` → Accessor: `auth.login.signIn`\n\nEach accessor must be globally unique across the entire API. This ensures\noperations can be uniquely identified in generated SDKs and prevents\nnaming conflicts.',
|
|
17791
|
+
type: "string",
|
|
17792
|
+
pattern: "^[a-z][a-zA-Z0-9]*$"
|
|
17750
17793
|
},
|
|
17751
17794
|
authorizationActors: {
|
|
17752
17795
|
description: 'Authorization actors required to access this API operation.\n\nThis field specifies which user actors are allowed to access this\nendpoint. Multiple actors can be specified to allow different types of\nusers to access the same endpoint.\n\n## ⚠️ CRITICAL: Actor Multiplication Effect\n\n**EACH ACTOR IN THIS ARRAY GENERATES A SEPARATE ENDPOINT**\n\n- If you specify `["admin", "moderator", "member"]`, this creates 3\n separate endpoints\n- Total generated endpoints = operations × average actors.length\n- Example: 100 operations with 3 actors each = 300 actual endpoints\n\n## 🔴 AVOID OVER-GENERATION\n\n**DO NOT create actor-specific endpoints when a public endpoint would\nsuffice:**\n\n- ❌ BAD: Separate GET endpoints for admin, member, moderator to view the\n same public data\n- ✅ GOOD: Single public endpoint `[]` with actor-based filtering in business\n logic\n\n**DO NOT enumerate all possible actors when the Prisma schema uses a\nsingle User table:**\n\n- If Prisma has a User table with role/permission fields, you likely only\n need `["user"]`\n- Avoid listing `["admin", "seller", "buyer", "moderator", ...]`\n unnecessarily\n- The actual actor checking happens in business logic, not at the endpoint\n level\n\n## Naming Convention\n\nDO: Use camelCase for all actor names.\n\n## Important Guidelines\n\n- Set to empty array `[]` for public endpoints that require no\n authentication\n- Set to array with actor strings for actor-restricted endpoints\n- **MINIMIZE the number of actors per endpoint to prevent explosion**\n- Consider if the endpoint can be public with actor-based filtering instead\n- The actor names match exactly with the user type/actor defined in the\n database\n- This will be used by the Realize Agent to generate appropriate decorator\n and authorization logic in the provider functions\n- The controller will apply the corresponding authentication decorator\n based on these actors\n\n## Examples\n\n- `[]` - Public endpoint, no authentication required (PREFERRED for read\n operations)\n- `["user"]` - Any authenticated user can access (PREFERRED for\n user-specific operations)\n- `["admin"]` - Only admin users can access (USE SPARINGLY)\n- `["admin", "moderator"]` - Both admin and moderator users can access\n (AVOID if possible)\n- `["seller"]` - Only seller users can access (ONLY if Seller is a separate\n table)\n\n## Best Practices\n\n1. **Start with public `[]` for all read operations** unless sensitive data\n is involved\n2. **Use single actor `["user"]` for authenticated operations** and handle\n permissions in business logic\n3. **Only use multiple actors when absolutely necessary** for different\n business logic paths\n4. **Remember: Fewer actors = Fewer endpoints = Better performance and\n maintainability**\n\nNote: The actual authentication/authorization implementation will be\nhandled by decorators at the controller level, and the provider function\nwill receive the authenticated user object with the appropriate type.',
|
|
17753
17796
|
type: "array",
|
|
17754
17797
|
items: {
|
|
17755
|
-
|
|
17756
|
-
|
|
17798
|
+
type: "string",
|
|
17799
|
+
pattern: "^[a-z][a-zA-Z0-9]*$",
|
|
17800
|
+
minLength: 1
|
|
17757
17801
|
}
|
|
17758
17802
|
},
|
|
17759
17803
|
path: {
|
|
17760
|
-
description: 'HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- "/users"\n- "/users/{userId}"\n- "/articles/{articleId}/comments"\n- "/attachmentFiles"\n- "/orders/{orderId}/items/{itemId}"\n\nInvalid examples:\n\n- "\'/users\'" (contains quotes)\n- "/user profile" (contains space)\n- "/users/[userId]" (wrong bracket format)\n- "/admin/users" (role prefix)\n- "/api/v1/users" (API prefix)
|
|
17761
|
-
type: "string"
|
|
17804
|
+
description: 'HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- "/users"\n- "/users/{userId}"\n- "/articles/{articleId}/comments"\n- "/attachmentFiles"\n- "/orders/{orderId}/items/{itemId}"\n\nInvalid examples:\n\n- "\'/users\'" (contains quotes)\n- "/user profile" (contains space)\n- "/users/[userId]" (wrong bracket format)\n- "/admin/users" (role prefix)\n- "/api/v1/users" (API prefix)',
|
|
17805
|
+
type: "string",
|
|
17806
|
+
pattern: "^\\/[a-zA-Z0-9\\/_{}.-]*$"
|
|
17762
17807
|
},
|
|
17763
17808
|
method: {
|
|
17764
17809
|
description: 'HTTP method of the API operation.\n\n**IMPORTANT**: Methods must be written in lowercase only (e.g., "get",\nnot "GET").\n\nNote that, if the API operation has {@link requestBody}, method must not\nbe `get`.\n\nAlso, even though the API operation has been designed to only get\ninformation, but it needs complicated request information, it must be\ndefined as `patch` method with {@link requestBody} data specification.\n\n- `get`: get information\n- `patch`: get information with complicated request data\n ({@link requestBody})\n- `post`: create new record\n- `put`: update existing record\n- `delete`: remove record',
|
|
@@ -17773,8 +17818,9 @@ const collection$k = {
|
|
|
17773
17818
|
type: "object",
|
|
17774
17819
|
properties: {
|
|
17775
17820
|
name: {
|
|
17776
|
-
description: "Identifier name of the path parameter.\n\nThis name must match exactly with the parameter name in the route path.\nIt must be corresponded to the\n{@link AutoBeOpenApi.IOperation.path API operation path}.\n\nMUST use camelCase naming convention
|
|
17777
|
-
type: "string"
|
|
17821
|
+
description: "Identifier name of the path parameter.\n\nThis name must match exactly with the parameter name in the route path.\nIt must be corresponded to the\n{@link AutoBeOpenApi.IOperation.path API operation path}.\n\nMUST use camelCase naming convention.",
|
|
17822
|
+
type: "string",
|
|
17823
|
+
pattern: "^[a-z][a-zA-Z0-9]*$"
|
|
17778
17824
|
},
|
|
17779
17825
|
description: {
|
|
17780
17826
|
description: "Description about the path parameter.\n\nMake short, concise and clear description about the path parameter.\n\n> MUST be written in English. Never use other languages.",
|
|
@@ -17822,8 +17868,9 @@ const collection$k = {
|
|
|
17822
17868
|
type: "number"
|
|
17823
17869
|
},
|
|
17824
17870
|
multipleOf: {
|
|
17825
|
-
description: "Multiple of value restriction
|
|
17826
|
-
type: "number"
|
|
17871
|
+
description: "Multiple of value restriction.",
|
|
17872
|
+
type: "number",
|
|
17873
|
+
exclusiveMinimum: 0
|
|
17827
17874
|
},
|
|
17828
17875
|
type: {
|
|
17829
17876
|
description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
|
|
@@ -17854,8 +17901,9 @@ const collection$k = {
|
|
|
17854
17901
|
type: "number"
|
|
17855
17902
|
},
|
|
17856
17903
|
multipleOf: {
|
|
17857
|
-
description: "Multiple of value restriction
|
|
17858
|
-
type: "integer"
|
|
17904
|
+
description: "Multiple of value restriction.",
|
|
17905
|
+
type: "integer",
|
|
17906
|
+
exclusiveMinimum: 0
|
|
17859
17907
|
},
|
|
17860
17908
|
type: {
|
|
17861
17909
|
description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
|
|
@@ -17883,12 +17931,14 @@ const collection$k = {
|
|
|
17883
17931
|
type: "string"
|
|
17884
17932
|
},
|
|
17885
17933
|
minLength: {
|
|
17886
|
-
description: "Minimum length restriction
|
|
17887
|
-
type: "integer"
|
|
17934
|
+
description: "Minimum length restriction.",
|
|
17935
|
+
type: "integer",
|
|
17936
|
+
minimum: 0
|
|
17888
17937
|
},
|
|
17889
17938
|
maxLength: {
|
|
17890
|
-
description: "Maximum length restriction
|
|
17891
|
-
type: "integer"
|
|
17939
|
+
description: "Maximum length restriction.",
|
|
17940
|
+
type: "integer",
|
|
17941
|
+
minimum: 0
|
|
17892
17942
|
},
|
|
17893
17943
|
type: {
|
|
17894
17944
|
description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
|
|
@@ -19056,8 +19106,9 @@ const collection$j = {
|
|
|
19056
19106
|
type: "object",
|
|
19057
19107
|
properties: {
|
|
19058
19108
|
path: {
|
|
19059
|
-
description: 'HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- "/users"\n- "/users/{userId}"\n- "/articles/{articleId}/comments"\n- "/attachmentFiles"\n- "/orders/{orderId}/items/{itemId}"\n\nInvalid examples:\n\n- "\'/users\'" (contains quotes)\n- "/user profile" (contains space)\n- "/users/[userId]" (wrong bracket format)\n- "/admin/users" (role prefix)\n- "/api/v1/users" (API prefix)
|
|
19060
|
-
type: "string"
|
|
19109
|
+
description: 'HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- "/users"\n- "/users/{userId}"\n- "/articles/{articleId}/comments"\n- "/attachmentFiles"\n- "/orders/{orderId}/items/{itemId}"\n\nInvalid examples:\n\n- "\'/users\'" (contains quotes)\n- "/user profile" (contains space)\n- "/users/[userId]" (wrong bracket format)\n- "/admin/users" (role prefix)\n- "/api/v1/users" (API prefix)',
|
|
19110
|
+
type: "string",
|
|
19111
|
+
pattern: "^\\/[a-zA-Z0-9\\/_{}.-]*$"
|
|
19061
19112
|
},
|
|
19062
19113
|
method: {
|
|
19063
19114
|
description: 'HTTP method of the API operation.\n\n**IMPORTANT**: Methods must be written in lowercase only (e.g., "get",\nnot "GET").\n\nNote that, if the API operation has {@link requestBody}, method must not\nbe `get`.\n\nAlso, even though the API operation has been designed to only get\ninformation, but it needs complicated request information, it must be\ndefined as `patch` method with {@link requestBody} data specification.\n\n- `get`: get information\n- `patch`: get information with complicated request data\n ({@link requestBody})\n- `post`: create new record\n- `put`: update existing record\n- `delete`: remove record',
|
|
@@ -23468,8 +23519,9 @@ const collection$h = {
|
|
|
23468
23519
|
type: "number"
|
|
23469
23520
|
},
|
|
23470
23521
|
multipleOf: {
|
|
23471
|
-
description: "Multiple of value restriction
|
|
23472
|
-
type: "integer"
|
|
23522
|
+
description: "Multiple of value restriction.",
|
|
23523
|
+
type: "integer",
|
|
23524
|
+
exclusiveMinimum: 0
|
|
23473
23525
|
},
|
|
23474
23526
|
type: {
|
|
23475
23527
|
description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
|
|
@@ -23504,8 +23556,9 @@ const collection$h = {
|
|
|
23504
23556
|
type: "number"
|
|
23505
23557
|
},
|
|
23506
23558
|
multipleOf: {
|
|
23507
|
-
description: "Multiple of value restriction
|
|
23508
|
-
type: "number"
|
|
23559
|
+
description: "Multiple of value restriction.",
|
|
23560
|
+
type: "number",
|
|
23561
|
+
exclusiveMinimum: 0
|
|
23509
23562
|
},
|
|
23510
23563
|
type: {
|
|
23511
23564
|
description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
|
|
@@ -23537,12 +23590,14 @@ const collection$h = {
|
|
|
23537
23590
|
type: "string"
|
|
23538
23591
|
},
|
|
23539
23592
|
minLength: {
|
|
23540
|
-
description: "Minimum length restriction
|
|
23541
|
-
type: "integer"
|
|
23593
|
+
description: "Minimum length restriction.",
|
|
23594
|
+
type: "integer",
|
|
23595
|
+
minimum: 0
|
|
23542
23596
|
},
|
|
23543
23597
|
maxLength: {
|
|
23544
|
-
description: "Maximum length restriction
|
|
23545
|
-
type: "integer"
|
|
23598
|
+
description: "Maximum length restriction.",
|
|
23599
|
+
type: "integer",
|
|
23600
|
+
minimum: 0
|
|
23546
23601
|
},
|
|
23547
23602
|
type: {
|
|
23548
23603
|
description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
|
|
@@ -23569,12 +23624,14 @@ const collection$h = {
|
|
|
23569
23624
|
type: "boolean"
|
|
23570
23625
|
},
|
|
23571
23626
|
minItems: {
|
|
23572
|
-
description: "Minimum items restriction.\n\nRestriction of minimum number of items in the array
|
|
23573
|
-
type: "integer"
|
|
23627
|
+
description: "Minimum items restriction.\n\nRestriction of minimum number of items in the array.",
|
|
23628
|
+
type: "integer",
|
|
23629
|
+
minimum: 0
|
|
23574
23630
|
},
|
|
23575
23631
|
maxItems: {
|
|
23576
|
-
description: "Maximum items restriction.\n\nRestriction of maximum number of items in the array
|
|
23577
|
-
type: "integer"
|
|
23632
|
+
description: "Maximum items restriction.\n\nRestriction of maximum number of items in the array.",
|
|
23633
|
+
type: "integer",
|
|
23634
|
+
minimum: 0
|
|
23578
23635
|
},
|
|
23579
23636
|
type: {
|
|
23580
23637
|
description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
|
|
@@ -23633,8 +23690,9 @@ const collection$h = {
|
|
|
23633
23690
|
type: "number"
|
|
23634
23691
|
},
|
|
23635
23692
|
multipleOf: {
|
|
23636
|
-
description: "Multiple of value restriction
|
|
23637
|
-
type: "integer"
|
|
23693
|
+
description: "Multiple of value restriction.",
|
|
23694
|
+
type: "integer",
|
|
23695
|
+
exclusiveMinimum: 0
|
|
23638
23696
|
},
|
|
23639
23697
|
type: {
|
|
23640
23698
|
description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
|
|
@@ -23665,8 +23723,9 @@ const collection$h = {
|
|
|
23665
23723
|
type: "number"
|
|
23666
23724
|
},
|
|
23667
23725
|
multipleOf: {
|
|
23668
|
-
description: "Multiple of value restriction
|
|
23669
|
-
type: "number"
|
|
23726
|
+
description: "Multiple of value restriction.",
|
|
23727
|
+
type: "number",
|
|
23728
|
+
exclusiveMinimum: 0
|
|
23670
23729
|
},
|
|
23671
23730
|
type: {
|
|
23672
23731
|
description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
|
|
@@ -23694,12 +23753,14 @@ const collection$h = {
|
|
|
23694
23753
|
type: "string"
|
|
23695
23754
|
},
|
|
23696
23755
|
minLength: {
|
|
23697
|
-
description: "Minimum length restriction
|
|
23698
|
-
type: "integer"
|
|
23756
|
+
description: "Minimum length restriction.",
|
|
23757
|
+
type: "integer",
|
|
23758
|
+
minimum: 0
|
|
23699
23759
|
},
|
|
23700
23760
|
maxLength: {
|
|
23701
|
-
description: "Maximum length restriction
|
|
23702
|
-
type: "integer"
|
|
23761
|
+
description: "Maximum length restriction.",
|
|
23762
|
+
type: "integer",
|
|
23763
|
+
minimum: 0
|
|
23703
23764
|
},
|
|
23704
23765
|
type: {
|
|
23705
23766
|
description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
|
|
@@ -23751,12 +23812,14 @@ const collection$h = {
|
|
|
23751
23812
|
type: "boolean"
|
|
23752
23813
|
},
|
|
23753
23814
|
minItems: {
|
|
23754
|
-
description: "Minimum items restriction.\n\nRestriction of minimum number of items in the array
|
|
23755
|
-
type: "integer"
|
|
23815
|
+
description: "Minimum items restriction.\n\nRestriction of minimum number of items in the array.",
|
|
23816
|
+
type: "integer",
|
|
23817
|
+
minimum: 0
|
|
23756
23818
|
},
|
|
23757
23819
|
maxItems: {
|
|
23758
|
-
description: "Maximum items restriction.\n\nRestriction of maximum number of items in the array
|
|
23759
|
-
type: "integer"
|
|
23820
|
+
description: "Maximum items restriction.\n\nRestriction of maximum number of items in the array.",
|
|
23821
|
+
type: "integer",
|
|
23822
|
+
minimum: 0
|
|
23760
23823
|
},
|
|
23761
23824
|
type: {
|
|
23762
23825
|
description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
|
|
@@ -28384,8 +28447,9 @@ const collection$g = {
|
|
|
28384
28447
|
type: "number"
|
|
28385
28448
|
},
|
|
28386
28449
|
multipleOf: {
|
|
28387
|
-
description: "Multiple of value restriction
|
|
28388
|
-
type: "integer"
|
|
28450
|
+
description: "Multiple of value restriction.",
|
|
28451
|
+
type: "integer",
|
|
28452
|
+
exclusiveMinimum: 0
|
|
28389
28453
|
},
|
|
28390
28454
|
type: {
|
|
28391
28455
|
description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
|
|
@@ -28420,8 +28484,9 @@ const collection$g = {
|
|
|
28420
28484
|
type: "number"
|
|
28421
28485
|
},
|
|
28422
28486
|
multipleOf: {
|
|
28423
|
-
description: "Multiple of value restriction
|
|
28424
|
-
type: "number"
|
|
28487
|
+
description: "Multiple of value restriction.",
|
|
28488
|
+
type: "number",
|
|
28489
|
+
exclusiveMinimum: 0
|
|
28425
28490
|
},
|
|
28426
28491
|
type: {
|
|
28427
28492
|
description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
|
|
@@ -28453,12 +28518,14 @@ const collection$g = {
|
|
|
28453
28518
|
type: "string"
|
|
28454
28519
|
},
|
|
28455
28520
|
minLength: {
|
|
28456
|
-
description: "Minimum length restriction
|
|
28457
|
-
type: "integer"
|
|
28521
|
+
description: "Minimum length restriction.",
|
|
28522
|
+
type: "integer",
|
|
28523
|
+
minimum: 0
|
|
28458
28524
|
},
|
|
28459
28525
|
maxLength: {
|
|
28460
|
-
description: "Maximum length restriction
|
|
28461
|
-
type: "integer"
|
|
28526
|
+
description: "Maximum length restriction.",
|
|
28527
|
+
type: "integer",
|
|
28528
|
+
minimum: 0
|
|
28462
28529
|
},
|
|
28463
28530
|
type: {
|
|
28464
28531
|
description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
|
|
@@ -28485,12 +28552,14 @@ const collection$g = {
|
|
|
28485
28552
|
type: "boolean"
|
|
28486
28553
|
},
|
|
28487
28554
|
minItems: {
|
|
28488
|
-
description: "Minimum items restriction.\n\nRestriction of minimum number of items in the array
|
|
28489
|
-
type: "integer"
|
|
28555
|
+
description: "Minimum items restriction.\n\nRestriction of minimum number of items in the array.",
|
|
28556
|
+
type: "integer",
|
|
28557
|
+
minimum: 0
|
|
28490
28558
|
},
|
|
28491
28559
|
maxItems: {
|
|
28492
|
-
description: "Maximum items restriction.\n\nRestriction of maximum number of items in the array
|
|
28493
|
-
type: "integer"
|
|
28560
|
+
description: "Maximum items restriction.\n\nRestriction of maximum number of items in the array.",
|
|
28561
|
+
type: "integer",
|
|
28562
|
+
minimum: 0
|
|
28494
28563
|
},
|
|
28495
28564
|
type: {
|
|
28496
28565
|
description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
|
|
@@ -28549,8 +28618,9 @@ const collection$g = {
|
|
|
28549
28618
|
type: "number"
|
|
28550
28619
|
},
|
|
28551
28620
|
multipleOf: {
|
|
28552
|
-
description: "Multiple of value restriction
|
|
28553
|
-
type: "integer"
|
|
28621
|
+
description: "Multiple of value restriction.",
|
|
28622
|
+
type: "integer",
|
|
28623
|
+
exclusiveMinimum: 0
|
|
28554
28624
|
},
|
|
28555
28625
|
type: {
|
|
28556
28626
|
description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
|
|
@@ -28581,8 +28651,9 @@ const collection$g = {
|
|
|
28581
28651
|
type: "number"
|
|
28582
28652
|
},
|
|
28583
28653
|
multipleOf: {
|
|
28584
|
-
description: "Multiple of value restriction
|
|
28585
|
-
type: "number"
|
|
28654
|
+
description: "Multiple of value restriction.",
|
|
28655
|
+
type: "number",
|
|
28656
|
+
exclusiveMinimum: 0
|
|
28586
28657
|
},
|
|
28587
28658
|
type: {
|
|
28588
28659
|
description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
|
|
@@ -28610,12 +28681,14 @@ const collection$g = {
|
|
|
28610
28681
|
type: "string"
|
|
28611
28682
|
},
|
|
28612
28683
|
minLength: {
|
|
28613
|
-
description: "Minimum length restriction
|
|
28614
|
-
type: "integer"
|
|
28684
|
+
description: "Minimum length restriction.",
|
|
28685
|
+
type: "integer",
|
|
28686
|
+
minimum: 0
|
|
28615
28687
|
},
|
|
28616
28688
|
maxLength: {
|
|
28617
|
-
description: "Maximum length restriction
|
|
28618
|
-
type: "integer"
|
|
28689
|
+
description: "Maximum length restriction.",
|
|
28690
|
+
type: "integer",
|
|
28691
|
+
minimum: 0
|
|
28619
28692
|
},
|
|
28620
28693
|
type: {
|
|
28621
28694
|
description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
|
|
@@ -28667,12 +28740,14 @@ const collection$g = {
|
|
|
28667
28740
|
type: "boolean"
|
|
28668
28741
|
},
|
|
28669
28742
|
minItems: {
|
|
28670
|
-
description: "Minimum items restriction.\n\nRestriction of minimum number of items in the array
|
|
28671
|
-
type: "integer"
|
|
28743
|
+
description: "Minimum items restriction.\n\nRestriction of minimum number of items in the array.",
|
|
28744
|
+
type: "integer",
|
|
28745
|
+
minimum: 0
|
|
28672
28746
|
},
|
|
28673
28747
|
maxItems: {
|
|
28674
|
-
description: "Maximum items restriction.\n\nRestriction of maximum number of items in the array
|
|
28675
|
-
type: "integer"
|
|
28748
|
+
description: "Maximum items restriction.\n\nRestriction of maximum number of items in the array.",
|
|
28749
|
+
type: "integer",
|
|
28750
|
+
minimum: 0
|
|
28676
28751
|
},
|
|
28677
28752
|
type: {
|
|
28678
28753
|
description: 'Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n"boolean", "integer", "number", "string", "array", "object", or\n"null".\n\n❌ INCORRECT: type: ["string", "null"] // This is WRONG! ✅ CORRECT:\ntype: "string" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n "oneOf": [{ "type": "string" }, { "type": "null" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.',
|
|
@@ -30229,11 +30304,12 @@ const collection$f = {
|
|
|
30229
30304
|
type: "string"
|
|
30230
30305
|
},
|
|
30231
30306
|
components: {
|
|
30232
|
-
description: 'Array of domain components that group related database tables.\n\nEach component represents a business domain and becomes one Prisma schema\nfile. Common domains include: Actors (users), Sales (products), Orders,\nCarts, etc.\n\n**Example:**\n\n```typescript\n{\n "components": [\n {\n "filename": "schema-02-systematic.prisma",\n "namespace": "Systematic",\n "thinking": "These tables all relate to system configuration and channel management. They form the foundation of the platform.",\n "review": "Considering the relationships, shopping_channel_categories connects channels and sales, but it fundamentally defines channel structure.",\n "rationale": "Grouping all system configuration tables together provides a clear foundation layer that other domains can reference.",\n "tables": [\n "shopping_channels",\n "shopping_sections",\n "shopping_channel_categories"\n ]\n },\n {\n "filename": "schema-03-actors.prisma",\n "namespace": "Actors",\n "thinking": "All user-related entities should be grouped together as they share authentication and identity patterns.",\n "review": "While customers interact with sales, the customer entity itself is about identity, not transactions.",\n "rationale": "This component groups all actor-related tables to maintain separation between identity management and business transactions.",\n "tables": [\n "shopping_customers",\n "shopping_citizens",\n "shopping_administrators"\n ]\n },\n {\n "filename": "schema-04-sales.prisma",\n "namespace": "Sales",\n "thinking": "Product catalog and sales-related tables belong together as they form the core commerce functionality.",\n "review": "Sales snapshots are integral to the sales domain for tracking product history and price changes.",\n "rationale": "Consolidating all sales-related tables enables coherent management of the entire product lifecycle.",\n "tables": [\n "shopping_sales",\n "shopping_sale_snapshots",\n "shopping_sale_units",\n "shopping_sale_unit_options"\n ]\n }\n ]\n}\n```\n\n**Notes:**\n\n- Table names must follow snake_case convention with domain prefix (e.g.,\n `shopping_customers`)\n- Each component becomes one `.prisma` file containing related models\n- Filename numbering indicates dependency order for schema generation\n- Namespace is used for documentation organization and domain grouping
|
|
30307
|
+
description: 'Array of domain components that group related database tables.\n\nEach component represents a business domain and becomes one Prisma schema\nfile. Common domains include: Actors (users), Sales (products), Orders,\nCarts, etc.\n\n**Example:**\n\n```typescript\n{\n "components": [\n {\n "filename": "schema-02-systematic.prisma",\n "namespace": "Systematic",\n "thinking": "These tables all relate to system configuration and channel management. They form the foundation of the platform.",\n "review": "Considering the relationships, shopping_channel_categories connects channels and sales, but it fundamentally defines channel structure.",\n "rationale": "Grouping all system configuration tables together provides a clear foundation layer that other domains can reference.",\n "tables": [\n "shopping_channels",\n "shopping_sections",\n "shopping_channel_categories"\n ]\n },\n {\n "filename": "schema-03-actors.prisma",\n "namespace": "Actors",\n "thinking": "All user-related entities should be grouped together as they share authentication and identity patterns.",\n "review": "While customers interact with sales, the customer entity itself is about identity, not transactions.",\n "rationale": "This component groups all actor-related tables to maintain separation between identity management and business transactions.",\n "tables": [\n "shopping_customers",\n "shopping_citizens",\n "shopping_administrators"\n ]\n },\n {\n "filename": "schema-04-sales.prisma",\n "namespace": "Sales",\n "thinking": "Product catalog and sales-related tables belong together as they form the core commerce functionality.",\n "review": "Sales snapshots are integral to the sales domain for tracking product history and price changes.",\n "rationale": "Consolidating all sales-related tables enables coherent management of the entire product lifecycle.",\n "tables": [\n "shopping_sales",\n "shopping_sale_snapshots",\n "shopping_sale_units",\n "shopping_sale_unit_options"\n ]\n }\n ]\n}\n```\n\n**Notes:**\n\n- Table names must follow snake_case convention with domain prefix (e.g.,\n `shopping_customers`)\n- Each component becomes one `.prisma` file containing related models\n- Filename numbering indicates dependency order for schema generation\n- Namespace is used for documentation organization and domain grouping',
|
|
30233
30308
|
type: "array",
|
|
30234
30309
|
items: {
|
|
30235
30310
|
$ref: "#/$defs/AutoBePrisma.IComponent"
|
|
30236
|
-
}
|
|
30311
|
+
},
|
|
30312
|
+
minItems: 1
|
|
30237
30313
|
}
|
|
30238
30314
|
},
|
|
30239
30315
|
required: [ "thinking", "review", "decision", "components" ],
|
|
@@ -30244,8 +30320,9 @@ const collection$f = {
|
|
|
30244
30320
|
type: "object",
|
|
30245
30321
|
properties: {
|
|
30246
30322
|
filename: {
|
|
30247
|
-
description: "Target filename for the Prisma schema file containing this component's\ntables.\n\nFollows the naming convention `schema-{number}-{domain}.prisma` where the\nnumber indicates dependency order and domain represents the business\narea
|
|
30248
|
-
type: "string"
|
|
30323
|
+
description: "Target filename for the Prisma schema file containing this component's\ntables.\n\nFollows the naming convention `schema-{number}-{domain}.prisma` where the\nnumber indicates dependency order and domain represents the business\narea.",
|
|
30324
|
+
type: "string",
|
|
30325
|
+
pattern: "^[a-zA-Z0-9._-]+\\.prisma$"
|
|
30249
30326
|
},
|
|
30250
30327
|
namespace: {
|
|
30251
30328
|
description: 'Business domain namespace that groups related models.\n\nUsed in Prisma documentation comments as "@\\namespace directive".\nExamples from uploaded schemas: "Systematic", "Actors", "Sales", "Carts",\n"Orders", "Coupons", "Coins", "Inquiries", "Favorites", "Articles"',
|
|
@@ -30264,12 +30341,13 @@ const collection$f = {
|
|
|
30264
30341
|
type: "string"
|
|
30265
30342
|
},
|
|
30266
30343
|
tables: {
|
|
30267
|
-
description: "Array of table names that will be included in this component's schema\nfile.\n\nContains all database table names that belong to this business domain,\nensuring logical grouping and proper organization of related data\nstructures
|
|
30344
|
+
description: "Array of table names that will be included in this component's schema\nfile.\n\nContains all database table names that belong to this business domain,\nensuring logical grouping and proper organization of related data\nstructures.",
|
|
30268
30345
|
type: "array",
|
|
30269
30346
|
items: {
|
|
30270
|
-
|
|
30271
|
-
|
|
30272
|
-
}
|
|
30347
|
+
type: "string",
|
|
30348
|
+
pattern: "^[a-z][a-z0-9_]*$"
|
|
30349
|
+
},
|
|
30350
|
+
minItems: 1
|
|
30273
30351
|
}
|
|
30274
30352
|
},
|
|
30275
30353
|
required: [ "filename", "namespace", "thinking", "review", "rationale", "tables" ]
|
|
@@ -31685,8 +31763,9 @@ const collection$e = {
|
|
|
31685
31763
|
type: "object",
|
|
31686
31764
|
properties: {
|
|
31687
31765
|
name: {
|
|
31688
|
-
description: 'Name of the Prisma model (database table name).\n\nMUST use snake_case naming convention. Examples: "shopping_customers",\n"shopping_sale_snapshots", "bbs_articles" Materialized views use "mv_"\nprefix: "mv_shopping_sale_last_snapshots"
|
|
31689
|
-
type: "string"
|
|
31766
|
+
description: 'Name of the Prisma model (database table name).\n\nMUST use snake_case naming convention. Examples: "shopping_customers",\n"shopping_sale_snapshots", "bbs_articles" Materialized views use "mv_"\nprefix: "mv_shopping_sale_last_snapshots"',
|
|
31767
|
+
type: "string",
|
|
31768
|
+
pattern: "^[a-z][a-z0-9_]*$"
|
|
31690
31769
|
},
|
|
31691
31770
|
description: {
|
|
31692
31771
|
description: 'Detailed description explaining the business purpose and usage of the\nmodel.\n\nShould include:\n\n- Business context and purpose\n- Key relationships with other models\n- Important behavioral notes or constraints\n- References to related entities using "{@\\link ModelName}" syntax\n\n**IMPORTANT**: Description must be written in English. Example: "Customer\ninformation, but not a person but a **connection** basis..."',
|
|
@@ -31748,8 +31827,9 @@ const collection$e = {
|
|
|
31748
31827
|
type: "object",
|
|
31749
31828
|
properties: {
|
|
31750
31829
|
name: {
|
|
31751
|
-
description: 'Name of the primary key field.\n\nMUST use snake_case naming convention. Consistently named "id" across all\nmodels in the uploaded schemas. Represents the unique identifier for each\nrecord in the table
|
|
31752
|
-
type: "string"
|
|
31830
|
+
description: 'Name of the primary key field.\n\nMUST use snake_case naming convention. Consistently named "id" across all\nmodels in the uploaded schemas. Represents the unique identifier for each\nrecord in the table.',
|
|
31831
|
+
type: "string",
|
|
31832
|
+
pattern: "^[a-z][a-z0-9_]*$"
|
|
31753
31833
|
},
|
|
31754
31834
|
type: {
|
|
31755
31835
|
description: 'Data type of the primary key field.\n\nAlways "uuid" in the uploaded schemas for better distributed system\nsupport and to avoid exposing sequential IDs that could reveal business\ninformation.',
|
|
@@ -31768,8 +31848,9 @@ const collection$e = {
|
|
|
31768
31848
|
type: "object",
|
|
31769
31849
|
properties: {
|
|
31770
31850
|
name: {
|
|
31771
|
-
description: 'Name of the foreign key field.\n\nMUST use snake_case naming convention. Follows convention:\n"{target_model_name_without_prefix}_id" Examples: "shopping_customer_id",\n"bbs_article_id", "attachment_file_id" For self-references: "parent_id"\n(e.g., in hierarchical structures)
|
|
31772
|
-
type: "string"
|
|
31851
|
+
description: 'Name of the foreign key field.\n\nMUST use snake_case naming convention. Follows convention:\n"{target_model_name_without_prefix}_id" Examples: "shopping_customer_id",\n"bbs_article_id", "attachment_file_id" For self-references: "parent_id"\n(e.g., in hierarchical structures)',
|
|
31852
|
+
type: "string",
|
|
31853
|
+
pattern: "^[a-z][a-z0-9_]*$"
|
|
31773
31854
|
},
|
|
31774
31855
|
type: {
|
|
31775
31856
|
description: 'Data type of the foreign key field.\n\nAlways "uuid" to match the primary key type of referenced models. Ensures\nreferential integrity and consistency across the schema.',
|
|
@@ -31800,8 +31881,9 @@ const collection$e = {
|
|
|
31800
31881
|
type: "object",
|
|
31801
31882
|
properties: {
|
|
31802
31883
|
name: {
|
|
31803
|
-
description: 'Name of the relation property in the Prisma model.\n\nThis becomes the property name used to access the related model instance\nthrough the Prisma client. Should be descriptive and reflect the business\nrelationship being modeled.\n\nExamples:\n\n- "customer" for shopping_customer_id field\n- "channel" for shopping_channel_id field\n- "parent" for parent_id field in hierarchical structures\n- "snapshot" for versioning relationships\n- "article" for bbs_article_id field\n\nNaming convention: camelCase, descriptive of the relationship\'s business\nmeaning
|
|
31804
|
-
type: "string"
|
|
31884
|
+
description: 'Name of the relation property in the Prisma model.\n\nThis becomes the property name used to access the related model instance\nthrough the Prisma client. Should be descriptive and reflect the business\nrelationship being modeled.\n\nExamples:\n\n- "customer" for shopping_customer_id field\n- "channel" for shopping_channel_id field\n- "parent" for parent_id field in hierarchical structures\n- "snapshot" for versioning relationships\n- "article" for bbs_article_id field\n\nNaming convention: camelCase, descriptive of the relationship\'s business\nmeaning',
|
|
31885
|
+
type: "string",
|
|
31886
|
+
pattern: "^[a-z][a-zA-Z0-9]*$"
|
|
31805
31887
|
},
|
|
31806
31888
|
targetModel: {
|
|
31807
31889
|
description: 'Name of the target model being referenced by this relation.\n\nMust exactly match an existing model name in the schema. This is used by\nPrisma to establish the foreign key constraint and generate the\nappropriate relation mapping.\n\nExamples:\n\n- "shopping_customers" for customer relationships\n- "shopping_channels" for channel relationships\n- "bbs_articles" for article relationships\n- "attachment_files" for file attachments\n\nThe target model should exist in the same schema or be accessible through\nthe Prisma schema configuration.',
|
|
@@ -31815,8 +31897,9 @@ const collection$e = {
|
|
|
31815
31897
|
type: "object",
|
|
31816
31898
|
properties: {
|
|
31817
31899
|
name: {
|
|
31818
|
-
description: "Name of the field in the database table.\n\nMUST use snake_case naming convention. Common patterns from uploaded\nschemas:\n\n- Timestamps: created_at, updated_at, deleted_at, opened_at, closed_at\n- Identifiers: code, name, nickname, title\n- Business data: value, quantity, price, volume, balance\n- Flags: primary, required, exclusive, secret, multiplicative
|
|
31819
|
-
type: "string"
|
|
31900
|
+
description: "Name of the field in the database table.\n\nMUST use snake_case naming convention. Common patterns from uploaded\nschemas:\n\n- Timestamps: created_at, updated_at, deleted_at, opened_at, closed_at\n- Identifiers: code, name, nickname, title\n- Business data: value, quantity, price, volume, balance\n- Flags: primary, required, exclusive, secret, multiplicative",
|
|
31901
|
+
type: "string",
|
|
31902
|
+
pattern: "^[a-z][a-z0-9_]*$"
|
|
31820
31903
|
},
|
|
31821
31904
|
type: {
|
|
31822
31905
|
description: "Data type of the field for Prisma schema generation.\n\nMaps to appropriate Prisma/PostgreSQL types:\n\n- Boolean: Boolean flags and yes/no values\n- Int: Integer numbers, quantities, sequences\n- Double: Decimal numbers, prices, monetary values, percentages\n- String: Text data, names, descriptions, codes\n- Uri: URL/URI fields for links and references\n- Uuid: UUID fields (for non-foreign-key UUIDs)\n- Datetime: Timestamp fields with date and time",
|
|
@@ -31839,11 +31922,13 @@ const collection$e = {
|
|
|
31839
31922
|
type: "object",
|
|
31840
31923
|
properties: {
|
|
31841
31924
|
fieldNames: {
|
|
31842
|
-
description: 'Array of field names that together form the unique constraint.\n\nCan be single field (e.g., ["email"]) or composite (e.g., ["channel_id",\n"code"]). All field names must exist in the model. Order matters for\ncomposite indexes. Examples: ["code"], ["shopping_channel_id",\n"nickname"], ["email"]
|
|
31925
|
+
description: 'Array of field names that together form the unique constraint.\n\nCan be single field (e.g., ["email"]) or composite (e.g., ["channel_id",\n"code"]). All field names must exist in the model. Order matters for\ncomposite indexes. Examples: ["code"], ["shopping_channel_id",\n"nickname"], ["email"]',
|
|
31843
31926
|
type: "array",
|
|
31844
31927
|
items: {
|
|
31845
31928
|
type: "string"
|
|
31846
|
-
}
|
|
31929
|
+
},
|
|
31930
|
+
minItems: 1,
|
|
31931
|
+
uniqueItems: true
|
|
31847
31932
|
},
|
|
31848
31933
|
unique: {
|
|
31849
31934
|
description: 'Explicit marker indicating this is a unique index.\n\nAlways true to distinguish from regular indexes. Used by code generator\nto emit "@@unique" directive in Prisma schema instead of "@@index".',
|
|
@@ -31858,11 +31943,13 @@ const collection$e = {
|
|
|
31858
31943
|
type: "object",
|
|
31859
31944
|
properties: {
|
|
31860
31945
|
fieldNames: {
|
|
31861
|
-
description: 'Array of field names to include in the performance index.\n\nCan be single field (e.g., ["created_at"]) or composite (e.g.,\n["customer_id", "created_at"]). All field names must exist in the model.\nOrder matters for composite indexes and should match common query\npatterns. Examples: ["created_at"], ["shopping_customer_id",\n"created_at"], ["ip"]
|
|
31946
|
+
description: 'Array of field names to include in the performance index.\n\nCan be single field (e.g., ["created_at"]) or composite (e.g.,\n["customer_id", "created_at"]). All field names must exist in the model.\nOrder matters for composite indexes and should match common query\npatterns. Examples: ["created_at"], ["shopping_customer_id",\n"created_at"], ["ip"]',
|
|
31862
31947
|
type: "array",
|
|
31863
31948
|
items: {
|
|
31864
31949
|
type: "string"
|
|
31865
|
-
}
|
|
31950
|
+
},
|
|
31951
|
+
minItems: 1,
|
|
31952
|
+
uniqueItems: true
|
|
31866
31953
|
}
|
|
31867
31954
|
},
|
|
31868
31955
|
required: [ "fieldNames" ]
|
|
@@ -33472,8 +33559,9 @@ const collection$d = {
|
|
|
33472
33559
|
type: "object",
|
|
33473
33560
|
properties: {
|
|
33474
33561
|
name: {
|
|
33475
|
-
description: 'Name of the Prisma model (database table name).\n\nMUST use snake_case naming convention. Examples: "shopping_customers",\n"shopping_sale_snapshots", "bbs_articles" Materialized views use "mv_"\nprefix: "mv_shopping_sale_last_snapshots"
|
|
33476
|
-
type: "string"
|
|
33562
|
+
description: 'Name of the Prisma model (database table name).\n\nMUST use snake_case naming convention. Examples: "shopping_customers",\n"shopping_sale_snapshots", "bbs_articles" Materialized views use "mv_"\nprefix: "mv_shopping_sale_last_snapshots"',
|
|
33563
|
+
type: "string",
|
|
33564
|
+
pattern: "^[a-z][a-z0-9_]*$"
|
|
33477
33565
|
},
|
|
33478
33566
|
description: {
|
|
33479
33567
|
description: 'Detailed description explaining the business purpose and usage of the\nmodel.\n\nShould include:\n\n- Business context and purpose\n- Key relationships with other models\n- Important behavioral notes or constraints\n- References to related entities using "{@\\link ModelName}" syntax\n\n**IMPORTANT**: Description must be written in English. Example: "Customer\ninformation, but not a person but a **connection** basis..."',
|
|
@@ -33535,8 +33623,9 @@ const collection$d = {
|
|
|
33535
33623
|
type: "object",
|
|
33536
33624
|
properties: {
|
|
33537
33625
|
name: {
|
|
33538
|
-
description: 'Name of the primary key field.\n\nMUST use snake_case naming convention. Consistently named "id" across all\nmodels in the uploaded schemas. Represents the unique identifier for each\nrecord in the table
|
|
33539
|
-
type: "string"
|
|
33626
|
+
description: 'Name of the primary key field.\n\nMUST use snake_case naming convention. Consistently named "id" across all\nmodels in the uploaded schemas. Represents the unique identifier for each\nrecord in the table.',
|
|
33627
|
+
type: "string",
|
|
33628
|
+
pattern: "^[a-z][a-z0-9_]*$"
|
|
33540
33629
|
},
|
|
33541
33630
|
type: {
|
|
33542
33631
|
description: 'Data type of the primary key field.\n\nAlways "uuid" in the uploaded schemas for better distributed system\nsupport and to avoid exposing sequential IDs that could reveal business\ninformation.',
|
|
@@ -33555,8 +33644,9 @@ const collection$d = {
|
|
|
33555
33644
|
type: "object",
|
|
33556
33645
|
properties: {
|
|
33557
33646
|
name: {
|
|
33558
|
-
description: 'Name of the foreign key field.\n\nMUST use snake_case naming convention. Follows convention:\n"{target_model_name_without_prefix}_id" Examples: "shopping_customer_id",\n"bbs_article_id", "attachment_file_id" For self-references: "parent_id"\n(e.g., in hierarchical structures)
|
|
33559
|
-
type: "string"
|
|
33647
|
+
description: 'Name of the foreign key field.\n\nMUST use snake_case naming convention. Follows convention:\n"{target_model_name_without_prefix}_id" Examples: "shopping_customer_id",\n"bbs_article_id", "attachment_file_id" For self-references: "parent_id"\n(e.g., in hierarchical structures)',
|
|
33648
|
+
type: "string",
|
|
33649
|
+
pattern: "^[a-z][a-z0-9_]*$"
|
|
33560
33650
|
},
|
|
33561
33651
|
type: {
|
|
33562
33652
|
description: 'Data type of the foreign key field.\n\nAlways "uuid" to match the primary key type of referenced models. Ensures\nreferential integrity and consistency across the schema.',
|
|
@@ -33587,8 +33677,9 @@ const collection$d = {
|
|
|
33587
33677
|
type: "object",
|
|
33588
33678
|
properties: {
|
|
33589
33679
|
name: {
|
|
33590
|
-
description: 'Name of the relation property in the Prisma model.\n\nThis becomes the property name used to access the related model instance\nthrough the Prisma client. Should be descriptive and reflect the business\nrelationship being modeled.\n\nExamples:\n\n- "customer" for shopping_customer_id field\n- "channel" for shopping_channel_id field\n- "parent" for parent_id field in hierarchical structures\n- "snapshot" for versioning relationships\n- "article" for bbs_article_id field\n\nNaming convention: camelCase, descriptive of the relationship\'s business\nmeaning
|
|
33591
|
-
type: "string"
|
|
33680
|
+
description: 'Name of the relation property in the Prisma model.\n\nThis becomes the property name used to access the related model instance\nthrough the Prisma client. Should be descriptive and reflect the business\nrelationship being modeled.\n\nExamples:\n\n- "customer" for shopping_customer_id field\n- "channel" for shopping_channel_id field\n- "parent" for parent_id field in hierarchical structures\n- "snapshot" for versioning relationships\n- "article" for bbs_article_id field\n\nNaming convention: camelCase, descriptive of the relationship\'s business\nmeaning',
|
|
33681
|
+
type: "string",
|
|
33682
|
+
pattern: "^[a-z][a-zA-Z0-9]*$"
|
|
33592
33683
|
},
|
|
33593
33684
|
targetModel: {
|
|
33594
33685
|
description: 'Name of the target model being referenced by this relation.\n\nMust exactly match an existing model name in the schema. This is used by\nPrisma to establish the foreign key constraint and generate the\nappropriate relation mapping.\n\nExamples:\n\n- "shopping_customers" for customer relationships\n- "shopping_channels" for channel relationships\n- "bbs_articles" for article relationships\n- "attachment_files" for file attachments\n\nThe target model should exist in the same schema or be accessible through\nthe Prisma schema configuration.',
|
|
@@ -33602,8 +33693,9 @@ const collection$d = {
|
|
|
33602
33693
|
type: "object",
|
|
33603
33694
|
properties: {
|
|
33604
33695
|
name: {
|
|
33605
|
-
description: "Name of the field in the database table.\n\nMUST use snake_case naming convention. Common patterns from uploaded\nschemas:\n\n- Timestamps: created_at, updated_at, deleted_at, opened_at, closed_at\n- Identifiers: code, name, nickname, title\n- Business data: value, quantity, price, volume, balance\n- Flags: primary, required, exclusive, secret, multiplicative
|
|
33606
|
-
type: "string"
|
|
33696
|
+
description: "Name of the field in the database table.\n\nMUST use snake_case naming convention. Common patterns from uploaded\nschemas:\n\n- Timestamps: created_at, updated_at, deleted_at, opened_at, closed_at\n- Identifiers: code, name, nickname, title\n- Business data: value, quantity, price, volume, balance\n- Flags: primary, required, exclusive, secret, multiplicative",
|
|
33697
|
+
type: "string",
|
|
33698
|
+
pattern: "^[a-z][a-z0-9_]*$"
|
|
33607
33699
|
},
|
|
33608
33700
|
type: {
|
|
33609
33701
|
description: "Data type of the field for Prisma schema generation.\n\nMaps to appropriate Prisma/PostgreSQL types:\n\n- Boolean: Boolean flags and yes/no values\n- Int: Integer numbers, quantities, sequences\n- Double: Decimal numbers, prices, monetary values, percentages\n- String: Text data, names, descriptions, codes\n- Uri: URL/URI fields for links and references\n- Uuid: UUID fields (for non-foreign-key UUIDs)\n- Datetime: Timestamp fields with date and time",
|
|
@@ -33626,11 +33718,13 @@ const collection$d = {
|
|
|
33626
33718
|
type: "object",
|
|
33627
33719
|
properties: {
|
|
33628
33720
|
fieldNames: {
|
|
33629
|
-
description: 'Array of field names that together form the unique constraint.\n\nCan be single field (e.g., ["email"]) or composite (e.g., ["channel_id",\n"code"]). All field names must exist in the model. Order matters for\ncomposite indexes. Examples: ["code"], ["shopping_channel_id",\n"nickname"], ["email"]
|
|
33721
|
+
description: 'Array of field names that together form the unique constraint.\n\nCan be single field (e.g., ["email"]) or composite (e.g., ["channel_id",\n"code"]). All field names must exist in the model. Order matters for\ncomposite indexes. Examples: ["code"], ["shopping_channel_id",\n"nickname"], ["email"]',
|
|
33630
33722
|
type: "array",
|
|
33631
33723
|
items: {
|
|
33632
33724
|
type: "string"
|
|
33633
|
-
}
|
|
33725
|
+
},
|
|
33726
|
+
minItems: 1,
|
|
33727
|
+
uniqueItems: true
|
|
33634
33728
|
},
|
|
33635
33729
|
unique: {
|
|
33636
33730
|
description: 'Explicit marker indicating this is a unique index.\n\nAlways true to distinguish from regular indexes. Used by code generator\nto emit "@@unique" directive in Prisma schema instead of "@@index".',
|
|
@@ -33645,11 +33739,13 @@ const collection$d = {
|
|
|
33645
33739
|
type: "object",
|
|
33646
33740
|
properties: {
|
|
33647
33741
|
fieldNames: {
|
|
33648
|
-
description: 'Array of field names to include in the performance index.\n\nCan be single field (e.g., ["created_at"]) or composite (e.g.,\n["customer_id", "created_at"]). All field names must exist in the model.\nOrder matters for composite indexes and should match common query\npatterns. Examples: ["created_at"], ["shopping_customer_id",\n"created_at"], ["ip"]
|
|
33742
|
+
description: 'Array of field names to include in the performance index.\n\nCan be single field (e.g., ["created_at"]) or composite (e.g.,\n["customer_id", "created_at"]). All field names must exist in the model.\nOrder matters for composite indexes and should match common query\npatterns. Examples: ["created_at"], ["shopping_customer_id",\n"created_at"], ["ip"]',
|
|
33649
33743
|
type: "array",
|
|
33650
33744
|
items: {
|
|
33651
33745
|
type: "string"
|
|
33652
|
-
}
|
|
33746
|
+
},
|
|
33747
|
+
minItems: 1,
|
|
33748
|
+
uniqueItems: true
|
|
33653
33749
|
}
|
|
33654
33750
|
},
|
|
33655
33751
|
required: [ "fieldNames" ]
|
|
@@ -36357,8 +36453,9 @@ const collection$b = {
|
|
|
36357
36453
|
type: "object",
|
|
36358
36454
|
properties: {
|
|
36359
36455
|
name: {
|
|
36360
|
-
description: "The name of the authentication Provider function in {role}Authorize\nformat (e.g., adminAuthorize, userAuthorize). This function will be\ncalled by the decorator to verify JWT tokens and return authenticated\nuser information for the specified role.\n\nDO: Use camelCase naming convention
|
|
36361
|
-
type: "string"
|
|
36456
|
+
description: "The name of the authentication Provider function in {role}Authorize\nformat (e.g., adminAuthorize, userAuthorize). This function will be\ncalled by the decorator to verify JWT tokens and return authenticated\nuser information for the specified role.\n\nDO: Use camelCase naming convention.",
|
|
36457
|
+
type: "string",
|
|
36458
|
+
pattern: "^[a-z][a-zA-Z0-9]*$"
|
|
36362
36459
|
},
|
|
36363
36460
|
content: {
|
|
36364
36461
|
description: "Complete TypeScript code for the authentication Provider function. Must\ninclude: JWT token verification using jwtAuthorize function, role type\nchecking against payload.type, database query using\nMyGlobal.prisma.{tableName} pattern to verify user existence, and proper\nerror handling with ForbiddenException and UnauthorizedException. The\nfunction should return the authenticated user payload data.",
|
|
@@ -36371,8 +36468,9 @@ const collection$b = {
|
|
|
36371
36468
|
type: "object",
|
|
36372
36469
|
properties: {
|
|
36373
36470
|
name: {
|
|
36374
|
-
description: "The name of the Decorator to be generated in {Actor}Auth format (e.g.,\nAdminAuth, UserAuth). This decorator will be used as a parameter\ndecorator in Controller methods to automatically authenticate and\nauthorize users for the specific role, injecting the authenticated user\npayload as a method parameter.\n\nDO: Use PascalCase naming convention
|
|
36375
|
-
type: "string"
|
|
36471
|
+
description: "The name of the Decorator to be generated in {Actor}Auth format (e.g.,\nAdminAuth, UserAuth). This decorator will be used as a parameter\ndecorator in Controller methods to automatically authenticate and\nauthorize users for the specific role, injecting the authenticated user\npayload as a method parameter.\n\nDO: Use PascalCase naming convention.",
|
|
36472
|
+
type: "string",
|
|
36473
|
+
pattern: "^[A-Z][a-zA-Z0-9]*$"
|
|
36376
36474
|
},
|
|
36377
36475
|
content: {
|
|
36378
36476
|
description: "Complete TypeScript code for the authentication Decorator implementation.\nMust include: SwaggerCustomizer integration to add bearer token security\nschema to API documentation, createParamDecorator implementation that\ncalls the corresponding Provider function for authentication, Singleton\npattern using tstl library for efficient decorator instance management,\nand proper TypeScript typing for the ParameterDecorator interface.",
|
|
@@ -36385,8 +36483,9 @@ const collection$b = {
|
|
|
36385
36483
|
type: "object",
|
|
36386
36484
|
properties: {
|
|
36387
36485
|
name: {
|
|
36388
|
-
description: "The name of the Payload type to be generated in {Actor}Payload format\n(e.g., AdminPayload, UserPayload). This type defines the structure of the\nauthenticated user data that will be injected into Controller methods\nwhen using the decorator.\n\nDO: Use PascalCase naming convention
|
|
36389
|
-
type: "string"
|
|
36486
|
+
description: "The name of the Payload type to be generated in {Actor}Payload format\n(e.g., AdminPayload, UserPayload). This type defines the structure of the\nauthenticated user data that will be injected into Controller methods\nwhen using the decorator.\n\nDO: Use PascalCase naming convention.",
|
|
36487
|
+
type: "string",
|
|
36488
|
+
pattern: "^[A-Z][a-zA-Z0-9]*$"
|
|
36390
36489
|
},
|
|
36391
36490
|
content: {
|
|
36392
36491
|
description: "Complete TypeScript code for the Payload type interface in {Actor}Payload\nformat (e.g., AdminPayload, UserPayload). Must include: id field with\nUUID format validation, type field as role discriminator, and proper\ntypia tags for validation. This interface defines the structure of the\nauthenticated user data that will be injected into Controller methods\nwhen using the decorator and serves as the TypeScript type for the\nparameter in Controller method signatures.",
|
|
@@ -37001,8 +37100,9 @@ const collection$a = {
|
|
|
37001
37100
|
type: "object",
|
|
37002
37101
|
properties: {
|
|
37003
37102
|
name: {
|
|
37004
|
-
description: "The name of the authentication Provider function in {role}Authorize\nformat (e.g., adminAuthorize, userAuthorize). This function will be\ncalled by the decorator to verify JWT tokens and return authenticated\nuser information for the specified role.\n\nDO: Use camelCase naming convention
|
|
37005
|
-
type: "string"
|
|
37103
|
+
description: "The name of the authentication Provider function in {role}Authorize\nformat (e.g., adminAuthorize, userAuthorize). This function will be\ncalled by the decorator to verify JWT tokens and return authenticated\nuser information for the specified role.\n\nDO: Use camelCase naming convention.",
|
|
37104
|
+
type: "string",
|
|
37105
|
+
pattern: "^[a-z][a-zA-Z0-9]*$"
|
|
37006
37106
|
},
|
|
37007
37107
|
content: {
|
|
37008
37108
|
description: "Complete TypeScript code for the authentication Provider function. Must\ninclude: JWT token verification using jwtAuthorize function, role type\nchecking against payload.type, database query using\nMyGlobal.prisma.{tableName} pattern to verify user existence, and proper\nerror handling with ForbiddenException and UnauthorizedException. The\nfunction should return the authenticated user payload data.",
|
|
@@ -37015,8 +37115,9 @@ const collection$a = {
|
|
|
37015
37115
|
type: "object",
|
|
37016
37116
|
properties: {
|
|
37017
37117
|
name: {
|
|
37018
|
-
description: "The name of the Decorator to be generated in {Actor}Auth format (e.g.,\nAdminAuth, UserAuth). This decorator will be used as a parameter\ndecorator in Controller methods to automatically authenticate and\nauthorize users for the specific role, injecting the authenticated user\npayload as a method parameter.\n\nDO: Use PascalCase naming convention
|
|
37019
|
-
type: "string"
|
|
37118
|
+
description: "The name of the Decorator to be generated in {Actor}Auth format (e.g.,\nAdminAuth, UserAuth). This decorator will be used as a parameter\ndecorator in Controller methods to automatically authenticate and\nauthorize users for the specific role, injecting the authenticated user\npayload as a method parameter.\n\nDO: Use PascalCase naming convention.",
|
|
37119
|
+
type: "string",
|
|
37120
|
+
pattern: "^[A-Z][a-zA-Z0-9]*$"
|
|
37020
37121
|
},
|
|
37021
37122
|
content: {
|
|
37022
37123
|
description: "Complete TypeScript code for the authentication Decorator implementation.\nMust include: SwaggerCustomizer integration to add bearer token security\nschema to API documentation, createParamDecorator implementation that\ncalls the corresponding Provider function for authentication, Singleton\npattern using tstl library for efficient decorator instance management,\nand proper TypeScript typing for the ParameterDecorator interface.",
|
|
@@ -37029,8 +37130,9 @@ const collection$a = {
|
|
|
37029
37130
|
type: "object",
|
|
37030
37131
|
properties: {
|
|
37031
37132
|
name: {
|
|
37032
|
-
description: "The name of the Payload type to be generated in {Actor}Payload format\n(e.g., AdminPayload, UserPayload). This type defines the structure of the\nauthenticated user data that will be injected into Controller methods\nwhen using the decorator.\n\nDO: Use PascalCase naming convention
|
|
37033
|
-
type: "string"
|
|
37133
|
+
description: "The name of the Payload type to be generated in {Actor}Payload format\n(e.g., AdminPayload, UserPayload). This type defines the structure of the\nauthenticated user data that will be injected into Controller methods\nwhen using the decorator.\n\nDO: Use PascalCase naming convention.",
|
|
37134
|
+
type: "string",
|
|
37135
|
+
pattern: "^[A-Z][a-zA-Z0-9]*$"
|
|
37034
37136
|
},
|
|
37035
37137
|
content: {
|
|
37036
37138
|
description: "Complete TypeScript code for the Payload type interface in {Actor}Payload\nformat (e.g., AdminPayload, UserPayload). Must include: id field with\nUUID format validation, type field as role discriminator, and proper\ntypia tags for validation. This interface defines the structure of the\nauthenticated user data that will be injected into Controller methods\nwhen using the decorator and serves as the TypeScript type for the\nparameter in Controller method signatures.",
|
|
@@ -42627,11 +42729,12 @@ const collection$3 = {
|
|
|
42627
42729
|
$ref: "#/$defs/AutoBeOpenApi.IEndpoint"
|
|
42628
42730
|
},
|
|
42629
42731
|
scenarios: {
|
|
42630
|
-
description: "An array of test scenarios associated with the given endpoint.\n\nEach scenario represents a specific test case for the same `path` and\n`method`.\n\nIMPORTANT: Each scenario must be actually implementable. A scenario's\nimplementability is determined by the existence of ALL APIs (endpoints)\nrequired to test it. This includes not only the primary endpoint being\ntested, but also ALL dependency endpoints needed for setup,\nauthentication, and data preparation. If even one required dependency API\nis missing from the available operations, the scenario cannot be\nimplemented and should not be generated.\n\nExample: A \"test banned user login\" scenario requires both a login API\nAND a ban user API. If the ban API doesn't exist, this scenario is not\nimplementable regardless of database schema fields
|
|
42732
|
+
description: "An array of test scenarios associated with the given endpoint.\n\nEach scenario represents a specific test case for the same `path` and\n`method`.\n\nIMPORTANT: Each scenario must be actually implementable. A scenario's\nimplementability is determined by the existence of ALL APIs (endpoints)\nrequired to test it. This includes not only the primary endpoint being\ntested, but also ALL dependency endpoints needed for setup,\nauthentication, and data preparation. If even one required dependency API\nis missing from the available operations, the scenario cannot be\nimplemented and should not be generated.\n\nExample: A \"test banned user login\" scenario requires both a login API\nAND a ban user API. If the ban API doesn't exist, this scenario is not\nimplementable regardless of database schema fields.",
|
|
42631
42733
|
type: "array",
|
|
42632
42734
|
items: {
|
|
42633
42735
|
$ref: "#/$defs/IAutoBeTestScenarioApplication.IScenario"
|
|
42634
|
-
}
|
|
42736
|
+
},
|
|
42737
|
+
minItems: 1
|
|
42635
42738
|
}
|
|
42636
42739
|
},
|
|
42637
42740
|
required: [ "endpoint", "scenarios" ]
|
|
@@ -42641,8 +42744,9 @@ const collection$3 = {
|
|
|
42641
42744
|
type: "object",
|
|
42642
42745
|
properties: {
|
|
42643
42746
|
path: {
|
|
42644
|
-
description: 'HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- "/users"\n- "/users/{userId}"\n- "/articles/{articleId}/comments"\n- "/attachmentFiles"\n- "/orders/{orderId}/items/{itemId}"\n\nInvalid examples:\n\n- "\'/users\'" (contains quotes)\n- "/user profile" (contains space)\n- "/users/[userId]" (wrong bracket format)\n- "/admin/users" (role prefix)\n- "/api/v1/users" (API prefix)
|
|
42645
|
-
type: "string"
|
|
42747
|
+
description: 'HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- "/users"\n- "/users/{userId}"\n- "/articles/{articleId}/comments"\n- "/attachmentFiles"\n- "/orders/{orderId}/items/{itemId}"\n\nInvalid examples:\n\n- "\'/users\'" (contains quotes)\n- "/user profile" (contains space)\n- "/users/[userId]" (wrong bracket format)\n- "/admin/users" (role prefix)\n- "/api/v1/users" (API prefix)',
|
|
42748
|
+
type: "string",
|
|
42749
|
+
pattern: "^\\/[a-zA-Z0-9\\/_{}.-]*$"
|
|
42646
42750
|
},
|
|
42647
42751
|
method: {
|
|
42648
42752
|
description: 'HTTP method of the API operation.\n\n**IMPORTANT**: Methods must be written in lowercase only (e.g., "get",\nnot "GET").\n\nNote that, if the API operation has {@link requestBody}, method must not\nbe `get`.\n\nAlso, even though the API operation has been designed to only get\ninformation, but it needs complicated request information, it must be\ndefined as `patch` method with {@link requestBody} data specification.\n\n- `get`: get information\n- `patch`: get information with complicated request data\n ({@link requestBody})\n- `post`: create new record\n- `put`: update existing record\n- `delete`: remove record',
|
|
@@ -43776,11 +43880,12 @@ const collection$2 = {
|
|
|
43776
43880
|
$ref: "#/$defs/AutoBeOpenApi.IEndpoint"
|
|
43777
43881
|
},
|
|
43778
43882
|
scenarios: {
|
|
43779
|
-
description: "An array of test scenarios associated with the given endpoint.\n\nEach scenario represents a specific test case for the same `path` and\n`method`.\n\nIMPORTANT: Each scenario must be actually implementable. A scenario's\nimplementability is determined by the existence of ALL APIs (endpoints)\nrequired to test it. This includes not only the primary endpoint being\ntested, but also ALL dependency endpoints needed for setup,\nauthentication, and data preparation. If even one required dependency API\nis missing from the available operations, the scenario cannot be\nimplemented and should not be generated.\n\nExample: A \"test banned user login\" scenario requires both a login API\nAND a ban user API. If the ban API doesn't exist, this scenario is not\nimplementable regardless of database schema fields
|
|
43883
|
+
description: "An array of test scenarios associated with the given endpoint.\n\nEach scenario represents a specific test case for the same `path` and\n`method`.\n\nIMPORTANT: Each scenario must be actually implementable. A scenario's\nimplementability is determined by the existence of ALL APIs (endpoints)\nrequired to test it. This includes not only the primary endpoint being\ntested, but also ALL dependency endpoints needed for setup,\nauthentication, and data preparation. If even one required dependency API\nis missing from the available operations, the scenario cannot be\nimplemented and should not be generated.\n\nExample: A \"test banned user login\" scenario requires both a login API\nAND a ban user API. If the ban API doesn't exist, this scenario is not\nimplementable regardless of database schema fields.",
|
|
43780
43884
|
type: "array",
|
|
43781
43885
|
items: {
|
|
43782
43886
|
$ref: "#/$defs/IAutoBeTestScenarioApplication.IScenario"
|
|
43783
|
-
}
|
|
43887
|
+
},
|
|
43888
|
+
minItems: 1
|
|
43784
43889
|
}
|
|
43785
43890
|
},
|
|
43786
43891
|
required: [ "endpoint", "scenarios" ]
|
|
@@ -43790,8 +43895,9 @@ const collection$2 = {
|
|
|
43790
43895
|
type: "object",
|
|
43791
43896
|
properties: {
|
|
43792
43897
|
path: {
|
|
43793
|
-
description: 'HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- "/users"\n- "/users/{userId}"\n- "/articles/{articleId}/comments"\n- "/attachmentFiles"\n- "/orders/{orderId}/items/{itemId}"\n\nInvalid examples:\n\n- "\'/users\'" (contains quotes)\n- "/user profile" (contains space)\n- "/users/[userId]" (wrong bracket format)\n- "/admin/users" (role prefix)\n- "/api/v1/users" (API prefix)
|
|
43794
|
-
type: "string"
|
|
43898
|
+
description: 'HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- "/users"\n- "/users/{userId}"\n- "/articles/{articleId}/comments"\n- "/attachmentFiles"\n- "/orders/{orderId}/items/{itemId}"\n\nInvalid examples:\n\n- "\'/users\'" (contains quotes)\n- "/user profile" (contains space)\n- "/users/[userId]" (wrong bracket format)\n- "/admin/users" (role prefix)\n- "/api/v1/users" (API prefix)',
|
|
43899
|
+
type: "string",
|
|
43900
|
+
pattern: "^\\/[a-zA-Z0-9\\/_{}.-]*$"
|
|
43795
43901
|
},
|
|
43796
43902
|
method: {
|
|
43797
43903
|
description: 'HTTP method of the API operation.\n\n**IMPORTANT**: Methods must be written in lowercase only (e.g., "get",\nnot "GET").\n\nNote that, if the API operation has {@link requestBody}, method must not\nbe `get`.\n\nAlso, even though the API operation has been designed to only get\ninformation, but it needs complicated request information, it must be\ndefined as `patch` method with {@link requestBody} data specification.\n\n- `get`: get information\n- `patch`: get information with complicated request data\n ({@link requestBody})\n- `post`: create new record\n- `put`: update existing record\n- `delete`: remove record',
|