Skip to content

Commit

Permalink
Add support for EdgeKV access tokens using reference
Browse files Browse the repository at this point in the history
  • Loading branch information
paul-bartlett committed Apr 2, 2024
1 parent 3aca07a commit d6256ce
Showing 1 changed file with 11 additions and 5 deletions.
16 changes: 11 additions & 5 deletions edgekv/lib/edgekv.js
Original file line number Diff line number Diff line change
Expand Up @@ -122,15 +122,21 @@ export class EdgeKV {
}
}

getNamespaceToken(namespace) {
getNamespaceTokenHeader(namespace) {
if (this.#token_override) {
return this.#token_override;
}
let name = "namespace-" + namespace;
if (!(name in edgekv_access_tokens)) {
throw "MISSING ACCESS TOKEN. No EdgeKV Access Token defined for namespace '" + namespace + "'.";
}
return edgekv_access_tokens[name]["value"];
if ("value" in edgekv_access_tokens[name]) {
return { 'X-Akamai-EdgeDB-Auth': [edgekv_access_tokens[name]["value"]]};
} else if ("reference" in edgekv_access_tokens[name]) {
return { 'X-Akamai-EdgeDB-Auth-Ref': [edgekv_access_tokens[name]["reference"]]};
} else {
throw "MISSING ACCESS TOKEN. No EdgeKV Access Token value or reference defined for namespace '" + namespace + "'.";
}
}

addTimeout(options, timeout) {
Expand Down Expand Up @@ -176,7 +182,7 @@ export class EdgeKV {
return httpRequest(this.addSandboxId(uri), this.addTimeout({
method: "PUT",
body: typeof value === "object" ? JSON.stringify(value) : value,
headers: { "X-Akamai-EdgeDB-Auth": [this.getNamespaceToken(namespace)] }
headers: { ...this.getNamespaceTokenHeader(namespace) }
}, timeout));
}

Expand Down Expand Up @@ -272,7 +278,7 @@ export class EdgeKV {
let uri = this.#edgekv_uri + "/api/v1/namespaces/" + namespace + "/groups/" + group + "/items/" + item;
return httpRequest(this.addSandboxId(uri), this.addTimeout({
method: "GET",
headers: { "X-Akamai-EdgeDB-Auth": [this.getNamespaceToken(namespace)] }
headers: { ...this.getNamespaceTokenHeader(namespace) }
}, timeout));
}

Expand Down Expand Up @@ -332,7 +338,7 @@ export class EdgeKV {
let uri = this.#edgekv_uri + "/api/v1/namespaces/" + namespace + "/groups/" + group + "/items/" + item;
return httpRequest(this.addSandboxId(uri), this.addTimeout({
method: "DELETE",
headers: { "X-Akamai-EdgeDB-Auth": [this.getNamespaceToken(namespace)] }
headers: { ...this.getNamespaceTokenHeader(namespace) }
}, timeout));
}

Expand Down

0 comments on commit d6256ce

Please sign in to comment.