{"id":22389981,"url":"https://github.com/entando/app-builder","last_synced_at":"2026-01-22T12:35:27.364Z","repository":{"id":37458227,"uuid":"118141962","full_name":"entando/app-builder","owner":"entando","description":"This is the repository of the Entando App Builder where Devs and Business IT use low-code composition features to create Apps from components.","archived":false,"fork":false,"pushed_at":"2025-05-22T11:58:05.000Z","size":18364,"stargazers_count":61,"open_issues_count":9,"forks_count":21,"subscribers_count":5,"default_branch":"develop","last_synced_at":"2025-07-31T08:48:45.837Z","etag":null,"topics":["entando"],"latest_commit_sha":null,"homepage":"https://dev.entando.org","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/entando.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null}},"created_at":"2018-01-19T15:25:13.000Z","updated_at":"2025-06-03T19:50:36.000Z","dependencies_parsed_at":"2023-12-12T12:26:40.962Z","dependency_job_id":"84406842-1d96-4deb-bf82-a2de8f95ed07","html_url":"https://github.com/entando/app-builder","commit_stats":null,"previous_names":[],"tags_count":1241,"template":false,"template_full_name":null,"purl":"pkg:github/entando/app-builder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/entando%2Fapp-builder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/entando%2Fapp-builder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/entando%2Fapp-builder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/entando%2Fapp-builder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/entando","download_url":"https://codeload.github.com/entando/app-builder/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/entando%2Fapp-builder/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28662962,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T01:17:37.254Z","status":"online","status_checked_at":"2026-01-22T02:00:07.137Z","response_time":144,"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":["entando"],"created_at":"2024-12-05T03:14:00.835Z","updated_at":"2026-01-22T12:35:27.332Z","avatar_url":"https://github.com/entando.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Introduction\n\nFor more information and documentation visit:  https://dev.entando.org, or https://forum.entando.org. Or for the latest news or product information please visit the main website: https://www.entando.com.\n\nInformation below is for running locally or building from source. For usage information see the links above.\n\n---\n## Configuration\n\nThe application uses `.env` files to set up some environment variables.\n\nDev instances should be using the `.env.development.local` file while production instances use `.env.production`\n\n### Configurable properties\n\n#### `USE_MOCKS` (boolean, default: `true`)\na boolean used to determine whether the API calls will be against a real Entando Core or if they are just being mocked internally.\n\n#### `USE_MFE` (boolean, default: `true`)\na boolean used to enable EPC's MFE rendering on AppBuilder.\n\n#### `USE_MFE_MOCKS` (boolean, default: `false`)\na boolean used to enable the mocking system based on MSW for MFE's, useful for development purpose.\n\n#### `USE_LOCAL_MFE` (boolean, default: `false`)\na boolean used to reference the MFE static resources on the `/` instead of `entando-de-app/cmsresources`, this is useful for testing with a local static server without infrastructure.\n\n#### `USE_REMOTE_MFE` (boolean, default: `false`)\na boolean used to reference the MFE static resources on `entando-de-app/cmsresources`, this is useful for testing in remote cluster with a local AppBuilder instance.\n\n#### `DOMAIN` (string, default: `null`)\na string representing the domain name of the Entando Core instance. The protocol is optional and it is possible to specify a subdirectory of the domain.\nTrailing slashes are valid (but will automatically be removed) and it only validates up to 3rd level domains.\n\nAll the following would be valid values:\n\n- http://my.entando.com\n- https://my.entando.com\n- //my.entando.com\n- //my.entando.com/entando-sample\n\n#### `CLIENT_ID` (string, default `client_id`)\nstring used for the client id during the OAUTH2 authentication process.\nNot needed if you're using Keycloak.\n\n#### `CLIENT_SECRET` (string, default `client_secret`)\nstring used for the client secret during the OAUTH2 authentication process.\nNot needed if you're using Keycloak.\n\n#### `COMPONENT_REPOSITORY_UI_ENABLED` (boolean, default: `false`)\na boolean used to determine whether the Component Repository (former Digital Exchange) should be enabled or not.\n\n#### `KEYCLOAK_ENABLED` (boolean, default: `false`)\na boolean that enables authentication through [Keycloak](https://www.keycloak.org/). Won't be used if `USE_MOCKS` is set to true.\n\n#### `KEYCLOAK_JSON` (string, default: `/keycloak.json`)\na string containing the path for Keycloak JSON configuration reading endpoint.\nThis is a sample response:\n```\n{\n   \"realm\":\"entando\",\n   \"auth-server-url\":\"http://my.entando.com/auth\",\n   \"ssl-required\":\"external\",\n   \"resource\":\"entando-web\",\n   \"public-client\":true\n}\n```\n`KEYCLOAK_JSON` won't be used if `KEYCLOAK_ENABLED` is set to `false`.\n\n`KEYCLOAK_JSON` will be appended to `DOMAIN` as default if `DOMAIN` is set.\n\nThat means, for instance, if `DOMAIN`=https://my.entando.com, `KEYCLOAK_ENABLED`=true and no `KEYCLOAK_JSON` set, then `KEYCLOAK_JSON` will fallback to `https://my.entando.com/keycloak.json`).\n\nFor further information about Keycloak installation and configuration, see the [official Keycloak website](https://www.keycloak.org/documentation).\n\nCurrent Keycloak supported version is **11.0.x**.\n\n### Deploying `app-builder` with `keycloak` locally\n\nFor information how to run `app-builder` locally with `keycloak` [check this readme](https://github.com/entando/app-builder/blob/master/with-keycloak.md)\n\n### Sample .env file\n\n```\nUSE_MOCKS=false\nDOMAIN=//my.entando.com\n```\n---\n\n## Commands\n\n### Clone and set up:\n\n- Make sure to have `git`, `npm` + `node` installed and up to date.\n- `npm install`: installs npm dependencies.\n\n\n### Deploy:\n\n- `npm run lint`: runs the linter. It fails if linting rules are not matched.\n- `npm run coverage`: runs unit tests. It fails if an unit test fails, or if the minimum coverage threshold is not met.\n- `npm run import-plugins`: compiles and imports Entando plugins.\n- `npm run build`: compiles the project and creates the `build` directory.\n- `npm run build-full`: runs `npm run lint`, `npm run coverage`, `npm run import-plugins` and `npm run build`\n\n\n### Develop\n\n- `npm start`: starts the application in dev mode (local web server)\n\n---\n\n## Styles\n\nThis app uses SASS to manage stylesheets.\n\n[SASS docs](http://sass-lang.com/guide)\n\nThe style files are located in the `src/sass` directory, with the following structure:\n```\nsass\n├── app\n|   ├── _App.scss       // SASS file for the App component\n|   └── _TopNavbar.scss // SASS file for the TopNavbar component\n├── index.scss          // file containing all the SASS imports\n└── index.css           // output CSS file\n```\nThe `.scss` file names are prefixed with `_` in order to avoid the SASS compiler to generate their own output CSS file. All the output CSS should be included in `sass/index.scss`.\n\nThe `app` directory is a _domain_ directory. Domain directories are used to organize files into relevant categories (e.g. there could be also an `users` domain directory, containing all the style files of components related to users).\n\nEach Component should have its own `.scss` file, and domain directories should reflect those used in the `src/ui` directory.\n\n---\n\n## Internationalization (I18n)\n\nThis app uses `react-intl` for internationalization.\n\n[react-intl docs](https://github.com/yahoo/react-intl/wiki).\n\nTranslation files are `.js` files placed under `src/locales` directory, one for each supported language. The files are named after their language [ISO 639-1](https://en.wikipedia.org/wiki/ISO_639-1) code, e.g.\n\n```\nsrc\n└── locales\n    ├── en.js\n    └── it.js\n```\n\n---\n\n## API Requests\nApi requests are being done using `@entando/apimanager`.\nFor more information checkout the [documentation on NPM](https://www.npmjs.com/package/@entando/apimanager).\n---\n\n## Apps\n\nFor information on the `app-builder` apps [check its readme](./Apps.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fentando%2Fapp-builder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fentando%2Fapp-builder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fentando%2Fapp-builder/lists"}