The config folder is located at the root of the app. This is where you find application configuration files. We will describe each file as well as their purpose below.
This file represents the access rights configuration within the application. It determines for each module, each entity and each actions (read, create, update, delete) which groups and which roles have access to each of the elements.
Example:
{
"home": {
"groups": [
"admin"
],
"entities": []
},
"administration": {
"groups": [
"admin"
],
"entities": [
{
"name": "user",
"groups": [
"admin"
],
"actions": {
"read": [
"admin"
],
"create": [
"admin"
],
"delete": [],
"update": [
"admin"
]
}
}
]
}
}
In this example you can see that there is the Home module and the Administration module. In the Administration module, a user entity is defined.
In this configuration, the admin group has access both module Home and Administration. The admin role has the read / create / update access right but does not have the delete access right.
This file is linked to the environment in which it is located (develop / test / production / studio / cloud /…), it must not be stored in the repository, that is why it is in the .gitignore file.
You should not edit this file by yourself, let the application do it for you, and use the appropriate user interface to manage the access rights properly.
This file represents the structure of the access.json file. It does not contain the access configuration like the access.json file, but it does contain the structure of this file in order to harmonize this structure regardless of the environment. This file is therefore stored in the repository and is updated on all environments so that the structure is the same everywhere.
This file is therefore analyzed each time the application is started to adapt the access.json file accordingly: if a module or an entity is added or deleted then the access.json file will be modified according to the changes.
This file contains information as well as the configuration of the application in terms of its operation. In this file you will find for example the configuration of the default language of the application, the version of the application, if the API is enabled, the default timezone and much more…
In this file you can add any key you want to store a configuration related to the final operation of the application.
{
"appname": "a_app", // Application technical name
"version": "1.0.0", // Application version, major.minor.patch format
"maintenance": false, // Is the application in maintenance ?
"api_enabled": true, // Is the API enabled on this application ?
"lang": "fr-FR", // Application default lang
"timezone": "Europe/Paris", // Application defaut timezone
"contact_field_for_sms": "f_phone", // User entity field used for media sms
"socket": { // Socket calls on application
"enabled": true, // Are the sockets enabled on this application ?
"chat": false, // Socket about component chat
"notification": true // Socket about notifications
},
"document_template": { // Component document template
"format_pairs": [{ // Used to declare the different input and output formats of the component
"code": "dust_pdf",
"label": "global_component.document_template.format_pairs.dust_pdf",
"input": "dust",
"output": "pdf"
}],
"input_extentions": [], // Input accepted extension
"output_extentions": [] // Output accepted extension
},
"synchronization": { // Component synchronization
"ignore_list": []
},
"resizePicture": { // Since 3.0.2 - Will resize and set quality of all picture in img field of your application
"enabled": false, // If not enabled then keep default given picture size and quality
"width": 400,
"height": 400,
"quality": 100
},
"thumbnail": { // Since 3.0.2 - Set the path, size and quality of image thumbnails
"folder": "thumbnail/",
"width": 30,
"height": 30,
"quality": 60
}
}
This file contains the configuration of the connection to the application database. It is in this file that you can specify the name of the database as well as the user and the password to connect to it.
You can also change the dialect used, the dialects supported by Nodea are MySQL, MariaDB, PostreSQL. Of course, the database with the right dialect must be ready for the environment.
This is the global server configuration file of the application (as its name suggests). You will find the declaration of the application environment which allows you to define which configuration is used (the default envs are develop, test, production, studio, cloud).
Also in this file are the following variable to configure according to your environment :
This file lists all the icons available for the application. It is used for the icon associated with a media notification.
These are the Font Awesome 5 icons available here => Font Awesome 5
It is the email configuration of your application. Password reset emails or media mail will use this configuration to send emails.
The host key is used to inform the host of the machine to be able to use it in the mail templates in order to include direct links to your online application or even directly images.
This file allows you to connect the Matomo traffic analysis service in order to see the activity of your application API only.
This file is the only file that makes the link between an application and a generator! It allows you to reference the state in which the application is located. This file contains all the fields, entities, modules, components, etc.
This file must not be modified manually at the risk of making the application unmaintainable by a Nodea generator!
SMS sending configuration file within the app. Mainly used for SMS media.