Update HttpClient to support API key usage for both database and pubsub operations; enhance request header logging to include pubsub paths for better debugging.

This commit is contained in:
anonpenguin23 2025-10-29 14:17:26 +02:00
parent a97fb21200
commit 6f5be86a02

View File

@ -54,12 +54,13 @@ export class HttpClient {
private getAuthHeaders(path: string): Record<string, string> { private getAuthHeaders(path: string): Record<string, string> {
const headers: Record<string, string> = {}; const headers: Record<string, string> = {};
// For database operations, ONLY use API key to avoid JWT user context // For database and pubsub operations, ONLY use API key to avoid JWT user context
// interfering with namespace-level authorization // interfering with namespace-level authorization
const isDbOperation = path.includes("/v1/rqlite/"); const isDbOperation = path.includes("/v1/rqlite/");
const isPubSubOperation = path.includes("/v1/pubsub/");
if (isDbOperation) { if (isDbOperation || isPubSubOperation) {
// For database operations: use only API key (preferred for namespace operations) // For database/pubsub operations: use only API key (preferred for namespace operations)
if (this.apiKey) { if (this.apiKey) {
headers["X-API-Key"] = this.apiKey; headers["X-API-Key"] = this.apiKey;
} else if (this.jwt) { } else if (this.jwt) {
@ -114,7 +115,8 @@ export class HttpClient {
typeof console !== "undefined" && typeof console !== "undefined" &&
(path.includes("/db/") || (path.includes("/db/") ||
path.includes("/query") || path.includes("/query") ||
path.includes("/auth/")) path.includes("/auth/") ||
path.includes("/pubsub/"))
) { ) {
console.log("[HttpClient] Request headers for", path, { console.log("[HttpClient] Request headers for", path, {
hasAuth: !!headers["Authorization"], hasAuth: !!headers["Authorization"],