GoodDollar / GoodServer

Backend to support the GoodDAPP
MIT License
13 stars 12 forks source link

(Feature) [GoodID] Register to RedTent #469

Closed johnsmith-gooddollar closed 2 months ago

johnsmith-gooddollar commented 3 months ago

Description

About #468

How Has This Been Tested?

Please describe the tests that you ran to verify your changes.

Checklist:

johnsmith-gooddollar commented 2 months ago

@sirpy we need permission to execute HeadObjectCommand to check existence. It retrieves metadata only, not the file data itself, so do not worry regarding privacy. Pls ask Redtent to make it for everyone or give us access key with this permission enabled. I cannot finish implementation without it

sirpy commented 2 months ago

@johnsmith-gooddollar try now

johnsmith-gooddollar commented 2 months ago

@sirpy still have error:

 console.log
    AccessDenied: Request has no authentication!
        at throwDefaultError (/Users/alexserdukov/Documents/Projects/GoodDollar/GoodServer/node_modules/@smithy/smithy-client/dist-cjs/index.js:838:20)
        at /Users/alexserdukov/Documents/Projects/GoodDollar/GoodServer/node_modules/@smithy/smithy-client/dist-cjs/index.js:847:5
        at de_CommandError (/Users/alexserdukov/Documents/Projects/GoodDollar/GoodServer/node_modules/@aws-sdk/client-s3/dist-cjs/index.js:4756:14)
        at processTicksAndRejections (node:internal/process/task_queues:95:5)
        at /Users/alexserdukov/Documents/Projects/GoodDollar/GoodServer/node_modules/@smithy/middleware-serde/dist-cjs/index.js:35:20
        at /Users/alexserdukov/Documents/Projects/GoodDollar/GoodServer/node_modules/@aws-sdk/middleware-signing/dist-cjs/index.js:225:18
        at /Users/alexserdukov/Documents/Projects/GoodDollar/GoodServer/node_modules/@smithy/middleware-retry/dist-cjs/index.js:320:38
        at /Users/alexserdukov/Documents/Projects/GoodDollar/GoodServer/node_modules/@aws-sdk/middleware-sdk-s3/dist-cjs/index.js:97:20
        at /Users/alexserdukov/Documents/Projects/GoodDollar/GoodServer/node_modules/@aws-sdk/middleware-sdk-s3/dist-cjs/index.js:120:14
        at /Users/alexserdukov/Documents/Projects/GoodDollar/GoodServer/node_modules/@aws-sdk/middleware-logger/dist-cjs/index.js:33:22
        at GoodIDUtils.checkS3AccountVideo (/Users/alexserdukov/Documents/Projects/GoodDollar/GoodServer/src/server/goodid/utils.js:136:42)
        at /Users/alexserdukov/Documents/Projects/GoodDollar/GoodServer/src/server/goodid/goodid-middleware.js:336:9 {
      '$fault': 'client',
      '$metadata': {
        httpStatusCode: 403,
        requestId: 'YNAHTN1AC4JKME1Z',
        extendedRequestId: 'emncoJbawdyuiOkZR1QwMFuOapyeyP+1wclmB1VHGSPzGCgPeN3RuBXtasuidQZ5wtsOtqWFB84=',
        cfId: undefined,
        attempts: 1,
        totalRetryDelay: 0
      },
      Code: 'AccessDenied',
      RequestId: 'YNAHTN1AC4JKME1Z',
      HostId: 'emncoJbawdyuiOkZR1QwMFuOapyeyP+1wclmB1VHGSPzGCgPeN3RuBXtasuidQZ5wtsOtqWFB84='
    }

(via GetObjectAtributesCommand)

or

  console.log
    403: UnknownError
        at throwDefaultError (/Users/alexserdukov/Documents/Projects/GoodDollar/GoodServer/node_modules/@smithy/smithy-client/dist-cjs/index.js:838:20)
        at /Users/alexserdukov/Documents/Projects/GoodDollar/GoodServer/node_modules/@smithy/smithy-client/dist-cjs/index.js:847:5
        at de_CommandError (/Users/alexserdukov/Documents/Projects/GoodDollar/GoodServer/node_modules/@aws-sdk/client-s3/dist-cjs/index.js:4756:14)
        at processTicksAndRejections (node:internal/process/task_queues:95:5)
        at /Users/alexserdukov/Documents/Projects/GoodDollar/GoodServer/node_modules/@smithy/middleware-serde/dist-cjs/index.js:35:20
        at /Users/alexserdukov/Documents/Projects/GoodDollar/GoodServer/node_modules/@aws-sdk/middleware-signing/dist-cjs/index.js:225:18
        at /Users/alexserdukov/Documents/Projects/GoodDollar/GoodServer/node_modules/@smithy/middleware-retry/dist-cjs/index.js:320:38
        at /Users/alexserdukov/Documents/Projects/GoodDollar/GoodServer/node_modules/@aws-sdk/middleware-sdk-s3/dist-cjs/index.js:97:20
        at /Users/alexserdukov/Documents/Projects/GoodDollar/GoodServer/node_modules/@aws-sdk/middleware-sdk-s3/dist-cjs/index.js:120:14
        at /Users/alexserdukov/Documents/Projects/GoodDollar/GoodServer/node_modules/@aws-sdk/middleware-logger/dist-cjs/index.js:33:22
        at GoodIDUtils.checkS3AccountVideo (/Users/alexserdukov/Documents/Projects/GoodDollar/GoodServer/src/server/goodid/utils.js:136:42)
        at /Users/alexserdukov/Documents/Projects/GoodDollar/GoodServer/src/server/goodid/goodid-middleware.js:336:9 {
      '$fault': 'client',
      '$metadata': {
        httpStatusCode: 403,
        requestId: 'BA9ZDGHMWHEARNDQ',
        extendedRequestId: '8PfqNosLxrA3tTq8/szdxm58EHKdfm9w10x8BZVHOmumQ8nqyhC2DfXujI82eu+NxYkteW51Ui0=',
        cfId: undefined,
        attempts: 1,
        totalRetryDelay: 0
      }
    }

(via HeadObjectCommand)

johnsmith-gooddollar commented 2 months ago

@sirpy pls check out which permissions are needed: https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/s3/command/HeadObjectCommand/

also should I use some authorisation ? at w3sdk example s3 client created without any auth keys....

johnsmith-gooddollar commented 2 months ago

@sirpy done

  1. checked up - now works with creds obtained at Heroku
  2. creds not stored at .env.test, sendCommand method is mocked instead as You've asked