feat:lineage compat, nessa made more similar
This commit is contained in:
22
src/routes/api/lineage/offline_secret.ts
Normal file
22
src/routes/api/lineage/offline_secret.ts
Normal file
@@ -0,0 +1,22 @@
|
||||
// Plain-text route for the Lineage offline secret.
|
||||
//
|
||||
// `misc.offlineSecret` is a tRPC `.query()` returning `{ secret: "…" }`. But
|
||||
// the Lineage client's `IAPStore.fetchOfflineSecret` does
|
||||
// `await response.text()` and uses the raw string directly as the decryption
|
||||
// key. trpc-openapi always JSON-encodes responses, so exposing it via the openapi
|
||||
// shim would yield `'{"secret":"…"}'` as text and break decryption.
|
||||
//
|
||||
// This dedicated route returns the secret verbatim as `text/plain`, matching
|
||||
// exactly what the legacy endpoint returned. Auth: none (the legacy endpoint
|
||||
// had none either — the secret is a server-side decryption key shared to all
|
||||
// clients; it rotates with `LINEAGE_OFFLINE_SERIALIZATION_SECRET`).
|
||||
|
||||
import type { APIEvent } from "@solidjs/start/server";
|
||||
import { env } from "~/env/server";
|
||||
|
||||
export const GET = (event: APIEvent) => {
|
||||
return new Response(env.LINEAGE_OFFLINE_SERIALIZATION_SECRET, {
|
||||
status: 200,
|
||||
headers: { "content-type": "text/plain; charset=utf-8" }
|
||||
});
|
||||
};
|
||||
Reference in New Issue
Block a user