Repository navigation
r2.2
Pre-release
Pre-release
Release Notes
This release candidate contains the definition and documentation of
- knowledge-base 0.2.0-rc.2
- qa-assistant-manage 0.2.0-rc.2
- qa-assistant-service 0.2.0-rc.2
The API definition(s) are based on
- Commonalities r4.4 (0.9.0)
- Identity and Consent Management r4.2 (0.5.0)
knowledge-base 0.2.0-rc.2
knowledge-base 0.2.0-rc.2 is a release-candidate version of this API.
Changes documented below are compared to version 0.2.0-rc.1.
- API definition with inline documentation:
Breaking changes
- Update API files for Sync26 Release r2.2 by @lihaojie-CMCC in #63
- The update operations
updateKnowledgeBaseandupdateToolnow use HTTPPATCHinstead ofPUT(issue #50). Request bodies, response bodies and status codes are unchanged - only the HTTP verb changes. The partial-update semantics documented in r2.1 still apply unchanged: fields omitted from the request body are left unchanged (not cleared), providing a field replaces its stored value, and at least one updatable field MUST be provided (an empty body is rejected with400 INVALID_ARGUMENT). This change supersedes the r2.1 decision to retainPUTwith documented partial-update semantics. Rationale: per RFC 7231 §4.3.4 aPUTrequest asks that the state of the target resource be created or replaced (full replacement), while the request bodies of these operations carry a set of optional field modifications - the "set of instructions describing how a resource should be modified" that RFC 5789 definesPATCHfor. Since the APIs are pre-1.0 (0.2.0-rc.x), breaking changes are permitted per the CAMARA API Readiness Checklist, and switching now costs only the verb (a later switch would require a major version). API consumers MUST sendPATCHrequests to/knowledge-bases/{knowledgeBaseId}and/knowledge-bases/{knowledgeBaseId}/tools/{toolId};PUTis no longer part of the documented contract for these operations.
- The update operations
- Replace deprecated GenericXXX error schemas with Commonalities r4.4 common error schemas by @lihaojie-CMCC in #71
Added
- Update API files for Sync26 Release r2.2 by @lihaojie-CMCC in #63
- Test definitions: the three scenarios requested in issue #58:
@knowledge_base_get_document_404_01_not_found: requestsgetDocumentwith adocumentIdset to a random UUID and asserts 404 with$.code = NOT_FOUND. The 404 response has been documented forgetDocumentsince r2.1; the siblingdeleteDocumentoperation already had a not-found scenario (@knowledge_base_delete_document_404_01_not_found),getDocumentdid not.@knowledge_base_create_409_01_duplicate_name: creates a knowledge base namedduplicate-kb, then sendscreateKnowledgeBasewith the same name and asserts 409 with$.code = ALREADY_EXISTS. This tests theAlreadyExists409response documented as part of the issue #46 fix in this release and completes 409 test coverage for all three operations that document a 409 (createKnowledgeBase,createTool,updateTool).@knowledge_base_list_02_empty: restored - the scenario had been deleted rather than updated during the rc.1 review cycle (PR #54) while its equivalent inqa-assistant-manage.featurewas kept. It asserts thatlistKnowledgeBasesreturns 200 withitemsas an empty array andpaginationpresent and compliant with thePaginationschema - the empirical check thatpaginationis always present, as maderequiredfor issue #47.
- Test definitions: failure scenarios for the operations that previously only had a success path, so that every per-operation feature file covers both the happy path and the relevant error behaviour. No API definition changes were needed for these additions:
updateKnowledgeBase:@knowledge_base_update_400_01_empty_body(400INVALID_ARGUMENTfor an empty request body, exercising the at-least-one-updatable-field rule),@knowledge_base_update_403_01_missing_scope,@knowledge_base_update_404_01_not_found(random UUID).deleteKnowledgeBase:@knowledge_base_delete_403_01_missing_scope,@knowledge_base_delete_404_01_not_found.getTool:@knowledge_base_tool_get_403_01_missing_scope,@knowledge_base_tool_get_404_01_not_found.
- Test definitions: the three scenarios requested in issue #58:
- Add 415 response declaration to createTool operation by @lihaojie-CMCC in #85
Changed
- Update API files for Sync26 Release r2.2 by @lihaojie-CMCC in #63
- The documented 409 responses are narrowed to exactly the error code each operation can return, adopting the Commonalities r4.4 error-response catalogue (issue #46). In r2.1 all three operations documented their 409 by referencing the shared
Generic409response, whosecodeenum bundlesABORTED,ALREADY_EXISTSandINCOMPATIBLE_STATE(the deprecatedCONFLICTcode was itself removed from that enum in Commonalities 0.9.0). ButcreateKnowledgeBaseandcreateToolcan only returnALREADY_EXISTS(duplicate name) andupdateToolonlyABORTED(concurrent modification), so each published contract declared three error codes of which two can never occur. Following the Commonalities r4.4 migration guidance inCAMARA_common.yaml("Generic409→AlreadyExists409; ... local definition from theABORTED/INCOMPATIBLE_STATEexamples otherwise"):createKnowledgeBaseandcreateToolnow reference the catalogue responseAlreadyExists409(HTTP 409,codeenum restricted toALREADY_EXISTS, shared exampleGENERIC_409_ALREADY_EXISTS).updateTooldefines a localAborted409response (components.responses), because r4.4 provides no catalogue response forABORTED: HTTP 409,codeenum restricted toABORTED, with the example$ref-ing the sharedGENERIC_409_ABORTEDexample so the error wording stays consistent across CAMARA APIs. It follows the same locally-defined-response pattern as the existingToolInvalidInput422.- All 409 responses keep the
x-correlatorheader, and the narrowed contracts now match the existing test scenarios exactly (@knowledge_base_tool_create_409_01_duplicate_name→ALREADY_EXISTS,@knowledge_base_tool_update_409_01_concurrent_modification→ABORTED, new@knowledge_base_create_409_01_duplicate_name→ALREADY_EXISTS).
This is a documentation-precision change, not a behavioural one: implementations never returned the removed codes for these operations.
- Aligned with Commonalities r4.4 (0.9.0).
code/common/CAMARA_common.yamlrefreshed to the r4.4 release artifacts:- new catalogue of minimal, directly referenceable error responses (
BadRequest400,BadRequestWithRange400,Unauthenticated401,PermissionDenied403,NotFound404,IdentifierNotFound404,AlreadyExists409,DeviceIdentifier422,PhoneNumberIdentifier422,TooManyRequests429), added alongside the existingGeneric*responses, which remain valid; - new
DateandSingleIpv6Addressschemas (Ipv6Addressnow composesSingleIpv6AddressviaallOf); - the
perPageparameter description corrected from "Number of subscriptions to return per page" to "Number of resources to return per page" (this repository had flagged the old wording for upstream correction in the r2.1 changelog); - the
info.descriptionCommonalities reference updated to the r4.4 template wording (the applicable Commonalities Release is now identified from thex-camara-commonalitiesfield, the changelog and the released API version metadata).
- new catalogue of minimal, directly referenceable error responses (
- The components
$ref-ed by this API (x-correlatorheader/parameter,page/perPageparameters,Generic400/401/403/404/415/500responses,ErrorInfo,Pagination,DateTimeschemas,openIdsecurity scheme) are byte-identical between the r4.3 and r4.4 versions of the common file. Thex-camara-commonalitiesmarker is updated from 0.8.0 to 0.9.0. No behavioural change to this API. - Test definitions restructured:
knowledge-base.feature(50 scenarios) split into 14 feature files, one peroperationId, as recommended in issue #58 per the location-of-feature-files convention in the CAMARA API Testing Guidelines, so the 50-scenarios-per-file warning of CAMARA Validation no longer applies. The new files areknowledge-base-createKnowledgeBase.feature,-listKnowledgeBases.feature,-getKnowledgeBase.feature,-updateKnowledgeBase.feature,-deleteKnowledgeBase.feature,-uploadDocument.feature,-getDocument.feature,-deleteDocument.feature,-createTool.feature,-listTools.feature,-getTool.feature,-updateTool.feature,-deleteTool.featureand-callTool.feature; each carries its own Background (apiRootenvironment, resource,Content-Type,Authorization,x-correlatorschema check). All 50 existing scenarios are preserved unchanged; the split yields 60 scenarios across the 14 files (50 existing plus the 10 additions listed under Added above).
- The documented 409 responses are narrowed to exactly the error code each operation can return, adopting the Commonalities r4.4 error-response catalogue (issue #46). In r2.1 all three operations documented their 409 by referencing the shared
Fixed
- Update API files for Sync26 Release r2.2 by @lihaojie-CMCC in #63
- Removed the contradiction between the Security considerations text and the enforced
https-only constraint (issue #56). The Security considerations section (introduced for the SSRF mitigation of issue #40) documented three aspects of the toolurlprotocol restriction, one of which contradicted the other two: the schema enforceshttpsunconditionally viapattern: '^https://.*'(anhttp://URL is rejected at write time with400 INVALID_ARGUMENT) and theToolCommon.urldescription states "MUST use thehttpsscheme", but the URL scheme bullet of the Security considerations still read "Onlyhttps(and optionallyhttpfor non-sensitive, explicitly documented local testing) URLs are accepted" - an exception the schema does not implement. The parenthetical was removed so the bullet now reads "OnlyhttpsURLs are accepted."; in the same pass the ports bullet was aligned ("e.g.443for HTTPS, optionally80for HTTP" → "e.g.443for HTTPS"), since port 80 is unreachable under thehttps-only constraint. Documentation-only change; the enforced behaviour is unchanged.
- Removed the contradiction between the Security considerations text and the enforced
- Clean up 'GenericXXX' in Test_definitions by @lihaojie-CMCC in #77
Removed
- Remove 500 responses from API definitions and test cases by @lihaojie-CMCC in #83
qa-assistant-manage 0.2.0-rc.2
qa-assistant-manage 0.2.0-rc.2 is a release-candidate version of this API.
Changes documented below are compared to version 0.2.0-rc.1.
- API definition with inline documentation:
Breaking changes
- Update API files for Sync26 Release r2.2 by @lihaojie-CMCC in #63
- The update operation
updateAssistantnow uses HTTPPATCHinstead ofPUT(issue #50). Request bodies, response bodies and status codes are unchanged - only the HTTP verb changes. The partial-update semantics documented in r2.1 still apply unchanged: fields omitted from the request body are left unchanged (not cleared),largeModelParametersandtoolIdsare replaced as a whole when provided (no nested merge, not appended to), and at least one updatable field MUST be provided. See the knowledge-base 0.2.0-rc.2 Breaking changes above for the full rationale (RFC 7231 §4.3.4 vs RFC 5789, and why the switch is made in this release). API consumers MUST sendPATCHrequests to/assistants/{assistantId};PUTis no longer part of the documented contract for this operation.
- The update operation
- Replace deprecated GenericXXX error schemas with Commonalities r4.4 common error schemas by @lihaojie-CMCC in #71
Added
- Add test scenarios in qa-assistant-manage.feature by @lihaojie-CMCC in #82
Changed
- Update API files for Sync26 Release r2.2 by @lihaojie-CMCC in #63
- Aligned with Commonalities r4.4 (0.9.0): the
x-camara-commonalitiesmarker updated from 0.8.0 to 0.9.0 and theinfo.descriptionCommonalities reference updated to the r4.4 template wording (the applicable Commonalities Release is now identified from thex-camara-commonalitiesfield, the changelog and the released API version metadata). The components$ref-ed by this API fromcode/common/CAMARA_common.yamlare unchanged between r4.3 and r4.4. No behavioural change to this API. The test fileqa-assistant-manage.featurereceived only the same marker update (31 scenarios, below the 50-scenarios-per-file limit, so no split was needed).
- Aligned with Commonalities r4.4 (0.9.0): the
Fixed
- Update API files for Sync26 Release r2.2 by @lihaojie-CMCC in #63
- The
largeModelParametersbounds documentation no longer describes theminimum/maximumvalues as "reference defaults" that the provider MAY adjust (issue #57). In r2.1, following issue #52, the bounds were documented as reference defaults with "An API provider MAY adjust (widen or tighten) these bounds to match what its backend actually supports" and values outside "the bounds documented by the provider" rejected with400 OUT_OF_RANGE. That contradicts the published contract: the schema'sminimum/maximumare enforced validation constraints, there is no mechanism for a provider to adjust them in a published API definition, tightening them would reject requests that are valid against the published schema, and widening them would be undiscoverable by consumers reading the contract. The adjustability wording was removed in 11 places inqa-assistant-manage.yaml:- the
largeModelParameterssummary bullet ininfo.description(now: fixed contract constraints, values outside the bounds rejected with400 OUT_OF_RANGE); - the
AssistantCreateRequest.largeModelParametersdescription, where the "Provider-specific bounds" paragraph (including the "some LLM providers use atemperaturerange of 0-2" example) was rewritten as a "Parameter bounds" note stating that the bounds are fixed contract constraints, identical for every API provider and not provider-adjustable; - the
temperature/maxTokens/topPfield descriptions inAssistantCreateRequest,AssistantUpdateRequestandAssistant(7 places), which no longer carry "MAY adjust" / "reference default" sentences or pointers to the removed note.
- the
- The stale cross-reference "See the
largeModelParametersdescription onAssistantCreateRequestfor the provider-specific bounds note" inAssistantUpdateRequest.largeModelParametersnow points at the fixed-bounds note instead. The bounds are now documented as fixed contract constraints; values outside the bounds are rejected with400 OUT_OF_RANGE, as asserted by the six existingOUT_OF_RANGEtest scenarios across the three test suites. Theminimum/maximumvalues themselves are unchanged (temperature0-1,maxTokens1-128000,topP0-1). Documentation-only change.
- The
Removed
- Remove 500 responses from API definitions and test cases by @lihaojie-CMCC in #83
qa-assistant-service 0.2.0-rc.2
qa-assistant-service 0.2.0-rc.2 is a release-candidate version of this API.
Changes documented below are compared to version 0.2.0-rc.1.
- API definition with inline documentation:
Breaking changes
- Replace deprecated GenericXXX error schemas with Commonalities r4.4 common error schemas by @lihaojie-CMCC in #71
Added
- N/A
Changed
- Update API files for Sync26 Release r2.2 by @lihaojie-CMCC in #63
- Aligned with Commonalities r4.4 (0.9.0): the
x-camara-commonalitiesmarker updated from 0.8.0 to 0.9.0 and theinfo.descriptionCommonalities reference updated to the r4.4 template wording (the applicable Commonalities Release is now identified from thex-camara-commonalitiesfield, the changelog and the released API version metadata). The components$ref-ed by this API fromcode/common/CAMARA_common.yamlare unchanged between r4.3 and r4.4. No behavioural change to this API. The test fileqa-assistant-service.featurereceived only the same marker update (16 scenarios, below the 50-scenarios-per-file limit, so no split was needed).
- Aligned with Commonalities r4.4 (0.9.0): the
Fixed
- N/A
Removed
- Remove 500 responses from API definitions and test cases by @lihaojie-CMCC in #83
Full Changelog: r2.1...r2.2