OrganisationSAP

SAP Cloud Application Programming Model

Capabilities28

Provides 28
Agent access to your codeCAPAgent access to your codecapabilityLetting a coding agent read the project or the system you actually have, reach its model, its objects and its checks, and act on it. In file-based environments that works out of the box; complex systems need dedicated access capabilities. Whatever the environment, the agent also needs project- and framework-specific context, so it understands the thing in front of it rather than guessing from what it remembers of its training data. The transport is incidental: an MCP server, a language server or a CLI answer the same question, and what differs between them is how much of the real thing the agent can see. Distinct from [MCP servers](capability:mcp-servers), which is a protocol adapter on your own running service, and from [agent guidance](capability:agent-guidance), which is knowledge handed over as files rather than read from the thing itself.Agent toolingCAPAgent toolingcapabilityBuilding an agent into your own application — the tools it may call, the state it keeps between turns, and the framework it runs in. Distinct from MCP servers, which expose an application to somebody else's agent, and from agent guidance, which is knowledge handed to a coding agent.AttachmentsCAPAttachmentscapabilityStoring a file somebody uploaded next to the record it belongs to, and getting it back out — where the bytes actually live, who may read them, and what the UI shows while they are being scanned.Audit loggingCAPAudit loggingcapabilityRecording who touched personal or sensitive data, in a form an auditor accepts, without hand-writing it in every handler. It is often confused with application logging, which records what the code did rather than who accessed what.Change trackingCAPChange trackingcapabilityKeeping a readable history of what changed on a record, who changed it and when — as business history rather than database journalling.CI/CD pipelinesCAPCI/CD pipelinescapabilityA pipeline that builds, tests and delivers an application each time its source repository changes, with a build log that shows which step failed. [Deployment](capability:deployment) describes getting the build onto its target runtime.Data federationCAPData federationcapabilityReading data that lives in another system as if it were local — by federating the query, by copying the rows, or by caching what was read. Three different answers to one question, and the choice is about how stale you can afford to be.Data privacyCAPData privacycapabilityDoing what the law requires with personal data — knowing which fields are personal, answering a subject's request about them, and deleting them when the reason for holding them expires.Database connectorsCAPDatabase connectorscapabilityConnecting an application’s data model and queries to a database, including the differences in supported queries, types and schema management between database implementations. Changing an existing schema belongs to [schema evolution](capability:schema-evolution).DebuggingCAPDebuggingcapabilitySeeing what running code did between an input arriving and a result coming out: which code ran, what the values were at each point, and why a value ended up as it did.DeploymentCAPDeploymentcapabilityGetting an application onto a runtime and keeping it there: build descriptors, deployment topology, service bindings and lifecycle operations. The target runtime determines how the application is packaged and configured.Document outputCAPDocument outputcapabilityProducing a document a person receives — a printed form, a generated PDF, a filled template — and getting it to a printer or a queue rather than returning it as a payload.DocumentationCAPDocumentationcapabilityFinding the answer in what has already been written, and writing it where it has not — first-party documentation made searchable by something other than a person scrolling it, including by an agent, and a document of custom code produced from the code itself.Editor supportCAPEditor supportcapabilityWorking in source code with the editor helping rather than treating it as text — completion, go-to-definition, inline errors, refactoring and preview.Event MeshCAPEvent MeshcapabilityEmitting and consuming business events across systems through brokers, including subscriptions and mapping application events to broker topics. Work that must survive a request, including deferred processing and retries, belongs to [async processing](capability:async-processing).GraphQLCAPGraphQLcapabilityServing the same model over GraphQL instead of OData — one endpoint, the client naming the fields it wants, for consumers who expect that shape rather than an OData one.LLM integrationCAPLLM integrationcapabilityCalling a language model from application code with the tenant, destination and credential handling already solved instead using an SDK call with a hand-rolled key.LoggingCAPLoggingcapabilitySeeing what a running service did, in a form something can read afterwards — levels, a formatter that suits a laptop and one that suits a log service.Metadata publishingCAPMetadata publishingcapabilityDescribing a service to something other than a human — service metadata for clients, and machine-readable descriptions for registries and discovery.Native SAP HANA artifactsCAPNative SAP HANA artifactscapabilityUsing native SAP HANA database objects alongside an application’s generated data model, including objects and database features the modelling layer cannot express. Choosing a database is [database connectors](capability:database-connectors); changing an existing schema is [schema evolution](capability:schema-evolution).NotificationsCAPNotificationscapabilityTelling a person something happened when they are not looking at the screen — a notification in the launchpad, an email, a message somewhere they already are.OpenAPICAPOpenAPIcapabilityHanding a description of the service to clients and tools — an API portal, a code generator, a partner who wants a contract before they write anything.Retrieval-augmented generationCAPRetrieval-augmented generationcapabilityGrounding a model's answer in data retrieved at question time: text split into chunks, each chunk embedded as a vector, and the chunks nearest to the question placed into the prompt. Semantic search is the same retrieval with a person reading the matches, and fine-tuning changes the model's weights, not its input.Serve your application over MCPCAPServe your application over MCPcapabilityExposing selected application data and business operations to an AI agent through the Model Context Protocol. An application may also integrate remote services through [service integration](capability:service-integration), connecting its exposed contract with [agent access to your systems](capability:agent-systems-access). Development assistance belongs to [agent access to your code](capability:agent-code-access).TelemetryCAPTelemetrycapabilitySeeing what a running service did — traces across handlers and database calls, metrics, and correlation that survives an async boundary.TestingCAPTestingcapabilityProving the service still does what it did — against the model and the handlers, without a deployed system and without a database somebody has to keep clean.TypingCAPTypingcapabilityMaking the model visible to the compiler — generated types for entities and events so a rename breaks the build rather than production.Workflow integrationCAPWorkflow integrationcapabilityDriving an external workflow or automation engine from an application and reacting to what it emits — triggering runs transactionally and importing the engine’s shape as a typed model.

