Skip to content

Commit

Permalink
Merge branch 'main' into css-impl-variants
Browse files Browse the repository at this point in the history
  • Loading branch information
chgeo authored Aug 15, 2023
2 parents 81fa54e + 96b6012 commit ebca02b
Show file tree
Hide file tree
Showing 18 changed files with 38 additions and 38 deletions.
12 changes: 6 additions & 6 deletions about/glossary.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,25 +48,25 @@ CAP-related Terms and Acronyms {.subtitle}

---

[JSON](http://json.org) — JavaScript Object Notation
[JSON](https://json.org) — JavaScript Object Notation
: a lightweight data-interchange format. Although based on a minimal subset of JavaScript, JSON is meanwhile broadly adopted in all major languages.

[YAML](http://yaml.org) — YAML Ain't Markup Language
: a human-friendly data-serialization language and alternative to [JSON](http://json.org).
[YAML](https://yaml.org) — YAML Ain't Markup Language
: a human-friendly data-serialization language and alternative to [JSON](https://json.org).
Original: _Yet Another Markup Language_

---

[OData](../advanced/odata) — The OData Standard
: Languages and protocols to expose and consume data-oriented REST services

[CSDL](http://docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part3-csdl.html) — Common Schema Definition Language
[CSDL](https://docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part3-csdl.html) — Common Schema Definition Language
: the language within [OData](../advanced/odata) to declare service interfaces

[EDM](http://docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part3-csdl.html) — Entity Data Model
[EDM](https://docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part3-csdl.html) — Entity Data Model
: the meta model of [OData](../advanced/odata) definitions

[EDMX](http://docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part3-csdl.html) — Entity Data Model XML
[EDMX](https://docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part3-csdl.html) — Entity Data Model XML
: the metadata file of [OData](../advanced/odata) definitions in XML format


Expand Down
2 changes: 1 addition & 1 deletion advanced/fiori.md
Original file line number Diff line number Diff line change
Expand Up @@ -338,7 +338,7 @@ When you open an annotation file, all language-dependent string values are check

### Prefer `@title` and `@description`

Influenced by the [JSON Schema](http://json-schema.org), CDS supports the [common annotations](../cds/annotations#common-annotations) `@title` and `@description`, which are mapped to corresponding [OData annotations](./odata#annotations) as follows:
Influenced by the [JSON Schema](https://json-schema.org), CDS supports the [common annotations](../cds/annotations#common-annotations) `@title` and `@description`, which are mapped to corresponding [OData annotations](./odata#annotations) as follows:

| CDS | JSON Schema | OData |
|----------------|---------------|---------------------|
Expand Down
2 changes: 1 addition & 1 deletion advanced/hana.md
Original file line number Diff line number Diff line change
Expand Up @@ -260,7 +260,7 @@ The following is the definition of a calculation view `data.model.bookshop.CalcB
::: code-group
```xml [existing-calc-view-quoted.hdbcalculationview]
<?xml version="1.0" encoding="UTF-8"?>
<Calculation:scenario xmlns:Calculation="http://www.sap.com/ndb/BiModelCalculation.ecore" schemaVersion="3.0" id="data.model.bookshop.CalcBooks" applyPrivilegeType="NONE" defaultClient="$$client$$" visibility="reportingEnabled" calculationScenarioType="TREE_BASED" dataCategory="CUBE" enforceSqlExecution="false" outputViewType="Aggregation" cacheInvalidationPeriod="NONE">
<Calculation:scenario xmlns:Calculation="https://www.sap.com/ndb/BiModelCalculation.ecore" schemaVersion="3.0" id="data.model.bookshop.CalcBooks" applyPrivilegeType="NONE" defaultClient="$$client$$" visibility="reportingEnabled" calculationScenarioType="TREE_BASED" dataCategory="CUBE" enforceSqlExecution="false" outputViewType="Aggregation" cacheInvalidationPeriod="NONE">
<descriptions defaultDescription="Calculation View w/ parameters and quoted names"/>
<localVariables>
<variable id="Param" parameter="true">
Expand Down
14 changes: 7 additions & 7 deletions advanced/odata.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ OData is an OASIS standard, which essentially enhances plain REST with standardi
- <sup>(1)</sup> The elements to be searched are specified with the [`@cds.search` annotation](../guides/providing-services#searching-data).
- <sup>(2)</sup> The navigation path identifying the collection can only contain one segment.

System query options can also be applied to an [expanded navigation property](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html#_Toc31361039) (nested within `$expand`):
System query options can also be applied to an [expanded navigation property](https://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html#_Toc31361039) (nested within `$expand`):

| Query Options | Remarks | Node.js | Java |
|----------------|-------------------------------------------|----------|--------|
Expand Down Expand Up @@ -100,7 +100,7 @@ Content-Type: application/json
}
```

PATCH requests with delta payload are executed using batch delete and [upsert](../java/query-api#bulk-upsert) statements, and are more efficient than OData [batch requests](http://docs.oasis-open.org/odata/odata/v4.01/csprd02/part1-protocol/odata-v4.01-csprd02-part1-protocol.html#sec_BatchRequests).
PATCH requests with delta payload are executed using batch delete and [upsert](../java/query-api#bulk-upsert) statements, and are more efficient than OData [batch requests](https://docs.oasis-open.org/odata/odata/v4.01/csprd02/part1-protocol/odata-v4.01-csprd02-part1-protocol.html#sec_BatchRequests).

Use PATCH on entity collections for uploading mass data using a dedicated service, which is secured using [role-based authorization](../java/security#role-based-auth). Delta updates must be explicitly enabled by annotating the entity with

Expand Down Expand Up @@ -264,7 +264,7 @@ For each annotated target definition in CSN, the rules for restructuring from CS

### Qualified Annotations

OData foresees [qualified annotations](http://docs.oasis-open.org/odata/odata/v4.0/errata03/os/complete/part3-csdl/odata-v4.0-errata03-os-part3-csdl-complete.html#_Toc453752511), which essentially allow to specify different values for a given property. CDS syntax for annotations was extended to also allow appending OData-style qualifiers after a `#` sign to an annotation key, but always only as the last component of a key in the syntax.
OData foresees [qualified annotations](https://docs.oasis-open.org/odata/odata/v4.0/errata03/os/complete/part3-csdl/odata-v4.0-errata03-os-part3-csdl-complete.html#_Toc453752511), which essentially allow to specify different values for a given property. CDS syntax for annotations was extended to also allow appending OData-style qualifiers after a `#` sign to an annotation key, but always only as the last component of a key in the syntax.

For example, this is supported:

Expand Down Expand Up @@ -582,13 +582,13 @@ In any case, the resulting EDMX is:
### Dynamic Expressions { #dynamic-expressions}

OData supports dynamic expressions in annotations. CDS syntax doesn't allow writing expressions
in annotation values, but for OData annotations you can use the "edm-json inline mechanism" by providing a [dynamic expression](http://docs.oasis-open.org/odata/odata-csdl-json/v4.01/odata-csdl-json-v4.01.html#_Toc38466479) as defined
in the [JSON representation of the OData Common Schema Language](http://docs.oasis-open.org/odata/odata-csdl-json/v4.01/odata-csdl-json-v4.01.html) enclosed in `{ $edmJson: { ... }}`.
in annotation values, but for OData annotations you can use the "edm-json inline mechanism" by providing a [dynamic expression](https://docs.oasis-open.org/odata/odata-csdl-json/v4.01/odata-csdl-json-v4.01.html#_Toc38466479) as defined
in the [JSON representation of the OData Common Schema Language](https://docs.oasis-open.org/odata/odata-csdl-json/v4.01/odata-csdl-json-v4.01.html) enclosed in `{ $edmJson: { ... }}`.

Note that here the CDS syntax for string literals with single quotes (`'foo'`) applies,
and that paths are not automatically recognized but need to be written as `{$Path: 'fieldName'}`.
The CDS compiler translates the expression into the corresponding
[XML representation](http://docs.oasis-open.org/odata/odata-csdl-xml/v4.01/odata-csdl-xml-v4.01.html#_Toc38530421).
[XML representation](https://docs.oasis-open.org/odata/odata-csdl-xml/v4.01/odata-csdl-xml-v4.01.html#_Toc38530421).

For example, the CDS annotation:

Expand Down Expand Up @@ -791,7 +791,7 @@ This request operates on the books of the order with ID 10. First it filters out

#### `concat`

The [`concat` transformation](http://docs.oasis-open.org/odata/odata-data-aggregation-ext/v4.0/cs02/odata-data-aggregation-ext-v4.0-cs02.html#_Toc435016581) applies additional transformation sequences to the input set and concatenates the result:
The [`concat` transformation](https://docs.oasis-open.org/odata/odata-data-aggregation-ext/v4.0/cs02/odata-data-aggregation-ext-v4.0-cs02.html#_Toc435016581) applies additional transformation sequences to the input set and concatenates the result:

```http
GET /Books?$apply=
Expand Down
2 changes: 1 addition & 1 deletion cds/cdl.md
Original file line number Diff line number Diff line change
Expand Up @@ -1435,7 +1435,7 @@ service MyOrders {
```

::: tip
The notion of actions and functions in CDS adopts that of [OData](http://docs.oasis-open.org/odata/odata/v4.0/os/part1-protocol/odata-v4.0-os-part1-protocol.html#_Toc372793737); actions and functions on service-level are _unbound_ ones.
The notion of actions and functions in CDS adopts that of [OData](https://docs.oasis-open.org/odata/odata/v4.0/os/part1-protocol/odata-v4.0-os-part1-protocol.html#_Toc372793737); actions and functions on service-level are _unbound_ ones.
:::


Expand Down
2 changes: 1 addition & 1 deletion get-started/in-a-nutshell.md
Original file line number Diff line number Diff line change
Expand Up @@ -307,7 +307,7 @@ Open _<http://localhost:8080>_ in your browser and see the generic _index.html_

### Compiling APIs (Optional) { #repl}

You can also compile service definitions explicitly, for example to an [OData model](http:/docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part3-csdl.html):
You can also compile service definitions explicitly, for example to an [OData model](https://docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part3-csdl.html):

```sh
cds srv/cat-service.cds -2 edmx
Expand Down
2 changes: 1 addition & 1 deletion guides/databases.md
Original file line number Diff line number Diff line change
Expand Up @@ -585,7 +585,7 @@ Find here a collection of resources on selected databases and their reference do
* [SAP HANA SQL Reference Guide for SAP HANA Platform (Cloud Version)](https://help.sap.com/docs/HANA_SERVICE_CF/7c78579ce9b14a669c1f3295b0d8ca16/28bcd6af3eb6437892719f7c27a8a285.html)
* [SAP HANA SQL Reference Guide for SAP HANA Cloud](https://help.sap.com/docs/HANA_CLOUD_DATABASE/c1d3f60099654ecfb3fe36ac93c121bb/28bcd6af3eb6437892719f7c27a8a285.html)
* [SQLite Keywords](https://www.sqlite.org/lang_keywords.html)
* [H2 Keywords/Reserved Words](http://www.h2database.com/html/advanced.html#keywords)
* [H2 Keywords/Reserved Words](https://www.h2database.com/html/advanced.html#keywords)
[There are also reserved words related to SAP Fiori.](../advanced/fiori#reserved-words){.learn-more}
Expand Down
2 changes: 1 addition & 1 deletion guides/domain-modeling.md
Original file line number Diff line number Diff line change
Expand Up @@ -314,7 +314,7 @@ This eases the implementation of generic functions that can apply the same ways

### Prefer UUIDs for Keys

While UUIDs certainly come with an overhead and a performance penalty when looking at single databases, they have several advantages when we consider the total bill. So, you can avoid [the evil of premature optimization](http://wiki.c2.com/?PrematureOptimization) by at least considering these points:
While UUIDs certainly come with an overhead and a performance penalty when looking at single databases, they have several advantages when we consider the total bill. So, you can avoid [the evil of premature optimization](https://wiki.c2.com/?PrematureOptimization) by at least considering these points:

* **UUIDs are universal** — that means that they’re unique across every system in the world, while sequences are only unique in the source system's boundaries. Whenever you want to exchange data with other systems you'd anyways add something to make your records 'universally' addressable.

Expand Down
2 changes: 1 addition & 1 deletion guides/providing-services.md
Original file line number Diff line number Diff line change
Expand Up @@ -512,7 +512,7 @@ GET .../Books?$skiptoken=1000

On firing this query, you get the second set of 1,000 records with a link to the next page, and so on, until the last page is returned, with the response not containing a `nextLink`.
::: warning
Per OData specification for [Server Side Paging](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_ServerDrivenPaging), the value of the `nextLink` returned by the server must not be interpreted or changed by the clients.
Per OData specification for [Server Side Paging](https://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_ServerDrivenPaging), the value of the `nextLink` returned by the server must not be interpreted or changed by the clients.
:::

### Reliable Pagination
Expand Down
2 changes: 1 addition & 1 deletion guides/using-services.md
Original file line number Diff line number Diff line change
Expand Up @@ -615,7 +615,7 @@ extend service RiskService with {
CAP automatically tries to delegate queries to database entities, which don't exist as you're pointing to an external service. That behavior would produce an error like this:

```xml
<error xmlns="http://docs.oasis-open.org/odata/ns/metadata">
<error xmlns="https://docs.oasis-open.org/odata/ns/metadata">
<code>500</code>
<message>SQLITE_ERROR: no such table: RiskService_BusinessPartners in: SELECT BusinessPartner, Customer, Supplier, AcademicTitle, AuthorizationGroup, BusinessPartnerCategory, BusinessPartnerFullName, BusinessPartnerGrouping, BusinessPartnerName, BusinessPartnerUUID, CorrespondenceLanguage, CreatedByUser, CreationDate, (...) FROM RiskService_BusinessPartner ALIAS_1 ORDER BY BusinessPartner COLLATE NOCASE ASC LIMIT 11</message>
</error>
Expand Down
2 changes: 1 addition & 1 deletion java/indicating-errors.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ If the CDS property [`cds.errors.combined`](../java/development/properties#cds-e
## Formatting and Localization

Texts passed to both `ServiceException` and the `Messages` API can be formatted and localized.
By default you can use [SLF4J's messaging formatting style](http://www.slf4j.org/api/org/slf4j/helpers/MessageFormatter.html) to format strings passed to both APIs.
By default you can use [SLF4J's messaging formatting style](https://www.slf4j.org/api/org/slf4j/helpers/MessageFormatter.html) to format strings passed to both APIs.

```java
// message with placeholders
Expand Down
4 changes: 2 additions & 2 deletions java/observability.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ Various logging frameworks for Java have evolved and are widely used in Open Sou
- Hierarchical logger components that can be configured independently.
- Separation of log input (messages, parameters, context) and log output (format, destination).

CAP Java SDK seamlessly integrates with Simple Logging Facade for Java ([SLF4J](http://www.slf4j.org)), which provides an abstraction layer for logging APIs. Applications compiled against SLF4J are free to choose a concrete logging framework implementation at deployment time. Most famous libraries have a native integration to SLF4J, but it also has the capability to bridge legacy logging API calls:
CAP Java SDK seamlessly integrates with Simple Logging Facade for Java ([SLF4J](https://www.slf4j.org)), which provides an abstraction layer for logging APIs. Applications compiled against SLF4J are free to choose a concrete logging framework implementation at deployment time. Most famous libraries have a native integration to SLF4J, but it also has the capability to bridge legacy logging API calls:

<img src="./assets/slf4j.png" width="500px">

Expand Down Expand Up @@ -292,7 +292,7 @@ cf ssh -N -T -L <local-port>:localhost:<port> <app-name>

Afterwards, connect to `localhost:<local-port>` in the JMX client. Common JMX clients are:

- [JConsole](http://openjdk.java.net/tools/svc/jconsole/), which is part of the JDK delivery.
- [JConsole](https://openjdk.java.net/tools/svc/jconsole/), which is part of the JDK delivery.
- [OpenJDK Mission Control](https://github.com/openjdk/jmc), which can be installed separately.


Expand Down
6 changes: 3 additions & 3 deletions java/persistence-services.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ CAP Java SDK is tested on [PostgreSQL](https://www.postgresql.org/) 15 and suppo
1. H2 only supports database level collation. Lexicographical sorting on character-based columns isn’t supported.
2. Case-insensitive comparison isn’t yet supported.
3. By default, views aren’t updatable on H2. However, the CAP Java SDK supports some views to be updatable as described [here](query-execution#updatable-views).
4. Although referential and foreign key constraints are supported, H2 [doesn't support deferred checking](http://www.h2database.com/html/grammar.html#referential_action). As a consequence, schema SQL is never generated with referential constraints.
4. Although referential and foreign key constraints are supported, H2 [doesn't support deferred checking](https://www.h2database.com/html/grammar.html#referential_action). As a consequence, schema SQL is never generated with referential constraints.
5. In [pessimistic locking](query-execution#pessimistic-locking), _shared_ locks are not supported but an _exclusive_ lock is used instead.
6. The CDS type `UInt8` can't be used with H2, as there is no `TINYINT`. Use `Int16` instead.

Expand Down Expand Up @@ -165,7 +165,7 @@ To generate a `schema.sql` for H2, use the dialect `h2` with the `cds deploy` co
</execution>
```

In Spring, H2 is automatically initialized in-memory when present on the classpath. See the official [documentation](http://www.h2database.com/html/features.html) for H2 for file-based database configuration.
In Spring, H2 is automatically initialized in-memory when present on the classpath. See the official [documentation](https://www.h2database.com/html/features.html) for H2 for file-based database configuration.

The `cds-maven-plugin` provides the goal `add` that can be used to add H2 support to the CAP Java project:
```sh
Expand All @@ -192,7 +192,7 @@ To generate a `schema.sql` for SQLite, use the dialect `sqlite` with the `cds de
</execution>
```

Enable support for [session context variables](../guides/databases-sqlite#session-variables)
Enable support for [session context variables](../guides/databases-sqlite#session-variables)

- First enable compiler support in _.cdsrc.json_:

Expand Down
4 changes: 2 additions & 2 deletions node.js/authentication.md
Original file line number Diff line number Diff line change
Expand Up @@ -279,7 +279,7 @@ In contrast to [mocked authentication](#mocked), no default users are automatica
This is the default strategy used in production. User identity, as well as assigned roles and user attributes, are provided at runtime, by a bound instance of the ['user account and authentication'](https://help.sap.com/products/BTP/65de2977205c403bbc107264b8eccf4b/419ae2ef1ddd49dca9eb65af2d67c6ec.html) service (UAA). This is done in form of a JWT token in the `Authorization` header of incoming HTTP requests.
**Prerequisites:** You need to add [passport](http://www.passportjs.org/) to your project:
**Prerequisites:** You need to add [passport](https://www.passportjs.org/) to your project:
```sh
npm add passport
```
Expand Down Expand Up @@ -335,7 +335,7 @@ This is an additional authentication strategy using the [Identity Authentication
To allow forwarding to remote services, JWT tokens issued by IAS service don't contain authorization information. In particular, no scopes are included. Closing this gap is up to you as application developer.
**Prerequisites:** You need to add [passport](http://www.passportjs.org/) to your project:
**Prerequisites:** You need to add [passport](https://www.passportjs.org/) to your project:
```sh
npm add passport
```
Expand Down
2 changes: 1 addition & 1 deletion node.js/cds-compile.md
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ Renders the given model to a formatted JSON or YAML string.
### .to .edmx() {.method}


Compiles and returns an OData v4 [EDM](http://docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part3-csdl.html), respectively [EDMX](http://docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part3-csdl.html) model object for the passed in model, which is expected to contain at least one service definition.
Compiles and returns an OData v4 [EDM](https://docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part3-csdl.html), respectively [EDMX](https://docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part3-csdl.html) model object for the passed in model, which is expected to contain at least one service definition.

Accepted `options` the same [as documented for `cds.compile.for.odata`](#for-odata) above, with one addition: If the model contains more than one service definition, use `{service:...}` option parameter to:

Expand Down
2 changes: 1 addition & 1 deletion node.js/cds-log.md
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,7 @@ You can assign different implementations by exchanging the factory with your own
### *Using `winston` Loggers* {#winston}
**Prerequisites:** You need to add [winston](https:/www.npmjs.com/package/winston) to your project:
**Prerequisites:** You need to add [winston](https://www.npmjs.com/package/winston) to your project:
```sh
npm add winston
```
Expand Down
Loading

0 comments on commit ebca02b

Please sign in to comment.