Portal database

The portal service holds the DCP Portal’s per-user state. Connect with jnu.connect('portal', keystore). Every table is scoped to its owner, the Portal user, and is readable only by that user’s identity. Keys created in the Portal with the “jnu-access” or “universal” purpose carry portal.jnu as well as scheduler.jnu.

Table

Access

Columns

user

read

owner (identity), loginCount, lastLogin, creationDate, lastUpdate.

userPreferences

full

keyName, store (kvin), storageType: arbitrary per-user settings keyed by name.

bankAccountKeystores

full

address, label, keystore (JSON-encoded, passphrase-protected): the keystore files for the bank accounts shown in the Portal wallet. The keystore column is the encrypted file, not the key.

keys

full

proxyAddress, description, purpose (job-creation, job-management, wallet-access, jnu-access, universal), keystore (json, may be null). UI bookkeeping for API keys; the pxAuth database is authoritative.

workerConfigTemplate

full

proxyAddress, description, dcpWorkerAppConfig, workerConfigValue: UI bookkeeping for worker registration keys. The configuration tables in the scheduler database are authoritative.

“Full” means query, add, change and delete.

Note

A proxy key sees the Portal rows of the account that created it only if the key carries portal.jnu.<table>.query. A “job-creation” or “job-management” key sees nothing here.