Creating docker images from the release and master branches
We now create docker images from the release and master branches and publish this to Docker hub. This is done to ensure that we can setup separate environments for production and staging. Required for stability and testing. This has been done by creating a Docker image by invoking the Dockerfile via the .gitlab-ci.yml file. The master branch will push to the release tag while the release branch will push to the release tag.
See merge request theappsmith/internal-tools-server!77
Endpoint to view published page using just PageId
Fixes#83
We now return all the published layouts for a given pageId in the view mode. In the future, we will whittle the layouts down based on query parameters and other factors to return a single layout in the published page. Today, since most pages only have a single layout, there is no performance impact.
See merge request theappsmith/internal-tools-server!76
Adding CRUD API for configurations. The name for the config will be unique across the dataset
Moving the propertyPane API to the config API because it's more generic. Now we will be able to fetch properties using the name of the config parameter. This will allow us to store all the configurations in a single location. This is a more extensible design.
TODO: We still have to make the datastructure of the Config domain more generic. At the moment, it's meant to help the client transition from the older `propertyPane` API to the new `config` API.
See merge request theappsmith/internal-tools-server!71
User association with multiple organizations
Fixes#68
A user can now be associated to multiple organizations. By default the first organization that the user joins is the default one. The user can then switch between these organizations and work on them independently. At a given time though, the user will be operating on a single organization in a login session.
See merge request theappsmith/internal-tools-server!57
Extract mustache keys from action object
When an action is created, we extract the mustache keys from various parts of the action and save it in the field `jsonPathKeys`. This same thing also happens in the update flow.
Since mustache library doesn't have an extraction function, we use a regex template to extract those keys.
We also modify the data type of the `body` parameter in the `ActionConfiguration` to String. This is because there are reserved characters that are not allowed as Mongo keys but are valid JSON keys. Converting to a string will remove all these problems.
Fixes#31
See merge request theappsmith/internal-tools-server!58
Instead of sending complete application information, we now only send the boolean true or false value to indicate to the client the success or failure of the publish action
This is to ensure that the Action object is independent by itself and the client can derive the mustache keys by looking at the action object directly.
When we shut down the server, the redis subscription is not closed cleanly leading to the server to hang. Adding an error handler solves for this issue.