pipework 0.258.0 → 0.259.0
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/CHANGELOG.md +8 -0
- package/dist/cli/commands/alerts.js +2 -2
- package/dist/cli/commands/alerts.js.map +1 -1
- package/dist/cli/commands/db.js +1 -1
- package/dist/cli/commands/db.js.map +1 -1
- package/dist/core/validation/connectivity.d.ts.map +1 -1
- package/dist/core/validation/connectivity.js +1 -0
- package/dist/core/validation/connectivity.js.map +1 -1
- package/dist/core/validation/queue-tables.d.ts.map +1 -1
- package/dist/core/validation/queue-tables.js +4 -3
- package/dist/core/validation/queue-tables.js.map +1 -1
- package/dist/core/validation/rls-role.d.ts.map +1 -1
- package/dist/core/validation/rls-role.js +1 -0
- package/dist/core/validation/rls-role.js.map +1 -1
- package/dist/data/db/query-watch.js +1 -1
- package/dist/data/db/query-watch.js.map +1 -1
- package/dist/data/db/reservation.d.ts.map +1 -1
- package/dist/data/db/reservation.js +1 -0
- package/dist/data/db/reservation.js.map +1 -1
- package/dist/infra/alerts/handle.d.ts +3 -1
- package/dist/infra/alerts/handle.d.ts.map +1 -1
- package/dist/infra/alerts/handle.js +28 -3
- package/dist/infra/alerts/handle.js.map +1 -1
- package/dist/test/reap.js +1 -1
- package/dist/test/reap.js.map +1 -1
- package/dist/test/reset.js +1 -1
- package/dist/test/reset.js.map +1 -1
- package/dist/test/setup.d.ts.map +1 -1
- package/dist/test/setup.js +6 -5
- package/dist/test/setup.js.map +1 -1
- package/dist/test/watch.js +3 -2
- package/dist/test/watch.js.map +1 -1
- package/package.json +1 -1
- package/src/cli/commands/alerts.ts +2 -2
- package/src/cli/commands/db.ts +1 -1
- package/src/core/validation/connectivity.ts +1 -0
- package/src/core/validation/queue-tables.ts +4 -3
- package/src/core/validation/rls-role.ts +1 -0
- package/src/data/db/query-watch.ts +1 -1
- package/src/data/db/reservation.ts +1 -0
- package/src/infra/alerts/handle.ts +28 -4
- package/src/test/reap.ts +1 -1
- package/src/test/reset.ts +1 -1
- package/src/test/setup.ts +6 -5
- package/src/test/watch.ts +3 -2
package/src/test/setup.ts
CHANGED
|
@@ -238,10 +238,10 @@ async function runSetup(instance: Manifold, tracker: PhaseTracker): Promise<Map<
|
|
|
238
238
|
async function prepareRun(adminUrl: string, liveTemplates: ReadonlySet<string>, tracker: PhaseTracker): Promise<void> {
|
|
239
239
|
runAdminUrl = adminUrl
|
|
240
240
|
if (adminClient === null) {
|
|
241
|
-
adminClient = postgres(adminUrl, { max: 1, onnotice: () => {} })
|
|
241
|
+
adminClient = postgres(adminUrl, { max: 1, fetch_types: false, onnotice: () => {} })
|
|
242
242
|
}
|
|
243
243
|
if (lockClient === null) {
|
|
244
|
-
lockClient = postgres(adminUrl, { max: 1, idle_timeout: 0, max_lifetime: 0, onnotice: () => {} })
|
|
244
|
+
lockClient = postgres(adminUrl, { max: 1, fetch_types: false, idle_timeout: 0, max_lifetime: 0, onnotice: () => {} })
|
|
245
245
|
await lockClient`SELECT pg_advisory_lock(${runLockKey(runNonce).toString()}::bigint)`
|
|
246
246
|
}
|
|
247
247
|
armWorkerShutdown()
|
|
@@ -416,6 +416,7 @@ async function templateIsReady(plan: TemplatePlan): Promise<boolean> {
|
|
|
416
416
|
async function readTemplateMarker(plan: TemplatePlan): Promise<boolean> {
|
|
417
417
|
const client = postgres(siblingUrl(plan.dbConfig, plan.templateDb), {
|
|
418
418
|
max: 1,
|
|
419
|
+
fetch_types: false,
|
|
419
420
|
onnotice: () => {},
|
|
420
421
|
})
|
|
421
422
|
try {
|
|
@@ -782,7 +783,7 @@ async function provisionTestSystemPolicy(
|
|
|
782
783
|
beat: (detail: string) => void,
|
|
783
784
|
): Promise<void> {
|
|
784
785
|
for (const url of migrateUrl === undefined ? [templateUrl] : [templateUrl, migrateUrl]) {
|
|
785
|
-
const client = postgres(url, { max: 1, onnotice: () => {} })
|
|
786
|
+
const client = postgres(url, { max: 1, fetch_types: false, onnotice: () => {} })
|
|
786
787
|
try {
|
|
787
788
|
const tables = await client<{ ident: string; name: string }[]>`
|
|
788
789
|
SELECT c.oid::regclass::text AS ident, c.relname AS name
|
|
@@ -1060,7 +1061,7 @@ async function provisionTemplateRole(
|
|
|
1060
1061
|
`END $$`,
|
|
1061
1062
|
)))
|
|
1062
1063
|
|
|
1063
|
-
const templateClient = postgres(templateUrl, { max: 1, onnotice: () => {} })
|
|
1064
|
+
const templateClient = postgres(templateUrl, { max: 1, fetch_types: false, onnotice: () => {} })
|
|
1064
1065
|
const templateDb = drizzle(templateClient)
|
|
1065
1066
|
|
|
1066
1067
|
await templateDb.execute(sql.raw(`GRANT USAGE ON SCHEMA public TO ${roleIdent}`))
|
|
@@ -1089,7 +1090,7 @@ async function provisionTemplateRole(
|
|
|
1089
1090
|
// grantor grants what it owns and nothing else.
|
|
1090
1091
|
await grantOwnedObjects(templateClient, roleIdent, APP_ROLE_GRANTS, beat)
|
|
1091
1092
|
|
|
1092
|
-
const migrateClient = postgres(migrateUrl, { max: 1, onnotice: () => {} })
|
|
1093
|
+
const migrateClient = postgres(migrateUrl, { max: 1, fetch_types: false, onnotice: () => {} })
|
|
1093
1094
|
try {
|
|
1094
1095
|
await grantOwnedObjects(migrateClient, roleIdent, APP_ROLE_GRANTS, beat)
|
|
1095
1096
|
// The test login is the role tests connect as, and it no longer owns what
|
package/src/test/watch.ts
CHANGED
|
@@ -74,7 +74,8 @@ async function sampleLine(target: TestWatchTarget): Promise<string> {
|
|
|
74
74
|
}
|
|
75
75
|
|
|
76
76
|
async function backends(adminUrl: string, databases: string[]): Promise<string[]> {
|
|
77
|
-
|
|
77
|
+
// A probe ended with a destroy timeout must not have an un-awaited type fetch in flight.
|
|
78
|
+
const client = postgres(adminUrl, { max: 1, onnotice: () => {}, connect_timeout: 5, fetch_types: false })
|
|
78
79
|
try {
|
|
79
80
|
const rows = await Promise.race([
|
|
80
81
|
client<BackendRow[]>`
|
|
@@ -82,7 +83,7 @@ async function backends(adminUrl: string, databases: string[]): Promise<string[]
|
|
|
82
83
|
round(extract(epoch FROM (now() - state_change))::numeric, 1)::text AS state_s,
|
|
83
84
|
pg_blocking_pids(pid)::text AS blocked_by, query
|
|
84
85
|
FROM pg_stat_activity
|
|
85
|
-
WHERE datname
|
|
86
|
+
WHERE datname IN (SELECT jsonb_array_elements_text(${client.json(databases)})) AND pid <> pg_backend_pid()
|
|
86
87
|
ORDER BY datname, pid`,
|
|
87
88
|
new Promise<never>((_, reject) => {
|
|
88
89
|
setTimeout(() => reject(new Error('pg_stat_activity query timed out')), WATCH_QUERY_TIMEOUT_MS).unref()
|