I once separated one Ensemble database (with code and data) into two databases (one db for code, one db for data) on a running system.

It was not difficult actually:

  1. Exported code from one database
  2. Created new database.
  3. Imported code into new database.
  4. In a namespace switched code database from old database to a newly created one.
  5. Deleted classes from old database.

But in my situation the code itself didn't change.

Well, what do you want to do with that list? Depending on your use case, the solution may differ.

For example to get a list of dashboards execute this query:

SELECT *
FROM %DeepSee_Dashboard.Definition

And to get a list of Pivots execute this one:

SELECT *
FROM %DeepSee_Dashboard.Pivot

And in MDX2JSON project I need to get a list of dashboards visible to the current user.  I use custom result set for that (because user may have access to dashes but not to SQL).

The easiest way would be to configure web server on customersdomain.com to act as a reverse proxy. In this case it would proxy requests to yourownserver.com or wherever you need.

Another way is to install CSP Gateway on a customersdomain.com. After that connect CSP Gateway to your Cache/Ensemble/InterSystems IRIS instance on yourownserver.com. And connect web server on customersdomain.com to CSP Gateway on customersdomain.com.

Advantage of this approach is that static would be served directly from customersdomain.com server.