{"ref":"artifact:saptools-cf-explorer","page":"/artifacts/saptools-cf-explorer","json":"/artifacts/saptools-cf-explorer.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"saptools-cf-explorer","name":"@saptools/cf-explorer","artifact_type":"cli","ecosystem":"btp","domain":"developer-experience","origin_ring":"independent","description":{"one_line":"Searches the files of an app deployed to SAP BTP Cloud Foundry over `cf ssh`, finding the app root, grepping the deployed code and turning matches into file and line candidates.","short":"File search in apps deployed to SAP BTP Cloud Foundry over cf ssh","what_it_solves":"Finding the code an app on [Cloud Foundry](artifact:btp-cloud-foundry-runtime) is actually running is, by hand, a loop of `cf ssh`, locating the app root, searching and reading the line, repeated after every wrong guess. `cf-explorer` makes each step a bounded command (`roots`, `ls`, `find`, `grep`, `view`), and `inspect-candidates` turns a text match into suggested breakpoint locations with their remote root. For many reads, `session start` keeps one SSH connection open behind a local broker, and the same commands are available as a typed Node.js API. Commands are built from templates that reject arbitrary shell text, and none uploads, edits or deletes a file; the one change it makes is to enable SSH and restart the app when SSH is disabled."},"links":{"npm":"https://www.npmjs.com/package/@saptools/cf-explorer","repo":"https://github.com/dongitran/saptools","docs":"https://github.com/dongitran/saptools/blob/main/packages/cf-explorer/README.md"},"identity":{"author":"dongitran","license":"MIT"},"compat":{"deployment":["cf"]},"type_properties":{"distribution":{"value":["npm"],"sources":[{"url":"https://github.com/dongitran/saptools","title":"@saptools/cf-explorer — README","checked":"2026-10-18","quote":"npm install -g @saptools/cf-explorer"}]}},"provides":["capability:debugging"],"requires":[{"ref":"artifact:btp-cloud-foundry-runtime","for":"The target is an app deployed to SAP BTP Cloud Foundry, read through cf ssh.","requirement":"required","sources":[{"url":"https://github.com/dongitran/saptools/blob/main/packages/cf-explorer/README.md","title":"dongitran/saptools — packages/cf-explorer/README.md","checked":"2026-10-15","quote":"Fast, safe Cloud Foundry runtime discovery for SAP BTP workflows."}]}],"provenance":{"discovered_via":[{"source":"source:curator"}],"first_seen":"2026-10-15"},"maintainers":["actor:dong-tran"],"contributors":["actor:dong-tran"],"drafted_with_ai":true},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"good","evidence":"2 months since release"},{"label":"Continuity","tier":"fair","evidence":"2 contributors, 1 publisher"},{"label":"Repository","tier":"good","evidence":"pushed 2026-09, not archived"}],"compatibility":[{"label":"Declared for","tier":"unknown","evidence":"no BTP release lines in the atlas"},{"label":"Survived majors","tier":"unknown","evidence":"no BTP release lines in the atlas"},{"label":"Maintainer's CI","tier":"good","evidence":"CodeQL Security Scan green, 2026-09-18"}],"practice":[{"label":"Tests","tier":"good","evidence":"679 test files"},{"label":"Docs","tier":"good","evidence":"docs site, README 15 KB"},{"label":"Changelog","tier":"fair","evidence":"none in the repo"}],"reach":[{"value":12,"unit":"installs/week"},{"value":3,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-26","latest_version":"0.5.1","majors":{"0.1":{"version":"0.1.0","date":"2026-04-30"},"0.2":{"version":"0.2.0","date":"2026-04-30"},"0.3":{"version":"0.3.0","date":"2026-07-01"},"0.4":{"version":"0.4.0","date":"2026-07-22"},"0.5":{"version":"0.5.0","date":"2026-09-02"}},"license":"MIT","first_release":"2026-04-30","last_release":"2026-09-02","releases":25,"cadence_days":0,"maintainers":1,"repository":"git+https://github.com/dongitran/saptools.git","repository_directory":"packages/cf-explorer","peer_cds":null,"dependencies":2,"node_engine":">=20.0.0","test_script":false,"types":true,"downloads_weekly":12,"downloads_monthly":67,"stars":3,"forks":0,"open_issues":1,"archived":false,"pushed_at":"2026-09-18","license_spdx":null,"org_owned":false,"default_branch":"main","created_at":"2026-04-03T14:04:40Z","open_prs":1,"tree_truncated":false,"test_files":679,"workflows":33,"other_ci":false,"readme_bytes":15378,"docs_files":0,"changelog":false,"license_file":false,"dts_files":2,"first_commit":"2026-04-30","last_commit":"2026-09-02","commits":26,"contributors":2,"ci_status":"success","ci_run_at":"2026-09-18","ci_workflow":"CodeQL Security Scan","ci_event":"push","readme_path":"packages/cf-explorer/README.md","readme_sha":"de923104a84a2da5f32ab3d6f55fac4d5411795d","months_since_release":2,"dormant":false,"repo_read":"2026-10-26"},"release_notes":{"license":"MIT","quotable":true,"source":{"kind":"repo","path":"packages/cf-explorer/CHANGELOG.md","ref":"main","url":"https://github.com/dongitran/saptools/blob/main/packages/cf-explorer/CHANGELOG.md"},"format":"headings","releases":[{"version":"0.5.1","date":"2026-09-02","date_source":"registry","heading":"0.5.1","url":"https://github.com/dongitran/saptools/blob/main/packages/cf-explorer/CHANGELOG.md#051","sections":[{"kind":"other","heading":null,"items":1}],"hash":"24bbf74db69579d6"},{"version":"0.5.0","date":"2026-09-02","date_source":"registry","heading":"0.5.0","url":"https://github.com/dongitran/saptools/blob/main/packages/cf-explorer/CHANGELOG.md#050","sections":[{"kind":"other","heading":null,"items":1}],"hash":"8313171aed1ae11c"},{"version":"0.4.0","date":"2026-07-22","date_source":"registry","heading":"0.4.0","url":"https://github.com/dongitran/saptools/blob/main/packages/cf-explorer/CHANGELOG.md#040","sections":[{"kind":"breaking","heading":"Breaking changes","items":1},{"kind":"fix","heading":"Bug fixes","items":1}],"hash":"32033c813a141ea1"},{"version":"0.2.14","date":"2026-06-30","date_source":"registry","heading":"0.2.14","url":"https://github.com/dongitran/saptools/blob/main/packages/cf-explorer/CHANGELOG.md#0214","sections":[{"kind":"fix","heading":"Bug fixes","items":1}],"hash":"6ba1db8557026b47"},{"version":"0.2.13","date":"2026-06-29","date_source":"registry","heading":"0.2.13","url":"https://github.com/dongitran/saptools/blob/main/packages/cf-explorer/CHANGELOG.md#0213","sections":[{"kind":"other","heading":"Hardening","items":2},{"kind":"other","heading":"Maintenance","items":1}],"hash":"27fe6b16b0d7b12a"},{"version":"0.2.11","date":"2026-05-01","date_source":"registry","heading":"0.2.11","url":"https://github.com/dongitran/saptools/blob/main/packages/cf-explorer/CHANGELOG.md#0211","sections":[{"kind":"other","heading":"Maintenance","items":1}],"hash":"294dc28b30bd4525"},{"version":"0.2.10","date":"2026-05-01","date_source":"registry","heading":"0.2.10","url":"https://github.com/dongitran/saptools/blob/main/packages/cf-explorer/CHANGELOG.md#0210","sections":[{"kind":"other","heading":"Maintenance","items":1}],"hash":"86ae9dafd1c8ac6b"},{"version":"0.2.9","date":"2026-05-01","date_source":"registry","heading":"0.2.9","url":"https://github.com/dongitran/saptools/blob/main/packages/cf-explorer/CHANGELOG.md#029","sections":[{"kind":"other","heading":"Maintenance","items":1}],"hash":"9edee1a1fe18184f"},{"version":"0.2.8","date":"2026-05-01","date_source":"registry","heading":"0.2.8","url":"https://github.com/dongitran/saptools/blob/main/packages/cf-explorer/CHANGELOG.md#028","sections":[{"kind":"other","heading":"Maintenance","items":1}],"hash":"d6de2c8303782dbe"},{"version":"0.2.7","date":"2026-05-01","date_source":"registry","heading":"0.2.7","url":"https://github.com/dongitran/saptools/blob/main/packages/cf-explorer/CHANGELOG.md#027","sections":[{"kind":"feature","heading":"Improvements","items":2}],"hash":"bc6dac92f75e443d"},{"version":"0.2.6","date":"2026-05-01","date_source":"registry","heading":"0.2.6","url":"https://github.com/dongitran/saptools/blob/main/packages/cf-explorer/CHANGELOG.md#026","sections":[{"kind":"feature","heading":"Improvements","items":1}],"hash":"dfc407a5efae75bb"},{"version":"0.2.5","date":"2026-05-01","date_source":"registry","heading":"0.2.5","url":"https://github.com/dongitran/saptools/blob/main/packages/cf-explorer/CHANGELOG.md#025","sections":[{"kind":"fix","heading":"Bug fixes","items":2},{"kind":"feature","heading":"Improvements","items":1}],"hash":"856227915f599a87"},{"version":"0.2.4","date":"2026-05-01","date_source":"registry","heading":"0.2.4","url":"https://github.com/dongitran/saptools/blob/main/packages/cf-explorer/CHANGELOG.md#024","sections":[{"kind":"fix","heading":"Bug fixes","items":3}],"hash":"36929e8d125d909f"},{"version":"0.2.3","date":"2026-04-30","date_source":"registry","heading":"0.2.3","url":"https://github.com/dongitran/saptools/blob/main/packages/cf-explorer/CHANGELOG.md#023","sections":[{"kind":"fix","heading":"Bug fixes","items":1},{"kind":"other","heading":"Hardening","items":2}],"hash":"b6136006221cc180"},{"version":"0.2.2","date":"2026-04-30","date_source":"registry","heading":"0.2.2","url":"https://github.com/dongitran/saptools/blob/main/packages/cf-explorer/CHANGELOG.md#022","sections":[{"kind":"fix","heading":"Bug fixes","items":3},{"kind":"other","heading":"Hardening","items":3}],"hash":"04b1a756450eec2a"},{"version":"0.2.1","date":"2026-04-30","date_source":"registry","heading":"0.2.1","url":"https://github.com/dongitran/saptools/blob/main/packages/cf-explorer/CHANGELOG.md#021","sections":[{"kind":"fix","heading":"Bug fixes","items":5}],"hash":"01e9e58129060394"},{"version":"0.2.0","date":"2026-04-30","date_source":"registry","heading":"0.2.0","url":"https://github.com/dongitran/saptools/blob/main/packages/cf-explorer/CHANGELOG.md#020","sections":[{"kind":"fix","heading":"Bug fixes","items":10},{"kind":"other","heading":"Hardening","items":4},{"kind":"performance","heading":"Performance","items":2},{"kind":"other","heading":"Cleanups","items":2}],"hash":"231a25b198089cae"},{"version":"0.1.1","date":"2026-04-30","date_source":"registry","heading":"0.1.1","url":"https://github.com/dongitran/saptools/blob/main/packages/cf-explorer/CHANGELOG.md#011","sections":[{"kind":"other","heading":null,"items":1}],"hash":"6ab963c5b21d9ba1"}],"versions":[{"version":"0.5.1","date":"2026-09-02"},{"version":"0.5.0","date":"2026-09-02"},{"version":"0.4.0","date":"2026-07-22"},{"version":"0.3.4","date":"2026-07-16"},{"version":"0.3.3","date":"2026-07-01"},{"version":"0.3.0","date":"2026-07-01"},{"version":"0.2.16","date":"2026-06-30"},{"version":"0.2.15","date":"2026-06-30"},{"version":"0.2.14","date":"2026-06-30"},{"version":"0.2.13","date":"2026-06-29"},{"version":"0.2.12","date":"2026-06-26"},{"version":"0.2.11","date":"2026-05-01"},{"version":"0.2.10","date":"2026-05-01"},{"version":"0.2.9","date":"2026-05-01"},{"version":"0.2.8","date":"2026-05-01"},{"version":"0.2.7","date":"2026-05-01"},{"version":"0.2.6","date":"2026-05-01"},{"version":"0.2.5","date":"2026-05-01"},{"version":"0.2.4","date":"2026-05-01"},{"version":"0.2.3","date":"2026-04-30"},{"version":"0.2.2","date":"2026-04-30"},{"version":"0.2.1","date":"2026-04-30"},{"version":"0.2.0","date":"2026-04-30"},{"version":"0.1.1","date":"2026-04-30"},{"version":"0.1.0","date":"2026-04-30"}],"crawled_at":"2026-10-25"},"edges":{"maintainers":[{"ref":"actor:dong-tran","name":"Đông Trần","json":"/actors/dong-tran.json"}],"contributors":[{"ref":"actor:dong-tran","name":"Đông Trần","json":"/actors/dong-tran.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}