{"id":13578063,"url":"https://github.com/json-schema-form/angular-schema-form","last_synced_at":"2025-12-17T08:54:51.238Z","repository":{"id":15335331,"uuid":"18065797","full_name":"json-schema-form/angular-schema-form","owner":"json-schema-form","description":"Generate forms from a JSON schema, with AngularJS! ","archived":false,"fork":false,"pushed_at":"2023-02-20T16:22:31.000Z","size":20085,"stargazers_count":2465,"open_issues_count":129,"forks_count":641,"subscribers_count":122,"default_branch":"development","last_synced_at":"2025-11-10T16:05:57.706Z","etag":null,"topics":["angular","angular-schema-form","json-schema","json-schema-form","json-ui-schema"],"latest_commit_sha":null,"homepage":"https://json-schema-form.github.io/angular-schema-form","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/json-schema-form.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"docs/support.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-03-24T14:42:43.000Z","updated_at":"2025-11-02T14:17:28.000Z","dependencies_parsed_at":"2024-06-18T11:38:15.324Z","dependency_job_id":"94402619-94ae-44c7-a82f-4076030ce81f","html_url":"https://github.com/json-schema-form/angular-schema-form","commit_stats":{"total_commits":745,"total_committers":93,"mean_commits":8.010752688172044,"dds":0.5812080536912752,"last_synced_commit":"e9a2a8ccb3ac914cf0e0075b08ef6ccf9796c2a6"},"previous_names":["textalk/angular-schema-form"],"tags_count":44,"template":false,"template_full_name":null,"purl":"pkg:github/json-schema-form/angular-schema-form","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/json-schema-form%2Fangular-schema-form","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/json-schema-form%2Fangular-schema-form/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/json-schema-form%2Fangular-schema-form/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/json-schema-form%2Fangular-schema-form/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/json-schema-form","download_url":"https://codeload.github.com/json-schema-form/angular-schema-form/tar.gz/refs/heads/development","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/json-schema-form%2Fangular-schema-form/sbom","scorecard":{"id":139500,"data":{"date":"2025-08-11","repo":{"name":"github.com/json-schema-form/angular-schema-form","commit":"e9a2a8ccb3ac914cf0e0075b08ef6ccf9796c2a6"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.8,"checks":[{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Code-Review","score":2,"reason":"Found 6/24 approved changesets -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 12 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-16T07:36:50.009Z","repository_id":15335331,"created_at":"2025-08-16T07:36:50.009Z","updated_at":"2025-08-16T07:36:50.009Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27780723,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-17T02:00:08.291Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["angular","angular-schema-form","json-schema","json-schema-form","json-ui-schema"],"created_at":"2024-08-01T15:01:26.845Z","updated_at":"2025-12-17T08:54:51.202Z","avatar_url":"https://github.com/json-schema-form.png","language":"JavaScript","readme":"Angular Schema Form\n===================\n[![npm version](https://img.shields.io/npm/v/angular-schema-form.svg?style=flat-square)](https://www.npmjs.org/package/angular-schema-form)\n[![npm downloads](https://img.shields.io/npm/dm/angular-schema-form.svg?style=flat-square)](http://npm-stat.com/charts.html?package=angular-schema-form\u0026from=2015-01-01)\n[![Gitter](https://img.shields.io/badge/GITTER-JOIN%20CHAT%20%E2%86%92-ff69b4.svg?style=flat-square)](https://gitter.im/json-schema-form/angular-schema-form?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n[![Build Status](https://img.shields.io/travis/json-schema-form/angular-schema-form.svg?style=flat-square)](https://travis-ci.org/json-schema-form/angular-schema-form)\n[![Code Coverage](https://img.shields.io/coveralls/json-schema-form/angular-schema-form.svg?style=flat-square)](https://coveralls.io/github/json-schema-form/angular-schema-form?branch=development)\n\nGenerate forms from JSON schemas using AngularJS!\n\nWhy not many changes lately?\n============================\nMuch of the new development is being done in [Assimilate](https://github.com/jsonschema/assimilate), a standardised validator for JSON Schema to help ensure changing validators is never as painful as escaping tv4 is, as well as a new [core library](https://github.com/json-schema-form/json-schema-form-core) to allow for a more predictable upgrade from AngularJS to Angular.\n\nThe Blog / The Web Site / The Twitter / The Movie\n=================================================\n[medium.com/@SchemaFormIO](https://medium.com/@SchemaFormIO) / [website](https://json-schema-form.github.io/angular-schema-form) / [@SchemaFormIO](http://twitter.com/SchemaFormIO) / [Movie](https://www.youtube.com/watch?v=duBFMipRq2o)\n\nIf you use ASF in your project/company please let us know! We'd love to feature you on the site.\n\nThere has been some recent developments in this project that you might want to [read about](https://github.com/json-schema-form/angular-schema-form/wiki/Recent-developments).\n\nDemo Time!\n==========\n[Try out the example page](http://schemaform.io/examples/bootstrap-example.html). Try editing the schema or form definition and see what comes out!\n\nHint: By pressing the 'Save to gist' button (top left), you can save your example into a shareable link.\n\nDocumentation\n=============\nYou can find [all documentation here](docs/index.md), it covers all the different field types\nand their options.\n\nIt also covers how to [extend angular schema form with your own field types](docs/extending.md).\n\nBefore filing an issue, please read our [issue support instructions](docs/support.md) or you may be ignored.\n\nWhat is it?\n===========\n\nSchema Form is a set of AngularJS directives (and a couple of services). It can do two things to\nmake life easier:\n\n1. Create a form directly from a JSON schema.\n2. Validate form fields against that same JSON schema.\n\nSchema Form uses convention over configuration, so it comes packaged with some sensible defaults.\nBut you can always customize it by changing the order and types of form fields.\n\n#### JSON Form\nSchema Form is inspired by the nice [JSON Form](https://github.com/joshfire/jsonform) library and\naims to be roughly compatible with it, especially its form definition. So what sets Schema Form\napart from JSON Form?\n\n1. Schema Form integrates deeply with AngularJS and uses AngularJS conventions to handle forms.\n2. Schema Form uses [tv4](https://github.com/geraintluff/tv4) for validation, making it compatible\n   with version 4 of the JSON schema standard.\n3. By default, Schema Form generates Bootstrap 3-friendly HTML.\n\nMigration Guide\n===============\nIf you already use the library factories in an app or an add-on or plan to upgrade versions, please read the \n[migration guide](docs/migration.md) for any items that may need consideration.\n\nBasic Usage\n-----------\n\nFirst, expose your schema, form, and model to the $scope.\n\n```javascript\nangular.module('myModule', ['schemaForm'])\n       .controller('FormController', function($scope) {\n  $scope.schema = {\n    type: \"object\",\n    properties: {\n      name: { type: \"string\", minLength: 2, title: \"Name\", description: \"Name or alias\" },\n      title: {\n        type: \"string\",\n        enum: ['dr','jr','sir','mrs','mr','NaN','dj']\n      }\n    }\n  };\n\n  $scope.form = [\n    \"*\",\n    {\n      type: \"submit\",\n      title: \"Save\"\n    }\n  ];\n\n  $scope.model = {};\n});\n```\n\nThen load them into Schema Form using the `sfSchema`, `sfForm`, and `sfModel` directives.\n\n```html\n\u003cdiv ng-controller=\"FormController\"\u003e\n    \u003cform sf-schema=\"schema\" sf-form=\"form\" sf-model=\"model\"\u003e\u003c/form\u003e\n\u003c/div\u003e\n```\n\nInstallation\n------------\n\n### NPM\n\n```bash\nnpm i angular-schema-form@latest\n```\nFor the latest pre-release (alpha)\n```bash\nnpm i angular-schema-form@pre-release\n```\n\n### Bower\n\nIt's simplest to install Schema Form using [Bower](http://bower.io/).\nIf you use the bootstrap decorator use the one from the angular-schema-form-bootstrap repo\n\n```bash\nbower install angular-schema-form angular-schema-form-bootstrap\nbower install angular-schema-form angular-schema-form-bootstrap\n```\n\nThis will install the latest release and basic dependencies. See\n[dependencies section below](#dependencies).\n\nYou can also load the files via [cdnjs.com](https://cdnjs.com/libraries/angular-schema-form).\n\n### Manual\n\nYou can also just download the contents of the `dist/` folder and add dependencies manually.\n\n### Dependencies\n\nSchema form has a lot of dependencies, most of which are optional. Schema Form depends on:\n\n1. [AngularJS](https://angularjs.org/) version 1.3.x is recommended. Version 1.2.x\n   has some limitation. See [known limitations](docs/knownlimitations.md).\n2. [angular-sanitize](https://docs.angularjs.org/api/ngSanitize)\n3. [tv4](https://github.com/geraintluff/tv4)\n4. [bootstrap 3](http://getbootstrap.com/)\n\nIf you install via bower you get all of the above except bootstrap since we\ndon't want to push a certain version or flavor on you. Also make\nsure you got the angular version you actually want.\n\n#### Additional dependencies\n\n1. If you'd like to use drag-and-drop reordering of arrays, you'll also need [ui-sortable](https://github.com/angular-ui/ui-sortable) and its [jQueryUI](http://jqueryui.com/) dependencies. See the *ui-sortable* documentation for details about which parts of jQueryUI are needed. You can safely ignore these if you don't need reordering.\n2. Schema Form provides tabbed arrays through the form type `tabarray`. Tab arrays default to tabs on the left side. For these to work, you'll need to include the CSS from [bootstrap-vertical-tabs](https://github.com/dbtek/bootstrap-vertical-tabs). However, you won't need Bootstrap Vertical Tabs for horizontal tabs (the `tabType: \"top\"` option).\n\nThe minified files include templates - no need to load additional HTML files.\n\n### Script Loading\n\nSchema form is split into two main files, `dist/schema-form.min.js` and\n`dist/bootstrap-decorator.min.js` and they need be loaded in that order. AngularJS,\n[tv4](https://github.com/geraintluff/tv4) and [objectpath](https://github.com/mike-marcacci/objectpath)\nalso needs to be loaded *before* Schema Form.\n\n```html\n\u003cscript type=\"text/javascript\" src=\"bower_components/angular/angular.min.js\"\u003e\u003c/script\u003e\n\u003cscript type=\"text/javascript\" src=\"bower_components/angular-sanitize/angular-sanitize.min.js\"\u003e\u003c/script\u003e\n\u003cscript type=\"text/javascript\" src=\"bower_components/tv4/tv4.js\"\u003e\u003c/script\u003e\n\u003cscript type=\"text/javascript\" src=\"bower_components/objectpath/lib/ObjectPath.js\"\u003e\u003c/script\u003e\n\u003cscript type=\"text/javascript\" src=\"bower_components/angular-schema-form/dist/schema-form.min.js\"\u003e\u003c/script\u003e\n\u003cscript type=\"text/javascript\" src=\"bower_components/angular-schema-form/dist/bootstrap-decorator.min.js\"\u003e\u003c/script\u003e\n```\n\n### Module loading\nDon't forget to load the `schemaForm` module or nothing will happen.\n\n```javascript\nangular.module('myModule', ['schemaForm']);\n```\n\n## Add-ons\nThere are several add-ons available, for a full list see the [web page](http://schemaform.io/#/third-party-addons).\nYour can also [create your own add-ons!](docs/extending.md)\n\n## Contributing\nContributions are welcome! Please see [Contributing.md](CONTRIBUTING.md) for more info.\n\n## Building\nThe new Webpack compilation has made it easier to manage files and code and run build\nscripts, but it is still not easy enough for users unfamiliar with it... yet.\n\n**NOTE** in order to build simultaneously with ```json-schema-form-core``` you must have it cloned\nas a sibling directory to this one **OR** npm install the version you wish to build with.\n\nWebpack now generates a header to indicate version and date of build. **Do not create PR with the DIST folder.**\n\n## Branch Status \u0026 New Add-On\nThis branch will be the **next version of Angular Schema Form**, currently please use\nthe **examples/example.html** file as the best example to get the framework working.\n\nThe example uses **angular-schema-form.js** and **angular-schema-form-bootstrap.js** for the\nversion of the code it executes, if you want your page to behave the same you\nobviously need the same version!\n\n### Add-on\nTo see how to make an **add-on** work I have now included the **calculate** add-on file within the **examples/add-on** directory.\n\n## Tests\nUnit tests are run with [karma](http://karma-runner.github.io) and written using\n[mocha](http://mochajs.org/), [chai](http://chaijs.com/) and\n[sinon](http://sinonjs.org/)\n\nTo run the tests:\n\n1. Install all dependencies via NPM.\n2. Install dev dependencies with bower.\n3. Install the Karma CLI.\n4. Run the tests using `npm test`.\n\n```bash\n$ npm install\n$ bower install\n$ npm test\n```\n","funding_links":[],"categories":["JSON Schema Frontend components","JavaScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjson-schema-form%2Fangular-schema-form","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjson-schema-form%2Fangular-schema-form","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjson-schema-form%2Fangular-schema-form/lists"}