All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning. The format is based on Keep a Changelog.
- Generate media stream paths (GET and PUT) for media entities and
Edm.Streamproperties
- Restore bound actions/functions on containment navigation paths (regression since v1.2.0)
- Function parameters annotated with
@mandatoryno longer lead to "Unexpected mandatory after optional parameter" error GET,PATCH, andDELETEendpoints are now exposed as navigation paths for*_textsentities
- Replaced unauthorized release 1.4.1 — this version is identical to 1.4.0
- Opt-in option
shortActionPathsto use simplified bound action paths (e.g.,.../Discountinstead of.../ODataDemo.Discount). Enable via{ "cds": { "openapi": { "shortActionPaths": true } } }inpackage.json.
- Removed special characters from placeholders for fields like short text, description, etc.
- Autoexposed
.textsentities are now excluded from OpenAPI document - Generate navigation paths to CRUD-disabled entities
- Properties marked with
@Capabilities.ExpandRestrictions.NonExpandablePropertiesare now excluded from OpenAPI schemas
- Util to regenerate OpenAPI test snapshots
- Calling
cds compile -2 openapinow emits events:compile.to.openapiwith an object parameter, containing the source model and the compilation options before the compilation takes place.after:compile.to.openapicarries the same parameter with an additionalresultproperty, containing the output of the compilation process.
- Operations:
@Core.Descriptionmaps tosummary,@Core.LongDescriptionmaps todescription - Parameters and schema properties: use
@Core.LongDescriptionwith fallback to@Core.Description - Service info: use
@Core.LongDescriptionwith fallback to@Core.Description - Acronyms in names are now preserved and not split in description fields.
- Tags now display with spaces instead of underscores, and camelCase tags are automatically converted to space-separated words (e.g., "camelCase" becomes "camel Case").
- Reading json from project root
- Correctly handle
@Core.Immutableproperties in PATCH requests. - Actions without parameters now include
requestBodywithContent-Type: application/jsonin OpenAPI spec to prevent 415 errors
- Upgraded qs dependency to 6.14.1 to fix security issue (missing check for array bounds)
- Now writes config file path in case of errors.
- Allow array of objects for
@protocolannotation
- Properly consume
@Capabilities.UpdateRestrictions.UpdateMethod
- Properties with
@mandatoryannotation is now added torequiredarray.
- Replaced
console.warnstatements withcds.debuglogs for warning messages.
- Now supports
@EntityRelationshipannotations.
- Parameter aliases conflict with system query options.
- Fixed action/function invocation on navigation path to align with CAP runtime.
- Now supports
odata-v4protocol in the@protocolallowed values in CDS along withodataandrest.
- Fixed the filename issue: when there is only one service in the CDL source, the OpenAPI document is now generated with the filename corresponding to the service name rather than the CDL source filename.
- Fixes server URL based on the version provided by
--odata-versionvalue.
- Now supports
x-sapextensions using@OpenAPI.Extensionsannotations in service, entity and function/action level.
- Fixed allowedValues on all primitive types.
- Removed duplicates in
tags. - No longer append protocol and service name information to the server URL incase of
openapi:serversoption.
- Multiple protocols for a service now renders multiple openapi documents.
- Format and type are now preserved for function parameters.
- Fixed allowedValues on all primitive types.
- Using
@title,@Core.Descriptionand@Core.LongDescriptionfor titles and descriptions for improving the default texts ininfoobject andx-sap-shortText.
- OpenAPI documents can now have
externalDocsobject provided through@OpenAPI.externalDocsannotation in the service level of CDS. - OpenAPI documents now throws warning if
securitySchemasare not found. - Introduced
--openapi:config-fileoption to incorporate all the options for cds compile command in a JSON configuration file, inline options take precedence over those defined in the configuration file.
- Entities annotated with
@cds.autoexpose[d]but explicitly exposed in the service are now made read-write. - Added a wrapper
propertiesobject for primitive return types. - Adding protocol and service name information to the server URL incase of
openapi:serversoption.
- Using
@title,@Core.Descriptionand@Core.LongDescriptionfor titles and descriptions for improving the default texts ininfoobject andx-sap-shortText.
- UUID type elements are not going to have the property of required.
- properties with
@mandatoryannotation is not added torequiredarray.
- Minor changes
- Removed registering compile target
- Bug fixes
- Bug fixes
- Initial release