{"id":20561502,"url":"https://github.com/avindra/casd-json-schema","last_synced_at":"2026-04-16T21:07:06.796Z","repository":{"id":92404265,"uuid":"224986897","full_name":"avindra/casd-json-schema","owner":"avindra","description":"Schema discovery tool for the CA technologies (now Broadcom) ServiceDesk / ServiceCatalog web services","archived":false,"fork":false,"pushed_at":"2023-05-16T22:36:43.000Z","size":54,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-12-09T07:45:48.564Z","etag":null,"topics":["broadcom","ca-technologies","data-engineering","doselect","headless-browser","javascript","json","parsing","scraper","service-management","servicedesk"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/avindra.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-11-30T09:12:39.000Z","updated_at":"2023-05-16T22:36:47.000Z","dependencies_parsed_at":"2025-01-16T19:21:22.928Z","dependency_job_id":"d005841c-0a3e-4be0-aac4-91a0d979db8e","html_url":"https://github.com/avindra/casd-json-schema","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/avindra/casd-json-schema","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avindra%2Fcasd-json-schema","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avindra%2Fcasd-json-schema/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avindra%2Fcasd-json-schema/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avindra%2Fcasd-json-schema/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/avindra","download_url":"https://codeload.github.com/avindra/casd-json-schema/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avindra%2Fcasd-json-schema/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31904122,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T18:22:33.417Z","status":"ssl_error","status_checked_at":"2026-04-16T18:21:47.142Z","response_time":69,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["broadcom","ca-technologies","data-engineering","doselect","headless-browser","javascript","json","parsing","scraper","service-management","servicedesk"],"created_at":"2024-11-16T03:59:33.447Z","updated_at":"2026-04-16T21:07:06.766Z","avatar_url":"https://github.com/avindra.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# casd-json-schema\n\nGet a JS friendly schema representation of the CA Service Management objects.\n\nThis can be used to facilitate rapid discovery of the API surface.\n\nIt converts the HTML documentation of tables spread across 50 different pages with an unhelpful navigation system, into a single JSON artifact.\n\n## Requirements\n\nThis has been developed and tested using node.js. There is one dependency, `jsdom`, which is used for scraping data from HTML pages using standard web apis.\n\n## Usage\n\nA `Makefile` is included for convenience.\n\nJust run `make` to get the `schema.json` file.\n\n## I thought SOAP handles this for me?\n\nA well implemented SOAP API _should_ describe objects and their relationships. When it comes to the `doSelect` API, the \"ease of use\" intended by the SOAP protocol goes into a Web Services black box. The API rot can become worse if your organization filters API access through a gateway.\n\nHence, this project exists and can be used create visualizations or programatically create APIs using the JSON schema artifact.\n\n## Development\n\n1. yarn or npm install the dependencies\n2. view `config.js`              # Categories are limited to a default set. \n3. `node save_data.js`           # Download pages containing input HTML data (seed files)\n4. `node run.js \u003e schema.json`   # Generate structured representation (JSON artifact) from the seed files\n\n## Constraints\n\nIt is possible to add more categories, which would increase coverage of the API in the artifact.\n\nThe most immediate problem one would encounter, is supporting irregular URL patterns to cover other categories.\n\n## Development history\n\nThe only documentation and data that exists is the technical reference PDF, and the online version.\n\nRobust HTML parsing libraries are available, so the first implementation in November 2019 used [Puppeteer/Playwright](https://github.com/microsoft/playwright) to browse through the documentation as needed, building up a standard JSON representation of the objects, using the [online reference manual hosted at Broadcom](http://techdocs.broadcom.com/content/broadcom/techdocs/us/en/ca-enterprise-software/business-management/ca-service-management/14-1.html).\n\n * all \"objects,\" as defined by CA Web Services, including their appropriate attribute names\n * relationships between objects via foreign keys\n\n In early 2020, I moved the parsing code to JSDOM, which runs faster and should be easier to maintain.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Favindra%2Fcasd-json-schema","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Favindra%2Fcasd-json-schema","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Favindra%2Fcasd-json-schema/lists"}