diff --git a/.github/workflows/PR-SAP.yml b/.github/workflows/PR-SAP.yml index a8768e7855..ac83cae599 100644 --- a/.github/workflows/PR-SAP.yml +++ b/.github/workflows/PR-SAP.yml @@ -18,7 +18,7 @@ jobs: run: | git config --global credential.helper "cache --timeout=3600" echo -e "url=https://user:${GH_TOKEN}@github.com\n" | git credential approve - echo -e "url=https://user:${GH_TOKEN_PARENT}@github.tools.sap\n" | git credential approve + echo -e "url=https://user:${GH_TOKEN_TOOLS_DOCS}@github.tools.sap\n" | git credential approve git clone --depth 1 --no-single-branch https://github.tools.sap/cap/docs docs cd docs git checkout $GITHUB_HEAD_REF || git checkout main @@ -27,7 +27,7 @@ jobs: git checkout $GITHUB_HEAD_REF env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - GH_TOKEN_PARENT: ${{ secrets.GH_TOKEN_PARENT }} + GH_TOKEN_TOOLS_DOCS: ${{ secrets.GH_TOKEN_TOOLS_DOCS }} - name: Use Node.js uses: actions/setup-node@v4 with: @@ -44,6 +44,7 @@ jobs: working-directory: docs env: NODE_OPTIONS: "--max-old-space-size=6144" + VITE_CAPIRE_CI_HOST: "github.com" - name: Find broken anchor links working-directory: docs run: | diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index d8f6960af4..1770a1baa9 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -19,7 +19,7 @@ jobs: run: | git config --global credential.helper "cache --timeout=3600" echo -e "url=https://user:${GH_TOKEN}@github.com\n" | git credential approve - echo -e "url=https://user:${GH_TOKEN_PARENT}@github.tools.sap\n" | git credential approve + echo -e "url=https://user:${GH_TOKEN_TOOLS_DOCS}@github.tools.sap\n" | git credential approve git clone --depth 1 --no-single-branch https://github.tools.sap/cap/docs docs cd docs git checkout $GITHUB_HEAD_REF || git checkout main @@ -28,7 +28,7 @@ jobs: git checkout $GITHUB_HEAD_REF env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - GH_TOKEN_PARENT: ${{ secrets.GH_TOKEN_PARENT }} + GH_TOKEN_TOOLS_DOCS: ${{ secrets.GH_TOKEN_TOOLS_DOCS }} - name: Use Node.js uses: actions/setup-node@v4 with: diff --git a/.vitepress/config.js b/.vitepress/config.js index fb557c0481..2bff0cd425 100644 --- a/.vitepress/config.js +++ b/.vitepress/config.js @@ -70,7 +70,7 @@ const config = defineConfig({ vite: { build: { - chunkSizeWarningLimit: 5000, // chunk for local search index dominates + chunkSizeWarningLimit: 6000, // chunk for local search index dominates }, css: { preprocessorOptions: { @@ -106,8 +106,8 @@ config.rewrites = rewrites // Add custom capire info to the theme config config.themeConfig.capire = { versions: { - java_services: '3.9.0', - java_cds4j: '3.9.0' + java_services: '3.10.1', + java_cds4j: '3.10.1' }, gotoLinks: [], maven_host_base: 'https://repo1.maven.org/maven2' diff --git a/.vitepress/theme/styles.scss b/.vitepress/theme/styles.scss index 757e9db260..64d5365ab9 100644 --- a/.vitepress/theme/styles.scss +++ b/.vitepress/theme/styles.scss @@ -144,9 +144,7 @@ main { table { tr, th, td { - // &:nth-child(2n) { - background-color: transparent !important; - // } + background-color: var(--vp-c-bg); } td, th { border-color: #bbb; .dark & { border-color: #555 }; @@ -520,11 +518,6 @@ a.learn-more, p.learn-more, .learn-more { .VPBadge { white-space: nowrap; } -/* remove transparency in the odd rows (when it scrolls over outline) */ -tr:nth-child(odd) { - background-color: var(--vp-c-bg); -} - html.java { & .node { display: none; @@ -550,6 +543,10 @@ html.node { table:focus { min-width: fit-content; } + tr { // make wide rows go over outline, not below it + z-index: 1; + position: relative; + } [class*='language-'] pre { overflow: hidden !important; } diff --git a/advanced/fiori.md b/advanced/fiori.md index 2cc613ace0..ce24e29cd5 100644 --- a/advanced/fiori.md +++ b/advanced/fiori.md @@ -25,63 +25,35 @@ This guide explains how to add one or more SAP Fiori elements apps to a CAP proj For entities exposed via OData V4 there is a _Fiori preview_ link on the index page. It dynamically serves an SAP Fiori Elements list page that allows you to quickly see the effect of annotation changes without having to create a UI application first. -
| Operator | + | |||
|---|---|---|---|---|
| + CAP Java + | - Predicate + CDL | Description @@ -1488,11 +1494,9 @@ These comparison operators are supported: | ||
| EQ | = | -EQ - | -- Test if this value equals a given value. NULL values might be treated as unknown resulting in a three-valued logic as in SQL. + Test if this value equals a given value. NULL values might be treated as unknown resulting in a three-valued logic as in SQL. |
Select.from("bookshop.Books")
@@ -1502,11 +1506,9 @@ EQ
|
| NE | <> | -NE - | -- Test if this value is NOT equal to a given value. NULL values might be treated as unknown resulting in a three-valued logic as in SQL. + Test if this value is NOT equal to a given value. NULL values might be treated as unknown resulting in a three-valued logic as in SQL. |
Select.from("bookshop.Books")
@@ -1516,11 +1518,9 @@ NE
|
| IS | == | -IS - | -- Test if this value equals a given value. NULL values are treated as any other value. + Test if this value equals a given value. NULL values are treated as any other value (Boolean logic). | @@ -1532,11 +1532,9 @@ IS |
| IS NOT | != | -IS NOT - | -- Test if this value is NOT equal to a given value. NULL values are treated as any other value. + Test if this value is NOT equal to a given value. NULL values are treated as any other value (Boolean logic). | @@ -1548,9 +1546,7 @@ IS NOT |
| -GT - | +GT | > | Test if this value is greater than a given value. | @@ -1564,9 +1560,21 @@ GT|
| GE | >= | -LT + Test if this value is greater than or equal to a given value. | +
+
+Select.from("bookshop.Books")
+ .where(b -> b.get("stock")
+ .ge(5));
+
+ |
+|
| LT | < | Test if this value is less than a given value. | @@ -1580,9 +1588,7 @@ LT||
| -LE - | +LE | <= | Test if this value is less than or equal to a given value. | @@ -1596,7 +1602,7 @@ LE|
| + | BETWEEN |
diff --git a/java/working-with-cql/query-execution.md b/java/working-with-cql/query-execution.md
index 8f206e1764..af60b19a27 100644
--- a/java/working-with-cql/query-execution.md
+++ b/java/working-with-cql/query-execution.md
@@ -400,11 +400,17 @@ The `lock()` method has an optional parameter `timeout` that indicates the maxim
The parameter `mode` allows to specify whether an `EXCLUSIVE` or a `SHARED` lock should be set.
-## Runtime Views { #runtimeviews}
+## Runtime Views { #runtimeviews }
-The CDS compiler generates [SQL DDL](../../guides/databases?impl-variant=java#generating-sql-ddl) statements based on your CDS model, which include SQL views for all CDS [views and projections](../../cds/cdl#views-projections). This means adding or changing CDS views requires a deployment of the database schema changes.
+The CDS compiler generates [SQL DDL](../../guides/databases?impl-variant=java#generating-sql-ddl) statements from your CDS model, including SQL views for all CDS [views and projections](../../cds/cdl#views-projections). As a result, adding or modifying CDS views typically requires redeploying the database schema.
-To avoid schema updates due to adding or updating CDS views, annotate them with [@cds.persistence.skip](../../guides/databases#cds-persistence-skip). In this case the CDS compiler won't generate corresponding static database views. Instead, the CDS views are dynamically resolved by the CAP Java runtime.
+To avoid schema redeployments when you add or update CDS views, annotate them with [@cds.persistence.skip](../../guides/databases#cds-persistence-skip). This annotation tells the CDS compiler to skip generating database views for these entities. Instead, the CAP Java runtime dynamically resolves such views at runtime.
+
+::: warning Limitations
+Runtime views support only simple [CDS projections](../../cds/cdl#as-projection-on). They do not support complex views that use aggregations, unions, joins, or subqueries in the `FROM` clause. To read [draft-enabled](../fiori-drafts#reading-drafts) entities, set `cds.drafts.persistence` to `split`. [Calculated elements](../../cds/cdl#calculated-elements) are not yet supported in runtime views.
+:::
+
+For example, consider the following CDS model and query:
```cds
entity Books {
@@ -413,33 +419,47 @@ entity Books {
stock : Integer;
author : Association to one Authors;
}
-@cds.persistence.skip // [!code focus]
-entity BooksWithLowStock as projection on Books { // [!code focus]
- id, title, author.name as author // [!code focus]
-} where stock < 10; // [!code focus]
+@cds.persistence.skip
+entity BooksWithLowStock as projection on Books {
+ id, title, author.name as author
+} where stock < 10;
```
-
-At runtime, CAP Java resolves queries against runtime views until an entity is reached that isn't annotated with *@cds.persistence.skip*. For example, the CQL query
-
```sql
Select BooksWithLowStock where author = 'Kafka'
```
-is executed against SQL databases as
-
-```SQL
-SELECT B.ID, B.TITLE, A.NAME as "author" FROM BOOKS AS B
- LEFT OUTER JOIN AUTHORS AS A ON B.AUTHOR_ID = A.ID
-WHERE B.STOCK < 10 AND A.NAME = ?
-```
+CAP Java provides two modes for resolving runtime views:
-::: warning Limitations
-Runtime views are supported for simple [CDS projections](../../cds/cdl#as-projection-on). Expands of [filtered associations](../../cds/cdl#publish-associations-with-filter) are only supported since `3.7.0`. Constant values and expressions in runtime views are supported since `3.8.0`.
+**`cte` mode**: The runtime translates the view definition into a _Common Table Expression_ (CTE) and sends it with the query to the database.
-Complex views using aggregations or union/join/subqueries in `FROM` are not supported and for reading [draft-enabled](../fiori-drafts#reading-drafts) entities, `cds.drafts.persistence` needs to be set to `split`.
+```sql
+WITH BOOKSWITHLOWSTOCK_CTE AS (
+ SELECT B.ID,
+ B.TITLE,
+ A.NAME AS "AUTHOR"
+ FROM BOOKS B
+ LEFT OUTER JOIN AUTHOR A ON B.AUTHOR_ID = A.ID
+ WHERE B.STOCK < 10
+)
+SELECT ID, TITLE, AUTHOR AS "author"
+ FROM BOOKSWITHLOWSTOCK_CTE
+ WHERE A.NAME = ?
+```
+
+::: tip
+CAP Java 4.x uses `cte` mode by default. In 3.10, enable it with **cds.sql.runtimeView.mode: cte**.
:::
-### Using I/O Streams in Queries
+**`resolve` mode**: The runtime _resolves_ the view definition to the underlying persistence entities and executes the query directly against them.
+
+```sql
+SELECT B.ID, B.TITLE, A.NAME AS "author"
+ FROM BOOKS AS B
+ LEFT OUTER JOIN AUTHORS AS A ON B.AUTHOR_ID = A.ID
+ WHERE B.STOCK < 10 AND A.NAME = ?
+```
+
+## Using I/O Streams in Queries
As described in section [Predefined Types](../cds-data#predefined-types) it's possible to stream the data, if the element is annotated with `@Core.MediaType`. The following example demonstrates how to allocate the stream for element `coverImage`, pass it through the API to an underlying database and close the stream.
@@ -473,7 +493,7 @@ try (InputStream resource = getResource("IMAGE.PNG")) {
// Transaction finished
```
-### Using Native SQL
+## Using Native SQL
CAP Java doesn't have a dedicated API to execute native SQL Statements. However, when using Spring as application framework you can leverage Spring's features to execute native SQL statements. See [Execute SQL statements with Spring's JdbcTemplate](../cqn-services/persistence-services#jdbctemplate) for more details.
diff --git a/menu.md b/menu.md
index e373bfe69b..716409ff24 100644
--- a/menu.md
+++ b/menu.md
@@ -46,6 +46,7 @@
### [SAP Event Mesh](guides/messaging/event-mesh)
### [Apache Kafka](../guides/messaging/apache-kafka)
### [Events from S/4](guides/messaging/s4)
+ ### [Task Queues](guides/messaging/task-queues)
## [Protocols/APIs](advanced/publishing-apis/)
@@ -91,7 +92,7 @@
### [Deploy to Cloud Foundry](../guides/deployment/to-cf)
### [Deploy to Kyma/K8s](../guides/deployment/to-kyma)
- ### [Deploy to Shared DB](../guides/deployment/shared-db)
+ ### [Microservices with CAP](../guides/deployment/microservices)
### [Deploy with Confidence](../guides/deployment/dwc)
### [Deploy with CI/CD](../guides/deployment/cicd)
### [Custom Builds](../guides/deployment/custom-builds)
@@ -165,3 +166,4 @@
## [Open Resource Discovery](plugins/#ord-open-resource-discovery)
## [CAP Operator for K8s](plugins/#cap-operator-plugin)
## [SAP Cloud Appl. Event Hub](plugins/#event-hub)
+## [Advanced Event Mesh](plugins/#advanced-event-mesh)
diff --git a/node.js/_menu.md b/node.js/_menu.md
index eec9275676..609d8aae34 100644
--- a/node.js/_menu.md
+++ b/node.js/_menu.md
@@ -57,7 +57,7 @@
# [cds. utils](cds-utils)
# [cds. test()](cds-test)
# [cds. plugins](cds-plugins)
-# [cds. outboxed()](outbox)
+# [cds. queued()](queue)
# [TypeScript](typescript)
# [Fiori Support](fiori)
# [Best Practices](best-practices)
diff --git a/node.js/authentication.md b/node.js/authentication.md
index 8d76c59113..2394829ea9 100644
--- a/node.js/authentication.md
+++ b/node.js/authentication.md
@@ -369,6 +369,28 @@ npm add @sap/xssec
```
:::
+#### Token Validation
+
+For tokens issued by SAP Cloud Identity Service, `@sap/xssec` offers two additional validations: (1) token ownership via x5t thumbprint and (2) proof-of-possession.
+These validations are enabled by default for requests to the app's `cert` route (`.cert` segment in the domain).
+
+The default behavior can be overwritten using additional configuration as follows:
+
+```json
+"requires": {
+ "auth": {
+ "kind": "ias",
+ "config": { // passed to @sap/xssec as is
+ "validation": {
+ "x5t": { "enabled": false },
+ "proofToken": { "enabled": false }
+ }
+ }
+ }
+}
+```
+
+Please see [`@sap/xssec` documentation](https://www.npmjs.com/package/@sap/xssec) for more details.
### Custom Authentication { #custom }
@@ -461,7 +483,7 @@ If you don't know the API endpoint, have a look at section [Regions and API Endp
```json
"oauth2-configuration": {
"redirect-uris": [
- "http://localhost:5000/"
+ "http://localhost:5000/login/callback"
]
}
```
diff --git a/node.js/cds-compile.md b/node.js/cds-compile.md
index db25936742..b28c6f36d9 100644
--- a/node.js/cds-compile.md
+++ b/node.js/cds-compile.md
@@ -183,15 +183,6 @@ for (let [edm,{file,suffix}] of all)
console.log (file,suffix,edm)
```
-
-### .hdbcds() {.method .deprecated}
-
-Generates `hdbcds` output.
-
-Current SAP HANA Cloud versions do no longer support `.hdbcds`. The command is supported for backward compatibility with older versions of [SAP HANA Service for SAP BTP](https://help.sap.com/docs/HANA_SERVICE).
-
-Use [`cds.compile.to.hana`](#hana) instead.
-
### .hdbtable() {.method .deprecated}
Use [`cds.compile.to.hana`](#hana) instead.
diff --git a/node.js/cds-connect.md b/node.js/cds-connect.md
index e1c3062e94..26b1147e09 100644
--- a/node.js/cds-connect.md
+++ b/node.js/cds-connect.md
@@ -13,15 +13,72 @@ The latter include **database** services. In all cases use `cds.connect` to conn
[[toc]]
+## Connecting to Required Services { #cds-connect-to }
+
+
+
+### cds. connect.to () {.method}
+
+Use `cds.connect.to()` to connect to services configured in a project's `cds.requires` configuration.
+
+```js
+const ReviewsService = await cds.connect.to('ReviewsService')
+```
+
+The method returns a _Promise_ resolving to a _[Service](../cds/cdl#services)_ instance which acts as a client proxy to the service's API, allowing you to call its methods and access its data using common [`cds.Service`](core-services#consuming-services) methods, e.g.:
+
+```js
+let reviews = await ReviewsService.read ('Reviews')
+```
+
+
+**Arguments** are as follows:
+
+```ts:no-line-numbers
+async function cds.connect.to (
+ name? : string, // reference to an entry in `cds.requires` config
+ options? : {
+ kind : string // reference to a preset in `cds.requires.kinds` config
+ impl : string // module name of the implementation
+ }
+) : Promise | ||
cds.import
+ Programmatically use cds.import.
---
# CDS Import API
diff --git a/tools/assets/help/cds-compile.out.md b/tools/assets/help/cds-compile.out.md
index 2479f58c0c..8de919a7d4 100644
--- a/tools/assets/help/cds-compile.out.md
+++ b/tools/assets/help/cds-compile.out.md
@@ -18,7 +18,7 @@
- json, yml
- edm, edmx, edmx-v2, edmx-v4, edmx-w4, edmx-x4
- - sql, hdbcds, hdbtable, hana
+ - sql, hana, hdbtable
- cdl
- xsuaa
- openapi
diff --git a/tools/assets/help/cds-debug.out.md b/tools/assets/help/cds-debug.out.md
index 1b861de222..17a16a6bbb 100644
--- a/tools/assets/help/cds-debug.out.md
+++ b/tools/assets/help/cds-debug.out.md
@@ -25,6 +25,10 @@
the debug port (default: '9229' for Node.js, '8000' for Java)
+ -f | --force
+
+ if necessary, automatically enable ssh for the app and restart it
+
EXAMPLES
cds debug
cds debug bookshop-srv --port 8001
diff --git a/tools/assets/help/cds-help.out.md b/tools/assets/help/cds-help.out.md
index 215581b595..e3c65240ac 100644
--- a/tools/assets/help/cds-help.out.md
+++ b/tools/assets/help/cds-help.out.md
@@ -22,6 +22,8 @@
e | env inspect effective configuration
b | build prepare for deployment
d | deploy deploy to databases or cloud
+ | up build and deploy your application
+ | debug debug your application
| subscribe subscribe a tenant to a multitenant SaaS app
| unsubscribe unsubscribe a tenant from a multitenant SaaS app
l | login login to extensible multitenant SaaS app
diff --git a/tools/assets/help/cds-init.out.md b/tools/assets/help/cds-init.out.md
index 6d9a1db73f..64538bdefd 100644
--- a/tools/assets/help/cds-init.out.md
+++ b/tools/assets/help/cds-init.out.md
@@ -84,7 +84,7 @@
cds init bookshop --java
cds init bookshop --add hana
cds init bookshop --add multitenancy,mta
- cds init --java --java:mvn groupId=myGroup,artifactId=newId,package=my.company
+ cds init --java --java:mvn DgroupId=myGroup,DartifactId=newId,Dpackage=my.company
SEE ALSO
cds add - to augment your projects later on
diff --git a/tools/assets/help/cds-typer.out.md b/tools/assets/help/cds-typer.out.md
index 3c1014543e..594fcf474f 100644
--- a/tools/assets/help/cds-typer.out.md
+++ b/tools/assets/help/cds-typer.out.md
@@ -20,6 +20,13 @@ OPTIONS
This value must be set in your project configuration.
Passing it as parameter to the cds-typer CLI has no effect.
+ --cache: <none | blake2s256>
+ (default: none)
+
+ How to cache typer runs.
+ none: fully run cds-typer whenever it is called
+ blake2s256: only run if the blake2s256-hash of the model has changed. Hash is stored in a file between runs.
+
--help
This text.
@@ -74,6 +81,7 @@ OPTIONS
If set to true, properties in entities are
always generated as optional (a?: T).
+ Setting it to false makes properties non-optional instead (a: T).
--targetModuleType
--target_module_type: <esm | cjs | auto>
@@ -85,7 +93,7 @@ OPTIONS
--useEntitiesProxy
--use_entities_proxy: <true | false>
- (default: false)
+ (default: true)
If set to true the 'cds.entities' exports in the generated 'index.js'
files will be wrapped in 'Proxy' objects
diff --git a/tools/assets/help/cds-version-md.out.md b/tools/assets/help/cds-version-md.out.md
index 5c0fb3d392..5a0c0b19a8 100644
--- a/tools/assets/help/cds-version-md.out.md
+++ b/tools/assets/help/cds-version-md.out.md
@@ -5,16 +5,14 @@
| your-project | <Add your repository here> |
| ---------------------- | --------------------------------------- |
| @cap-js/asyncapi | 1.0.3 |
-| @cap-js/cds-types | 0.9.0 |
-| @cap-js/db-service | 1.19.1 |
-| @cap-js/openapi | 1.2.1 |
-| @cap-js/sqlite | 1.10.0 |
-| @sap/cds | 8.9.0 |
-| @sap/cds-compiler | 5.9.0 |
-| @sap/cds-dk (global) | 8.9.0 |
-| @sap/cds-fiori | 1.4.0 |
-| @sap/cds-foss | 5.0.1 |
-| @sap/cds-mtxs | 2.7.0 |
-| @sap/eslint-plugin-cds | 3.2.0 |
-| Node.js | v20.19.0 |
+| @cap-js/cds-types | 0.10.0 |
+| @cap-js/db-service | 2.0.1 |
+| @cap-js/openapi | 1.2.3 |
+| @cap-js/sqlite | 2.0.1 |
+| @sap/cds | 9.0.2 |
+| @sap/cds-compiler | 6.0.10 |
+| @sap/cds-dk (global) | 9.0.4 |
+| @sap/cds-fiori | 2.0.1 |
+| @sap/cds-mtxs | 3.0.1 |
+| Node.js | v20.19.2 |
diff --git a/tools/assets/help/cds-version.out.md b/tools/assets/help/cds-version.out.md
index 6887a503b7..816f6d0f36 100644
--- a/tools/assets/help/cds-version.out.md
+++ b/tools/assets/help/cds-version.out.md
@@ -3,17 +3,15 @@
> cds version
@cap-js/asyncapi: 1.0.3
-@cap-js/cds-types: 0.9.0
-@cap-js/db-service: 1.19.1
-@cap-js/openapi: 1.2.1
-@cap-js/sqlite: 1.10.0
-@sap/cds: 8.9.0
-@sap/cds-compiler: 5.9.0
-@sap/cds-dk (global): 8.9.0
-@sap/cds-fiori: 1.4.0
-@sap/cds-foss: 5.0.1
-@sap/cds-mtxs: 2.7.0
-@sap/eslint-plugin-cds: 3.2.0
-Node.js: v20.19.0
+@cap-js/cds-types: 0.10.0
+@cap-js/db-service: 2.0.1
+@cap-js/openapi: 1.2.3
+@cap-js/sqlite: 2.0.1
+@sap/cds: 9.0.2
+@sap/cds-compiler: 6.0.10
+@sap/cds-dk (global): 9.0.4
+@sap/cds-fiori: 2.0.1
+@sap/cds-mtxs: 3.0.1
+Node.js: v20.19.2
your-project: 1.0.0
diff --git a/tools/cds-cli.md b/tools/cds-cli.md
index 884bf050c5..d4e986bd99 100644
--- a/tools/cds-cli.md
+++ b/tools/cds-cli.md
@@ -127,6 +127,8 @@ The facets built into `@sap/cds-dk` provide you with a large set of standard fea
| `toggles` | - -Adding feature 'lint'... - -Successfully added features to your project. - - -Almost done -- -If a _package.json_, _pom.xml_, or _.cdsrc.json_ file is found, you have the choice to install the ESLint dependencies directly. Once confirmed, this will install ESLint and the CDS plugin, as well as add the corresponding configuration for the recommended rules into your project. +You may be asked to install ESLint as additional dependency in case it is not available in your project yet. Just follow the instructions on screen. ### CDS Lint CLI {#usage-lint-cli} @@ -72,7 +54,7 @@ It follows standard ESLint behaviour. If there are no lint errors, there is no o Make sure you have ESLint and our ESLint plugin installed via [`cds add lint`](#cds-add-lint). ::: -To turn on Lint checking in your VS Code Editor simply download the [ESLint extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) for _Visual Studio Code_. +To turn on lint checking in your VS Code Editor simply download the [ESLint extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) for _Visual Studio Code_. CDS Lint seamlessly integrates with it. For _SAP Business Application Studio_ this comes preinstalled. Now you can see lint reports also in your editor. You can see all rules [marked as **Editor default** here](./rules/). Any other (project-based) rules are not turned on by diff --git a/tools/cds-lint/rules/index.md b/tools/cds-lint/rules/index.md index d6066f1767..226b7e11e8 100644 --- a/tools/cds-lint/rules/index.md +++ b/tools/cds-lint/rules/index.md @@ -12,7 +12,7 @@ status: released # Rules Reference -Below you can find all rules of the \`@sap/eslint-plugin-cds\` ESLint plugin. +Below you can find all rules of the `@sap/eslint-plugin-cds` ESLint plugin. They are grouped by categories [Model Validation](#model-validation) and [Environment](#environment) to help you understand their purpose.you are missing 2 npm dependencies : - -(1) ESLint v>=8.0.0 -(2) ESLint plugin for CDS - - -Install dependencies now ? [y/n] y - -Successfully added features to your project. -