@cartanova/qgrid-cli 1.7.3 → 1.8.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/bundle/dist/application/qgrid/qgrid.dispatcher.js +45 -32
- package/bundle/dist/application/qgrid/qgrid.frame.js +7 -22
- package/bundle/dist/application/qgrid/qgrid.types.js +10 -3
- package/bundle/dist/application/qgrid/token-subscriber.js +149 -0
- package/bundle/dist/application/qgrid/token-trigger-setup.js +69 -0
- package/bundle/dist/application/sonamu.generated.sso.js +1 -1
- package/bundle/dist/application/token/token.types.js +1 -1
- package/bundle/dist/i18n/sd.generated.js +2 -2
- package/bundle/dist/migrations/20260410171405_create__request_logs.js +1 -1
- package/bundle/dist/migrations/20260410171406_create__tokens.js +1 -1
- package/bundle/dist/migrations/20260411120624_alter_tokens_alter2.js +1 -1
- package/bundle/dist/migrations/20260415134649_alter_request_logs_alter1.js +1 -1
- package/bundle/dist/migrations/20260421223627_alter_request_logs_add1_alter1.js +1 -1
- package/bundle/dist/migrations/20260423180818_alter_request_logs_add1_alter1.js +1 -1
- package/bundle/dist/migrations/20260423182017_alter_request_logs_add2_drop1_alter1.js +1 -1
- package/bundle/dist/migrations/20260423183613_alter_request_logs_add1_alter1.js +1 -1
- package/bundle/dist/sonamu.config.js +22 -36
- package/bundle/dist/testing/setup-mocks.js +1 -1
- package/bundle/dist/utils/subset-loaders.js +1 -1
- package/bundle/src/application/qgrid/qgrid.dispatcher.ts +68 -32
- package/bundle/src/application/qgrid/qgrid.frame.ts +8 -25
- package/bundle/src/application/qgrid/qgrid.types.ts +9 -0
- package/bundle/src/application/qgrid/token-subscriber.ts +176 -0
- package/bundle/src/application/qgrid/token-trigger-setup.ts +80 -0
- package/bundle/src/application/request-log/request-log.entity.json +3 -1
- package/bundle/src/application/sonamu.generated.sso.ts +5 -5
- package/bundle/src/application/token/token.types.ts +1 -1
- package/bundle/src/i18n/sd.generated.ts +1 -1
- package/bundle/src/migrations/20260410171405_create__request_logs.ts +1 -1
- package/bundle/src/migrations/20260410171406_create__tokens.ts +1 -1
- package/bundle/src/migrations/20260411120624_alter_tokens_alter2.ts +1 -1
- package/bundle/src/migrations/20260415134649_alter_request_logs_alter1.ts +1 -1
- package/bundle/src/migrations/20260421223627_alter_request_logs_add1_alter1.ts +1 -1
- package/bundle/src/migrations/20260423180818_alter_request_logs_add1_alter1.ts +1 -1
- package/bundle/src/migrations/20260423182017_alter_request_logs_add2_drop1_alter1.ts +1 -1
- package/bundle/src/migrations/20260423183613_alter_request_logs_add1_alter1.ts +1 -1
- package/bundle/src/sonamu.config.ts +33 -39
- package/bundle/src/testing/setup-mocks.ts +1 -1
- package/bundle/src/typings/fastify.d.ts +1 -1
- package/bundle/src/typings/sonamu.d.ts +3 -2
- package/bundle/src/utils/subset-loaders.ts +1 -1
- package/bundle/web-dist/client/assets/{index-DUmwX7rR.js → index-DzEE3oyG.js} +3 -3
- package/bundle/web-dist/client/assets/{logs-ci_3vzTT.js → logs-Bn56eAAL.js} +1 -1
- package/bundle/web-dist/client/assets/{routes-Ch5LFN0K.js → routes-BCEPwpzm.js} +1 -1
- package/bundle/web-dist/client/assets/{sd.generated-CIOZewtL.js → sd.generated-C9WnMJm4.js} +1 -1
- package/bundle/web-dist/client/assets/{services.generated-BrB-RELO.js → services.generated-CWN1-bYW.js} +1 -1
- package/bundle/web-dist/client/assets/{show-D3N15Krg.js → show-Ch7LEdBK.js} +1 -1
- package/bundle/web-dist/client/assets/tokens-DPvuQIs2.js +1 -0
- package/bundle/web-dist/client/index.html +2 -2
- package/bundle/web-dist/server/assets/{copy-CKCGxwII.js → copy-SIUvcEcZ.js} +1 -1
- package/bundle/web-dist/server/assets/{lazyRouteComponent-BlvOfJIF.js → lazyRouteComponent-CcyhCAoL.js} +2 -2
- package/bundle/web-dist/server/assets/{logs-CDacVwTQ.js → logs-D1ezT2IS.js} +3 -3
- package/bundle/web-dist/server/assets/{routes-BLm-zF86.js → routes-CtTFrsIz.js} +2 -2
- package/bundle/web-dist/server/assets/{sd.generated-CIg_jf8e.js → sd.generated-CkiEsOwK.js} +1 -1
- package/bundle/web-dist/server/assets/{services.generated-wCfUuY7Z.js → services.generated-D4asAlWb.js} +1 -1
- package/bundle/web-dist/server/assets/{shim-Dq_Izqnc.js → shim-BYpcQGN1.js} +1 -1
- package/bundle/web-dist/server/assets/{show-DjJyZunM.js → show-Bz0If-L7.js} +4 -4
- package/bundle/web-dist/server/assets/{tokens-rQIIgqMo.js → tokens-BBBfLC7N.js} +11 -4
- package/bundle/web-dist/server/entry-server.generated.js +7 -7
- package/package.json +1 -1
- package/bundle/web-dist/client/assets/tokens-BAlIaa6X.js +0 -1
|
@@ -5,23 +5,27 @@ import { getPrettyFormatter } from "@logtape/pretty";
|
|
|
5
5
|
import dotenv from "dotenv";
|
|
6
6
|
import { CachePresets, defineConfig } from "sonamu";
|
|
7
7
|
import { drivers as cacheDrivers, store } from "sonamu/cache";
|
|
8
|
-
import { drivers } from "sonamu/storage";
|
|
9
8
|
|
|
10
9
|
dotenv.config({ path: path.join(import.meta.dirname, "../.env") });
|
|
11
10
|
|
|
12
11
|
const host = process.env.HOST ?? "localhost";
|
|
13
12
|
const port = Number(process.env.PORT ?? 44900);
|
|
14
13
|
|
|
14
|
+
const connConfig = {
|
|
15
|
+
host: process.env.QGRID_DB_HOST ?? "localhost",
|
|
16
|
+
port: Number(process.env.QGRID_DB_PORT ?? 44901),
|
|
17
|
+
user: process.env.QGRID_DB_USER ?? "postgres",
|
|
18
|
+
password: process.env.QGRID_DB_PASSWORD ?? "postgres",
|
|
19
|
+
database: process.env.QGRID_DB_NAME ?? "qgrid",
|
|
20
|
+
};
|
|
21
|
+
|
|
15
22
|
export default defineConfig({
|
|
16
23
|
projectName: process.env.PROJECT_NAME ?? "SonamuProject",
|
|
17
24
|
database: {
|
|
18
25
|
name: process.env.QGRID_DB_NAME ?? "qgrid",
|
|
19
26
|
defaultOptions: {
|
|
20
27
|
connection: {
|
|
21
|
-
|
|
22
|
-
port: Number(process.env.QGRID_DB_PORT ?? 44901),
|
|
23
|
-
user: process.env.QGRID_DB_USER ?? "postgres",
|
|
24
|
-
password: process.env.QGRID_DB_PASSWORD ?? "postgres",
|
|
28
|
+
...connConfig,
|
|
25
29
|
keepAlive: true,
|
|
26
30
|
keepAliveInitialDelayMillis: 10000,
|
|
27
31
|
},
|
|
@@ -164,31 +168,6 @@ export default defineConfig({
|
|
|
164
168
|
}
|
|
165
169
|
},
|
|
166
170
|
},
|
|
167
|
-
storage: {
|
|
168
|
-
drivers: {
|
|
169
|
-
fs: drivers.fs({
|
|
170
|
-
location: path.join(import.meta.dirname, "/../public/uploaded"),
|
|
171
|
-
visibility: "public",
|
|
172
|
-
urlBuilder: {
|
|
173
|
-
async generateURL(key) {
|
|
174
|
-
return `/api/public/uploaded/${key}`;
|
|
175
|
-
},
|
|
176
|
-
async generateSignedURL(key) {
|
|
177
|
-
return `/api/public/uploaded/${key}`;
|
|
178
|
-
},
|
|
179
|
-
},
|
|
180
|
-
}),
|
|
181
|
-
s3: drivers.s3({
|
|
182
|
-
credentials: {
|
|
183
|
-
accessKeyId: process.env.AWS_ACCESS_KEY_ID ?? "",
|
|
184
|
-
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY ?? "",
|
|
185
|
-
},
|
|
186
|
-
region: process.env.S3_REGION ?? "ap-northeast-2",
|
|
187
|
-
bucket: process.env.S3_BUCKET ?? "sonamu_default_bucket",
|
|
188
|
-
visibility: "private",
|
|
189
|
-
}),
|
|
190
|
-
},
|
|
191
|
-
},
|
|
192
171
|
cache: {
|
|
193
172
|
default: "main",
|
|
194
173
|
stores: {
|
|
@@ -216,19 +195,34 @@ export default defineConfig({
|
|
|
216
195
|
}
|
|
217
196
|
|
|
218
197
|
const { QgridDispatcher } = await import("./application/qgrid/qgrid.dispatcher");
|
|
198
|
+
const { ensureTokensTrigger } = await import("./application/qgrid/token-trigger-setup");
|
|
199
|
+
const { TokenSubscriber } = await import("./application/qgrid/token-subscriber");
|
|
200
|
+
|
|
201
|
+
let triggerReady = true;
|
|
219
202
|
try {
|
|
220
|
-
|
|
221
|
-
const entries = await TokenModel.findActive("A");
|
|
222
|
-
for (const e of entries) QgridDispatcher.addToken(e.token, e.name);
|
|
223
|
-
console.log(
|
|
224
|
-
`🌲 Server listening on http://${host}:${port} (${QgridDispatcher.tokens.size} tokens loaded)`,
|
|
225
|
-
);
|
|
203
|
+
await ensureTokensTrigger(connConfig);
|
|
226
204
|
} catch (e) {
|
|
227
|
-
|
|
228
|
-
console.
|
|
205
|
+
triggerReady = false;
|
|
206
|
+
console.warn(
|
|
207
|
+
`⚠ Token trigger setup failed: ${(e as Error).message}. Continuing with LISTEN/reconcile.`,
|
|
208
|
+
);
|
|
229
209
|
}
|
|
210
|
+
|
|
211
|
+
const subscriber = new TokenSubscriber(connConfig, QgridDispatcher);
|
|
212
|
+
QgridDispatcher.subscriber = subscriber;
|
|
213
|
+
|
|
214
|
+
const started = await subscriber.start();
|
|
215
|
+
const tokenInfo = started
|
|
216
|
+
? `${QgridDispatcher.tokens.size} active tokens, LISTEN active`
|
|
217
|
+
: `degraded — token sync retry scheduled`;
|
|
218
|
+
const triggerInfo = triggerReady ? "" : ", trigger setup failed";
|
|
219
|
+
console.log(`🌲 Server listening on http://${host}:${port} (${tokenInfo}${triggerInfo})`);
|
|
230
220
|
},
|
|
231
|
-
onShutdown: () => {
|
|
221
|
+
onShutdown: async () => {
|
|
222
|
+
const { QgridDispatcher } = await import("./application/qgrid/qgrid.dispatcher");
|
|
223
|
+
if (QgridDispatcher.subscriber) {
|
|
224
|
+
await QgridDispatcher.subscriber.stop();
|
|
225
|
+
}
|
|
232
226
|
console.log("graceful shutdown");
|
|
233
227
|
},
|
|
234
228
|
onError: (error, _request, reply) => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/** biome-ignore-all lint/correctness/noUnusedImports: d.ts */
|
|
2
2
|
import type fastify from "fastify";
|
|
3
3
|
|
|
4
|
-
import type
|
|
4
|
+
import { type UserSubsetSS } from "../application/sonamu.generated";
|
|
5
5
|
|
|
6
6
|
declare module "fastify" {
|
|
7
7
|
export interface PassportUser extends UserSubsetSS {}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
/** biome-ignore-all lint/correctness/noUnusedImports: d.ts */
|
|
2
|
-
|
|
3
|
-
import {} from "sonamu";
|
|
2
|
+
/* oxlint-disable no-empty-imports */
|
|
4
3
|
|
|
5
4
|
declare module "sonamu" {
|
|
6
5
|
export interface ContextExtend {
|
|
@@ -15,3 +14,5 @@ declare module "sonamu" {
|
|
|
15
14
|
// CustomGuardKey: true
|
|
16
15
|
}
|
|
17
16
|
}
|
|
17
|
+
|
|
18
|
+
export {};
|