Entries34

Group by34 of 34 entries
EntrySignals
Maintains33
@cap-js/advanced-event-meshv1.1.0
none

CAP integration with SAP Integration Suite advanced event mesh

@cap-js/agentsv0.9.9
Functional boundary

CDS plugin for building agents inside a CAP service

@cap-js/aiv1.2.1
none

Value-help recommendations and SAP AI Core as a CAP service

@cap-js/asyncapiv1.1.0
none

Exports AsyncAPI documents for a CAP service's events

@cap-js/attachmentsv4.0.0
none

CAP Node.js attachments with database, S3, Azure or GCP storage

@cap-js/audit-loggingv1.3.0
none

CAP integration with the SAP Audit Log service

@cap-js/cap-operator-pluginv0.20.0
none

Generates Helm charts for the CAP Operator on Kubernetes

@cap-js/cds-testv1.0.2
none

Test support for CAP Node.js: server start, HTTP client, assertions

@cap-js/cds-typerv0.41.1
none

Generates TypeScript types from a CDS model

@cap-js/cds-typesv0.20.0
none

Type definitions for the CAP Node.js SDK

@cap-js/change-trackingv2.2.3
none

Change history for annotated CAP entities

@cap-js/consolev1.0.2
none

Connects a running CAP application to the CAP console

@cap-js/data-inspectorv2.0.1
none

Inspects database entities and contents at CAP service level

@cap-js/data-privacyv0.6.3
none

CAP integration with SAP Data Privacy Integration

@cap-js/db-servicev3.1.2
none

Base service shared by CAP's SQLite, PostgreSQL and HANA services

@cap-js/event-brokerv0.3.1
none

Consumes events from SAP Cloud Application Event Hub in CAP

@cap-js/graphqlv0.14.0
none

GraphQL protocol adapter generated from the CDS model

@cap-js/hanav3.1.2
none

SAP HANA database service for CAP

@cap-js/mcpv1.5.0
Functional boundary

Exposes CAP services as MCP servers for AI agents

@cap-js/mcp-serverv0.0.8
Functional boundary

MCP server for CAP development: model and docs search

@cap-js/n8nv0.0.1
none

Triggers n8n workflows from a CAP application

@cap-js/notificationsv1.1.1
none

Business notifications from CAP to SAP Build WorkZone

@cap-js/openapiv1.7.0
none

Generates OpenAPI documents from a CDS service

@cap-js/ordv1.10.2
none

Generates Open Resource Discovery documents from a CAP model

@cap-js/postgresv3.1.2
none

PostgreSQL database service for CAP

@cap-js/printv0.2.1
none

Prints documents held in CAP entities through SAP Print service

@cap-js/processv0.2.1
none

Starts and manages SAP Build Process Automation processes from CAP

@cap-js/sdmv1.11.0
Functional boundary

