{"id":19852538,"url":"https://github.com/thesoftwarehouse/rad-modules","last_synced_at":"2025-05-02T00:31:24.498Z","repository":{"id":39062171,"uuid":"277155036","full_name":"TheSoftwareHouse/rad-modules","owner":"TheSoftwareHouse","description":"A set of reusable dockerized components and serverless functions ","archived":false,"fork":false,"pushed_at":"2022-11-26T16:41:06.000Z","size":4627,"stargazers_count":15,"open_issues_count":0,"forks_count":4,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-04-06T20:23:12.915Z","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":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TheSoftwareHouse.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-07-04T17:22:36.000Z","updated_at":"2024-12-13T15:44:50.000Z","dependencies_parsed_at":"2022-09-17T17:50:52.693Z","dependency_job_id":null,"html_url":"https://github.com/TheSoftwareHouse/rad-modules","commit_stats":null,"previous_names":[],"tags_count":39,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheSoftwareHouse%2Frad-modules","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheSoftwareHouse%2Frad-modules/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheSoftwareHouse%2Frad-modules/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheSoftwareHouse%2Frad-modules/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TheSoftwareHouse","download_url":"https://codeload.github.com/TheSoftwareHouse/rad-modules/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251966431,"owners_count":21672666,"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-11-12T14:03:22.031Z","updated_at":"2025-05-02T00:31:19.490Z","avatar_url":"https://github.com/TheSoftwareHouse.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n \u003cimg src=\"data/logo.svg\" alt=\"\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n   Current travis build:\n  \u003ca href=\"https://travis-ci.com/TheSoftwareHouse/rad-modules\"\u003e\u003cimg src=\"https://travis-ci.com/TheSoftwareHouse/rad-modules.svg?branch=master\" alt=\"build status\" height=\"18\"\u003e\u003c/a\u003e\n  \u0026emsp;\n\u003c/p\u003e\n\n##\n\n### **Security** module to handle users and users policy,\n\n\n\n---\n\n### What’s under the hood?\n\nRAD Modules framework is written in TypeScript, based on Express and Awilix (DI container) development model.\n\nRAD Modules provide many features. The list includes (but not limited to):\n\n- Quick scaffolding\n  \n  Create actions, routes, and models - right from the CLI using Plop micro-generator framework.\n- Dependency injection\n- Static code analysis\n- User management and administration tools\n- Generic Filter — a component which allows users to create their own search conditions\n- Generic REST API\n- Keycloak/OpenID Integration\n\n---\n\n### Configuration\n\nAfter checkout of a repository, please perform the following steps in exact sequence:\n\n1. Copy docker-compose.override\n    ```\n    $ cp docker-compose.override.yml.dist docker-compose.override.yml\n    ```\n2. Run watch `npm start`\n\n3. Run security service `npm run security`\n\n4. Run production integration tests `npm run security-integration`\n\n5. Open your browser and go to the swagger api docs: [http://localhost:50050/api-docs/](http://localhost:50050/api-docs/)\n\n6. On the swagger page, generate an access token via endpoint `/api/public/auth/login` or `/api/users/login` good luck!  🔥\n\n---\n\n### How to check if everything works?\n\n1. If you forgot to run builder run `npm run watch`\n\n2. Run `docker-compose up security`\n\n3. Open your browser and go to: [http://localhost:50050/api-docs/](http://localhost:50050/api-docs/)\n\nYou should see the swagger panel and request in terminal\n\n---\n\n### Dev setup\n\nThis app is fully dockerized, so in order to use it you have to have docker and docker-compose installed. What's more you need to have npm in order to run npm scripts.\n\n1. In order to run specific container run:\n\n    ```\n    docker-compose up security\n    ```\n\n2. In order to watch files for dev purpose type:\n\n    ```\n    npm run watch\n    ```\n\n3. If you need to close all containers run:\n\n    ```\n    npm run down\n    ```\n---\n\n### Code generation\n\nWe're using Plop for routes, models, actions, commands and handlers generation.\n\n```\nnpm run plop\n```\n\n---\n\n### Code style\n\nWe're using Prettier and ESLint to keep code clean. In order to reformat/check code run:\n\n```\nnpm run lint\nnpm run format\n```\n\n---\n\n### Migrations\n\nMigrations should be stored inside migrations directory of specific service.\n\nEasiest way to create a migration is to generate it from entity/ies. Run inside specific service directory:\n\n```\nnpm run generate-migration -- \u003cmigration-name\u003e\n```\n\nThis should generate a migration for all connected entities.\n\n---\n\n### Documentation\n\nIf you want to read more about RAD modules or check examples of how to set it up, please read the [documentation](https://thesoftwarehouse.github.io/rad-modules-docs/docs/index.html)\n\n---\n\n### ReDoc\n\nIf you want to check all endpoint definitions of each service, please check RAD modules [Redoc](https://thesoftwarehouse.github.io/rad-modules-api-docs/)\n\n---\n\n### **Issues:**\n\nIf you notice any issues while using, let as know on **[github](https://github.com/TheSoftwareHouse/rad-modules/issues)**.\nSecurity issues, please sent on \u003ca href=\"mailto:security.opensource@tsh.io\"\u003e\u003cb\u003eemail\u003c/b\u003e\u003c/a\u003e\n\n---\n\n### **You may also like our other projects:**\n\n- **[RAD Modules Tools](https://github.com/TheSoftwareHouse/rad-modules-tools)**\n- **[Boilerplate API](https://github.com/TheSoftwareHouse/express-boilerplate)**\n- **[Serverless Boilerplate](https://github.com/TheSoftwareHouse/serverless-boilerplate)**\n- **[Kakunin](https://github.com/TheSoftwareHouse/Kakunin)**\n- **[Babelsheet-js](https://github.com/TheSoftwareHouse/babelsheet-js)**\n- **[Fogger](https://github.com/TheSoftwareHouse/fogger)**\n\n---\n\n### **About us:**\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://tsh.io/pl\"\u003e\u003cb\u003eThe Software House\u003c/b\u003e\u003c/a\u003e\n  \u0026emsp;\n  \u003cimg src=\"data/tsh.png\" alt=\"tsh.png\" width=\"50\" /\u003e\n\u003c/p\u003e\n\n---\n\n### License\n\n[![license](https://img.shields.io/badge/license-MIT-4dc71f.svg)](https://raw.githubusercontent.com/TheSoftwareHouse/rad-modules/main/LICENSE)\n\nThis project is licensed under the terms of the [MIT license](/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthesoftwarehouse%2Frad-modules","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthesoftwarehouse%2Frad-modules","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthesoftwarehouse%2Frad-modules/lists"}