Skip to content

Commit 0f839cf

Browse files
authored
feat: Akamai SDK example, rollup config, edgeKV logic (#128)
This PR includes the changes for releasing the initial version of the SDK (alpha version). We have decided to create two different SDKs. One for using the EdgeKV feature store and one allowing the user send a specific feature store they would like to use. We're doing this because Akamai is expecting a file called `edgekv_token.js` but that file won't exists if the user decides to specify their feature store. To avoid trying to dynamically load the `edgekv_token.js` file, we have decided to split the SDK into two different packages. Akamai Updates: - Added logic for retrieving flag data from EdgeKV - Added tests for the Akamai classes - Added rollup - Added example
2 parents 77e83b1 + 62d0ddb commit 0f839cf

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

84 files changed

+2755
-450
lines changed

.github/workflows/akamai.yml renamed to .github/workflows/akamai-base.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: sdk/akamai
1+
name: sdk/akamai-base
22

33
on:
44
push:
@@ -20,5 +20,5 @@ jobs:
2020
name: Shared CI Steps
2121
uses: ./actions/ci
2222
with:
23-
workspace_name: '@launchdarkly/akamai-edgeworker-sdk'
24-
workspace_path: packages/sdk/akamai
23+
workspace_name: '@launchdarkly/akamai-server-base-sdk'
24+
workspace_path: packages/sdk/akamai-base
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
name: sdk/akamai-edgekv
2+
3+
on:
4+
push:
5+
branches: [main]
6+
paths-ignore:
7+
- '**.md' #Do not need to run CI for markdown changes.
8+
pull_request:
9+
branches: [main]
10+
paths-ignore:
11+
- '**.md'
12+
13+
jobs:
14+
build-test-akamai-edgekv:
15+
runs-on: ubuntu-latest
16+
steps:
17+
- uses: actions/checkout@v3
18+
- uses: actions/setup-node@v3
19+
- id: shared
20+
name: Shared CI Steps
21+
uses: ./actions/ci
22+
with:
23+
workspace_name: '@launchdarkly/akamai-server-edgekv-sdk'
24+
workspace_path: packages/sdk/akamai-edgekv
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: shared/akamai-edgeworker-sdk
2+
3+
on:
4+
push:
5+
branches: [main]
6+
paths-ignore:
7+
- '**.md' #Do not need to run CI for markdown changes.
8+
pull_request:
9+
branches: [main]
10+
paths-ignore:
11+
- '**.md'
12+
13+
jobs:
14+
build-test-akamai-edgeworker-sdk:
15+
runs-on: ubuntu-latest
16+
steps:
17+
- uses: actions/checkout@v3
18+
- uses: actions/setup-node@v3
19+
with:
20+
node-version: 16
21+
registry-url: 'https://registry.npmjs.org'
22+
- id: shared
23+
name: Shared CI Steps
24+
uses: ./actions/ci
25+
with:
26+
workspace_name: '@launchdarkly/akamai-edgeworker-sdk-common'
27+
workspace_path: packages/shared/akamai-edgeworker-sdk

.github/workflows/manual-publish-docs.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,12 @@ on:
1010
- packages/shared/common
1111
- packages/shared/sdk-server
1212
- packages/shared/sdk-server-edge
13+
- packages/shared/akamai-edgeworker-sdk
1314
- packages/sdk/cloudflare
1415
- packages/sdk/server-node
1516
- packages/sdk/vercel
16-
- packages/sdk/akamai
17+
- packages/sdk/akamai-base
18+
- packages/sdk/akamai-edgekv
1719
name: Publish Documentation
1820
jobs:
1921
build-publish:

.github/workflows/manual-publish.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,12 @@ on:
1111
- packages/shared/common
1212
- packages/shared/sdk-server
1313
- packages/shared/sdk-server-edge
14+
- packages/shared/akamai-edgeworker-sdk
1415
- packages/sdk/cloudflare
1516
- packages/sdk/server-node
1617
- packages/sdk/vercel
17-
- packages/sdk/akamai
18+
- packages/sdk/akamai-base
19+
- packages/sdk/akamai-edgekv
1820
prerelease:
1921
description: 'Is this a prerelease. If so, then the latest tag will not be updated in npm.'
2022
type: boolean

.github/workflows/release-please.yml

Lines changed: 48 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,12 @@ jobs:
1111
package-common-released: ${{ steps.release.outputs['packages/shared/common--release_created'] }}
1212
package-sdk-server-released: ${{ steps.release.outputs['packages/shared/sdk-server--release_created'] }}
1313
package-sdk-server-edge-released: ${{ steps.release.outputs['packages/shared/sdk-server-edge--release_created'] }}
14+
package-akamai-edgeworker-sdk-released: ${{ steps.release.outputs['packages/shared/akamai-edgeworker-sdk--release_created'] }}
1415
package-cloudflare-released: ${{ steps.release.outputs['packages/sdk/cloudflare--release_created'] }}
1516
package-server-node-released: ${{ steps.release.outputs['packages/sdk/server-node--release_created'] }}
1617
package-vercel-released: ${{ steps.release.outputs['packages/sdk/vercel--release_created'] }}
17-
package-akamai-released: ${{ steps.release.outputs['packages/sdk/akamai--release_created'] }}
18+
package-akamai-base-released: ${{ steps.release.outputs['packages/sdk/akamai-base--release_created'] }}
19+
package-akamai-edgekv-released: ${{ steps.release.outputs['packages/sdk/akamai-edgekv--release_created'] }}
1820
steps:
1921
- uses: google-github-actions/release-please-action@v3
2022
id: release
@@ -83,6 +85,26 @@ jobs:
8385
workspace_path: packages/shared/sdk-server-edge
8486
aws_assume_role: ${{ vars.AWS_ROLE_ARN }}
8587

88+
release-akamai-edgeworker-sdk:
89+
runs-on: ubuntu-latest
90+
needs: ['release-please']
91+
permissions:
92+
id-token: write
93+
contents: write
94+
if: ${{ needs.release-please.outputs.package-akamai-edgeworker-sdk-released }}
95+
steps:
96+
- uses: actions/checkout@v3
97+
- uses: actions/setup-node@v3
98+
with:
99+
node-version: 16.x
100+
registry-url: 'https://registry.npmjs.org'
101+
- id: release-common
102+
name: Full release of packages/shared/akamai-edgeworker-sdk
103+
uses: ./actions/full-release
104+
with:
105+
workspace_path: packages/shared/akamai-edgeworker-sdk
106+
aws_assume_role: ${{ vars.AWS_ROLE_ARN }}
107+
86108
release-cloudflare:
87109
runs-on: ubuntu-latest
88110
needs: ['release-please']
@@ -122,7 +144,7 @@ jobs:
122144
with:
123145
workspace_path: packages/sdk/server-node
124146
aws_assume_role: ${{ vars.AWS_ROLE_ARN }}
125-
147+
126148
release-vercel:
127149
runs-on: ubuntu-latest
128150
needs: ['release-please']
@@ -143,22 +165,42 @@ jobs:
143165
workspace_path: packages/sdk/vercel
144166
aws_assume_role: ${{ vars.AWS_ROLE_ARN }}
145167

146-
release-akamai:
168+
release-akamai-base:
169+
runs-on: ubuntu-latest
170+
needs: ['release-please']
171+
permissions:
172+
id-token: write
173+
contents: write
174+
if: ${{ needs.release-please.outputs.package-akamai-base-released }}
175+
steps:
176+
- uses: actions/checkout@v3
177+
- uses: actions/setup-node@v3
178+
with:
179+
node-version: 16.x
180+
registry-url: 'https://registry.npmjs.org'
181+
- id: release-common
182+
name: Full release of packages/sdk/akamai-base
183+
uses: ./actions/full-release
184+
with:
185+
workspace_path: packages/sdk/akamai-base
186+
aws_assume_role: ${{ vars.AWS_ROLE_ARN }}
187+
188+
release-akamai-edgekv:
147189
runs-on: ubuntu-latest
148190
needs: ['release-please']
149191
permissions:
150192
id-token: write
151193
contents: write
152-
if: ${{ needs.release-please.outputs.package-akamai-released }}
194+
if: ${{ needs.release-please.outputs.package-akamai-edgekv-released }}
153195
steps:
154196
- uses: actions/checkout@v3
155197
- uses: actions/setup-node@v3
156198
with:
157199
node-version: 16.x
158200
registry-url: 'https://registry.npmjs.org'
159201
- id: release-common
160-
name: Full release of packages/sdk/akamai
202+
name: Full release of packages/sdk/akamai-edgekv
161203
uses: ./actions/full-release
162204
with:
163-
workspace_path: packages/sdk/akamai
205+
workspace_path: packages/sdk/akamai-edgekv
164206
aws_assume_role: ${{ vars.AWS_ROLE_ARN }}

README.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -98,13 +98,13 @@ We encourage pull requests and other contributions from the community. Check out
9898
[sdk-vercel-dm-badge]: https://img.shields.io/npm/dm/@launchdarkly/vercel-server-sdk.svg?style=flat-square
9999
[sdk-vercel-dt-badge]: https://img.shields.io/npm/dt/@launchdarkly/vercel-server-sdk.svg?style=flat-square
100100
[package-sdk-vercel-issues]: https://github.com/launchdarkly/js-core/issues?q=is%3Aissue+is%3Aopen+label%3A%22package%3A+sdk%2Fvercel%22+
101-
[//]: # 'sdk/akamai'
102-
[sdk-akamai-ci-badge]: https://github.com/launchdarkly/js-core/actions/workflows/akamai.yml/badge.svg
103-
[sdk-akamai-ci]: https://github.com/launchdarkly/js-core/actions/workflows/akamai.yml
104-
[sdk-akamai-npm-badge]: https://img.shields.io/npm/v/@launchdarkly/akamai-edgeworker-sdk.svg?style=flat-square
105-
[sdk-akamai-npm-link]: https://www.npmjs.com/package/@launchdarkly/akamai-edgeworker-sdk
101+
[//]: # 'sdk/akamai-base'
102+
[sdk-akamai-ci-badge]: https://github.com/launchdarkly/js-core/actions/workflows/akamai-base.yml/badge.svg
103+
[sdk-akamai-ci]: https://github.com/launchdarkly/js-core/actions/workflows/akamai-base.yml
104+
[sdk-akamai-npm-badge]: https://img.shields.io/npm/v/@launchdarkly/akamai-server-base-sdk.svg?style=flat-square
105+
[sdk-akamai-npm-link]: https://www.npmjs.com/package/@launchdarkly/akamai-server-base-sdk
106106
[sdk-akamai-ghp-badge]: https://img.shields.io/static/v1?label=GitHub+Pages&message=API+reference&color=00add8
107107
[sdk-akamai-ghp-link]: https://launchdarkly.github.io/js-core/packages/sdk/akamai/docs/
108-
[sdk-akamai-dm-badge]: https://img.shields.io/npm/dm/@launchdarkly/akamai-edgeworker-sdk.svg?style=flat-square
109-
[sdk-akamai-dt-badge]: https://img.shields.io/npm/dt/@launchdarkly/akamai-edgeworker-sdk.svg?style=flat-square
110-
[package-sdk-akamai-issues]: https://github.com/launchdarkly/js-core/issues?q=is%3Aissue+is%3Aopen+label%3A%22package%3A+sdk%2Fakamai%22+
108+
[sdk-akamai-dm-badge]: https://img.shields.io/npm/dm/@launchdarkly/akamai-server-base-sdk.svg?style=flat-square
109+
[sdk-akamai-dt-badge]: https://img.shields.io/npm/dt/@launchdarkly/akamai-server-base-sdk.svg?style=flat-square
110+
[package-sdk-akamai-issues]: https://github.com/launchdarkly/js-core/issues?q=is%3Aissue+is%3Aopen+label%3A%22package%3A+sdk%2Fakamai-base%22+

package.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,15 @@
44
"packages/shared/common",
55
"packages/shared/sdk-server",
66
"packages/shared/sdk-server-edge",
7+
"packages/shared/akamai-edgeworker-sdk",
78
"packages/sdk/server-node",
89
"packages/sdk/cloudflare",
910
"packages/sdk/cloudflare/example",
1011
"packages/sdk/vercel",
11-
"packages/sdk/akamai"
12+
"packages/sdk/akamai-base",
13+
"packages/sdk/akamai-base/example",
14+
"packages/sdk/akamai-edgekv",
15+
"packages/sdk/akamai-edgekv/example"
1216
],
1317
"private": true,
1418
"scripts": {
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)