CAP attachments stored in an SAP Document Management repository

@cap-js/sqlitev3.1.2
none

SQLite database service for CAP, in memory during development

@cap-js/telemetryv2.1.1
none

OpenTelemetry instrumentation for CAP services

cds-federation-synonyms
Functional boundary

CAP-to-CAP data federation over SAP HANA synonyms

cds-intellij
none

SAP CDS language support for IntelliJ IDEA

cf-setup
none

GitHub Action setting up the Cloud Foundry CLI

Maintains: samples, sketches and references1
@cap-js/cds-dbsv1.3.1
none

Monorepo of CAP's SQL database services

Details

History77
  • @cap-js/agentsdescription.what_it_solves, description.when_not_to_use → a paragraph on what the plugin serves and the two situations it is not forThe page carried only an index line while capire's CAP-level Agents guide documents the whole surface. Written from that guide re-read on 2026-10-15: the generated tools and ReAct loop, the AGENTS.md and SKILL.md route, @agent.hitl, the database-backed short-term memory, the quotas, the optional audit-logging and telemetry packages, subagents over A2A and the three LLM kinds. when_not_to_use carries the guide's own caution that CAP-level agents are not an SAP-endorsed pathway for agentic access to SAP Application APIs, and that the chat preview is experimental and for local development.
  • @cap-js/agentsprovides.agent-tooling → the AGENTS.md route, the approval gate and the persisted short-term memory added, five property values and eleven sourcescapability:agent-tooling declared four comparison properties on 2026-10-15 beside the existing protocols property. All five values are answered from the guide re-read the same day and scoped to the node flavor, the only one this plugin states: the plugin serves the agent itself, the harness underneath is named as LangChain or Pi, it serves A2A and generates MCP tools, short-term memory is in the connected primary database, and @agent.hitl requires human approval before an action runs.
  • @cap-js/agentsrequires → artifact:btp-ai-core, conditional on the aicore kindHow the agent reaches a model was nowhere on the entry, while the Java module of the same plugin already carried the edge. capire's configuration table states that aicore is the default for the production and hybrid profiles and connects to SAP AI Core, with auto and mock as the development kinds, so the requirement is conditional and the condition names the alternatives.
  • @cap-js/aiprovides[llm-integration].facets → model_access: SAP AI Corecapability:llm-integration declared two comparison properties on 2026-10-15. This one is answered from the README's own opening line, re-read the same day, and from the sentence that names the binding a production deployment needs. The second property, response_streaming, is left absent: the README says nothing about streaming, and absent is not no.
  • @cap-js/aiprovides[llm-integration].sources → the same page's whole sentence, checked 2026-10-15Re-read for the capability's impact assessment. The page still carries the claim, now in a longer sentence that also names the automatic service-binding resolution and the tenant-aware resource groups and deployments the coverage paragraph leans on, so the quote is the full sentence and the date is today's.
  • @cap-js/telemetrydescription.what_it_solves, provides, connects.sources → what it does for telemetry, its three stated properties, and the binding sentence on the Cloud Logging edgeTelemetry curation for the CAP door. The entry carried no paragraph and no property values, so the capability's comparison had nothing from the runtime's own answer on Node.js. Read against the README at commit e97874b, the 2.1.0 release, and capire's plugins page.
  • @cap-js/mcpprovides[mcp-servers].facets → CDS application-service contract selected with @mcp; Read queries and unbound actions/functions; changes require application-defined unbound actions; Model descriptions through describe tools; generic/custom MCP instructions; Generated query and call tools invoke the exposed CAP service; no direct CRUD tools; @mcp opts in a whole service; dedicated service projections/actions narrow its exposed contractGenerated tools invoke service queries and unbound operations; service-contract selection and custom instructions are documented, and the SAP Application API gateway/proxy restriction remains explicit.
  • @cap-js/mcpprovides[mcp-servers].what_it_does → Exposes an @mcp-annotated CAP [Node.js](external:nodejs) application service through generated describe, query and unbound-action/function tools. Data changes require application-defined unbound actions. The adapter must not be used as a gateway or proxy for SAP Application APIs, including when the application wraps those APIs.Generated tools invoke service queries and unbound operations; service-contract selection and custom instructions are documented, and the SAP Application API gateway/proxy restriction remains explicit.
  • @cap-js/mcpprovides.mcp-servers.facets.mcp_exposure_source.value → CAP service contractConverts the text answer to controlled list values. Its documented conditions remain in the capability relationship; original citations and runtime scope are retained.
  • @cap-js/mcpprovides.mcp-servers.facets.mcp_context.value → Model descriptions via tools; Server instructionsConverts the text answer to controlled list values. Its documented conditions remain in the capability relationship; original citations and runtime scope are retained.
  • @cap-js/mcpprovides.mcp-servers.facets.mcp_execution_path.value → CAP service callsConverts the text answer to controlled list values. Its documented conditions remain in the capability relationship; original citations and runtime scope are retained.
  • @cap-js/mcpprovides.mcp-servers.facets.mcp_exposure_control.value → Service selectionConverts the text answer to controlled list values. Its documented conditions remain in the capability relationship; original citations and runtime scope are retained.
  • @cap-js/mcpprovides[mcp-servers].what_it_does → Exposes an @mcp-annotated CAP [Node.js](external:nodejs) application service through generated describe, query and unbound-action/function tools. Data changes require application-defined unbound actions. The adapter must not be used as a gateway or proxy for SAP Application APIs, including when the application wraps those APIs. The describe tool returns model descriptions, and the adapter sends generic and custom server instructions to clients. Whole-service opt-in with @mcp can be narrowed through a dedicated service with selected projections and actions. The query and call tools invoke that CAP service, without direct CRUD tools.Backfills the previously unrecorded staged expansion: describe-tool context, generic/custom server instructions, dedicated service projections/actions, and service execution without direct CRUD tools. These facts were already in the staged paragraph and cited CAP documentation; this history repair does not introduce additional implementation claims.
  • @cap-js/mcpdescription.when_not_to_use → SAP prohibits gateway/proxy use for SAP Application APIs; the Atlas separately excludes CAP wrappers around those APIs from its assessed scope. Data changes require application-defined unbound actions, and the adapter supplies no rate limiting, agent-action audit logging, approval workflows or policy enforcement. In beta, with nine releases in the six weeks after the first, so pin it.Places the published SAP gateway/proxy restriction in selection guidance and labels the CAP-wrapper exclusion as the Atlas assessment boundary accepted in ADR-0066; it is not presented as a separate publisher statement.
  • @cap-js/mcpprovides[mcp-servers].what_it_does → Exposes an @mcp-annotated CAP [Node.js](external:nodejs) application service through generated describe, query and unbound-action/function tools. The query and call tools invoke the exposed service without direct CRUD tools; data changes require application-defined unbound actions. The describe tool returns model descriptions, and the adapter sends generic and custom server instructions to clients. Whole-service opt-in with @mcp can be narrowed through a dedicated service with selected projections and actions.Moves the gateway/proxy selection restriction to description.when_not_to_use and retains the service-execution, operation and context facts on the contribution. Structured values and runtime scopes remain unchanged; the implementation restriction remains on the artifact under accepted ADR-0066.
  • @cap-js/mcpdescription.when_not_to_use → SAP prohibits gateway/proxy use for SAP Application APIs; Atlas decision ADR-0066 treats CAP wrappers around those APIs as covered by that prohibition. Data changes require application-defined unbound actions, and the adapter supplies no rate limiting, agent-action audit logging, approval workflows or policy enforcement. In beta, with nine releases in the six weeks after the first, so pin it.Independent review found that a separately introduced Atlas scope exclusion misstates ADR-0066. The decision records the wrapper case as covered by SAP’s gateway/proxy prohibition; the wording now identifies that decision without attributing an explicit wrapper sentence to SAP’s guide.
  • @cap-js/mcpdescription.when_not_to_use → SAP prohibits gateway/proxy use for SAP Application APIs; the Atlas applies that prohibition to CAP wrappers around those APIs. Data changes require application-defined unbound actions, and the adapter supplies no rate limiting, agent-action audit logging, approval workflows or policy enforcement. In beta, with nine releases in the six weeks after the first, so pin it.The maintainer explicitly approved this public wording after independent review. Keeps the accepted ADR-0066 application of the SAP gateway/proxy prohibition in history, removes the internal decision identifier from reader-facing prose, and preserves all implementation restrictions.
  • @cap-js/attachmentsconnects[malware-scanning].interface → scan-apiThe README names the scan and the HTTP 429 the service answers with, so the connection lands on the scan API SAP Malware Scanning service states (CONCEPT-005 §3.3, decision 10); the Object Store edge stays at the box, since the README says a bound instance and no more.
  • cf-setupprovides → capability:ci-cdA GitHub Action runs in a pipeline; it is what ci-cd is about, and deployment is what the pipeline does with it. Filed under deployment before ci-cd reached the CAP door.
  • @cap-js/airequires[btp-ai-core].condition → production; the mock is for UI smoke testsThe second reader's follow-up: the condition had dropped the README's qualifier, 'for UI smoke tests', and read as never needed outside production. The README's test section names the binding for this repository's own integration tests, which is a contributor's setup and not a requirement of an application using the plugin, so it is not a condition here.
  • @cap-js/hanarequires, connects → btp-hana-cloudThe database service had no edge to the database it serves, which left the CAP-native way of answer-a-question-from-records-in-a-cap-service without an edge between its parts. From capire's HANA guide, quoted: the standard database for production, added as this package, reached through the hdb driver and a binding.
  • @cap-js/hanarequires, connects[0].via, connects[0].condition, description.one_line → requires sap-cds, btp-hana-cloud (conditional), hdb (conditional), sap-hana-client (conditional); via hdbThe second reader's follow-ups on the edges accepted 2026-09-23: the driver sentence supports edges to hdb and, once added, @sap/hana-client, and carries the connection's via; the requirement on the database is conditional, as the Java sibling records it, because the guide puts the HANA configuration behind a profile and SQLite is the development default; the runtime's own README states the runtime; the one_line names the sibling database services and links them as such; the connection's via carries the override as its condition.
  • @cap-js/airequires → +sap-cds, +btp-ai-corenpm run check:usecases listed the path of answer-a-question-from-records-in-a-cap-service this entry is a part of with no edge between its parts. The README names the runtime with a version range, quoted now. The second reader also named the README's conditional requirement on SAP AI Core for the recommendations in production, which had no edge; it has one now.
  • @cap-js/attachmentsconnects[malware-scanning].condition → Malware scanning is enabled.The second reader read the connects batch of 2026-09-19 on 2026-09-22, after its acceptance, and found: the connection to the malware scanner carried no condition while the requires edge beside it and the README both state one.
  • @cap-js/audit-loggingrequires, connects[0].condition → The plugin's own integration is used; an own implementation may write the audit logs to a custom store instead.The second reader read the connects batch of 2026-09-19 on 2026-09-22, after its acceptance, and found: the README states the service as the shipped integration and an own store as an alternative, and both edges asserted it as fixed; the bare requires is now object form, conditional, with the two sentences quoted.
  • @cap-js/printdescription.one_line → A CDS plugin that prints a document held in a CAP entity, through [SAP Print service](artifact:btp-print) and a `@PDF.Printable` annotation.The old line was the repository's own description of what SAP Print service does, entered as the plugin's. The README says the plugin integrates with that service and requires a subscription to it; the queues and the reach to the printers are the service's.
  • @cap-js/printdescription.what_it_solves → A CAP service that holds a document as a `LargeBinary` has no way of getting it onto one of the customer's local printers.The page carried no answer to what the plugin does. Written from the README at commit 74cb8f7: the annotation and what it generates, the model requirement, the subscription, the local mock and the manual route.
  • @cap-js/printrequires, connects → artifact:btp-printThe README states the subscription requirement plainly and package.json binds a vcap service labelled print, but neither edge existed, so the service the plugin cannot print without was invisible from its page. SAP Print service entered the graph on 2026-09-15, after this entry was written.
  • @cap-js/printcompat → runtimes: node, cds_range: >= 9, multitenancy: safepackage.json declares @sap/cds >= 9 as a peer dependency and a subscriptionDependency on uaa; the changelog records multitenancy support added in 0.2.0. Declared by the maintainer, not verified here.
  • @cap-js/printprovides → capability:document-output, with what_it_does and sourcesThe edge carried no statement of what the plugin contributes to the capability, and nothing to check it against.
  • @cap-js/printchanged_in → 0.2.0, 0.2.1The changelog dates two moves in the plugin's own answer: multitenancy and draft-enabled entities in 0.2.0, translated labels in 0.2.1. Without them nothing said whether a piece written in 2025 predates either.
  • @cap-js/aiprovides → capability:llm-integration, capability:retrieval-augmented-generationcapire's CAP-native Embeddings guide names this plugin as what makes the standard sqlite database produce semantic embeddings locally, and the README lists local vector embeddings as one of its features. The declared scope travels with the edge rather than being dropped from it: the README calls the facility experimental and sends production vector workloads to SAP HANA's vector engine.
  • @cap-js/aidescription.one_line → Out-of-the-box value-help recommendations powered by SAP RPT-1, [SAP AI Core](artifact:btp-ai-core) as a standard CAP service, and an experimental local embedding model behind SQLite's vector functions.The line named two of the README's three features. The third is why the package now appears as an option on retrieval-augmented generation, so leaving it out of the index line would have made the option look unexplained.
  • @cap-js/airequires → artifact:cap-js-sqlitecapire states the version range the local embeddings need, @sap/cds ^10.1 and @cap-js/sqlite ^3.1. The database plugin is the one of the two that is an edge; the runtime range belongs to the plugin's own manifest, which was not read here.
  • @cap-js/cds-dbsname → @cap-js/cds-dbsThe repository's README titles itself 'Welcome to the @cap-js/cds-dbs Monorepo', and that scope is not on npm — a request for @cap-js/cds-dbs returns 404. The bare name is taken: npm's cds-dbs is one release, 1.3.1 of 2024-12-10, published by cosmo83 (arava@sat-infotech.com) with the description 'This is a monorepo for our SQL Database Services.' copied from this README. Because the crawler resolves a package by the entry's name, that stranger's record is what data/crawled/health.json carries for this artifact today: latest_version 1.3.1, one release, four weekly downloads, one maintainer and a 'SEE LICENSE' licence, beside GitHub facts read from cap-js/cds-dbs. The repository's own name ends the mis-join.
  • @cap-js/cds-dbsprovides → removedThe monorepo is not an option anyone adds to a project. Its README states what is: 'Each of the subfolders is published as individual npm module', and 'In general, all you need to do is to install one of the database packages, as follows:'. The four packages carry the capability edge; the repository listed beside them made five options out of four. It stays a node — the four now point up at it with part_of.
  • @cap-js/cds-dbsdescription.what_it_solves → A monorepo, not a package: nothing installs from its root. Four modules live in it — @cap-js/db-service, the base, and @cap-js/sqlite, @cap-js/postgres and @cap-js/hana, which implement that interface for their own database — each in its own subfolder with its own README, each published to npm on its own. A project adds one of those packages; the repository is where their issues are filed and where the shared code sits.The page led with a one-line index entry and nothing that said the root installs nothing. Written from the repository README, re-read 2026-09-20.
  • @cap-js/db-servicelinks.repo → https://github.com/cap-js/cds-dbs/tree/main/db-serviceThe link named the root of a monorepo, so every crawl read the repository README — 'This is a monorepo for our SQL Database Services' — and filed it as this package's own: data/crawled/readmes/cap-js-db-service.md is that root README today. npm declares the directory as 'main/db-service', which the crawler cannot use as a path, so the subfolder URL is where it has to come from.
  • @cap-js/db-servicelinks.npm → https://www.npmjs.com/package/@cap-js/db-serviceThe entry named no registry page, so the only address it offered was a repository it shares with three other packages.
  • @cap-js/db-servicepart_of → artifact:cap-js-cds-dbsThe repository's README states the relation: the four subfolders are parts of one monorepo, each published on its own.
  • @cap-js/db-serviceflavors[0].source → https://github.com/cap-js/cds-dbs/tree/main/db-serviceRe-read on the package's own README in the repository — the document the subfolder link now resolves to — which carries the second sentence about forming the core of all supported databases as well.
  • @cap-js/hanalinks.repo → https://github.com/cap-js/cds-dbs/tree/main/hanaThe link named the root of a monorepo, so every crawl read the repository README — 'This is a monorepo for our SQL Database Services' — and filed it as this package's own: data/crawled/readmes/cap-js-hana.md is that root README today. npm's record for @cap-js/hana declares no repository directory, so the subfolder URL is the only place it can come from.
  • @cap-js/hanalinks.npm → https://www.npmjs.com/package/@cap-js/hanaThe entry named no registry page, so the only address it offered was a repository it shares with three other packages.
  • @cap-js/hanapart_of → artifact:cap-js-cds-dbsThe repository's README states the relation: the four subfolders are parts of one monorepo, each published on its own.
  • @cap-js/hanaflavors[0].source → https://github.com/cap-js/cds-dbs/tree/main/hanaSame sentence, re-read on the package's own README in the repository — the document the subfolder link now resolves to.
  • @cap-js/postgreslinks.repo → https://github.com/cap-js/cds-dbs/tree/main/postgresThe link named the root of a monorepo, so every crawl read the repository README — 'This is a monorepo for our SQL Database Services' — and filed it as this package's own: data/crawled/readmes/cap-js-postgres.md is that root README today, even though the flavor already cited the postgres subfolder. npm's record for @cap-js/postgres declares no repository directory, so the subfolder URL is the only place it can come from.
  • @cap-js/postgreslinks.npm → https://www.npmjs.com/package/@cap-js/postgresThe entry named no registry page, so the only address it offered was a repository it shares with three other packages.
  • @cap-js/postgrespart_of → artifact:cap-js-cds-dbsThe repository's README states the relation: the four subfolders are parts of one monorepo, each published on its own.
  • @cap-js/sqlitelinks.repo → https://github.com/cap-js/cds-dbs/tree/main/sqliteThe link named the root of a monorepo, so every crawl read the repository README — 'This is a monorepo for our SQL Database Services' — and filed it as this package's own: data/crawled/readmes/cap-js-sqlite.md is that root README today. npm's record for @cap-js/sqlite declares no repository directory, so the subfolder URL is the only place it can come from, and it is the form the corpus already uses for a package inside a monorepo.
  • @cap-js/sqlitelinks.npm → https://www.npmjs.com/package/@cap-js/sqliteThe entry named no registry page, so the only address it offered was a repository it shares with three other packages.
  • @cap-js/sqlitepart_of → artifact:cap-js-cds-dbsThe repository's README states the relation: the four subfolders are parts of one monorepo, each published on its own.
  • @cap-js/sqliteflavors[0].source → https://github.com/cap-js/cds-dbs/tree/main/sqlite — 'Welcome to the SQLite database service for SAP Cloud Application Programming Model Node.js, based on streamlined database architecture and better-sqlite driver.'The flavor rested on an install line in the monorepo's README. The package's own README says it in a sentence, and that is the document the repository link now resolves to.
  • @cap-js/advanced-event-meshconnects → btp-advanced-event-mesh, btp-cloud-identity-services, btp-cloud-identity-servicesThe plugin had no edge to the service it integrates. From its README: the broker it connects to, the trust in Cloud Identity Services that connection presupposes, the token it fetches there, and the binding to the validation plan it states as a must.
  • @cap-js/advanced-event-meshrequires → btp-advanced-event-meshThe README states the binding as a must, to the plan `aem-validation-service`; the second reader named the missing edge.
  • @cap-js/attachmentsconnects → btp-malware-scanning, btp-object-store@cap-js/attachments required both services; the connections say what is sent to each, and that the scanner is spoken to over HTTP.
  • @cap-js/audit-loggingconnects → btp-audit-logThe plugin required the Audit Log service and said nothing of what passes between them.
  • @cap-js/telemetryconnects → btp-cloud-logging@cap-js/telemetry names SAP Cloud Logging as one of its predefined export targets, and the graph had no edge between the two.
  • @cap-js/attachmentsprovides.what_it_does → Adds the Attachments aspect, Fiori annotations and file handling to CAP Node.js. Database storage is used locally; productive use requires an Object Store binding. Fiori elements requires draft enablement, while non-draft clients send separate metadata and content requests.Refresh storage and upload boundaries from the pinned README; make storage and scanning prerequisites conditional.
  • @cap-js/sdmprovides.what_it_does → Stores CAP Node.js attachments in a non-versioned SAP Document Management repository, including custom properties and link attachments. Draft and non-draft entities are documented.Document non-versioned repository scope and non-draft support. README contradicts itself on file size (100 MB versus uploads above 400 MB); no file-size value asserted.
  • cds-federation-synonymsdescription.when_not_to_use → When your adoption policy excludes experimental dependencies: the [maintainer’s README](https://github.com/cap-js/cds-federation-synonyms#about-this-project) explicitly labels this plugin experimental.Retrieved the maintainer README on 2026-09-17: “This plugin is still experimental.” Record its declared status as conditional adoption guidance without inferring a production prohibition.
  • @cap-js/agentsdescription.one_line → SAP's own CDS plugin for building agents inside a CAP service, wired to audit logging and telemetry through peer dependencies rather than leaving observability to the author.Placement copied the package's own npm description. Replaced with a line written for this graph — what it does and where it sits — because an unattributed sentence is an unattributed claim.
  • @cap-js/attachmentsdescription.one_line → The official attachments plugin: annotate an entity and get upload, storage and retrieval, with S3 and Azure Blob as the stores it can put the bytes in.Placement copied the package's own npm description. Replaced with a line written for this graph — what it does and where it sits — because an unattributed sentence is an unattributed claim.
  • @cap-js/audit-loggingdescription.one_line → Integration with the SAP Audit Log service, so operations on personal data are recorded in the form an auditor expects without the application writing the entries.Placement copied the package's own npm description. Replaced with a line written for this graph — what it does and where it sits — because an unattributed sentence is an unattributed claim.
  • @cap-js/cds-dbsartifact_type → packageTyped cds-plugin by placement, which defaults every candidate to that. It is not one.
  • @cap-js/cds-dbsdescription.one_line → The monorepo behind CAP's SQL database services — the base service, SQLite, PostgreSQL and HANA all live here, which is why they version together.Placement copied the package's own npm description. Replaced with a line written for this graph — what it does and where it sits — because an unattributed sentence is an unattributed claim.
  • @cap-js/data-privacydescription.one_line → Integration with SAP Data Privacy Integration, driven by the personal-data annotations already on the model — the annotation that marks a field is the one the service acts on.Placement copied the package's own npm description. Replaced with a line written for this graph — what it does and where it sits — because an unattributed sentence is an unattributed claim.
  • @cap-js/db-serviceartifact_type → packageTyped cds-plugin by placement, which defaults every candidate to that. It is not one.
  • @cap-js/db-servicedescription.one_line → The base every CAP database service is built on: the shared query translation and pooling that SQLite, PostgreSQL and HANA specialise rather than reimplement.Placement copied the package's own npm description. Replaced with a line written for this graph — what it does and where it sits — because an unattributed sentence is an unattributed claim.
  • @cap-js/graphqldescription.one_line → A protocol adapter that generates a GraphQL schema from the model and serves it, so the same services answer GraphQL without a second definition of them.Placement copied the package's own npm description. Replaced with a line written for this graph — what it does and where it sits — because an unattributed sentence is an unattributed claim.
  • @cap-js/hanadescription.one_line → The HANA database service — the production default, on the same streamlined architecture as the SQLite and PostgreSQL services.Placement copied the package's own npm description. Replaced with a line written for this graph — what it does and where it sits — because an unattributed sentence is an unattributed claim.
  • @cap-js/notificationsdescription.one_line → Publishes business notifications to SAP Build WorkZone from the application, so a user is told something happened without the UI polling for it.Placement copied the package's own npm description. Replaced with a line written for this graph — what it does and where it sits — because an unattributed sentence is an unattributed claim.
  • @cap-js/openapidescription.one_line → Turns a CDS service into an OpenAPI document, derived from the model so the description cannot drift from what is served.Placement copied the package's own npm description. Replaced with a line written for this graph — what it does and where it sits — because an unattributed sentence is an unattributed claim.
  • @cap-js/postgresdescription.one_line → The PostgreSQL database service — the production option for running CAP off HANA, sharing the base service with the other three.Placement copied the package's own npm description. Replaced with a line written for this graph — what it does and where it sits — because an unattributed sentence is an unattributed claim.
  • @cap-js/sdmdescription.one_line → Stores attachments in an SAP Document Management repository instead of a bucket, for the case where the documents have to live in the system of record.Placement copied the package's own npm description. Replaced with a line written for this graph — what it does and where it sits — because an unattributed sentence is an unattributed claim.
  • @cap-js/sqlitedescription.one_line → The SQLite service, in memory during the inner loop — which is why a CAP project runs before anyone has provisioned a database.Placement copied the package's own npm description. Replaced with a line written for this graph — what it does and where it sits — because an unattributed sentence is an unattributed claim.
  • cds-federation-synonymsdescription.one_line → CAP-to-CAP data federation over SAP HANA synonyms, so one project reads another's tables without the rows being copied.Placement copied the package's own npm description. Replaced with a line written for this graph — what it does and where it sits — because an unattributed sentence is an unattributed claim.
  • First entry seenDiscovered via npm registry, capire · plugins, The discovery pass, GitHub API · cap-js, capire, GitHub API.
Profile1
For your agent