mirror of
https://github.com/hanzoai/insights.git
synced 2026-10-30 16:15:31 +00:00
/complete/oidc/ answered 500 with
column insights_organizationdomain.id_jag_issuer_url does not exist
The OIDC callback resolves an email domain to an organization, so it selects
OrganizationDomain rows; Django puts every local field in that SELECT and four
of them had no column. Every sign-in died there, which is why the site served
its signed-out pages and looked up from outside.
Same cause as 0007: the fields arrived on the models during an upstream rebase
and no migration came with them. Not reachable by running the backlog either --
`insights` has no pending migrations, and grepping every migration in the tree
for `id_jag_issuer_url` or `IdentityProviderConfig` returns nothing.
0008 is written by hand to the four columns and two tables actually missing.
`makemigrations` is the wrong tool here: the database still carries ~900
pre-squash migration records the squashed tree does not contain, so Django reads
the difference as deletions and offers 179 RemoveField and 72 DeleteModel. That
would drop live tables.
Alongside it, the plugin image could never build. Dockerfile.node copied six
common/ packages but not replay-headless, which nodejs declares `workspace:*`
and imports for the replay rasterizer. One uncopied package produced 29 of the
94 type errors -- including the confusing ones about `active` and `ts_to_s` not
existing, which were just a type degrading after its module failed to resolve.
The rest were an incomplete rename, and two were hiding real defects: a renamed
accumulator collided with an inner loop variable so Object.keys(flows).length
was always 0 and no parked workflow ever woke, and `clickhouse_settings` had
been renamed although that key belongs to the client library's wire API.
33 lines
2.0 KiB
JSON
33 lines
2.0 KiB
JSON
{
|
|
"name": "@hanzo/replay-anonymizer",
|
|
"version": "0.0.1",
|
|
"description": "Node bindings for the session-replay anonymizer",
|
|
"main": "dist/index.js",
|
|
"//types": "Types come from the source, runtime from the build, the same way @hanzo/replay-headless does it. This package is workspace-only, so src is always on disk, and a consumer typechecks without first running the cargo+tsc build that produces dist. Pointing at dist/index.d.ts instead makes every importer unresolvable on a fresh checkout.",
|
|
"types": "src/index.ts",
|
|
"scripts": {
|
|
"test": "cargo test -p insights-replay-anonymizer -p replay-anonymizer-node",
|
|
"build": "pnpm run build:cargo --release && pnpm run build:move-lib && pnpm run build:typescript",
|
|
"build:dev": "pnpm run build:cargo && pnpm run build:move-lib:dev && pnpm run build:typescript",
|
|
"build:move-lib": "TARGET_DIR=${CARGO_TARGET_DIR:-../target} && cp \"$TARGET_DIR/release/libreplay_anonymizer_node.dylib\" index.node 2>/dev/null || cp \"$TARGET_DIR/release/libreplay_anonymizer_node.so\" index.node || (echo \"No valid library file found in $TARGET_DIR/release/\" && exit 1)",
|
|
"build:move-lib:dev": "TARGET_DIR=${CARGO_TARGET_DIR:-../target} && cp \"$TARGET_DIR/debug/libreplay_anonymizer_node.dylib\" index.node 2>/dev/null || cp \"$TARGET_DIR/debug/libreplay_anonymizer_node.so\" index.node || (echo \"No valid library file found in $TARGET_DIR/debug/\" && exit 1)",
|
|
"build:cargo": "cargo build -p replay-anonymizer-node --message-format=json > cargo.log",
|
|
"build:cargo:debug": "pnpm run build:cargo",
|
|
"build:typescript": "tsc",
|
|
"typecheck": "tsc --noEmit",
|
|
"clean": "rm -rf index.node dist",
|
|
"package": "NODE_ENV=development pnpm --filter=@hanzo/replay-anonymizer run build"
|
|
},
|
|
"author": "",
|
|
"license": "MIT",
|
|
"devDependencies": {
|
|
"@types/node": "22.15.17",
|
|
"typescript": "6.0.3",
|
|
"undici-types": "^7.3.0"
|
|
},
|
|
"files": [
|
|
"dist",
|
|
"index.node"
|
|
]
|
|
}
|