Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: ceramicnetwork/ceramic-anchor-service
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 0.0.96
Choose a base ref
...
head repository: ceramicnetwork/ceramic-anchor-service
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: develop
Choose a head ref
Loading
Showing with 19,096 additions and 18,948 deletions.
  1. +3 −4 .github/workflows/anchor-contracts.yml
  2. +0 −113 .github/workflows/build_push_publish.yml
  3. +18 −1 .github/workflows/ci.yml
  4. +7 −28 Dockerfile
  5. +1 −14 README.md
  6. +1,554 −1,512 auth/pnpm-lock.yaml
  7. +1 −0 auth/serverless.yml
  8. +1 −13 auth/src/__tests__/createEmailVerification.spec.ts
  9. +4 −4 auth/src/authorizers/default.ts
  10. +2 −2 auth/src/handlers/api.ts
  11. +23 −12 auth/src/routes/did.ts
  12. +1 −0 auth/src/services/aws/apiGateway.ts
  13. +26 −4 auth/src/services/aws/dynamodb.ts
  14. +1 −10 auth/src/services/db.ts
  15. +1 −1 babel.config.json
  16. +49 −8 config/default.json
  17. +43 −6 config/env/dev.json
  18. +43 −6 config/env/prod.json
  19. +36 −5 config/env/test.json
  20. +2 −2 contracts/Makefile
  21. +3 −2 contracts/foundry.toml
  22. +31 −0 docs/DEPLOYMENT.md
  23. +14 −0 entrypoint.sh
  24. +12,849 −13,881 package-lock.json
  25. +24 −16 package.json
  26. +0 −19 runner.sh
  27. +0 −112 runner/helpers.js
  28. +0 −17 runner/package.json
  29. +0 −23 runner/report-exit.js
  30. +0 −23 runner/report-failure.js
  31. +0 −24 runner/report-start.js
  32. +0 −512 src/__tests__/ceramic_integration.test.ts
  33. +8 −4 src/__tests__/knex-timestamps.test.ts
  34. +63 −14 src/__tests__/test-utils.ts
  35. +8 −36 src/ancillary/__tests__/anchor-request-params-parser.test.ts
  36. +17 −0 src/ancillary/__tests__/codecs.test.ts
  37. +0 −17 src/ancillary/__tests__/did-string.test.ts
  38. +0 −104 src/ancillary/__tests__/io-ts-extra.test.ts
  39. +36 −39 src/ancillary/anchor-request-params-parser.ts
  40. +48 −163 src/ancillary/codecs.ts
  41. +0 −23 src/ancillary/did-string.ts
  42. +152 −0 src/ancillary/multiprocess.ts
  43. +0 −14 src/ancillary/opaque.type.ts
  44. +2 −0 src/app-mode.ts
  45. +152 −24 src/app.ts
  46. +260 −0 src/auth/__tests__/auth.middleware.test.ts
  47. +159 −0 src/auth/auth.middleware.ts
  48. +0 −65 src/auth/index.ts
  49. +22 −24 src/controllers/__tests__/app-handler-chain.ts
  50. +111 −74 src/controllers/__tests__/request-controller.test.ts
  51. +59 −17 src/controllers/request-controller.ts
  52. +48 −2 src/db-connection.ts
  53. +14 −18 src/logger/index.ts
  54. +5 −2 src/main.ts
  55. +0 −133 src/merkle/__tests__/bloom-metadata.test.ts
  56. +20 −0 src/merkle/__tests__/merkle-car-factory.test.ts
  57. +0 −56 src/merkle/bloom-metadata.ts
  58. +99 −0 src/merkle/merkle-car-factory.ts
  59. +25 −9 src/models/anchor.ts
  60. +0 −76 src/models/metadata.ts
  61. +41 −0 src/models/queue-message.ts
  62. +1 −1 src/models/request.ts
  63. +0 −96 src/repositories/__tests__/metadata-repository.test.ts
  64. +213 −166 src/repositories/__tests__/request-repository.test.ts
  65. +27 −8 src/repositories/anchor-repository.ts
  66. +5 −3 src/repositories/anchor-repository.type.ts
  67. +0 −93 src/repositories/metadata-repository.ts
  68. +47 −0 src/repositories/replication-request-repository.ts
  69. +3 −1 src/repositories/repository-types.ts
  70. +86 −81 src/repositories/request-repository.ts
  71. +35 −16 src/server.ts
  72. +7 −17 src/services/__tests__/__snapshots__/request-presentation-service.test.ts.snap
  73. +255 −299 src/services/__tests__/anchor-service.test.ts
  74. +14 −0 src/services/__tests__/fake-ethereum-blockchain-service.util.ts
  75. +47 −0 src/services/__tests__/fake-factory.util.ts
  76. +298 −12 src/services/__tests__/ipfs-service.test.ts
  77. +0 −254 src/services/__tests__/metadata-service.test.ts
  78. +7 −0 src/services/__tests__/mock-event-producer-service.util.ts
  79. +13 −16 src/services/__tests__/request-presentation-service.test.ts
  80. +0 −72 src/services/__tests__/scheduler-service.test.ts
  81. +95 −0 src/services/__tests__/task-scheduler-service.test.ts
  82. +217 −0 src/services/__tests__/witness-service.test.ts
  83. +315 −211 src/services/anchor-service.ts
  84. +1 −1 src/services/blockchain/__tests__/__snapshots__/eth-bc-service.test.ts.snap
  85. +57 −0 src/services/candidate.ts
  86. +169 −34 src/services/ipfs-service.ts
  87. +14 −8 src/services/ipfs-service.type.ts
  88. +117 −0 src/services/merkle-car-service.ts
  89. +0 −121 src/services/metadata-service.ts
  90. +25 −0 src/services/queue/queue-service.type.ts
  91. +279 −0 src/services/queue/sqs-queue-service.ts
  92. +91 −58 src/services/request-presentation-service.ts
  93. +115 −25 src/services/request-service.ts
  94. +0 −45 src/services/scheduler-service.ts
  95. +100 −0 src/services/task-scheduler-service.ts
  96. +257 −0 src/services/witness-service.ts
  97. +42 −8 src/settings.ts
  98. +36 −14 src/utils.ts
  99. +22 −0 types/s3leveldown/index.d.ts
