{"ref":"artifact:nagarjundas1994-aiagents-cds-validate","page":"/artifacts/nagarjundas1994-aiagents-cds-validate","json":"/artifacts/nagarjundas1994-aiagents-cds-validate.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"nagarjundas1994-aiagents-cds-validate","name":"cds-validate","artifact_type":"package","ecosystem":"cap","domain":"security-and-compliance","origin_ring":"independent","description":{"one_line":"A package that runs Zod schemas as CAP validation middleware, so one schema replaces the hand-written checks at the top of a handler and failures come back as OData 422 errors per field.","short":"Zod schemas as CAP validation middleware","what_it_solves":"Validation the model cannot express — cross-field rules, conditional requirements, refined string formats — stated once as a [Zod](https://zod.dev) schema rather than as branching inside the handler that also does the work. Registration is per entity or per action: validate(schema) goes in a srv.before hook, with validateQuery for OData parameters such as $top and $skip, and validateParams for action arguments. UPDATE and PATCH reuse the same schema applied partially, so the optional half of an update schema is never written a second time. Failures come back as OData 422 with a target per field, the shape Fiori Elements reads to mark the input that failed. Unless normalisation is switched off, req.data is replaced by Zod's parsed output, so coercion, trimming and defaults reach the handler. schemaFromEntity reads the CSN and writes the mechanical half of a schema from the CDS types, the keys and @mandatory, which leaves the hand-written file for the rules CDS has no annotation for. Node only, and it stops at the payload: authorisation, cross-entity business rules and deep compositions stay in the handler."},"links":{"npm":"https://www.npmjs.com/package/cds-validate","repo":"https://github.com/Nagarjundas1994-AiAgents/cds-validate"},"identity":{"author":"nagarjundas","license":"MIT"},"compat":{"runtimes":["node"],"cds_range":">=7.0.0"},"provides":["capability:input-validation"],"provenance":{"discovered_via":[{"source":"source:npm","channel":"keywords:cds"}],"first_seen":"2026-09-07"},"maintainers":["actor:nagarjundas1994-aiagents"],"contributors":["actor:nagarjundas1994-aiagents"],"drafted_with_ai":true},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"fair","evidence":"6 months since release"},{"label":"Continuity","tier":"fair","evidence":"one contributor, personally owned"},{"label":"Repository","tier":"good","evidence":"pushed 2026-04, not archived"}],"compatibility":[{"label":"Declared for","tier":"good","evidence":">=7.0.0 — includes cds 10 and 9"},{"label":"Survived majors","tier":"poor","evidence":"no release since @sap/cds 10 shipped (July 2026)"},{"label":"Maintainer's CI","tier":"poor","evidence":"CI/CD — cds-validate failure, 2026-04-16"}],"practice":[{"label":"Tests","tier":"good","evidence":"3 test files, npm test"},{"label":"Docs","tier":"good","evidence":"README 20 KB"},{"label":"Changelog","tier":"fair","evidence":"none in the repo"}],"reach":[{"value":0,"unit":"installs/week"},{"value":1,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-26","latest_version":"1.0.0","majors":{"1":{"version":"1.0.0","date":"2026-04-16"}},"license":"MIT","first_release":"2026-04-16","last_release":"2026-04-16","releases":1,"cadence_days":null,"maintainers":1,"repository":"git+https://github.com/Nagarjundas1994-AiAgents/cds-validate.git","peer_cds":">=7.0.0","test_script":true,"types":true,"downloads_weekly":0,"stars":1,"forks":0,"open_issues":0,"archived":false,"pushed_at":"2026-04-16","license_spdx":null,"org_owned":false,"default_branch":"main","contributors":1,"tree_truncated":false,"test_files":3,"workflows":1,"other_ci":false,"readme_bytes":20489,"docs_files":0,"changelog":false,"license_file":false,"dts_files":0,"ci_status":"failure","ci_run_at":"2026-04-16","ci_workflow":"CI/CD — cds-validate","ci_event":"push","readme_path":"README.md","readme_sha":"561a6abdb0787726c09045205c8682795d9d4283","months_since_release":6,"dormant":false,"repository_directory":null,"dependencies":0,"node_engine":null,"downloads_monthly":5,"created_at":"2026-04-16T14:20:50Z","open_prs":0,"first_commit":"2026-04-16","last_commit":"2026-04-16","commits":4,"repo_read":"2026-10-26"},"release_notes":{"license":"MIT","quotable":true,"versions":[{"version":"1.0.0","date":"2026-04-16"}],"crawled_at":"2026-10-25"},"edges":{"maintainers":[{"ref":"actor:nagarjundas1994-aiagents","name":"NAGARJUN DAS","json":"/actors/nagarjundas1994-aiagents.json"}],"contributors":[{"ref":"actor:nagarjundas1994-aiagents","name":"NAGARJUN DAS","json":"/actors/nagarjundas1994-aiagents.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}