Encryption at Rest
This guide demonstrates encrypting documents before storing them in the storage backend. Data is encrypted using a symmetric encryption key.
What it demonstrates
Section titled “What it demonstrates”- Using encrypted storage for document data
- Importing or creating encryption keys
- Encrypting document data before it’s written to storage
- Decrypting document data when reading from storage
Server Setup
Section titled “Server Setup”import { Server } from "teleportal/server";import { createUnstorage } from "teleportal/storage";import { createStorage } from "unstorage";import redisDriver from "unstorage/drivers/redis";
const storage = createStorage({ driver: redisDriver({ base: "teleportal:", url: "redis://localhost:6379", }),});
const server = new Server({ getStorage: async (ctx) => { const { documentStorage } = createUnstorage(storage, { documentKeyPrefix: "doc", encrypted: ctx.encrypted, // Enable encryption based on context }); return documentStorage; },});Encryption Key Management
Section titled “Encryption Key Management”import { createEncryptionKey, importEncryptionKey } from "teleportal/encryption-key";
// Create a new encryption keyconst key = await createEncryptionKey();
// Import an existing keyconst importedKey = await importEncryptionKey(keyString);Next Steps
Section titled “Next Steps”- Storage - Learn more about storage options
- Core Concepts: Server - Server configuration