The vconfig element
To facilitate multi-tenancy on the C-Phrase Host, there is a virtual config element (vconfig
) which lets
you run NLIs which
use a common .cphrase file, although with a different database connection specification. These virtual configurations,
like regular configurations, have a set of corpus and parameter files,
but when it loads the table definitions, it does so using a full config
configuration specification.
By changing the database usernames across a set of virtual configurations, you may run multiple tenants using the
same core configuration and database.
<!ELEMENT vconfig> <!ATTLIST vconfig id CDATA #REQUIRED db CDATA #REQUIRED configuration CDATA #IMPLIED>
id is the identifier of the virtual configuration. The folder and .cphrase and .py files associated with this configuration will all use this identifier.
db specifies how to connect to the underlying database. This is exactly as done with normal configurations.
configuration specifies which configuration should be used to define the tables, views, reports, etc. of the configuration that the virual configuration will be over.
As an example assume we have a full configuration FH
that connects to a remote SQL Server database named
'fhistory'. Assume that
users on that remote database are named reader1
, reader2
, ... and are configured to run
as separate tenants. Given this, for the third tenant, assume we have a C-Phrase configuration with the name
FH_T3
and within it
the contents of the FH_T3.cphrase
are exactly:
<vconfig id="FH_T3" db="sqlserver:user=reader3,password=mongoose-wesfsf,database=fhistory,host=80.33.133.227,port=1433" configuration="FH_Main" />
When you launch this configuration and the user connects to it, they will be operating as user reader3
and will thus run a tenant 3. Sharing NLI parameters, corpus files, etc. can be achieved via logging into the C-Phrase host,
going to the configs directory and setting up symbolic links from tenant configuations into the main configuration directory.