P2 backlog para Glosa Phase 1
Tracking issue para mejoras nice-to-have detectadas en el POC. Ninguna bloquea adopción, pero todas son útiles para escalar.
1. Auth.refreshToken(token)
Sesiones largas (Glosa: 24h JWT) van a querer rotar tokens sin re-login. Hoy hay que hacer logout + login (mata UX).
const newToken = await auth.refreshToken(oldToken);
// validates old token, issues new with extended exp, removes old session
2. Collection.bulkInsert(docs, opts?)
Para ingest masivo (ej: 197 chunks de un libro), insertMany itera y reaplica todos los index updates uno por uno. Bulk-mode podría:
- Skip indexing intermedio, rebuild al final → más rápido
opts.skipValidation para confiar en input pre-validado
- Single
dirty=true flag
collection.bulkInsert(largeArray, { skipValidation: true, rebuildIndexes: 'after' });
3. Audit log built-in
Para DPA/SOC2: cada update/delete/setSensitiveField registra { who, when, what, before, after } automáticamente.
const db = new DocStore(adapter, { auditLog: true });
// Crea collection `_audit` con sorted index `created_at`
db.collection('users').update({...}, {$set: {email: 'new@x.com'}});
// → automáticamente loggea en _audit
4. Index intersection para queries multi-field
Hoy, find({workspace_id: 'X', status: 'active'}) solo usa UN índice. Para queries de dashboard sería ideal:
// Si ambos campos están indexados (hash)
// Hoy: usa workspace_id index, scan filtra status
// Propuesto: lookup en ambos, intersect _ids, retornar
Implementación: en _tryIndexLookup, retornar set y dejar que el caller intersect múltiples results.
5. Compresión de blobs JSON
Para colecciones grandes (>10K docs), gzip antes de KV write reduce 3-4x el storage y acelera reads. Necesita CompressionStream API (Workers nativo).
new DocStore(adapter, { compress: 'gzip' });
6. Soft-delete
db.collection('users', { softDelete: true });
collection.remove({...}); // setea `_removed_at: timestamp` en lugar de delete real
collection.find({}); // automáticamente filtra _removed_at != null
collection.findIncludingDeleted({});
7. Schema migrations
new Table(db, 'users', { schema, version: 2 });
// si KV tiene v1, ejecuta migrations.v1to2(doc) en cada doc al cargar
Estas son P2 — adoptamos sin ellas, pero las pediríamos en algún momento durante Phase 1-2 de Glosa. No requiere que las implementes todas; pongo el tracking issue para discusión y priorización.
Related
P2 backlog para Glosa Phase 1
Tracking issue para mejoras nice-to-have detectadas en el POC. Ninguna bloquea adopción, pero todas son útiles para escalar.
1.
Auth.refreshToken(token)Sesiones largas (Glosa: 24h JWT) van a querer rotar tokens sin re-login. Hoy hay que hacer logout + login (mata UX).
2.
Collection.bulkInsert(docs, opts?)Para ingest masivo (ej: 197 chunks de un libro),
insertManyitera y reaplica todos los index updates uno por uno. Bulk-mode podría:opts.skipValidationpara confiar en input pre-validadodirty=trueflag3. Audit log built-in
Para DPA/SOC2: cada
update/delete/setSensitiveFieldregistra{ who, when, what, before, after }automáticamente.4. Index intersection para queries multi-field
Hoy,
find({workspace_id: 'X', status: 'active'})solo usa UN índice. Para queries de dashboard sería ideal:Implementación: en
_tryIndexLookup, retornar set y dejar que el caller intersect múltiples results.5. Compresión de blobs JSON
Para colecciones grandes (>10K docs), gzip antes de KV write reduce 3-4x el storage y acelera reads. Necesita CompressionStream API (Workers nativo).
6. Soft-delete
7. Schema migrations
Estas son P2 — adoptamos sin ellas, pero las pediríamos en algún momento durante Phase 1-2 de Glosa. No requiere que las implementes todas; pongo el tracking issue para discusión y priorización.
Related