For PrizmDoc, is there a way to set up PAS for multi-tenancy?

Question

We want to use one PAS instance for multiple customers while ensuring their calls and data are separated so that other customers cannot access them. Is there a way PrizmDoc can accomplish this?

Answer

How To:

Use the following steps to set up the multi-tenancy feature:

  1. Add a new line inside of /usr/share/prizm/pas/pcc.nix.yml (Linux) or C:\Prizm\pas\pcc.win.yml (Windows) in the following format:

undocumentedFeature.multiTenancy: enabled

  1. After enabling this feature, all requests to PAS must include the header accusoft-tenant-id. The following shows an example request for creating a new viewing session:
POST /ViewingSession HTTP/1.1
Host: localhost:3000
Content-Type: application/json
accusoft-tenant-id: myUniqueTenantId
cache-control: no-cache
Postman-Token: 5edd698a-5e4f-46d2-b93a-42cc57371dce
  {
  "source": {
  "type": "document",
  "fileName": "1040ez.pdf"
   }
  }

NOTE: All Tenant Ids are converted to lowercase and must be unique between tenants. This means that in terms of the application both “MyTenant” and “mytenant” are equivalent and would be able to see the same files. Tenant Ids are not generated for the application and must be generated and handled by the integration components. Tenant Ids are also strictly alphanumeric at this time.

File storage including Documents, markupXml, formDefinitions and markupLayerRecords will now be appended with the
{tenantId} as shown in the above example with a Documents configuration of /usr/share/prizm/Samples/Documents. The request would attempt to create a viewing session from the following file: /usr/share/prizm/Samples/Documents/myuniquetenantid/1040ez.pdf

Viewing Package data stored in the database will have the tenantId included in the composite index as well as include an accusoftTenantId column.