@jantstack/adonis-authz 2.5.0-alpha.1 → 2.5.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +174 -17
- package/build/commands/authz_relations_reconcile.d.ts +7 -62
- package/build/commands/authz_relations_reconcile.d.ts.map +1 -1
- package/build/commands/authz_relations_reconcile.js +94 -118
- package/build/commands/authz_relations_reconcile.js.map +1 -1
- package/build/index.d.ts +1 -1
- package/build/index.d.ts.map +1 -1
- package/build/index.js +1 -1
- package/build/index.js.map +1 -1
- package/build/providers/authz_provider.d.ts.map +1 -1
- package/build/providers/authz_provider.js +4 -1
- package/build/providers/authz_provider.js.map +1 -1
- package/build/src/define_config.d.ts +32 -0
- package/build/src/define_config.d.ts.map +1 -1
- package/build/src/define_config.js +109 -0
- package/build/src/define_config.js.map +1 -1
- package/build/src/drivers/database_relations_driver.d.ts.map +1 -1
- package/build/src/drivers/database_relations_driver.js +3 -2
- package/build/src/drivers/database_relations_driver.js.map +1 -1
- package/build/src/drivers/openfga_driver.d.ts +30 -4
- package/build/src/drivers/openfga_driver.d.ts.map +1 -1
- package/build/src/drivers/openfga_driver.js +49 -9
- package/build/src/drivers/openfga_driver.js.map +1 -1
- package/build/src/drivers/openfga_relations_driver.d.ts +66 -9
- package/build/src/drivers/openfga_relations_driver.d.ts.map +1 -1
- package/build/src/drivers/openfga_relations_driver.js +145 -21
- package/build/src/drivers/openfga_relations_driver.js.map +1 -1
- package/build/src/errors.d.ts +36 -0
- package/build/src/errors.d.ts.map +1 -1
- package/build/src/errors.js +36 -0
- package/build/src/errors.js.map +1 -1
- package/build/src/manager.d.ts.map +1 -1
- package/build/src/manager.js +6 -1
- package/build/src/manager.js.map +1 -1
- package/build/src/openfga.d.ts +1 -1
- package/build/src/openfga.d.ts.map +1 -1
- package/build/src/openfga.js +1 -1
- package/build/src/openfga.js.map +1 -1
- package/build/src/relations/define_relations_config.d.ts +74 -1
- package/build/src/relations/define_relations_config.d.ts.map +1 -1
- package/build/src/relations/define_relations_config.js +201 -7
- package/build/src/relations/define_relations_config.js.map +1 -1
- package/build/src/relations/manager.d.ts.map +1 -1
- package/build/src/relations/manager.js +4 -2
- package/build/src/relations/manager.js.map +1 -1
- package/build/src/relations/reconcile.d.ts +77 -13
- package/build/src/relations/reconcile.d.ts.map +1 -1
- package/build/src/relations/reconcile.js +247 -36
- package/build/src/relations/reconcile.js.map +1 -1
- package/build/src/relations_config_store.d.ts.map +1 -1
- package/build/src/relations_config_store.js +29 -7
- package/build/src/relations_config_store.js.map +1 -1
- package/build/src/relations_reconcile.d.ts +79 -0
- package/build/src/relations_reconcile.d.ts.map +1 -0
- package/build/src/relations_reconcile.js +85 -0
- package/build/src/relations_reconcile.js.map +1 -0
- package/build/src/scope_outbox.d.ts +9 -5
- package/build/src/scope_outbox.d.ts.map +1 -1
- package/build/src/scope_outbox.js +7 -4
- package/build/src/scope_outbox.js.map +1 -1
- package/build/src/testing/relations_contract.d.ts.map +1 -1
- package/build/src/testing/relations_contract.js +72 -2
- package/build/src/testing/relations_contract.js.map +1 -1
- package/build/src/testing/scope_outbox_contract.d.ts +14 -1
- package/build/src/testing/scope_outbox_contract.d.ts.map +1 -1
- package/build/src/testing/scope_outbox_contract.js +126 -48
- package/build/src/testing/scope_outbox_contract.js.map +1 -1
- package/build/src/types.d.ts +7 -3
- package/build/src/types.d.ts.map +1 -1
- package/build/src/types.js.map +1 -1
- package/package.json +2 -1
|
@@ -41,7 +41,13 @@ export interface RelationsReconcileOptions {
|
|
|
41
41
|
* `skipped.undeclared`, de modo que `--dry-run` y la pasada real dan los
|
|
42
42
|
* MISMOS números. Sin ella, la embuda el 422 del propio driver del destino
|
|
43
43
|
* (la misma función, `assertRelationDeclared`) y se cuenta igual — pero
|
|
44
|
-
* `--dry-run` no puede anticiparla (la reporta como `written`).
|
|
44
|
+
* `--dry-run` no puede anticiparla (la reporta como `written`). **Y en el
|
|
45
|
+
* DESTINO** (cierre 3 del lote B · 🟠 N9): la fila cuya relación o tipo no
|
|
46
|
+
* declara es residuo `undeclared` (`extra` + `details`, `pruned: false`,
|
|
47
|
+
* nunca en `toDelete`), con los mismos números en `--dry-run` y en la pasada
|
|
48
|
+
* real; sin ella, `--dry-run` la cuenta en `deleted` (no puede anticipar
|
|
49
|
+
* F-05) y la pasada real captura el 422 del driver, la clasifica igual y
|
|
50
|
+
* sigue — nunca un throw a mitad de pasada.
|
|
45
51
|
*/
|
|
46
52
|
toConfig?: RelationsConfig;
|
|
47
53
|
/**
|
|
@@ -68,22 +74,58 @@ export interface RelationsReconcileOptions {
|
|
|
68
74
|
export interface RelationsReconcileDetail {
|
|
69
75
|
/** De qué store llegó enumerada. */
|
|
70
76
|
side: 'origen' | 'destino';
|
|
71
|
-
|
|
77
|
+
/**
|
|
78
|
+
* `invalid-identity` (⚪ R2): la identidad no entra en la gramática.
|
|
79
|
+
* `userset-unsupported` (cierre 1 del lote B · 🟠 1/🟠 2): el sujeto es un
|
|
80
|
+
* userset ≠ `group#member` — el residuo pre-2.5 de B3 (una fila inerte de
|
|
81
|
+
* `database` de antes de 2.5.0). Se clasifica en el PLAN, antes del driver,
|
|
82
|
+
* con o sin `toConfig` (`assertSupportedUserset`), así que `--dry-run` y la
|
|
83
|
+
* pasada real dan los MISMOS números; en el origen cuenta en
|
|
84
|
+
* `skipped.usersetUnsupported`, en el destino en `extra`, y en los dos lados
|
|
85
|
+
* es deriva (exit ≠ 0) con la receta SQL en la línea: **ningún `--prune` la
|
|
86
|
+
* toca** (nunca un DELETE de plataforma sobre una fila que la API no admite,
|
|
87
|
+
* decisión del coordinador 2026-10-15: se lista, exit ≠ 0, se borra a mano).
|
|
88
|
+
* `undeclared` (cierre 3 del lote B · 🟠 N9, solo `destino`): la fila cuya
|
|
89
|
+
* relación —o tipo— el DESTINO ya no declara (una relación RETIRADA de la
|
|
90
|
+
* config con filas vivas; `#enumerateRows`/`#sweep` filtran por tipo, no por
|
|
91
|
+
* relación). `unrelate` la rechaza por F-05 (422), así que es la tercera fila
|
|
92
|
+
* «que la API no admite» y lleva la MISMA regla: con `toConfig` la clasifica
|
|
93
|
+
* el plan (`classifyDestinationRow`, la misma `assertRelationDeclared` que el
|
|
94
|
+
* driver); sin ella la captura por `code` el bucle de poda en la pasada real
|
|
95
|
+
* (hasta el cierre 3 ese 422 salía como stack crudo a mitad de pasada,
|
|
96
|
+
* después de escribir, y `--prune` quedaba inutilizable para esa partición).
|
|
97
|
+
* Receta: retírala a mano o vuelve a declarar la relación en el destino.
|
|
98
|
+
*/
|
|
99
|
+
reason: 'invalid-identity' | 'userset-unsupported' | 'undeclared';
|
|
72
100
|
/** La tupla, legible: `<partición> <tipo>:<id>#<relación>@<sujeto>`. */
|
|
73
101
|
tuple: string;
|
|
74
102
|
/** El porqué: el mensaje de la gramática que la rechazó. */
|
|
75
103
|
message: string;
|
|
76
104
|
/**
|
|
77
|
-
* Solo `destino` con `prune
|
|
78
|
-
*
|
|
79
|
-
*
|
|
80
|
-
*
|
|
105
|
+
* Solo `destino` con `prune`, y desde el cierre 2 del lote B (🟡 N3) siempre
|
|
106
|
+
* `false`: NO se borró y sigue ahí porque la pasada NO se la pide a nadie —
|
|
107
|
+
* ni `unrelate` por el puerto (los dos drivers del paquete la rechazan por su
|
|
108
|
+
* gramática, R-16) ni un DELETE de plataforma—, también en `--dry-run`, para
|
|
109
|
+
* los TRES motivos (`undeclared` desde el cierre 3 · 🟠 N9: con `toConfig` no
|
|
110
|
+
* se le pide; sin ella se le pidió, el driver dijo 422 y la pasada siguió).
|
|
111
|
+
* Hay que borrarla a mano (SQL/SDK) o, para `undeclared`, volver a declarar
|
|
112
|
+
* la relación. Ausente sin `prune` y en el origen. El tipo sigue siendo `boolean` por compatibilidad: `true`
|
|
113
|
+
* («borrada») lo producía el cierre-2 del lote A para `invalid-identity`
|
|
114
|
+
* cuando un driver sin gramática aceptaba el `unrelate`; el paquete ya no lo
|
|
115
|
+
* emite.
|
|
81
116
|
*/
|
|
82
117
|
pruned?: boolean;
|
|
83
118
|
}
|
|
84
119
|
export interface RelationsReconcileReport {
|
|
85
120
|
/** ¿Fue `--dry-run` (sin escrituras)? */
|
|
86
121
|
dryRun: boolean;
|
|
122
|
+
/**
|
|
123
|
+
* ¿Se pasó `prune` (cierre 2 del lote B · 🟡 N3)? El comando lo necesita
|
|
124
|
+
* para no aconsejar «repite con --prune» en una pasada que YA lo llevaba.
|
|
125
|
+
* Opcional en el tipo exportado (un reporte de terceros anterior sigue
|
|
126
|
+
* compilando; ausente = no pasado).
|
|
127
|
+
*/
|
|
128
|
+
prune?: boolean;
|
|
87
129
|
/** Tuplas nuevas escritas en el destino (o que se escribirían, en `--dry-run`). */
|
|
88
130
|
written: number;
|
|
89
131
|
/** Tuplas que sobraban en el destino y se borraron (solo con `prune`; o que se borrarían). */
|
|
@@ -97,8 +139,14 @@ export interface RelationsReconcileReport {
|
|
|
97
139
|
/** Tuplas que ya estaban exactamente igual (misma clave y misma caducidad). */
|
|
98
140
|
unchanged: number;
|
|
99
141
|
/**
|
|
100
|
-
* Tuplas del destino que el origen ya no respalda y que NO se borraron por
|
|
101
|
-
* no pasar `--prune` (deriva recuperable; con `prune` pasan a `deleted`)
|
|
142
|
+
* Tuplas del destino que el origen ya no respalda y que NO se borraron: por
|
|
143
|
+
* no pasar `--prune` (deriva recuperable; con `prune` pasan a `deleted`) o
|
|
144
|
+
* porque son un RESIDUO que ningún driver del paquete borra —`invalid-identity`,
|
|
145
|
+
* `userset-unsupported` y, desde el cierre 3 (🟠 N9), `undeclared`, en
|
|
146
|
+
* `details`— y la pasada no se lo pide a nadie (o se lo pidió sin `toConfig`
|
|
147
|
+
* y el driver lo rechazó con un 422 de la familia, que se clasifica igual),
|
|
148
|
+
* con o sin `prune` (cierre 2 del lote B · 🟡 N3: una regla, no dos). El
|
|
149
|
+
* comando solo aconseja `--prune` por lo que `--prune` borra de verdad.
|
|
102
150
|
*/
|
|
103
151
|
extra: number;
|
|
104
152
|
/**
|
|
@@ -138,18 +186,34 @@ export interface RelationsReconcileReport {
|
|
|
138
186
|
* no puede escribirlas en el destino, se listan en `details` y son
|
|
139
187
|
* deriva. Opcional en el tipo (un reporte de terceros anterior sigue
|
|
140
188
|
* compilando); ausente = 0.
|
|
189
|
+
* - `usersetUnsupported` (cierre 1 del lote B · 🟠 2) = tuplas del ORIGEN
|
|
190
|
+
* cuyo sujeto es un userset ≠ `group#member` (el residuo pre-2.5 de B3,
|
|
191
|
+
* `reason: 'userset-unsupported'` en `details`): el destino no las admite
|
|
192
|
+
* (422 por cualquier puerta), se clasifican en el PLAN —nunca llegan al
|
|
193
|
+
* driver; hasta el cierre `relateOrSkip` las tragaba como `undeclared`
|
|
194
|
+
* con un consejo falso y `--dry-run` decía «haría 1 escritura»— y son
|
|
195
|
+
* deriva con la receta SQL en la línea. Opcional; ausente = 0.
|
|
141
196
|
*/
|
|
142
197
|
skipped: {
|
|
143
198
|
expired: number;
|
|
144
199
|
undeclared: number;
|
|
145
200
|
invalid?: number;
|
|
201
|
+
usersetUnsupported?: number;
|
|
146
202
|
};
|
|
147
203
|
/**
|
|
148
|
-
* **Lo enumerado
|
|
149
|
-
*
|
|
150
|
-
*
|
|
151
|
-
*
|
|
152
|
-
*
|
|
204
|
+
* **Lo enumerado fuera de la gramática, con un userset no admitido O cuya
|
|
205
|
+
* relación/tipo el destino ya no declara, una línea por tupla** (⚪ R2; cierres
|
|
206
|
+
* 1, 2 y 3 del lote B): las del destino cuentan SIEMPRE en `extra` —los tres
|
|
207
|
+
* motivos, `invalid-identity`, `userset-unsupported` y `undeclared`, con
|
|
208
|
+
* `pruned: false` bajo `prune`: la pasada no se las pide a nadie (ningún
|
|
209
|
+
* driver del paquete las admite en `unrelate`, R-16/F-05, y nunca un DELETE
|
|
210
|
+
* de plataforma), y si sin `toConfig` se las pidió y el driver respondió con
|
|
211
|
+
* un 422 de la familia de relaciones, se clasifican por `code` y la poda
|
|
212
|
+
* sigue (🟠 N9: nunca un throw a mitad de pasada por una fila que el reporte
|
|
213
|
+
* puede contar); hasta el cierre 2 `invalid-identity` se le pedía al driver y
|
|
214
|
+
* podía salir en `deleted`—; las del origen en `skipped.invalid` /
|
|
215
|
+
* `skipped.usersetUnsupported`. Opcional en el tipo
|
|
216
|
+
* exportado (paridad con `allowMassDelete`, ⚪ A12); ausente = `[]`.
|
|
153
217
|
*/
|
|
154
218
|
details?: RelationsReconcileDetail[];
|
|
155
219
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconcile.d.ts","sourceRoot":"","sources":["../../../src/relations/reconcile.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reconcile.d.ts","sourceRoot":"","sources":["../../../src/relations/reconcile.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,11 +27,12 @@
|
|
|
27
27
|
* clave, niega la dirección rancia y congela; la guardia de superficie de
|
|
28
28
|
* `command_flags.spec.ts` impide re-exportarlo por ningún subpath.
|
|
29
29
|
*/
|
|
30
|
-
import { AuthorizationConfigError, InvalidIdentityError, MassReconcileRefusedError, RelationTypeUnknownError, RelationUnknownError, UnsupportedOperationError, } from '../errors.js';
|
|
30
|
+
import { AuthorizationConfigError, InvalidIdentityError, MassReconcileRefusedError, RelationTypeUnknownError, RelationUnknownError, RelationUsersetUnsupportedError, UnsupportedOperationError, } from '../errors.js';
|
|
31
31
|
import { systemClock } from '../clock.js';
|
|
32
32
|
import { isActiveExpiry, sameInstant } from '../expiry.js';
|
|
33
33
|
import { assertPartition, scopeKey } from '../identity.js';
|
|
34
34
|
import { isRelUserset } from '../types.js';
|
|
35
|
+
import { assertRelationDeclared, assertSupportedUserset } from './define_relations_config.js';
|
|
35
36
|
import { relationTupleKey } from './tuple_key.js';
|
|
36
37
|
/**
|
|
37
38
|
* La clave con la que se casan origen y destino es `relationTupleKey` (plan
|
|
@@ -114,6 +115,7 @@ export async function reconcileRelations(options) {
|
|
|
114
115
|
}
|
|
115
116
|
const report = {
|
|
116
117
|
dryRun,
|
|
118
|
+
prune,
|
|
117
119
|
written: 0,
|
|
118
120
|
updated: 0,
|
|
119
121
|
deleted: 0,
|
|
@@ -122,7 +124,7 @@ export async function reconcileRelations(options) {
|
|
|
122
124
|
modelDrift: [],
|
|
123
125
|
massDelete: false,
|
|
124
126
|
allowMassDelete,
|
|
125
|
-
skipped: { expired: 0, undeclared: 0, invalid: 0 },
|
|
127
|
+
skipped: { expired: 0, undeclared: 0, invalid: 0, usersetUnsupported: 0 },
|
|
126
128
|
details: [],
|
|
127
129
|
};
|
|
128
130
|
for (const plan of plans) {
|
|
@@ -136,9 +138,7 @@ export async function reconcileRelations(options) {
|
|
|
136
138
|
if (plan.massDelete && !dryRun && !allowMassDelete) {
|
|
137
139
|
throw new MassReconcileRefusedError(`authz:relations:reconcile --prune borraría ${plan.toDelete.length} tupla(s) de relación del destino` +
|
|
138
140
|
`${partitions.length > 1 ? ` (partición ${scopeKey(plan.partition)})` : ''} y el ` +
|
|
139
|
-
`ORIGEN no ha aportado NI UNA utilizable (${plan.enumerated} leídas` +
|
|
140
|
-
`${toConfig ? ', todas de tipos que el destino no declara' : ''}` +
|
|
141
|
-
`${plan.skipped.expired ? `, ${plan.skipped.expired} caducada(s)` : ''}). Eso es la firma de un --from ` +
|
|
141
|
+
`ORIGEN no ha aportado NI UNA utilizable (${plan.enumerated} leídas${describeSkipped(plan.skipped)}). Eso es la firma de un --from ` +
|
|
142
142
|
`equivocado o de un store vacío, no de un destino que sobra: esta pasada dejaría la partición sin ` +
|
|
143
143
|
`una sola relación. Comprueba el --from y el store; si de verdad quieres vaciarlo, --allow-mass-delete.` +
|
|
144
144
|
`${partitions.length > 1 ? ' No se ha escrito nada en ninguna partición.' : ''}`);
|
|
@@ -147,6 +147,7 @@ export async function reconcileRelations(options) {
|
|
|
147
147
|
report.skipped.expired += plan.skipped.expired;
|
|
148
148
|
report.skipped.undeclared += plan.skipped.undeclared;
|
|
149
149
|
report.skipped.invalid += plan.skipped.invalid;
|
|
150
|
+
report.skipped.usersetUnsupported += plan.skipped.usersetUnsupported;
|
|
150
151
|
for (const type of plan.modelDrift)
|
|
151
152
|
if (!report.modelDrift.includes(type))
|
|
152
153
|
report.modelDrift.push(type);
|
|
@@ -175,9 +176,14 @@ export async function reconcileRelations(options) {
|
|
|
175
176
|
updated -= 1;
|
|
176
177
|
}
|
|
177
178
|
}
|
|
178
|
-
// ⚪ R2
|
|
179
|
-
//
|
|
180
|
-
|
|
179
|
+
// ⚪ R2 + cierre 1 y cierre 2 del lote B (🟡 N3, una regla, no dos): lo
|
|
180
|
+
// enumerado fuera de la gramática (`invalid-identity`) y el residuo pre-2.5
|
|
181
|
+
// de B3 (`userset-unsupported`) se LISTAN siempre, en los dos lados; con
|
|
182
|
+
// `prune` el del destino lleva `pruned: false` desde el plan — también en
|
|
183
|
+
// `--dry-run`—, porque NADIE lo borra: ni `toDelete` lo contiene ni el driver
|
|
184
|
+
// lo ve (hasta el cierre 2 `invalid-identity` se le pedía al driver y los dos
|
|
185
|
+
// del paquete lo rechazaban por el puerto, R-16). Cuenta en `extra` (abajo)
|
|
186
|
+
// y es deriva en los cuatro modos.
|
|
181
187
|
for (const invalid of plan.invalid) {
|
|
182
188
|
const detail = {
|
|
183
189
|
side: invalid.side,
|
|
@@ -186,38 +192,83 @@ export async function reconcileRelations(options) {
|
|
|
186
192
|
message: invalid.message,
|
|
187
193
|
};
|
|
188
194
|
if (invalid.side === 'destino' && prune)
|
|
189
|
-
detail.pruned =
|
|
195
|
+
detail.pruned = false;
|
|
196
|
+
report.details.push(detail);
|
|
197
|
+
}
|
|
198
|
+
for (const residue of plan.usersetResidue) {
|
|
199
|
+
const detail = {
|
|
200
|
+
side: residue.side,
|
|
201
|
+
reason: 'userset-unsupported',
|
|
202
|
+
tuple: residue.tuple,
|
|
203
|
+
message: residue.message,
|
|
204
|
+
};
|
|
205
|
+
if (residue.side === 'destino' && prune)
|
|
206
|
+
detail.pruned = false;
|
|
207
|
+
report.details.push(detail);
|
|
208
|
+
}
|
|
209
|
+
// Cierre 3 del lote B · 🟠 N9, capa 1: la fila del DESTINO cuya relación o
|
|
210
|
+
// tipo `toConfig` no declara (una relación RETIRADA con filas vivas) se
|
|
211
|
+
// clasifica en el PLAN con la MISMA regla que los otros dos motivos: `extra`
|
|
212
|
+
// + `details`, `pruned: false` bajo `prune` (también en `--dry-run`), nunca
|
|
213
|
+
// en `toDelete` — `unrelate` la rechazaría por F-05 y hasta el cierre 3 ese
|
|
214
|
+
// 422 tumbaba la pasada a mitad, después de escribir.
|
|
215
|
+
for (const residue of plan.undeclaredResidue) {
|
|
216
|
+
const detail = { side: 'destino', reason: 'undeclared', tuple: residue.tuple, message: residue.message };
|
|
217
|
+
if (prune)
|
|
218
|
+
detail.pruned = false;
|
|
190
219
|
report.details.push(detail);
|
|
191
220
|
}
|
|
221
|
+
let deleted = prune ? plan.toDelete.length : 0;
|
|
222
|
+
let refused = 0;
|
|
192
223
|
if (!dryRun && prune) {
|
|
224
|
+
// Todo lo que hay en `toDelete` pasó la gramática Y, con `toConfig`, F-05
|
|
225
|
+
// del destino: un 422 del driver aquí es el driver diciendo otra cosa que
|
|
226
|
+
// el plan — o el plan sin `toConfig`, que no pudo anticipar F-05 (🟠 N9,
|
|
227
|
+
// capa 2). **La poda NUNCA lanza por un 422 de la familia de relaciones**:
|
|
228
|
+
// se clasifica por `code` con la MISMA regla (`extra` + `details`,
|
|
229
|
+
// `pruned: false`, deriva), se sigue con las demás filas y el comando sale
|
|
230
|
+
// ≠ 0 con la línea «sobra (<motivo>) destino:». Un 422 de OTRA familia o
|
|
231
|
+
// cualquier otro error sigue propagándose: eso sí es una contradicción que
|
|
232
|
+
// el reporte no sabe contar (R2-5: el plan clasifica, el driver no absorbe
|
|
233
|
+
// lo que no es suyo).
|
|
193
234
|
for (const tuple of plan.toDelete) {
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
try {
|
|
201
|
-
await to.unrelate(tuple.subject, tuple.relation, tuple.object, tuple.partition);
|
|
202
|
-
}
|
|
203
|
-
catch (error) {
|
|
204
|
-
if (!invalid || error?.status !== 422)
|
|
205
|
-
throw error;
|
|
206
|
-
refused += 1;
|
|
207
|
-
const detail = report.details.find((d) => d.side === 'destino' && d.tuple === invalid.tuple);
|
|
208
|
-
if (detail)
|
|
209
|
-
detail.pruned = false;
|
|
210
|
-
}
|
|
235
|
+
const refusal = await unrelateOrClassify(to, tuple);
|
|
236
|
+
if (refusal === null)
|
|
237
|
+
continue;
|
|
238
|
+
report.details.push({ side: 'destino', reason: refusal.reason, tuple: describeTuple(tuple), message: refusal.message, pruned: false });
|
|
239
|
+
refused += 1;
|
|
240
|
+
deleted -= 1;
|
|
211
241
|
}
|
|
212
242
|
}
|
|
213
243
|
report.written += written;
|
|
214
244
|
report.updated += updated;
|
|
215
|
-
report.deleted +=
|
|
245
|
+
report.deleted += deleted;
|
|
216
246
|
report.unchanged += plan.unchanged;
|
|
217
|
-
|
|
247
|
+
// El residuo del destino (los tres motivos) sobra SIEMPRE, con o sin `prune`:
|
|
248
|
+
// no está en `toDelete`, así que se suma aparte — más lo que el driver
|
|
249
|
+
// rechazó con un 422 de la familia en la pasada real (capa 2 de N9).
|
|
250
|
+
report.extra += (prune ? 0 : plan.toDelete.length) + plan.destResidue + refused;
|
|
218
251
|
}
|
|
219
252
|
return report;
|
|
220
253
|
}
|
|
254
|
+
/**
|
|
255
|
+
* ⚪ N8 (cierre 2 del lote B): el desglose del seguro R-17, cada motivo POR SU
|
|
256
|
+
* NOMBRE y solo si cuenta (> 0). Hasta el cierre decía «todas de tipos que el
|
|
257
|
+
* destino no declara» siempre que había `toConfig`, también cuando el único
|
|
258
|
+
* aporte era residuo B3 — y sin `toConfig` no nombraba nada.
|
|
259
|
+
*/
|
|
260
|
+
function describeSkipped(skipped) {
|
|
261
|
+
const parts = [];
|
|
262
|
+
if (skipped.undeclared)
|
|
263
|
+
parts.push(`${skipped.undeclared} de tipo o relación que el destino no declara (skipped.undeclared)`);
|
|
264
|
+
if (skipped.usersetUnsupported)
|
|
265
|
+
parts.push(`${skipped.usersetUnsupported} con sujeto userset no admitido (B3, skipped.usersetUnsupported)`);
|
|
266
|
+
if (skipped.invalid)
|
|
267
|
+
parts.push(`${skipped.invalid} con identidad fuera de la gramática (skipped.invalid)`);
|
|
268
|
+
if (skipped.expired)
|
|
269
|
+
parts.push(`${skipped.expired} caducada(s)`);
|
|
270
|
+
return parts.length ? `: ${parts.join(', ')}` : '';
|
|
271
|
+
}
|
|
221
272
|
/** Una tupla enumerada, legible, para la línea del reporte (sin validar nada: puede estar fuera de la gramática). */
|
|
222
273
|
function describeTuple(tuple) {
|
|
223
274
|
const s = tuple?.subject;
|
|
@@ -237,6 +288,38 @@ function enumeratedKey(tuple) {
|
|
|
237
288
|
throw error;
|
|
238
289
|
}
|
|
239
290
|
}
|
|
291
|
+
/**
|
|
292
|
+
* **El sujeto de una tupla ENUMERADA, clasificado** (cierre 1 del lote B · 🟠 2;
|
|
293
|
+
* cierre 2 · 🟡 N2): `ok`, `userset-unsupported` (B3: userset ≠ `group#member`,
|
|
294
|
+
* con o sin config — `assertSupportedUserset` no necesita F-05), o `undeclared`
|
|
295
|
+
* (solo con `toConfig`: un `group#member` cuyo tipo/relación el destino no
|
|
296
|
+
* declara — F-05 del par; sin config esa cara la embuda el 422 del driver, como
|
|
297
|
+
* la del objeto). **La FORMA se juzga ANTES que F-05** (N2; decisión 3 del
|
|
298
|
+
* cierre 1 rechazada): un residuo B3 es inadmisible con cualquier config, así
|
|
299
|
+
* que un userset `folder#viewer` o `document#reader` que `toConfig` no declara
|
|
300
|
+
* es residuo con receta, nunca `undeclared` con el consejo falso «decláralo en
|
|
301
|
+
* el destino» (declarado, la pasada siguiente lo reclasificaba como residuo).
|
|
302
|
+
* Mutante «F-05 primero» ⇒ rojo. Nunca lanza por un dato del store
|
|
303
|
+
* (invariante 5).
|
|
304
|
+
*/
|
|
305
|
+
function classifySubject(tuple, toConfig) {
|
|
306
|
+
const subject = tuple?.subject;
|
|
307
|
+
if (!isRelUserset(subject))
|
|
308
|
+
return { kind: 'ok' };
|
|
309
|
+
try {
|
|
310
|
+
assertSupportedUserset(subject);
|
|
311
|
+
if (toConfig)
|
|
312
|
+
assertRelationDeclared(toConfig, subject.object, subject.relation);
|
|
313
|
+
return { kind: 'ok' };
|
|
314
|
+
}
|
|
315
|
+
catch (error) {
|
|
316
|
+
if (error instanceof RelationUsersetUnsupportedError)
|
|
317
|
+
return { kind: 'userset-unsupported', message: error.message };
|
|
318
|
+
if (error instanceof RelationTypeUnknownError || error instanceof RelationUnknownError)
|
|
319
|
+
return { kind: 'undeclared' };
|
|
320
|
+
throw error;
|
|
321
|
+
}
|
|
322
|
+
}
|
|
240
323
|
/** Exactamente uno de `partition` / `partitions` (y `partitions` no vacío): lo demás es 500 antes de leer nada. */
|
|
241
324
|
function partitionsOf(options) {
|
|
242
325
|
const { partition, partitions } = options;
|
|
@@ -282,10 +365,11 @@ function planPartition(partition, enumerated, destTuples, context) {
|
|
|
282
365
|
// pasada real dan los mismos números— y tampoco respalda nada en el destino
|
|
283
366
|
// (una que ya estuviera allí es `extra`, y `--prune` la barre). El tipo se
|
|
284
367
|
// reporta además en `modelDrift` (deriva del modelo fusionado).
|
|
285
|
-
const skipped = { expired: 0, undeclared: 0, invalid: 0 };
|
|
368
|
+
const skipped = { expired: 0, undeclared: 0, invalid: 0, usersetUnsupported: 0 };
|
|
286
369
|
const modelDrift = [];
|
|
287
370
|
const sourceTuples = [];
|
|
288
371
|
const invalid = [];
|
|
372
|
+
const usersetResidue = [];
|
|
289
373
|
for (const tuple of enumerated) {
|
|
290
374
|
if (!isActiveExpiry(tuple.expiresAt ?? null, now)) {
|
|
291
375
|
skipped.expired += 1;
|
|
@@ -300,6 +384,21 @@ function planPartition(partition, enumerated, destTuples, context) {
|
|
|
300
384
|
invalid.push({ side: 'origen', tuple: describeTuple(tuple), message: keyed.message });
|
|
301
385
|
continue;
|
|
302
386
|
}
|
|
387
|
+
// Cierre 1 del lote B · 🟠 2: el residuo pre-2.5 de B3 en el ORIGEN se
|
|
388
|
+
// clasifica AQUÍ, con o sin `toConfig` — no se migra (ninguna puerta del
|
|
389
|
+
// destino lo admite), se lista con su receta y se cuenta aparte. Hasta el
|
|
390
|
+
// cierre llegaba al driver, que lo rechazaba con 422, y `relateOrSkip` lo
|
|
391
|
+
// tragaba como `undeclared` (consejo falso; `--dry-run` decía `written`).
|
|
392
|
+
const subject = classifySubject(tuple, toConfig);
|
|
393
|
+
if (subject.kind === 'userset-unsupported') {
|
|
394
|
+
skipped.usersetUnsupported += 1;
|
|
395
|
+
usersetResidue.push({ side: 'origen', tuple: describeTuple(tuple), message: subject.message });
|
|
396
|
+
continue;
|
|
397
|
+
}
|
|
398
|
+
if (subject.kind === 'undeclared') {
|
|
399
|
+
skipped.undeclared += 1;
|
|
400
|
+
continue;
|
|
401
|
+
}
|
|
303
402
|
if (toConfig && !declaredIn(toConfig, tuple.object.type)) {
|
|
304
403
|
skipped.undeclared += 1;
|
|
305
404
|
if (!modelDrift.includes(tuple.object.type))
|
|
@@ -315,16 +414,49 @@ function planPartition(partition, enumerated, destTuples, context) {
|
|
|
315
414
|
const sourceByKey = new Map();
|
|
316
415
|
for (const tuple of sourceTuples)
|
|
317
416
|
sourceByKey.set(tupleKey({ ...tuple, kind: 'allow' }), tuple);
|
|
318
|
-
// ⚪ R2: una tupla del DESTINO fuera de la gramática es
|
|
319
|
-
// (`invalid-identity`): nadie del origen puede respaldarla
|
|
320
|
-
// puede ni componer)
|
|
417
|
+
// ⚪ R2 + cierre 2 · N3: una tupla del DESTINO fuera de la gramática es
|
|
418
|
+
// `extra` con motivo (`invalid-identity`): nadie del origen puede respaldarla
|
|
419
|
+
// (la clave no se puede ni componer) y NADIE la borra — ni `toDelete` (los dos
|
|
420
|
+
// drivers del paquete la rechazan por el puerto, R-16; hasta el cierre 2 se les
|
|
421
|
+
// pedía igual) ni un DELETE de plataforma—: se lista con `pruned: false` y es
|
|
422
|
+
// deriva en los cuatro modos, exactamente como el residuo de B3 de abajo.
|
|
321
423
|
const destByKey = new Map();
|
|
322
424
|
const destInvalid = new Set();
|
|
425
|
+
const destResidue = new Set();
|
|
426
|
+
const undeclaredResidue = [];
|
|
323
427
|
for (const tuple of destTuples) {
|
|
324
428
|
const keyed = enumeratedKey(tuple);
|
|
325
429
|
if ('message' in keyed) {
|
|
326
430
|
destInvalid.add(tuple);
|
|
327
|
-
invalid.push({ side: 'destino', tuple: describeTuple(tuple), message: keyed.message
|
|
431
|
+
invalid.push({ side: 'destino', tuple: describeTuple(tuple), message: keyed.message });
|
|
432
|
+
continue;
|
|
433
|
+
}
|
|
434
|
+
// Cierre 1 del lote B · 🟠 1: el residuo pre-2.5 de B3 en el DESTINO sobra
|
|
435
|
+
// (nadie del origen puede respaldarlo: el origen lo descarta arriba) pero
|
|
436
|
+
// NO entra en `toDelete`: la pasada no se lo pide al driver ni con `--prune`
|
|
437
|
+
// —`unrelate` lo rechazaría con 422 y hasta el cierre eso ABORTABA la pasada
|
|
438
|
+
// a mitad, con los `toWrite` ya escritos—. Se lista con `pruned: false` y
|
|
439
|
+
// la receta, cuenta en `extra` y es deriva. Solo la forma del userset: la
|
|
440
|
+
// F-05 del par del SUJETO no decide aquí (un userset que pasa la forma es
|
|
441
|
+
// `group#member`, declarado en toda config).
|
|
442
|
+
const subject = classifySubject(tuple, undefined);
|
|
443
|
+
if (subject.kind === 'userset-unsupported') {
|
|
444
|
+
destResidue.add(tuple);
|
|
445
|
+
usersetResidue.push({ side: 'destino', tuple: describeTuple(tuple), message: subject.message });
|
|
446
|
+
continue;
|
|
447
|
+
}
|
|
448
|
+
// Cierre 3 del lote B · 🟠 N9 (capa 1): la fila cuya RELACIÓN o TIPO el
|
|
449
|
+
// destino (`toConfig`) ya no declara — una relación retirada de la config con
|
|
450
|
+
// filas vivas (`#enumerateRows`/`#sweep` filtran por tipo, no por relación) o
|
|
451
|
+
// un driver con la config vieja — es la tercera fila que la API no admite:
|
|
452
|
+
// `unrelate` la rechaza por F-05, así que lleva la MISMA regla que las dos de
|
|
453
|
+
// arriba (nunca en `toDelete`, `pruned: false`, deriva, receta). La regla es
|
|
454
|
+
// por la FILA, no por el driver (N3): hasta el cierre 3 un driver viejo la
|
|
455
|
+
// borraba y el driver nuevo tumbaba la pasada a mitad con un stack crudo.
|
|
456
|
+
const undeclared = toConfig ? classifyDestinationRow(toConfig, tuple) : null;
|
|
457
|
+
if (undeclared !== null) {
|
|
458
|
+
destResidue.add(tuple);
|
|
459
|
+
undeclaredResidue.push({ tuple: describeTuple(tuple), message: undeclared });
|
|
328
460
|
continue;
|
|
329
461
|
}
|
|
330
462
|
destByKey.set(keyed.key, tuple);
|
|
@@ -342,9 +474,81 @@ function planPartition(partition, enumerated, destTuples, context) {
|
|
|
342
474
|
else
|
|
343
475
|
unchanged += 1;
|
|
344
476
|
}
|
|
345
|
-
const toDelete = destTuples.filter((tuple) => destInvalid.has(tuple)
|
|
477
|
+
const toDelete = destTuples.filter((tuple) => !destResidue.has(tuple) && !destInvalid.has(tuple) && !sourceByKey.has(tupleKey({ ...tuple, kind: 'allow' })));
|
|
346
478
|
const massDelete = prune && toDelete.length > 0 && sourceTuples.length === 0;
|
|
347
|
-
return {
|
|
479
|
+
return {
|
|
480
|
+
partition,
|
|
481
|
+
enumerated: enumerated.length,
|
|
482
|
+
toWrite,
|
|
483
|
+
toUpdate,
|
|
484
|
+
toDelete,
|
|
485
|
+
unchanged,
|
|
486
|
+
skipped,
|
|
487
|
+
modelDrift,
|
|
488
|
+
massDelete,
|
|
489
|
+
invalid,
|
|
490
|
+
usersetResidue,
|
|
491
|
+
undeclaredResidue,
|
|
492
|
+
destResidue: destResidue.size + destInvalid.size,
|
|
493
|
+
};
|
|
494
|
+
}
|
|
495
|
+
/**
|
|
496
|
+
* **F-05 del destino sobre una fila ENUMERADA del destino** (cierre 3 del lote B ·
|
|
497
|
+
* 🟠 N9, capa 1): la MISMA `assertRelationDeclared` que corre en la primera línea
|
|
498
|
+
* de `unrelate` de los dos drivers, aplicada en el plan para que `--dry-run` y la
|
|
499
|
+
* pasada real den los mismos números y la fila nunca llegue a un `unrelate` que
|
|
500
|
+
* la rechazaría. Devuelve el porqué (el mensaje de F-05: tipo o relación) o
|
|
501
|
+
* `null` si el destino la declara. Nunca lanza por un dato del store
|
|
502
|
+
* (invariante 5): cualquier otra excepción se propaga tal cual.
|
|
503
|
+
*/
|
|
504
|
+
function classifyDestinationRow(toConfig, tuple) {
|
|
505
|
+
try {
|
|
506
|
+
assertRelationDeclared(toConfig, tuple.object, tuple.relation);
|
|
507
|
+
return null;
|
|
508
|
+
}
|
|
509
|
+
catch (error) {
|
|
510
|
+
if (error instanceof RelationTypeUnknownError || error instanceof RelationUnknownError)
|
|
511
|
+
return error.message;
|
|
512
|
+
throw error;
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
/**
|
|
516
|
+
* **Los 422 de la FAMILIA de relaciones, clasificados por `code`** (cierre 3 del
|
|
517
|
+
* lote B · 🟠 N9, capa 2): lo que el bucle de poda absorbe cuando el driver del
|
|
518
|
+
* destino rechaza un `unrelate` que el plan dio por bueno — sin `toConfig` el plan
|
|
519
|
+
* no puede anticipar F-05, y un driver de terceros puede decir cualquiera de los
|
|
520
|
+
* cuatro—. Por `code` y `status`, no por clase: un driver de terceros lanza su
|
|
521
|
+
* propia clase con el mismo código. Fuera de esta tabla NADA se absorbe.
|
|
522
|
+
*/
|
|
523
|
+
const RELATION_422_REASONS = Object.freeze({
|
|
524
|
+
[RelationTypeUnknownError.code]: 'undeclared',
|
|
525
|
+
[RelationUnknownError.code]: 'undeclared',
|
|
526
|
+
[RelationUsersetUnsupportedError.code]: 'userset-unsupported',
|
|
527
|
+
[InvalidIdentityError.code]: 'invalid-identity',
|
|
528
|
+
});
|
|
529
|
+
/**
|
|
530
|
+
* Borra la tupla del destino; devuelve `null` si se borró (o ya no estaba) y el
|
|
531
|
+
* motivo + porqué si el DRIVER la rechazó con un 422 de la familia de relaciones
|
|
532
|
+
* (`RELATION_422_REASONS`): la pasada lo clasifica como residuo del destino con
|
|
533
|
+
* `pruned: false` y SIGUE con las demás filas (🟠 N9: nunca un throw a mitad de
|
|
534
|
+
* pasada por una fila que el reporte puede contar). Cualquier otro error —otro
|
|
535
|
+
* 422, un 503, un `Error`— se propaga tal cual: eso sí es el driver
|
|
536
|
+
* contradiciendo al plan por algo que la pasada no sabe contar.
|
|
537
|
+
*/
|
|
538
|
+
async function unrelateOrClassify(to, tuple) {
|
|
539
|
+
try {
|
|
540
|
+
await to.unrelate(tuple.subject, tuple.relation, tuple.object, tuple.partition);
|
|
541
|
+
return null;
|
|
542
|
+
}
|
|
543
|
+
catch (error) {
|
|
544
|
+
// Por `status` Y por `code` PROPIO de la tabla (`Object.hasOwn`, repaso del cierre 3 · ⚪ N13): un 422 con un
|
|
545
|
+
// `code` heredado del prototipo (`constructor`, `toString`, `__proto__`) no es de la familia y se propaga.
|
|
546
|
+
const code = String(error?.code);
|
|
547
|
+
const reason = error?.status === 422 && Object.hasOwn(RELATION_422_REASONS, code) ? RELATION_422_REASONS[code] : undefined;
|
|
548
|
+
if (reason === undefined)
|
|
549
|
+
throw error;
|
|
550
|
+
return { reason, message: String(error?.message ?? error) };
|
|
551
|
+
}
|
|
348
552
|
}
|
|
349
553
|
/** ¿El tipo de objeto cabe en el modelo fusionado del destino? (`group` es built-in: `hasType` lo incluye.) */
|
|
350
554
|
function declaredIn(config, objectType) {
|
|
@@ -353,7 +557,12 @@ function declaredIn(config, objectType) {
|
|
|
353
557
|
/**
|
|
354
558
|
* Escribe la tupla en el destino; `false` si el DRIVER la rechazó por F-05
|
|
355
559
|
* (tipo o relación no declarados: 422 `E_AUTHZ_RELATION_TYPE_UNKNOWN` /
|
|
356
|
-
* `E_AUTHZ_RELATION_UNKNOWN`). Cualquier otro error se propaga tal cual
|
|
560
|
+
* `E_AUTHZ_RELATION_UNKNOWN`). Cualquier otro error se propaga tal cual —
|
|
561
|
+
* **también `E_AUTHZ_RELATION_USERSET_UNSUPPORTED`** (cierre 1 del lote B,
|
|
562
|
+
* decisión 4 rechazada): esa clase ya no hereda de F-05 y aquí no se absorbe;
|
|
563
|
+
* el residuo de B3 se clasifica en el PLAN y nunca llega a este `relate`. Un
|
|
564
|
+
* driver que lo lanzara por una tupla que el plan dio por buena está diciendo
|
|
565
|
+
* otra cosa, y eso se propaga (R2-5: el plan clasifica, el driver no absorbe).
|
|
357
566
|
*/
|
|
358
567
|
async function relateOrSkip(to, tuple) {
|
|
359
568
|
try {
|
|
@@ -363,6 +572,8 @@ async function relateOrSkip(to, tuple) {
|
|
|
363
572
|
return true;
|
|
364
573
|
}
|
|
365
574
|
catch (error) {
|
|
575
|
+
if (error instanceof RelationUsersetUnsupportedError)
|
|
576
|
+
throw error;
|
|
366
577
|
if (error instanceof RelationTypeUnknownError || error instanceof RelationUnknownError)
|
|
367
578
|
return false;
|
|
368
579
|
throw error;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconcile.js","sourceRoot":"","sources":["../../../src/relations/reconcile.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"reconcile.js","sourceRoot":"","sources":["../../../src/relations/reconcile.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relations_config_store.d.ts","sourceRoot":"","sources":["../../src/relations_config_store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"relations_config_store.d.ts","sourceRoot":"","sources":["../../src/relations_config_store.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAA;AAMlG,MAAM,WAAW,2BAA2B;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAMD;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,mBAAmB,EACzB,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,eAAe,CAAC,CAc1B;AAED,kFAAkF;AAClF,wBAAsB,uBAAuB,CAC3C,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CA+BrC;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAGjC"}
|