feat: 下游 API 密钥管理 (#103)
* feat: downstream API key usage + proxy log attribution * chore(schema): regenerate generated artifacts * test: keep migration replay + platform detection tests stable * feat: complete downstream api key management validation * refactor: move downstream keys into console nav * feat: upgrade downstream keys management console * feat: harden downstream key management flows * test: cover downstream key policy guards * feat: add downstream key grouping and tags * feat: polish downstream key search and log metadata * test: fix sqlite migration bootstrap coverage * perf: isolate vchart bundle loading * fix: align downstream key drawer metrics --------- Co-authored-by: DeliciousBuding <DeliciousBuding@users.noreply.github.com>
This commit is contained in:
@@ -7,19 +7,34 @@ async function withHttpServer(
|
||||
handler: (req: IncomingMessage, res: ServerResponse) => void,
|
||||
run: (baseUrl: string) => Promise<void>,
|
||||
) {
|
||||
const server = createServer(handler);
|
||||
await new Promise<void>((resolve) => {
|
||||
server.listen(0, '127.0.0.1', () => resolve());
|
||||
});
|
||||
const { port } = server.address() as AddressInfo;
|
||||
const baseUrl = `http://127.0.0.1:${port}`;
|
||||
try {
|
||||
await run(baseUrl);
|
||||
} finally {
|
||||
await new Promise<void>((resolve, reject) => {
|
||||
server.close((err?: Error) => (err ? reject(err) : resolve()));
|
||||
// Avoid flakiness: CPA uses port 8317 by convention, and our platform detection
|
||||
// includes a fast-path for localhost:8317. Random ephemeral ports can collide.
|
||||
for (let attempt = 0; attempt < 5; attempt += 1) {
|
||||
const server = createServer(handler);
|
||||
await new Promise<void>((resolve) => {
|
||||
server.listen(0, '127.0.0.1', () => resolve());
|
||||
});
|
||||
|
||||
const { port } = server.address() as AddressInfo;
|
||||
if (port === 8317) {
|
||||
await new Promise<void>((resolve, reject) => {
|
||||
server.close((err?: Error) => (err ? reject(err) : resolve()));
|
||||
});
|
||||
continue;
|
||||
}
|
||||
|
||||
const baseUrl = `http://127.0.0.1:${port}`;
|
||||
try {
|
||||
await run(baseUrl);
|
||||
return;
|
||||
} finally {
|
||||
await new Promise<void>((resolve, reject) => {
|
||||
server.close((err?: Error) => (err ? reject(err) : resolve()));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
throw new Error('withHttpServer: unable to allocate a test port that avoids 8317');
|
||||
}
|
||||
|
||||
describe('getAdapter platform aliases', () => {
|
||||
|
||||
Reference in New Issue
Block a user