7 changes: 3 additions & 4 deletions .github/workflows/anchor-contracts.yml
Original file line number Diff line number Diff line change
@@ -2,10 +2,9 @@ name: anchor-contract-pipeline

on:
push:
branches: [ '**' ]
paths-ignore:
- '.github/**'
- 'auth/**'
paths:
- contracts/src/*.sol
workflow_dispatch: # manually triggered

env:
FOUNDRY_PROFILE: ci
113 changes: 0 additions & 113 deletions .github/workflows/build_push_publish.yml

This file was deleted.

19 changes: 18 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -81,9 +81,26 @@ jobs:
if: ${{ env.BRANCH == 'main' || env.BRANCH == 'release-candidate' || env.BRANCH == 'develop' }}
run: echo "PUBLISH=true" >> $GITHUB_ENV
-
name: Push Docker image
name: Push private Docker image
if: ${{ env.PUBLISH == 'true' }}
run: dagger do push -w "actions:push:\"${{ env.AWS_REGION }}\":\"${{ env.ENV_TAG }}\":\"${{ env.BRANCH }}\":\"${{ env.SHA }}\":\"${{ env.SHA_TAG }}\":_" -p ${{ env.DAGGER_PLAN }}
-
name: Login to public ECR
if: ${{ env.BRANCH == 'develop' }}
uses: docker/login-action@v2
with:
registry: public.ecr.aws
username: ${{ env.AWS_ACCESS_KEY_ID }}
password: ${{ env.AWS_SECRET_ACCESS_KEY }}
env:
AWS_REGION: us-east-1
-
name: Push public Docker image
if: ${{ env.BRANCH == 'develop' }}
run: |
docker buildx build --load --target base -t 3box/cas .
docker tag 3box/cas:latest public.ecr.aws/r5b3e0r5/3box/cas:latest
docker push public.ecr.aws/r5b3e0r5/3box/cas:latest
-
name: Create deployment job
if: ${{ env.PUBLISH == 'true' }}
35 changes: 7 additions & 28 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM node:16 as base
FROM node:20 as base

ARG CODE_VERSION="00000"

@@ -16,33 +16,12 @@ RUN npm run postinstall

RUN npm run build

EXPOSE 8081

CMD npm run start

FROM base as runner

ENV CAS_PATH=/cas

# For running on AWS ECS
ENV AWS_REGION=${AWS_REGION}
ENV AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
ENV AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
ENV AWS_ECS_CLUSTER=${AWS_ECS_CLUSTER}
ENV AWS_ECS_FAMILY=${AWS_ECS_FAMILY}
RUN npm install dd-trace --save

# Discord notifications about running ECS tasks
ENV DISCORD_WEBHOOK_URL=${DISCORD_WEBHOOK_URL}
ENV CLOUDWATCH_LOG_BASE_URL=${CLOUDWATCH_LOG_BASE_URL}

WORKDIR /runner

COPY runner/package*.json runner/*.js ./

RUN npm install

WORKDIR /
EXPOSE 8081

COPY runner.sh .
COPY entrypoint.sh ./
RUN chmod +x ./entrypoint.sh

CMD [ "./runner.sh" ]
ENTRYPOINT ["./entrypoint.sh"]
CMD npm run start
15 changes: 1 addition & 14 deletions README.md
Original file line number Diff line number Diff line change
@@ -14,20 +14,6 @@ This implementation currently uses the Ethereum blockchain but is built in order
docker build . --target base -t cas
```

**Build the runner image (optional):**

The runner is only useful if running CAS with ECS.
It sends updates on the start and exit status of the container to Discord webhooks.
```sh
docker build . --target runner -t cas-runner

docker run cas-runner

# Test the runner with Discord by using test
# webhooks instead of the actual alert channels.
docker run -e DISCORD_WEBHOOK_URL_INFO_CAS="<test_webhook_url>" -e DISCORD_WEBHOOK_URL_ALERTS="<test_webhook_url>" cas-runner
```

### Docker Compose

Docker compose will run two instances of CAS--the api in "server" mode and the anchor worker in "anchor" mode.
@@ -61,6 +47,7 @@ npm run start
## Testing

1. Install node modules by running `npm install`
1. Build source with `npm run build`
1. Compile smart contracts
1. Install [foundry](https://github.com/foundry-rs/foundry)
1. `npm run installContractDeps`
Loading