{"id":15648768,"url":"https://github.com/timja/backstage-scaffolded2","last_synced_at":"2025-03-29T23:45:43.500Z","repository":{"id":85474442,"uuid":"295018877","full_name":"timja/backstage-scaffolded2","owner":"timja","description":null,"archived":false,"fork":false,"pushed_at":"2020-09-12T20:13:55.000Z","size":185,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-05T01:42:17.991Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/timja.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","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":"2020-09-12T20:13:47.000Z","updated_at":"2020-09-12T20:13:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"5c23ed9e-1527-494e-aee6-0b9b663f762a","html_url":"https://github.com/timja/backstage-scaffolded2","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timja%2Fbackstage-scaffolded2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timja%2Fbackstage-scaffolded2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timja%2Fbackstage-scaffolded2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timja%2Fbackstage-scaffolded2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/timja","download_url":"https://codeload.github.com/timja/backstage-scaffolded2/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246258866,"owners_count":20748573,"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","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":[],"created_at":"2024-10-03T12:26:20.659Z","updated_at":"2025-03-29T23:45:43.475Z","avatar_url":"https://github.com/timja.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pppp-ppppp\n\nppp\n\n## Getting Started\n\n### Prerequisites\n\nRunning the application requires the following tools to be installed in your environment:\n\n  * [Node.js](https://nodejs.org/) v12.0.0 or later\n  * [yarn](https://yarnpkg.com/)\n  * [Docker](https://www.docker.com)\n\n### Running the application\n\nInstall dependencies by executing the following command:\n\n ```bash\n$ yarn install\n ```\nBundle:\n\n```bash\n$ yarn webpack\n```\n\nRun:\n\n```bash\n$ yarn start\n```\n\nThe applications's home page will be available at https://localhost:3100\n\n### Running with Docker\n\nCreate docker image:\n\n```bash\n  docker-compose build\n```\n\nRun the application by executing the following command:\n\n```bash\n  docker-compose up\n```\n\nThis will start the frontend container exposing the application's port\n(set to `3100` in this template app).\n\nIn order to test if the application is up, you can visit https://localhost:3100 in your browser.\nYou should get a very basic home page (no styles, etc.).\n\n## Developing\n\n### Code style\n\nWe use [ESLint](https://github.com/typescript-eslint/typescript-eslint)\nalongside [sass-lint](https://github.com/sasstools/sass-lint)\n\nRunning the linting with auto fix:\n```bash\n$ yarn lint --fix\n```\n\n### Running the tests\n\nThis template app uses [Jest](https://jestjs.io//) as the test engine. You can run unit tests by executing\nthe following command:\n\n```bash\n$ yarn test\n```\n\nHere's how to run functional tests (the template contains just one sample test):\n\n```bash\n$ yarn test:routes\n```\n\nRunning accessibility tests:\n\n```bash\n$ yarn test:a11y\n```\n\nMake sure all the paths in your application are covered by accessibility tests (see [a11y.ts](src/test/a11y/a11y.ts)).\n\n### Security\n\n#### CSRF prevention\n\n[Cross-Site Request Forgery](https://github.com/pillarjs/understanding-csrf) prevention has already been\nset up in this template, at the application level. However, you need to make sure that CSRF token\nis present in every HTML form that requires it. For that purpose you can use the `csrfProtection` macro,\nincluded in this template app. Your njk file would look like this:\n\n```\n{% from \"macros/csrf.njk\" import csrfProtection %}\n...\n\u003cform ...\u003e\n  ...\n    {{ csrfProtection(csrfToken) }}\n  ...\n\u003c/form\u003e\n...\n```\n#### Helmet\n\nThis application uses [Helmet](https://helmetjs.github.io/), which adds various security-related HTTP headers\nto the responses. Apart from default Helmet functions, following headers are set:\n\n* [Referrer-Policy](https://helmetjs.github.io/docs/referrer-policy/)\n* [Content-Security-Policy](https://helmetjs.github.io/docs/csp/)\n\nThere is a configuration section related with those headers, where you can specify:\n* `referrerPolicy` - value of the `Referrer-Policy` header\n\n\nHere's an example setup:\n\n```json\n    \"security\": {\n      \"referrerPolicy\": \"origin\",\n    }\n```\n\nMake sure you have those values set correctly for your application.\n\n### Healthcheck\n\nThe application exposes a health endpoint (https://localhost:3100/health), created with the use of\n[Nodejs Healthcheck](https://github.com/hmcts/nodejs-healthcheck) library. This endpoint is defined\nin [health.ts](src/main/routes/health.ts) file. Make sure you adjust it correctly in your application.\nIn particular, remember to replace the sample check with checks specific to your frontend app,\ne.g. the ones verifying the state of each service it depends on.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimja%2Fbackstage-scaffolded2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftimja%2Fbackstage-scaffolded2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimja%2Fbackstage-scaffolded2/lists"}