{"ref":"artifact:sap-samples-ui5-mdc-json-tutorial","page":"/artifacts/sap-samples-ui5-mdc-json-tutorial","json":"/artifacts/sap-samples-ui5-mdc-json-tutorial.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"sap-samples-ui5-mdc-json-tutorial","name":"ui5-mdc-json-tutorial","artifact_type":"sample","ecosystem":"ui5","use_as":"starting-point","domain":"ui-and-frontend-bridge","origin_ring":"sap-official","description":{"one_line":"A unit-by-unit UI5 tutorial that builds a JSON-model app through the sap.ui.mdc metadata-driven controls: Table, FilterBar, value help, custom types and VariantManagement, plus Geomap and Chart.","short":"UI5 tutorial on sap.ui.mdc controls with a JSON model","what_it_solves":"Five exercises in the first unit build a JSON-model UI5 app through sap.ui.mdc's metadata-driven controls in turn: the Table, the FilterBar, an advanced value help, a custom TypeMap entry, and VariantManagement, which the tutorial describes as the feature that lets users save their personalisation settings and load them later. A second unit adds a Geomap, provided under the SAP Developer License Agreement, and a third an MDC Chart built with Chart.js under MIT. The metadata those controls run on comes from PropertyInfo and from control delegates written in code, with the implementation based on a JSON model and on SAP's own sap.ui.mdc demokit sample. This version of the tutorial uses TypeScript; the JavaScript version is still in a branch of the same repository and receives no more updates or additions."},"links":{"repo":"https://github.com/SAP-samples/ui5-mdc-json-tutorial","homepage":"https://sdk.openui5.org/api/sap.ui.mdc"},"identity":{"license":"Apache-2.0"},"source_available":true,"type_properties":{"form":{"value":"tutorial","sources":[{"url":"https://github.com/SAP-samples/ui5-mdc-json-tutorial","title":"SAP-samples/ui5-mdc-json-tutorial — README, Description","checked":"2026-10-19","quote":"In this tutorial, we will cover some key concepts involving metadata-driven controls (MDCs)."}]}},"demonstrates":["capability:ui5-flexibility"],"maintainers":["actor:sap-samples"],"drafted_with_ai":true,"provenance":{"discovered_via":[{"source":"source:curator"}],"first_seen":"2026-09-14"},"contributors":["actor:ajinkyapatil8190","actor:bendkt","actor:cuvar","actor:jozys","actor:kaloyantsv1","actor:koeppel","actor:lucamueller01","actor:martinhaeuser","actor:miloshevb","actor:okiana"]},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"good","evidence":"12 contributors, org-owned"},{"label":"Repository","tier":"good","evidence":"pushed 2026-06, not archived"}],"compatibility":[{"label":"Declared for","tier":"unknown","evidence":"no UI5 release lines in the atlas"},{"label":"Survived majors","tier":"unknown","evidence":"no UI5 release lines in the atlas"},{"label":"Maintainer's CI","tier":"good","evidence":".github/workflows/on-commit.yaml green, 2026-05-18"}],"practice":[{"label":"Tests","tier":"fair","evidence":"none found in the tree"},{"label":"Docs","tier":"good","evidence":"README 6 KB"},{"label":"Changelog","tier":"fair","evidence":"none in the repo"}],"reach":[{"value":null,"unit":"installs/week"},{"value":31,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-25","npm":"not published under this name","stars":31,"forks":6,"open_issues":3,"archived":false,"pushed_at":"2026-06-26","license_spdx":"Apache-2.0","org_owned":true,"default_branch":"main","created_at":"2023-09-29T11:02:20Z","open_prs":1,"tree_truncated":false,"test_files":0,"workflows":1,"other_ci":false,"readme_bytes":6123,"docs_files":0,"changelog":false,"license_file":true,"dts_files":1,"first_commit":"2023-09-29","last_commit":"2026-05-18","commits":149,"contributors":12,"ci_status":"success","ci_run_at":"2026-05-18","ci_workflow":".github/workflows/on-commit.yaml","ci_event":"push","readme_path":"README.md","readme_sha":"a6bfbb3d05a32755d29a39112a6f6bef31c23f7d","repo_read":"2026-10-25"},"edges":{"maintainers":[{"ref":"actor:sap-samples","name":"SAP Samples","json":"/actors/sap-samples.json"}],"contributors":[{"ref":"actor:ajinkyapatil8190","name":"Ajinkya Patil","json":"/actors/ajinkyapatil8190.json"},{"ref":"actor:bendkt","name":"Benedikt Schölch","json":"/actors/bendkt.json"},{"ref":"actor:miloshevb","name":"Biser Miloshev","json":"/actors/miloshevb.json"},{"ref":"actor:okiana","name":"Evdokia Yordanova","json":"/actors/okiana.json"},{"ref":"actor:koeppel","name":"Janik Köppel","json":"/actors/koeppel.json"},{"ref":"actor:jozys","name":"Joshua Slaar","json":"/actors/jozys.json"},{"ref":"actor:kaloyantsv1","name":"KaloyanTsv1","json":"/actors/kaloyantsv1.json"},{"ref":"actor:lucamueller01","name":"Luca","json":"/actors/lucamueller01.json"},{"ref":"actor:cuvar","name":"Luca Müller","json":"/actors/cuvar.json"},{"ref":"actor:martinhaeuser","name":"martinhaeuser","json":"/actors/martinhaeuser.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}