The purpose of this document is to explain how to take the binaries to production, of an application which uses GeneXus Access Manager.
To import the data of the GAM database into production, refer to GAM Deploy Tool.
1. Set up a pre-production environment
It's advisable to have a pre-production environment where you can setup the application binaries and data before going into production.
- In the pre-production environment you can use GeneXus to create the GAM database from scratch, and do a build all, prior to taking to production. The GAM permissions will be created in the build all process because the permissions don't exist in the database.
- In the GeneXus pre-production environment, configure a new Connection User Name and Connection User Password, so a new GAM connection will be created with that credentials. This GAM connection will be different than the one that you have configured for the test environment.
- Use the GAM Deploy Tool to do an export from the test environment, to be imported in the pre-production database. You may export the GAM Applications, GAM Roles, GAM Permissions, and GAM Security policies.
An alternative to using the GAM deploy tool, is to use the GAM API to populate your GAM pre-production database (creating GAM Roles, and GAM Security policies for example).
- In general you don't export from the test environment the GAM users unless some especial cases. Special care must be taken to not to carry out users with high privileges to production, which have been created with test purposes only.
- You always have a GAM Application related to your Kb (web GAM Application). At pre-production you should define the KB with the same name as in the test environment. If not, when exporting the GAM Applications from test and importing at pre-production, you will have two different GAM Applications for Web.
2. Create the deploy file
- After having done the necessary test at pre-production, use the Applications deploy tool to create the deployment. The deployment includes the application.gam and the connection.gam file, necessary to connect to the GAM Repository.
- At production: one possibility is that, for the first time, you backup the database at pre-production and restore it at production.
Another option is to use the GAM Deploy Tool. In this case, if you use the GAM deploy tool command line, first you have to create the database tables using the script distributed by GeneXus (under <GX Folder>\GAM\Platforms). Then do a full export at pre-production and a full import at production. You should use the "import" option with the "-new_rep_create" flag.
If you create a new connection.gam in production, you have to consider that the next time you take changes to production, you don't overwrite the connection.gam. Another possibility is to copy the GAM connections from pre-production to production, using the "-imp_connections" flag. In this last case, the connection.gam is valid for both environments, so you don't have to make changes to the deployment.
In sum, depending on the methodology you use, you have different alternatives to do the process of going into production.
In all cases, consider that: