From 569940ecaf81e7407d832958854c0013fdb7a65b Mon Sep 17 00:00:00 2001 From: Khai Do Date: Mon, 10 Apr 2023 14:08:58 -0700 Subject: [PATCH 01/19] [IT-2360] Setup IAM roles for tower Allow tower to use roles instead of a service user to access AWS resources. --- config/infra-dev/nextflow-tower-role.yaml | 11 ++ templates/nextflow-tower-role.yaml | 150 ++++++++++++++++++++++ 2 files changed, 161 insertions(+) create mode 100644 config/infra-dev/nextflow-tower-role.yaml create mode 100644 templates/nextflow-tower-role.yaml diff --git a/config/infra-dev/nextflow-tower-role.yaml b/config/infra-dev/nextflow-tower-role.yaml new file mode 100644 index 00000000..a6629693 --- /dev/null +++ b/config/infra-dev/nextflow-tower-role.yaml @@ -0,0 +1,11 @@ +template: + path: nextflow-tower-role.yaml +stack_name: nextflow-tower-role +stack_tags: + {{stack_group_config.default_stack_tags}} +parameters: + PrincipalArns: + - "arn:aws:sts::035458030717:root" + - "arn:aws:sts::526515999252:assumed-role/AWSReservedSSO_Administrator_66bb518af6b2dfa2/bruno.grande@sagebase.org" + BucketArns: + - !stack_output infra-dev/nextlfow-tower-config-bucket.yaml::BucketArn diff --git a/templates/nextflow-tower-role.yaml b/templates/nextflow-tower-role.yaml new file mode 100644 index 00000000..d4b7818f --- /dev/null +++ b/templates/nextflow-tower-role.yaml @@ -0,0 +1,150 @@ +Description: Policy and roles for NextFlow tower +AWSTemplateFormatVersion: 2010-09-09 +Parameters: + PrincipalArns: + Type: CommaDelimitedList + Description: Grant access to principals (accounts, groups, and users). + ConstraintDescription: List of ARNs (i.e. ["arn:aws:iam::011223344556:user/jsmith", "arn:aws:iam::544332211006:user/rjones"]) + BucketArns: + Type: CommaDelimitedList + Description: Grant access to NF tower buckets. + ConstraintDescription: List of ARNs (i.e. ["arn:aws:s3:::BUCKET-01/*", "arn:aws:s3:::BUCKET-02/*"]) +Resources: + ManagedPolicy: + Type: AWS::IAM::ManagedPolicy + Properties: + PolicyDocument: + Version: '2012-10-17' + Statement: + - Sid: TowerForgePermissions + Effect: Allow + Action: + - ssm:GetParameters + - iam:CreateInstanceProfile + - iam:DeleteInstanceProfile + - iam:GetRole + - iam:RemoveRoleFromInstanceProfile + - iam:CreateRole + - iam:DeleteRole + - iam:AttachRolePolicy + - iam:PutRolePolicy + - iam:AddRoleToInstanceProfile + - iam:PassRole + - iam:DetachRolePolicy + - iam:ListAttachedRolePolicies + - iam:DeleteRolePolicy + - iam:ListRolePolicies + - batch:CreateComputeEnvironment + - batch:DescribeComputeEnvironments + - batch:CreateJobQueue + - batch:DescribeJobQueues + - batch:UpdateComputeEnvironment + - batch:DeleteComputeEnvironment + - batch:UpdateJobQueue + - batch:DeleteJobQueue + - fsx:DeleteFileSystem + - fsx:DescribeFileSystems + - fsx:CreateFileSystem + - ec2:DescribeSecurityGroups + - ec2:DescribeAccountAttributes + - ec2:DescribeSubnets + - ec2:DescribeLaunchTemplates + - ec2:DescribeLaunchTemplateVersions + - ec2:CreateLaunchTemplate + - ec2:DeleteLaunchTemplate + - ec2:DescribeKeyPairs + - ec2:DescribeVpcs + - ec2:DescribeInstanceTypeOfferings + - elasticfilesystem:DescribeMountTargets + - elasticfilesystem:CreateMountTarget + - elasticfilesystem:CreateFileSystem + - elasticfilesystem:DescribeFileSystems + - elasticfilesystem:DeleteMountTarget + - elasticfilesystem:DeleteFileSystem + - elasticfilesystem:UpdateFileSystem + - elasticfilesystem:PutLifecycleConfiguration + Resource: '*' + - Sid: TowerLaunchPermissions + Effect: Allow + Action: + - batch:DescribeJobQueues + - batch:CancelJob + - batch:SubmitJob + - batch:ListJobs + - batch:DescribeComputeEnvironments + - batch:TerminateJob + - batch:DescribeJobs + - batch:RegisterJobDefinition + - batch:DescribeJobDefinitions + - ecs:DescribeTasks + - ec2:DescribeInstances + - ec2:DescribeInstanceTypes + - ec2:DescribeInstanceAttribute + - ecs:DescribeContainerInstances + - ec2:DescribeInstanceStatus + - ec2:DescribeImages + - logs:Describe* + - logs:Get* + - logs:List* + - logs:StartQuery + - logs:StopQuery + - logs:TestMetricFilter + - logs:FilterLogEvents + Resource: '*' + - Sid: BucketPolicy01 + Effect: Allow + Action: + - s3:ListAllMyBuckets + - s3:ListBucket + - s3:GetBucketLocation + Resource: + - '*' + - Sid: BucketPolicy02 + Effect: Allow + Action: + - s3:*Object* + Resource: !Ref BucketArns + Role: + Type: "AWS::IAM::Role" + Properties: + ManagedPolicyArns: + - !Ref ManagedPolicy + AssumeRolePolicyDocument: + Version: '2012-10-17' + Statement: + - Effect: Allow + Principal: + Service: ec2.amazonaws.com + Action: sts:AssumeRole + - Effect: Allow + Principal: + Service: ecs-tasks.amazonaws.com + Action: sts:AssumeRole + - Effect: Allow + Principal: + Service: eks.amazonaws.com + Action: sts:AssumeRole + - Sid: AllowEc2AssumeRole + Effect: Allow + Principal: + AWS: !Ref PrincipalArns + Action: sts:AssumeRole + InstanceProfile: + Type: "AWS::IAM::InstanceProfile" + Properties: + Path: "/" + Roles: + - !Ref Role +Outputs: + ManagedPolicy: + Value: !Ref ManagedPolicy + Export: + Name: !Sub '${AWS::StackName}-ManagedPolicy' + Role: + Value: !Ref Role + Export: + Name: !Sub '${AWS::StackName}-Role' + InstanceProfile: + Value: !Ref InstanceProfile + Export: + Name: !Sub '${AWS::StackName}-InstanceProfile' From 392f5493d90fff26f5e65740afb8d5635680ce63 Mon Sep 17 00:00:00 2001 From: Khai Do Date: Fri, 14 Apr 2023 08:48:01 -0700 Subject: [PATCH 02/19] use setup-python action to cache pipenv --- .github/workflows/rw-deploy.yaml | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/.github/workflows/rw-deploy.yaml b/.github/workflows/rw-deploy.yaml index 8e38ea00..b2be76fc 100644 --- a/.github/workflows/rw-deploy.yaml +++ b/.github/workflows/rw-deploy.yaml @@ -25,26 +25,13 @@ jobs: uses: actions/setup-python@v4 with: python-version: '3.10' + cache: 'pipenv' - name: Install pipenv - run: python -m pip install pipenv - - - name: Set up dependency caching - uses: actions/cache@v2 - with: - path: ~/.local/share/virtualenvs - key: ${{ runner.os }}-pipenv-v2-${{ hashFiles('**/Pipfile.lock') }} - restore-keys: | - ${{ runner.os }}-pipenv-v2- + run: curl https://raw.githubusercontent.com/pypa/pipenv/master/get-pipenv.py | python - name: Install dependencies - if: steps.pipenv-cache.outputs.cache-hit != 'true' - env: - PIPENV_NOSPIN: 'true' - WORKON_HOME: ~/.local/share/virtualenvs - PIPENV_CACHE_DIR: ~/.local/share/pipcache - run: | - pipenv install --dev + run: pipenv install --dev - name: Assume AWS role in dev account uses: aws-actions/configure-aws-credentials@v1 From 403c228857bf9b0937927795e9dda39d456e6537 Mon Sep 17 00:00:00 2001 From: Khai Do Date: Thu, 18 May 2023 15:06:41 -0700 Subject: [PATCH 03/19] move tower role into tower-project.j2 template --- config/infra-dev/nextflow-tower-role.yaml | 11 -- templates/nextflow-ecs-service.yaml | 5 + templates/nextflow-tower-role.yaml | 150 ---------------------- templates/tower-project.j2 | 37 ++++++ 4 files changed, 42 insertions(+), 161 deletions(-) delete mode 100644 config/infra-dev/nextflow-tower-role.yaml delete mode 100644 templates/nextflow-tower-role.yaml diff --git a/config/infra-dev/nextflow-tower-role.yaml b/config/infra-dev/nextflow-tower-role.yaml deleted file mode 100644 index a6629693..00000000 --- a/config/infra-dev/nextflow-tower-role.yaml +++ /dev/null @@ -1,11 +0,0 @@ -template: - path: nextflow-tower-role.yaml -stack_name: nextflow-tower-role -stack_tags: - {{stack_group_config.default_stack_tags}} -parameters: - PrincipalArns: - - "arn:aws:sts::035458030717:root" - - "arn:aws:sts::526515999252:assumed-role/AWSReservedSSO_Administrator_66bb518af6b2dfa2/bruno.grande@sagebase.org" - BucketArns: - - !stack_output infra-dev/nextlfow-tower-config-bucket.yaml::BucketArn diff --git a/templates/nextflow-ecs-service.yaml b/templates/nextflow-ecs-service.yaml index faec4502..9a272385 100644 --- a/templates/nextflow-ecs-service.yaml +++ b/templates/nextflow-ecs-service.yaml @@ -214,3 +214,8 @@ Outputs: Value: !GetAtt EcsApplicationLoadBalancer.CanonicalHostedZoneID Export: Name: !Sub '${AWS::Region}-${AWS::StackName}-LoadBalancerCanonicalHostedZoneID' + + EcsServiceRoleArn: + Value: !GetAtt EcsServiceRole.Arn + Export: + Name: !Sub '${AWS::Region}-${AWS::StackName}-EcsServiceRoleArn' diff --git a/templates/nextflow-tower-role.yaml b/templates/nextflow-tower-role.yaml deleted file mode 100644 index d4b7818f..00000000 --- a/templates/nextflow-tower-role.yaml +++ /dev/null @@ -1,150 +0,0 @@ -Description: Policy and roles for NextFlow tower -AWSTemplateFormatVersion: 2010-09-09 -Parameters: - PrincipalArns: - Type: CommaDelimitedList - Description: Grant access to principals (accounts, groups, and users). - ConstraintDescription: List of ARNs (i.e. ["arn:aws:iam::011223344556:user/jsmith", "arn:aws:iam::544332211006:user/rjones"]) - BucketArns: - Type: CommaDelimitedList - Description: Grant access to NF tower buckets. - ConstraintDescription: List of ARNs (i.e. ["arn:aws:s3:::BUCKET-01/*", "arn:aws:s3:::BUCKET-02/*"]) -Resources: - ManagedPolicy: - Type: AWS::IAM::ManagedPolicy - Properties: - PolicyDocument: - Version: '2012-10-17' - Statement: - - Sid: TowerForgePermissions - Effect: Allow - Action: - - ssm:GetParameters - - iam:CreateInstanceProfile - - iam:DeleteInstanceProfile - - iam:GetRole - - iam:RemoveRoleFromInstanceProfile - - iam:CreateRole - - iam:DeleteRole - - iam:AttachRolePolicy - - iam:PutRolePolicy - - iam:AddRoleToInstanceProfile - - iam:PassRole - - iam:DetachRolePolicy - - iam:ListAttachedRolePolicies - - iam:DeleteRolePolicy - - iam:ListRolePolicies - - batch:CreateComputeEnvironment - - batch:DescribeComputeEnvironments - - batch:CreateJobQueue - - batch:DescribeJobQueues - - batch:UpdateComputeEnvironment - - batch:DeleteComputeEnvironment - - batch:UpdateJobQueue - - batch:DeleteJobQueue - - fsx:DeleteFileSystem - - fsx:DescribeFileSystems - - fsx:CreateFileSystem - - ec2:DescribeSecurityGroups - - ec2:DescribeAccountAttributes - - ec2:DescribeSubnets - - ec2:DescribeLaunchTemplates - - ec2:DescribeLaunchTemplateVersions - - ec2:CreateLaunchTemplate - - ec2:DeleteLaunchTemplate - - ec2:DescribeKeyPairs - - ec2:DescribeVpcs - - ec2:DescribeInstanceTypeOfferings - - elasticfilesystem:DescribeMountTargets - - elasticfilesystem:CreateMountTarget - - elasticfilesystem:CreateFileSystem - - elasticfilesystem:DescribeFileSystems - - elasticfilesystem:DeleteMountTarget - - elasticfilesystem:DeleteFileSystem - - elasticfilesystem:UpdateFileSystem - - elasticfilesystem:PutLifecycleConfiguration - Resource: '*' - - Sid: TowerLaunchPermissions - Effect: Allow - Action: - - batch:DescribeJobQueues - - batch:CancelJob - - batch:SubmitJob - - batch:ListJobs - - batch:DescribeComputeEnvironments - - batch:TerminateJob - - batch:DescribeJobs - - batch:RegisterJobDefinition - - batch:DescribeJobDefinitions - - ecs:DescribeTasks - - ec2:DescribeInstances - - ec2:DescribeInstanceTypes - - ec2:DescribeInstanceAttribute - - ecs:DescribeContainerInstances - - ec2:DescribeInstanceStatus - - ec2:DescribeImages - - logs:Describe* - - logs:Get* - - logs:List* - - logs:StartQuery - - logs:StopQuery - - logs:TestMetricFilter - - logs:FilterLogEvents - Resource: '*' - - Sid: BucketPolicy01 - Effect: Allow - Action: - - s3:ListAllMyBuckets - - s3:ListBucket - - s3:GetBucketLocation - Resource: - - '*' - - Sid: BucketPolicy02 - Effect: Allow - Action: - - s3:*Object* - Resource: !Ref BucketArns - Role: - Type: "AWS::IAM::Role" - Properties: - ManagedPolicyArns: - - !Ref ManagedPolicy - AssumeRolePolicyDocument: - Version: '2012-10-17' - Statement: - - Effect: Allow - Principal: - Service: ec2.amazonaws.com - Action: sts:AssumeRole - - Effect: Allow - Principal: - Service: ecs-tasks.amazonaws.com - Action: sts:AssumeRole - - Effect: Allow - Principal: - Service: eks.amazonaws.com - Action: sts:AssumeRole - - Sid: AllowEc2AssumeRole - Effect: Allow - Principal: - AWS: !Ref PrincipalArns - Action: sts:AssumeRole - InstanceProfile: - Type: "AWS::IAM::InstanceProfile" - Properties: - Path: "/" - Roles: - - !Ref Role -Outputs: - ManagedPolicy: - Value: !Ref ManagedPolicy - Export: - Name: !Sub '${AWS::StackName}-ManagedPolicy' - Role: - Value: !Ref Role - Export: - Name: !Sub '${AWS::StackName}-Role' - InstanceProfile: - Value: !Ref InstanceProfile - Export: - Name: !Sub '${AWS::StackName}-InstanceProfile' diff --git a/templates/tower-project.j2 b/templates/tower-project.j2 index 9f4b9f27..94090adf 100644 --- a/templates/tower-project.j2 +++ b/templates/tower-project.j2 @@ -141,6 +141,38 @@ Resources: Service: - ecs-tasks.amazonaws.com + TowerRole: + Type: "AWS::IAM::Role" + Properties: + ManagedPolicyArns: + - !Sub '!ImportValue ${AWS::Region}-nextflow-forge-iam-policy-NextFlowForgePolicyArn' + - !Sub '!ImportValue ${AWS::Region}-nextflow-launch-iam-policy-NextFlowLaunchPolicyArn' + AssumeRolePolicyDocument: + Version: '2012-10-17' + Statement: + - Effect: Allow + Principal: + Service: ec2.amazonaws.com + Action: sts:AssumeRole + - Effect: Allow + Principal: + Service: ecs-tasks.amazonaws.com + Action: sts:AssumeRole + - Effect: Allow + Principal: + Service: eks.amazonaws.com + Action: sts:AssumeRole + - Sid: AllowEc2AssumeRole + Effect: Allow + Principal: + AWS: !Ref AccountAdminArns + Action: sts:AssumeRole + - Sid: AllowEcsServiceRole2AssumeRole + Effect: Allow + Principal: + AWS: !Sub '!ImportValue ${AWS::Region}-nextflow-ecs-service-EcsServiceRoleArn' + Action: sts:AssumeRole + TowerForgeBatchHeadJobPolicy: Type: AWS::IAM::Policy Properties: @@ -583,6 +615,11 @@ Outputs: Export: Name: !Sub "${AWS::Region}-${AWS::StackName}-TowerForgeServiceRoleArn" + TowerRoleArn: + Value: !GetAtt TowerRole.Arn + Export: + Name: !Sub "${AWS::Region}-${AWS::StackName}-TowerRoleArn" + TowerForgeBatchHeadJobRole: Value: !Ref TowerForgeBatchHeadJobRole Export: From 64c58a85c4d2b6aaea97a262040f512c2919f780 Mon Sep 17 00:00:00 2001 From: Bruno Grande Date: Wed, 31 May 2023 12:48:56 -0700 Subject: [PATCH 04/19] Offboard Bruno Grande --- config/infra-dev/nextflow-ecs-task-definition.yaml | 1 - config/infra-prod/nextflow-ecs-task-definition.yaml | 1 - config/projects-ampad/example-ampad-project.yaml | 4 ++-- config/projects-ampad/jared-hendrickson-project.yaml | 2 +- config/projects-ampad/strides-ampad-project.yaml | 2 +- config/projects-ampad/wei-an-chen-project.yaml | 2 +- config/projects-dev/example-dev-project.yaml | 1 - config/projects-dev/orca-dev-project.yaml | 1 - config/projects-dev/orca-service-test-project.yaml | 1 - config/projects-prod/ctf-swnts-project.yaml | 2 +- config/projects-prod/example-project.yaml | 6 +++--- config/projects-prod/iatlas-project.yaml | 1 - config/projects-prod/imcore-project.yaml | 4 ++-- config/projects-prod/jhu-biobank-nf-project.yaml | 4 ++-- config/projects-prod/nf-ntap5-biobank-jineta.yaml | 2 +- config/projects-prod/nfri-ctf-nf1-project.yaml | 2 +- config/projects-prod/ntap-add5-project.yaml | 4 ++-- config/projects-prod/ntap-cnf-cell-project.yaml | 2 +- config/projects-prod/ucf-dod-nf2-project.yaml | 2 +- 19 files changed, 19 insertions(+), 25 deletions(-) diff --git a/config/infra-dev/nextflow-ecs-task-definition.yaml b/config/infra-dev/nextflow-ecs-task-definition.yaml index 2d582519..78f1df44 100644 --- a/config/infra-dev/nextflow-ecs-task-definition.yaml +++ b/config/infra-dev/nextflow-ecs-task-definition.yaml @@ -28,7 +28,6 @@ parameters: EfsVolumeMountPath: '/efs' TowerUserWorkspace: 'false' TowerRootUsers: - - bruno.grande@sagebase.org - thomas.yu@sagebase.org TowerConfigFileName: 'tower.yaml' diff --git a/config/infra-prod/nextflow-ecs-task-definition.yaml b/config/infra-prod/nextflow-ecs-task-definition.yaml index 8a119451..355ea2e6 100644 --- a/config/infra-prod/nextflow-ecs-task-definition.yaml +++ b/config/infra-prod/nextflow-ecs-task-definition.yaml @@ -28,7 +28,6 @@ parameters: EfsVolumeMountPath: '/efs' TowerUserWorkspace: 'false' TowerRootUsers: - - bruno.grande@sagebase.org - thomas.yu@sagebase.org TowerConfigFileName: 'tower.yaml' diff --git a/config/projects-ampad/example-ampad-project.yaml b/config/projects-ampad/example-ampad-project.yaml index 2ff51695..b44814bd 100644 --- a/config/projects-ampad/example-ampad-project.yaml +++ b/config/projects-ampad/example-ampad-project.yaml @@ -7,9 +7,9 @@ dependencies: parameters: S3ReadWriteAccessArns: - - '{{stack_group_config.tower_viewer_arn_prefix}}/bruno.grande@sagebase.org' - S3ReadOnlyAccessArns: - '{{stack_group_config.tower_viewer_arn_prefix}}/thomas.yu@sagebase.org' + S3ReadOnlyAccessArns: + - '{{stack_group_config.tower_viewer_arn_prefix}}/brad.macdonald@sagebase.org' AllowSynapseIndexing: Enabled AccountAdminArns: - '{{stack_group_config.sso_admin_role.arn}}' diff --git a/config/projects-ampad/jared-hendrickson-project.yaml b/config/projects-ampad/jared-hendrickson-project.yaml index bd64879d..42a3378a 100644 --- a/config/projects-ampad/jared-hendrickson-project.yaml +++ b/config/projects-ampad/jared-hendrickson-project.yaml @@ -9,7 +9,7 @@ parameters: S3ReadWriteAccessArns: - '{{stack_group_config.tower_viewer_arn_prefix}}/william.poehlman@sagebase.org' - '{{stack_group_config.tower_viewer_arn_prefix}}/jared.hendrickson@sagebase.org' - - '{{stack_group_config.tower_viewer_arn_prefix}}/bruno.grande@sagebase.org' + - '{{stack_group_config.tower_viewer_arn_prefix}}/thomas.yu@sagebase.org' AllowSynapseIndexing: Enabled AccountAdminArns: - '{{stack_group_config.sso_admin_role.arn}}' diff --git a/config/projects-ampad/strides-ampad-project.yaml b/config/projects-ampad/strides-ampad-project.yaml index 91cc9917..35c08fbe 100644 --- a/config/projects-ampad/strides-ampad-project.yaml +++ b/config/projects-ampad/strides-ampad-project.yaml @@ -8,7 +8,7 @@ dependencies: parameters: S3ReadWriteAccessArns: - "{{stack_group_config.tower_viewer_arn_prefix}}/william.poehlman@sagebase.org" - - "{{stack_group_config.tower_viewer_arn_prefix}}/bruno.grande@sagebase.org" + - "{{stack_group_config.tower_viewer_arn_prefix}}/thomas.yu@sagebase.org" S3ReadOnlyAccessArns: - arn:aws:iam::751556145034:role/jared-hendrickson-project-TowerForgeBatchHeadJobRo-1XYQQ76D6E75Z - arn:aws:iam::751556145034:role/jared-hendrickson-project-TowerForgeBatchWorkJobRo-1V2DBC9NYIPOB diff --git a/config/projects-ampad/wei-an-chen-project.yaml b/config/projects-ampad/wei-an-chen-project.yaml index a56e21fb..cf60c317 100644 --- a/config/projects-ampad/wei-an-chen-project.yaml +++ b/config/projects-ampad/wei-an-chen-project.yaml @@ -9,7 +9,7 @@ parameters: S3ReadWriteAccessArns: - '{{stack_group_config.tower_viewer_arn_prefix}}/william.poehlman@sagebase.org' - '{{stack_group_config.tower_viewer_arn_prefix}}/wei-an.chen@sagebase.org' - - '{{stack_group_config.tower_viewer_arn_prefix}}/bruno.grande@sagebase.org' + - '{{stack_group_config.tower_viewer_arn_prefix}}/thomas.yu@sagebase.org' AllowSynapseIndexing: Enabled AccountAdminArns: - '{{stack_group_config.sso_admin_role.arn}}' diff --git a/config/projects-dev/example-dev-project.yaml b/config/projects-dev/example-dev-project.yaml index 2c25be29..23930459 100644 --- a/config/projects-dev/example-dev-project.yaml +++ b/config/projects-dev/example-dev-project.yaml @@ -7,7 +7,6 @@ dependencies: parameters: S3ReadWriteAccessArns: - - '{{stack_group_config.tower_viewer_arn_prefix}}/bruno.grande@sagebase.org' - '{{stack_group_config.tower_viewer_arn_prefix}}/thomas.yu@sagebase.org' - '{{stack_group_config.tower_viewer_arn_prefix}}/brad.macdonald@sagebase.org' AllowSynapseIndexing: Enabled diff --git a/config/projects-dev/orca-dev-project.yaml b/config/projects-dev/orca-dev-project.yaml index 909f4d8f..2d013133 100644 --- a/config/projects-dev/orca-dev-project.yaml +++ b/config/projects-dev/orca-dev-project.yaml @@ -8,7 +8,6 @@ dependencies: parameters: S3ReadWriteAccessArns: - '{{stack_group_config.tower_viewer_arn_prefix}}/brad.macdonald@sagebase.org' - - '{{stack_group_config.tower_viewer_arn_prefix}}/bruno.grande@sagebase.org' - '{{stack_group_config.tower_viewer_arn_prefix}}/thomas.yu@sagebase.org' AllowSynapseIndexing: Enabled AccountAdminArns: diff --git a/config/projects-dev/orca-service-test-project.yaml b/config/projects-dev/orca-service-test-project.yaml index 5b879276..1ef5ec52 100644 --- a/config/projects-dev/orca-service-test-project.yaml +++ b/config/projects-dev/orca-service-test-project.yaml @@ -9,7 +9,6 @@ parameters: S3ReadWriteAccessArns: - '{{stack_group_config.tower_viewer_arn_prefix}}/orca-service-accounts@sagebase.org' - '{{stack_group_config.tower_viewer_arn_prefix}}/brad.macdonald@sagebase.org' - - '{{stack_group_config.tower_viewer_arn_prefix}}/bruno.grande@sagebase.org' - '{{stack_group_config.tower_viewer_arn_prefix}}/thomas.yu@sagebase.org' AllowSynapseIndexing: Enabled AccountAdminArns: diff --git a/config/projects-prod/ctf-swnts-project.yaml b/config/projects-prod/ctf-swnts-project.yaml index 74c8721f..eb01f9bb 100644 --- a/config/projects-prod/ctf-swnts-project.yaml +++ b/config/projects-prod/ctf-swnts-project.yaml @@ -16,7 +16,7 @@ parameters: - "{{stack_group_config.tower_viewer_arn_prefix}}/sasha.scott@sagebase.org" - "{{stack_group_config.tower_viewer_arn_prefix}}/robert.allaway@sagebase.org" - "{{stack_group_config.tower_viewer_arn_prefix}}/jineta.banerjee@sagebase.org" - - "{{stack_group_config.tower_viewer_arn_prefix}}/bruno.grande@sagebase.org" + - "{{stack_group_config.tower_viewer_arn_prefix}}/thomas.yu@sagebase.org" # (Optional) Step 6: Uncomment the following line to disable the feature allowing Synapse to index files # in the long-term (archival) S3 bucket (by default, this feature is enabled) diff --git a/config/projects-prod/example-project.yaml b/config/projects-prod/example-project.yaml index acc74d21..ac23ff17 100644 --- a/config/projects-prod/example-project.yaml +++ b/config/projects-prod/example-project.yaml @@ -14,15 +14,15 @@ stack_tags: parameters: S3ReadWriteAccessArns: # (REQUIRED) Step 3: Replace the email below with your '@sagebase.org' address - - '{{stack_group_config.tower_viewer_arn_prefix}}/bruno.grande@sagebase.org' + - '{{stack_group_config.tower_viewer_arn_prefix}}/thomas.yu@sagebase.org' - '{{stack_group_config.tower_viewer_arn_prefix}}/brad.macdonald@sagebase.org' # (Optional) Step 4: Uncomment and update the following line(s) to grant additional users with read/write access - # - '{{stack_group_config.tower_viewer_arn_prefix}}/thomas.yu@sagebase.org' + # - '{{stack_group_config.tower_viewer_arn_prefix}}/rixing.xu@sagebase.org' # (Optional) Step 5: Uncomment and update the following line(s) to grant additional users with read-only access # S3ReadOnlyAccessArns: - # - '{{stack_group_config.tower_viewer_arn_prefix}}/brad.macdonald@sagebase.org' + # - '{{stack_group_config.tower_viewer_arn_prefix}}/rixing.xu@sagebase.org' # (Optional) Step 6: Uncomment the following line to disable the feature allowing Synapse to index files # in the long-term (archival) S3 bucket (by default, this feature is enabled) diff --git a/config/projects-prod/iatlas-project.yaml b/config/projects-prod/iatlas-project.yaml index 09c071fa..ae91d059 100644 --- a/config/projects-prod/iatlas-project.yaml +++ b/config/projects-prod/iatlas-project.yaml @@ -12,7 +12,6 @@ parameters: S3ReadWriteAccessArns: - "{{stack_group_config.tower_viewer_arn_prefix}}/brad.macdonald@sagebase.org" - "{{stack_group_config.tower_viewer_arn_prefix}}/thomas.yu@sagebase.org" - - "{{stack_group_config.tower_viewer_arn_prefix}}/bruno.grande@sagebase.org" - "{{stack_group_config.tower_viewer_arn_prefix}}/adam.taylor@sagebase.org" - "{{stack_group_config.tower_viewer_arn_prefix}}/james.eddy@sagebase.org" # The following roles don't exist since the users are not Sage employees. diff --git a/config/projects-prod/imcore-project.yaml b/config/projects-prod/imcore-project.yaml index 70d108e9..b90bc910 100644 --- a/config/projects-prod/imcore-project.yaml +++ b/config/projects-prod/imcore-project.yaml @@ -7,7 +7,7 @@ dependencies: parameters: S3ReadOnlyAccessArns: - - '{{stack_group_config.tower_viewer_arn_prefix}}/bruno.grande@sagebase.org' + - '{{stack_group_config.tower_viewer_arn_prefix}}/thomas.yu@sagebase.org' - '{{stack_group_config.tower_viewer_arn_prefix}}/james.eddy@sagebase.org' AllowSynapseIndexing: Enabled AccountAdminArns: @@ -20,5 +20,5 @@ parameters: stack_tags: Department: IBC Project: imCORE - OwnerEmail: bruno.grande@sagebase.org + OwnerEmail: thomas.yu@sagebase.org CostCenter: Genentech imCore / 40033 diff --git a/config/projects-prod/jhu-biobank-nf-project.yaml b/config/projects-prod/jhu-biobank-nf-project.yaml index 09e45b44..1d05b281 100644 --- a/config/projects-prod/jhu-biobank-nf-project.yaml +++ b/config/projects-prod/jhu-biobank-nf-project.yaml @@ -7,7 +7,7 @@ dependencies: parameters: S3ReadOnlyAccessArns: - - '{{stack_group_config.tower_viewer_arn_prefix}}/bruno.grande@sagebase.org' + - '{{stack_group_config.tower_viewer_arn_prefix}}/thomas.yu@sagebase.org' - '{{stack_group_config.tower_viewer_arn_prefix}}/jineta.banerjee@sagebase.org' AllowSynapseIndexing: Enabled AccountAdminArns: @@ -20,5 +20,5 @@ parameters: stack_tags: Department: SCCE Project: Neurofibromatosis - OwnerEmail: bruno.grande@sagebase.org + OwnerEmail: thomas.yu@sagebase.org CostCenter: NTAP NF Addendum 5 / 301101 diff --git a/config/projects-prod/nf-ntap5-biobank-jineta.yaml b/config/projects-prod/nf-ntap5-biobank-jineta.yaml index 4c6e2757..333bada8 100644 --- a/config/projects-prod/nf-ntap5-biobank-jineta.yaml +++ b/config/projects-prod/nf-ntap5-biobank-jineta.yaml @@ -10,7 +10,7 @@ stack_tags: parameters: S3ReadOnlyAccessArns: - "{{stack_group_config.tower_viewer_arn_prefix}}/jineta.banerjee@sagebase.org" - - "{{stack_group_config.tower_viewer_arn_prefix}}/bruno.grande@sagebase.org" + - "{{stack_group_config.tower_viewer_arn_prefix}}/thomas.yu@sagebase.org" - "{{stack_group_config.tower_viewer_arn_prefix}}/robert.allaway@sagebase.org" - "{{stack_group_config.tower_viewer_arn_prefix}}/sasha.scott@sagebase.org" diff --git a/config/projects-prod/nfri-ctf-nf1-project.yaml b/config/projects-prod/nfri-ctf-nf1-project.yaml index 8d0d58bb..b464653c 100644 --- a/config/projects-prod/nfri-ctf-nf1-project.yaml +++ b/config/projects-prod/nfri-ctf-nf1-project.yaml @@ -12,7 +12,7 @@ parameters: - '{{stack_group_config.tower_viewer_arn_prefix}}/robert.allaway@sagebase.org' - '{{stack_group_config.tower_viewer_arn_prefix}}/sasha.scott@sagebase.org' - '{{stack_group_config.tower_viewer_arn_prefix}}/jineta.banerjee@sagebase.org' - - '{{stack_group_config.tower_viewer_arn_prefix}}/bruno.grande@sagebase.org' + - '{{stack_group_config.tower_viewer_arn_prefix}}/thomas.yu@sagebase.org' # (Optional) Step 6: Uncomment and update the following lines to change the S3 bucket lifecycle configuration, # which cannot be changed as long as 'AllowSynapseIndexing' is enabled (default) diff --git a/config/projects-prod/ntap-add5-project.yaml b/config/projects-prod/ntap-add5-project.yaml index b4cbee22..1d9c2554 100644 --- a/config/projects-prod/ntap-add5-project.yaml +++ b/config/projects-prod/ntap-add5-project.yaml @@ -7,7 +7,7 @@ dependencies: parameters: S3ReadWriteAccessArns: - - '{{stack_group_config.tower_viewer_arn_prefix}}/bruno.grande@sagebase.org' + - '{{stack_group_config.tower_viewer_arn_prefix}}/thomas.yu@sagebase.org' - '{{stack_group_config.tower_viewer_arn_prefix}}/jineta.banerjee@sagebase.org' - '{{stack_group_config.tower_viewer_arn_prefix}}/robert.allaway@sagebase.org' - '{{stack_group_config.tower_viewer_arn_prefix}}/sasha.scott@sagebase.org' @@ -21,5 +21,5 @@ parameters: stack_tags: Department: SCCE Project: Neurofibromatosis - OwnerEmail: bruno.grande@sagebase.org + OwnerEmail: thomas.yu@sagebase.org CostCenter: NTAP NF Addendum 5 / 301101 diff --git a/config/projects-prod/ntap-cnf-cell-project.yaml b/config/projects-prod/ntap-cnf-cell-project.yaml index 3ec70c25..45a14336 100644 --- a/config/projects-prod/ntap-cnf-cell-project.yaml +++ b/config/projects-prod/ntap-cnf-cell-project.yaml @@ -11,7 +11,7 @@ parameters: S3ReadWriteAccessArns: - '{{stack_group_config.tower_viewer_arn_prefix}}/robert.allaway@sagebase.org' - '{{stack_group_config.tower_viewer_arn_prefix}}/jineta.banerjee@sagebase.org' - - '{{stack_group_config.tower_viewer_arn_prefix}}/bruno.grande@sagebase.org' + - '{{stack_group_config.tower_viewer_arn_prefix}}/thomas.yu@sagebase.org' # (Optional) Step 6: Uncomment and update the following lines to change the S3 bucket lifecycle configuration, # which cannot be changed as long as 'AllowSynapseIndexing' is enabled (default) diff --git a/config/projects-prod/ucf-dod-nf2-project.yaml b/config/projects-prod/ucf-dod-nf2-project.yaml index 80aee453..bb2084f3 100644 --- a/config/projects-prod/ucf-dod-nf2-project.yaml +++ b/config/projects-prod/ucf-dod-nf2-project.yaml @@ -12,7 +12,7 @@ parameters: - '{{stack_group_config.tower_viewer_arn_prefix}}/robert.allaway@sagebase.org' - '{{stack_group_config.tower_viewer_arn_prefix}}/sasha.scott@sagebase.org' - '{{stack_group_config.tower_viewer_arn_prefix}}/jineta.banerjee@sagebase.org' - - '{{stack_group_config.tower_viewer_arn_prefix}}/bruno.grande@sagebase.org' + - '{{stack_group_config.tower_viewer_arn_prefix}}/thomas.yu@sagebase.org' # (Optional) Step 6: Uncomment and update the following lines to change the S3 bucket lifecycle configuration, # which cannot be changed as long as 'AllowSynapseIndexing' is enabled (default) From edddd59c75c3432e16546fa7079ad0e33d9dcc82 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 2 Jun 2023 20:37:21 +0000 Subject: [PATCH 05/19] Bump cryptography from 40.0.2 to 41.0.0 Bumps [cryptography](https://github.com/pyca/cryptography) from 40.0.2 to 41.0.0. - [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pyca/cryptography/compare/40.0.2...41.0.0) --- updated-dependencies: - dependency-name: cryptography dependency-type: indirect ... Signed-off-by: dependabot[bot] --- Pipfile.lock | 488 ++++++++++++++++++++++++++------------------------- 1 file changed, 248 insertions(+), 240 deletions(-) diff --git a/Pipfile.lock b/Pipfile.lock index 959ab84f..d5ea6c0f 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -26,19 +26,19 @@ }, "alembic": { "hashes": [ - "sha256:d8bf706124e96e526889ac9c87a0d50debd9ef325ef32ae5391cf0315bdab4e1", - "sha256:f0e74af5a6ade86b72770790188aaf64122c9cba64efd1d7ff3323ac3fdb75e0" + "sha256:6a810a6b012c88b33458fceb869aef09ac75d6ace5291915ba7fae44de372c01", + "sha256:dc871798a601fab38332e38d6ddb38d5e734f60034baeb8e2db5b642fccd8ab8" ], "markers": "python_version >= '3.7'", - "version": "==1.11.0" + "version": "==1.11.1" }, "anyio": { "hashes": [ - "sha256:25ea0d673ae30af41a0c442f81cf3b38c7e79fdc7b60335a4c14e05eb0947421", - "sha256:fbbe32bd270d2a2ef3ed1c5d45041250284e31fc0a4df4a5a6071842051a51e3" + "sha256:275d9973793619a5374e1c89a4f4ad3f4b0a5510a2b5b939444bee8f4c4d37ce", + "sha256:eddca883c4175f14df8aedce21054bfca3adb70ffe76a9f607aef9d7fa2ea7f0" ], - "markers": "python_full_version >= '3.6.2'", - "version": "==3.6.2" + "markers": "python_version >= '3.7'", + "version": "==3.7.0" }, "apprise": { "hashes": [ @@ -108,11 +108,11 @@ }, "aws-sam-translator": { "hashes": [ - "sha256:207a216bec1ac3323b58e15ed7231c0f476b1a1a10892c9a6b22784041d32506", - "sha256:291fed2f08bad7f38368f4ee8609fce64dfe5c6b1872bb24b93cda1880bc9f7d" + "sha256:557d8080c9e6c1c609bfe806ea9545f7ea34144e2466c0ddc801806c2c05afdc", + "sha256:d12a7bb3909142d32458f76818cb96a5ebc5f50fbd5943301d552679a893afcc" ], "markers": "python_version >= '3.7' and python_version != '4.0' and python_version <= '4.0'", - "version": "==1.67.0" + "version": "==1.68.0" }, "boto3": { "hashes": [ @@ -132,11 +132,11 @@ }, "cachetools": { "hashes": [ - "sha256:13dfddc7b8df938c21a940dfa6557ce6e94a2f1cdfa58eb90c805721d58f2c14", - "sha256:429e1a1e845c008ea6c85aa35d4b98b65d6a9763eeef3e37e92728a12d1de9d4" + "sha256:95ef631eeaea14ba2e36f06437f36463aac3a096799e876ee55e5cdccb102590", + "sha256:dce83f2d9b4e1f732a8cd44af8e8fab2dbe46201467fc98b3ef8f269092bf62b" ], - "markers": "python_version ~= '3.7'", - "version": "==5.3.0" + "markers": "python_version >= '3.7'", + "version": "==5.3.1" }, "certifi": { "hashes": [ @@ -264,36 +264,36 @@ }, "croniter": { "hashes": [ - "sha256:d067b1f95b553c6e82d95a983c465695913dcd12f47a8b9aa938a0450d94dd5e", - "sha256:da1a1a7ca977b38e952ab0a119576e002bc4c05d058d644e81fc06ef7e995bb0" + "sha256:924a38fda88f675ec6835667e1d32ac37ff0d65509c2152729d16ff205e32a65", + "sha256:f17f877be1d93b9e3191151584a19d8b367b017ab0febc8c5472b9300da61c4c" ], "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'", - "version": "==1.3.14" + "version": "==1.3.15" }, "cryptography": { "hashes": [ - "sha256:05dc219433b14046c476f6f09d7636b92a1c3e5808b9a6536adf4932b3b2c440", - "sha256:0dcca15d3a19a66e63662dc8d30f8036b07be851a8680eda92d079868f106288", - "sha256:142bae539ef28a1c76794cca7f49729e7c54423f615cfd9b0b1fa90ebe53244b", - "sha256:3daf9b114213f8ba460b829a02896789751626a2a4e7a43a28ee77c04b5e4958", - "sha256:48f388d0d153350f378c7f7b41497a54ff1513c816bcbbcafe5b829e59b9ce5b", - "sha256:4df2af28d7bedc84fe45bd49bc35d710aede676e2a4cb7fc6d103a2adc8afe4d", - "sha256:4f01c9863da784558165f5d4d916093737a75203a5c5286fde60e503e4276c7a", - "sha256:7a38250f433cd41df7fcb763caa3ee9362777fdb4dc642b9a349721d2bf47404", - "sha256:8f79b5ff5ad9d3218afb1e7e20ea74da5f76943ee5edb7f76e56ec5161ec782b", - "sha256:956ba8701b4ffe91ba59665ed170a2ebbdc6fc0e40de5f6059195d9f2b33ca0e", - "sha256:a04386fb7bc85fab9cd51b6308633a3c271e3d0d3eae917eebab2fac6219b6d2", - "sha256:a95f4802d49faa6a674242e25bfeea6fc2acd915b5e5e29ac90a32b1139cae1c", - "sha256:adc0d980fd2760c9e5de537c28935cc32b9353baaf28e0814df417619c6c8c3b", - "sha256:aecbb1592b0188e030cb01f82d12556cf72e218280f621deed7d806afd2113f9", - "sha256:b12794f01d4cacfbd3177b9042198f3af1c856eedd0a98f10f141385c809a14b", - "sha256:c0764e72b36a3dc065c155e5b22f93df465da9c39af65516fe04ed3c68c92636", - "sha256:c33c0d32b8594fa647d2e01dbccc303478e16fdd7cf98652d5b3ed11aa5e5c99", - "sha256:cbaba590180cba88cb99a5f76f90808a624f18b169b90a4abb40c1fd8c19420e", - "sha256:d5a1bd0e9e2031465761dfa920c16b0065ad77321d8a8c1f5ee331021fda65e9" + "sha256:0ddaee209d1cf1f180f1efa338a68c4621154de0afaef92b89486f5f96047c55", + "sha256:14754bcdae909d66ff24b7b5f166d69340ccc6cb15731670435efd5719294895", + "sha256:344c6de9f8bda3c425b3a41b319522ba3208551b70c2ae00099c205f0d9fd3be", + "sha256:34d405ea69a8b34566ba3dfb0521379b210ea5d560fafedf9f800a9a94a41928", + "sha256:3680248309d340fda9611498a5319b0193a8dbdb73586a1acf8109d06f25b92d", + "sha256:3c5ef25d060c80d6d9f7f9892e1d41bb1c79b78ce74805b8cb4aa373cb7d5ec8", + "sha256:4ab14d567f7bbe7f1cdff1c53d5324ed4d3fc8bd17c481b395db224fb405c237", + "sha256:5c1f7293c31ebc72163a9a0df246f890d65f66b4a40d9ec80081969ba8c78cc9", + "sha256:6b71f64beeea341c9b4f963b48ee3b62d62d57ba93eb120e1196b31dc1025e78", + "sha256:7d92f0248d38faa411d17f4107fc0bce0c42cae0b0ba5415505df72d751bf62d", + "sha256:8362565b3835ceacf4dc8f3b56471a2289cf51ac80946f9087e66dc283a810e0", + "sha256:84a165379cb9d411d58ed739e4af3396e544eac190805a54ba2e0322feb55c46", + "sha256:88ff107f211ea696455ea8d911389f6d2b276aabf3231bf72c8853d22db755c5", + "sha256:9f65e842cb02550fac96536edb1d17f24c0a338fd84eaf582be25926e993dde4", + "sha256:a4fc68d1c5b951cfb72dfd54702afdbbf0fb7acdc9b7dc4301bbf2225a27714d", + "sha256:b7f2f5c525a642cecad24ee8670443ba27ac1fab81bba4cc24c7b6b41f2d0c75", + "sha256:b846d59a8d5a9ba87e2c3d757ca019fa576793e8758174d3868aecb88d6fc8eb", + "sha256:bf8fc66012ca857d62f6a347007e166ed59c0bc150cefa49f28376ebe7d992a2", + "sha256:f5d0bf9b252f30a31664b6f64432b4730bb7038339bd18b1fafe129cfc2be9be" ], - "markers": "python_version >= '3.6'", - "version": "==40.0.2" + "index": "pypi", + "version": "==41.0.0" }, "dateparser": { "hashes": [ @@ -305,19 +305,27 @@ }, "deprecated": { "hashes": [ - "sha256:43ac5335da90c31c24ba028af536a91d41d53f9e6901ddb021bcc572ce44e38d", - "sha256:64756e3e14c8c5eea9795d93c524551432a0be75629f8f29e67ab8caf076c76d" + "sha256:6fac8b097794a90302bdbb17b9b815e732d3c4720583ff1b198499d78470466c", + "sha256:e5323eb936458dccc2582dc6f9c322c852a775a27065ff2b0c4970b9d53d01b3" ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", - "version": "==1.2.13" + "version": "==1.2.14" }, "docker": { "hashes": [ - "sha256:134cd828f84543cbf8e594ff81ca90c38288df3c0a559794c12f2e4b634ea19e", - "sha256:dcc088adc2ec4e7cfc594e275d8bd2c9738c56c808de97476939ef67db5af8c2" + "sha256:aa6d17830045ba5ef0168d5eaa34d37beeb113948c413affe1d5991fc11f9a20", + "sha256:aecd2277b8bf8e506e484f6ab7aec39abe0038e29fa4a6d3ba86c3fe01844ed9" ], "markers": "python_version >= '3.7'", - "version": "==6.1.2" + "version": "==6.1.3" + }, + "exceptiongroup": { + "hashes": [ + "sha256:232c37c63e4f682982c8b6459f33a8981039e5fb8756b2074364e5055c498c9e", + "sha256:d484c3090ba2889ae2928419117447a14daf3c1231d5e30d0aae34f354f01785" + ], + "markers": "python_version < '3.11'", + "version": "==1.1.1" }, "fastapi": { "hashes": [ @@ -337,11 +345,11 @@ }, "google-auth": { "hashes": [ - "sha256:c66b488a8b005b23ccb97b1198b6cece516c91869091ac5b7c267422db2733c7", - "sha256:ef3f3a67fa54d421a1c155864570f9a8de9179cedc937bda496b7a8ca338e936" + "sha256:a9cfa88b3e16196845e64a3658eb953992129d13ac7337b064c6546f77c17183", + "sha256:ea165e014c7cbd496558796b627c271aa8c18b4cba79dc1cc962b24c5efdfb85" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'", - "version": "==2.18.0" + "markers": "python_version >= '3.6'", + "version": "==2.19.1" }, "greenlet": { "hashes": [ @@ -411,11 +419,11 @@ }, "griffe": { "hashes": [ - "sha256:15b48fc3cebfc1c1a1a2f6e8177f6644a4a54517322e08e224fdf671454b34d7", - "sha256:96fbc7a264bdb32b4da227bed6a16f2509e028a12d7471dbb48c2785bb01817f" + "sha256:6fc892aaa251b3761e3a8d2f5893758e1850ec5d81d4605c4557be0666202a0b", + "sha256:e62ff34b04630c2382e2e277301cb2c29221fb09c04028e62ef35afccc64344b" ], "markers": "python_version >= '3.7'", - "version": "==0.27.5" + "version": "==0.29.0" }, "h11": { "hashes": [ @@ -442,22 +450,22 @@ }, "httpcore": { "hashes": [ - "sha256:0fdfea45e94f0c9fd96eab9286077f9ff788dd186635ae61b312693e4d943599", - "sha256:cc045a3241afbf60ce056202301b4d8b6af08845e3294055eb26b09913ef903c" + "sha256:125f8375ab60036db632f34f4b627a9ad085048eef7cb7d2616fea0f739f98af", + "sha256:5581b9c12379c4288fe70f43c710d16060c10080617001e6b22a3b6dbcbefd36" ], "markers": "python_version >= '3.7'", - "version": "==0.17.0" + "version": "==0.17.2" }, "httpx": { "extras": [ "http2" ], "hashes": [ - "sha256:447556b50c1921c351ea54b4fe79d91b724ed2b027462ab9a329465d147d5a4e", - "sha256:507d676fc3e26110d41df7d35ebd8b3b8585052450f4097401c9be59d928c63e" + "sha256:06781eb9ac53cde990577af654bd990a4949de37a28bdb4a230d434f3a30b9bd", + "sha256:5853a43053df830c20f8110c5e69fe44d035d850b2dfe795e196f00fdb774bdd" ], "markers": "python_version >= '3.7'", - "version": "==0.24.0" + "version": "==0.24.1" }, "hyperframe": { "hashes": [ @@ -718,55 +726,55 @@ }, "orjson": { "hashes": [ - "sha256:062e67108c218fdb9475edd5272b1629c05b56c66416fa915de5656adde30e73", - "sha256:06e528f9a84fbb4000fd0eee573b5db543ee70ae586fdbc53e740b0ac981701c", - "sha256:0ba645c92801417933fa74448622ba614a275ea82df05e888095c7742d913bb4", - "sha256:135f29cf936283a0cd1b8bce86540ca181108f2a4d4483eedad6b8026865d2a9", - "sha256:29706dd8189835bcf1781faed286e99ae54fd6165437d364dfdbf0276bf39b19", - "sha256:2ad149ed76dce2bbdfbadd61c35959305e77141badf364a158beb4ef3d88ec37", - "sha256:355055e0977c43b0e5325b9312b7208c696fe20cd54eed1d6fc80b0a4d6721f5", - "sha256:397670665f94cf5cff779054781d80395084ba97191d82f7b3a86f0a20e6102b", - "sha256:3fa58ca064c640fa9d823f98fbbc8e71940ecb78cea3ac2507da1cbf49d60b51", - "sha256:44f7bb4c995652106276442de1147c9993716d1e2d79b7fd435afa154ff236b9", - "sha256:4fd240e736ce52cd757d74142d9933fd35a3184396be887c435f0574e0388654", - "sha256:62f999798f2fa55e567d483864ebfc30120fb055c2696a255979439323a5b15c", - "sha256:6cae2ff288a80e81ce30313e735c5436495ab58cf8d4fbe84900e616d0ee7a78", - "sha256:6d1acf52d3a4b9384af09a5c2658c3a7a472a4d62a0ad1fe2c8fab8ef460c9b4", - "sha256:6f1b01f641f5e87168b819ac1cbd81aa6278e7572c326f3d27e92dea442a2c0d", - "sha256:6f568205519bb0197ca91915c5da6058cfbb59993e557b02dfc3b2718b34770a", - "sha256:710c40c214b753392e46f9275fd795e9630dd737a5ab4ac6e4ee1a02fe83cc0d", - "sha256:77710774faed337ac4ad919dadc5f3b655b0cd40518e5386e6f1f116de9c6c25", - "sha256:7d50d9b1ae409ea15534365fec0ce8a5a5f7dc94aa790aacfb8cfec87ab51aa4", - "sha256:7d63f524048825e05950db3b6998c756d5377a5e8c469b2e3bdb9f3217523d74", - "sha256:7e405d54c84c30d9b1c918c290bcf4ef484a45c69d5583a95db81ffffba40b44", - "sha256:7e549468867991f6f9cfbd9c5bbc977330173bd8f6ceb79973bbd4634e13e1b9", - "sha256:82d65e478a21f98107b4eb8390104746bb3024c27084b57edab7d427385f1f70", - "sha256:834b50df79f1fe89bbaced3a1c1d8c8c92cc99e84cdcd374d8da4974b3560d2a", - "sha256:83e8c740a718fa6d511a82e463adc7ab17631c6eea81a716b723e127a9c51d57", - "sha256:8682f752c19f6a7d9fc727fd98588b4c8b0dce791b5794bb814c7379ccd64a79", - "sha256:8d153b228b6e24f8bccf732a51e01e8e938eef59efed9030c5c257778fbe0804", - "sha256:8f00038bf5d07439d13c0c2c5cd6ad48eb86df7dbd7a484013ce6a113c421b14", - "sha256:96fb1eb82b578eb6c0e53e3cf950839fe98ea210626f87c8204bd4fc2cc6ba02", - "sha256:9a6c1594d5a9ff56e5babc4a87ac372af38d37adef9e06744e9f158431e33f43", - "sha256:9f0f042cf002a474a6aea006dd9f8d7a5497e35e5fb190ec78eb4d232ec19955", - "sha256:a72b50719bdd6bb0acfca3d4d1c841aa4b191f3ff37268e7aba04e5d6be44ccd", - "sha256:aff761de5ed5543a0a51e9f703668624749aa2239de5d7d37d9c9693daeaf5dc", - "sha256:becbd5af6d035a7ec2ee3239d4700929d52d8517806b97dd04efcc37289403f7", - "sha256:c6390ce0bce24c107fc275736aa8a4f768ef7eb5df935d7dca0cc99815eb5d99", - "sha256:c84046e890e13a119404a83f2e09e622509ed4692846ff94c4ca03654fbc7fb5", - "sha256:cd6fbd1413559572e81b5ac64c45388147c3ba85cc3df2eaa11002945e0dbd1f", - "sha256:d937503e4dfba5edc8d5e0426d3cc97ed55716e93212b2e12a198664487b9965", - "sha256:dc27a8ec13f28e92dc1ea89bf1232d77e7d3ebfd5c1ccf4f3729a70561cb63bd", - "sha256:de3d096dde3e46d01841abc1982b906694ab3c92f338d37a2e6184739dc8a958", - "sha256:eb16e0195febd24b44f4db1ab3be85ecf6038f92fd511370cebc004b3d422294", - "sha256:ebb03e4c7648f7bb299872002a6120082da018f41ba7a9ebf4ceae8d765443d2", - "sha256:ec4f0130d9a27cb400423e09e0f9e46480e9e977f05fdcf663a7a2c68735513e", - "sha256:efb3a10030462a22c731682434df5c137a67632a8339f821cd501920b169007e", - "sha256:f480ae7b84369b1860d8867f0baf8d885fede400fda390ce088bfa8edf97ffdc", - "sha256:f4e22b0aa70c963ac01fcd620de15be21a5027711b0e5d4b96debcdeea43e3ae" - ], - "markers": "python_version >= '3.7'", - "version": "==3.8.12" + "sha256:04e61db09ff155846b69d07cf5aa21001f2010ea669ec3169c1fbad9c9e40cd5", + "sha256:08cb43569198c1f5c89ecafcbfc62414f6115d894ff908d8cf8e5e24801364e6", + "sha256:09522937479bd39d5bb32d11a5ecdf6926fda43ac2cbde21cc1a9508b4e4ea29", + "sha256:09ee828572fadcd58bf356d2c1bad99a95c7c9c1f182b407abbc7dec1810f542", + "sha256:0e7fe5d603ee9177ff2e45858b4fc47fea2da0688f23d9773654889d56dfbc82", + "sha256:108c58d2c7648c991f82f9b2217c50981ad7cf6aaee3efbfaa9d807e49cd69b8", + "sha256:128b1cd0f00a37ba64a12cceeba4e8070655d4400edd55a737513ee663c1ed5a", + "sha256:1e3bde77c1e0061eb34bae6fea44818b2198e043ee10a16ad7b160921fee26ea", + "sha256:21f6a6fdfbc13cd715c61e9fa9daeff732df6401ab7d6a2ebad0042313a40bd1", + "sha256:2536a7f30fd4d77532769ea9285cd20c69bd2b40acf980de94bbc79b1c6fad5a", + "sha256:271b6f1018757fc6bca40ae72e6cdb6cf84584dde2d1e5eaac30e387a13d9e72", + "sha256:2af7dff1c7ddb0c83eb5773acf6566b153f8cd32e4ba782ae9ccd6d0f324efd3", + "sha256:3235c31d0fe674f6e3433e9ddfed212aa840c83a9b6ef5ae128950e2c808c303", + "sha256:3a208d0bca609de3152eb8320d5093ad9c52979332f626c13500d1645c66bf8d", + "sha256:3f1193417b5a93deb41bcb8db27b61179b9b3e299b337b578c31f19159664da3", + "sha256:44fa74b497e608a8cdca1ee37fe3533a30f17163c7e2872ab1b854900cf0dfcf", + "sha256:45df5bf6531ffda518331cc93cdcd4c84f4a4a0507d72af8fb698c7131a440a0", + "sha256:46c9733330b75c116438f555c0b971a2388b5f502e2dd4ec3bf6bacb96f82741", + "sha256:47d7e4a3effc0e9314bd5b06e7431f2490a5e64dcdcbbc4d60e713786fec327d", + "sha256:5afd22847b07b63f2b8fcfddd5b7a6f47c5aaa25e19b97a3d6d39508b8fd465a", + "sha256:6c50654e4870805e4b1a587c2c3c5ef2f36f3e67fc463a738339ff40d65f7db1", + "sha256:721d47dffedb7795ffea8a06f2de7d192de7b58e085cf357a99abf0eb931f2c3", + "sha256:748c1e8df0b0880c63d323e167ad17ab4db2e1178a40902c2fcb68cbe402d7c8", + "sha256:7a3693fde44b2eeb80074ecbe8c504b25baf71e66c080af2a574193a5ba81960", + "sha256:86da00836029b2a071229c8aecab998a2f316c1bc7de10ae020d7311de3a6d0d", + "sha256:88626d898c408450c57664899831cf072787898af4847fa4466607ad2a83f454", + "sha256:8a1fcddcabe121e393f3c4a31ed6d3535214d42a4ece0f9dde2e250006d6a58d", + "sha256:949698bdddb1daff986d73e6bbe6cd68833cd80c4adc6b69fafbd46634d4672c", + "sha256:9de2129d40674007cb24164939e075b5b39fee768bf20801e08c0e3283bfb18e", + "sha256:9ee5f1ba82146a50d61fb58d310a37c0f406eda898172f9c98673b5d6f9461c3", + "sha256:a901c432828c191332d75f358142736c433d4a192f7794123e1d30d68193de86", + "sha256:bd89d63707ac616462832bfc5d16fa0c12483f86add2432ce55c8710c9531c03", + "sha256:c41d1ef6ec308e9e3701764b3de889ed8c1c126eceaea881dd1027bffbed89fe", + "sha256:c4949fc1304b702197c0840882e84b86d8d5ca33c3d945cc60727bc1786c2b20", + "sha256:c68af71b1110820c914f9df75842895b5528ff524d3286fde57097b2b5ed8f22", + "sha256:c7b241c3229084035b38cac9b5c96b43644da829da41d9d5be0fefb96fb116e1", + "sha256:d2fbf34667a8be48ec89d5ef479a00d4e7b3acda62d722c97377702da0c30ffd", + "sha256:d414fd0678e949779104f5b307f0f9fac861728e19d3cdde66759af77f892da0", + "sha256:d4c2d31178e3027affd98eead033f1c406890df83a0ca2016604cc21f722a1d1", + "sha256:d4fcf598bd5a99a94caa7ec92ce657939f12491e4753ea7e4d6c03faf5f7912e", + "sha256:e44ebe2129d43c5a48f3affa3fa59c6484ed16faf5b00486add1061a95384ab0", + "sha256:ebe372e9f4e4f0335b7b4ebfab991b3734371e3d5b7f989ca3baa5da25185f4a", + "sha256:edd77183c154cbedaa6dac32fee9cb770b04e2a7f367a5864f444578554cc946", + "sha256:f6476e2487c0b7387187de15e5b8f6635c29b75934f2e689ca8cad6550439f3d", + "sha256:f6ab80b60195f166a9d666b2eaf6d2c74202b6da2a1fb4b4d66b9cc0ce5c9957", + "sha256:f6dd27c71cd6e146795f876449a8eae74f67ae1e4e244dfc1203489103eb2d94" + ], + "markers": "python_version >= '3.7'", + "version": "==3.9.0" }, "packaging": { "hashes": [ @@ -778,34 +786,34 @@ }, "pandas": { "hashes": [ - "sha256:00959a04a1d7bbc63d75a768540fb20ecc9e65fd80744c930e23768345a362a7", - "sha256:03e677c6bc9cfb7f93a8b617d44f6091613a5671ef2944818469be7b42114a00", - "sha256:0a514ae436b23a92366fbad8365807fc0eed15ca219690b3445dcfa33597a5cc", - "sha256:12bd6618e3cc737c5200ecabbbb5eaba8ab645a4b0db508ceeb4004bb10b060e", - "sha256:18d22cb9043b6c6804529810f492ab09d638ddf625c5dea8529239607295cb59", - "sha256:19b8e5270da32b41ebf12f0e7165efa7024492e9513fb46fb631c5022ae5709d", - "sha256:2b6fe5f7ce1cba0e74188c8473c9091ead9b293ef0a6794939f8cc7947057abd", - "sha256:320b180d125c3842c5da5889183b9a43da4ebba375ab2ef938f57bf267a3c684", - "sha256:3d099ecaa5b9e977b55cd43cf842ec13b14afa1cfa51b7e1179d90b38c53ce6a", - "sha256:6c0853d487b6c868bf107a4b270a823746175b1932093b537b9b76c639fc6f7e", - "sha256:6fa0067f2419f933101bdc6001bcea1d50812afbd367b30943417d67fbb99678", - "sha256:70a996a1d2432dadedbb638fe7d921c88b0cc4dd90374eab51bb33dc6c0c2a12", - "sha256:7b8395d335b08bc8b050590da264f94a439b4770ff16bb51798527f1dd840388", - "sha256:7bbf173d364130334e0159a9a034f573e8b44a05320995127cf676b85fd8ce86", - "sha256:8db5a644d184a38e6ed40feeb12d410d7fcc36648443defe4707022da127fc35", - "sha256:909a72b52175590debbf1d0c9e3e6bce2f1833c80c76d80bd1aa09188be768e5", - "sha256:90d1d365d77d287063c5e339f49b27bd99ef06d10a8843cf00b1a49326d492c1", - "sha256:910df06feaf9935d05247db6de452f6d59820e432c18a2919a92ffcd98f8f79b", - "sha256:99f7192d8b0e6daf8e0d0fd93baa40056684e4b4aaaef9ea78dff34168e1f2f0", - "sha256:a2564629b3a47b6aa303e024e3d84e850d36746f7e804347f64229f8c87416ea", - "sha256:a37ee35a3eb6ce523b2c064af6286c45ea1c7ff882d46e10d0945dbda7572753", - "sha256:af2449e9e984dfad39276b885271ba31c5e0204ffd9f21f287a245980b0e4091", - "sha256:e09a53a4fe8d6ae2149959a2d02e1ef2f4d2ceb285ac48f74b79798507e468b4", - "sha256:f25e23a03f7ad7211ffa30cb181c3e5f6d96a8e4cb22898af462a7333f8a74eb", - "sha256:fe7914d8ddb2d54b900cec264c090b88d141a1eed605c9539a187dbc2547f022" + "sha256:02755de164da6827764ceb3bbc5f64b35cb12394b1024fdf88704d0fa06e0e2f", + "sha256:0a1e0576611641acde15c2322228d138258f236d14b749ad9af498ab69089e2d", + "sha256:1eb09a242184092f424b2edd06eb2b99d06dc07eeddff9929e8667d4ed44e181", + "sha256:30a89d0fec4263ccbf96f68592fd668939481854d2ff9da709d32a047689393b", + "sha256:50e451932b3011b61d2961b4185382c92cc8c6ee4658dcd4f320687bb2d000ee", + "sha256:51a93d422fbb1bd04b67639ba4b5368dffc26923f3ea32a275d2cc450f1d1c86", + "sha256:598e9020d85a8cdbaa1815eb325a91cfff2bb2b23c1442549b8a3668e36f0f77", + "sha256:66d00300f188fa5de73f92d5725ced162488f6dc6ad4cecfe4144ca29debe3b8", + "sha256:69167693cb8f9b3fc060956a5d0a0a8dbfed5f980d9fd2c306fb5b9c855c814c", + "sha256:6d6d10c2142d11d40d6e6c0a190b1f89f525bcf85564707e31b0a39e3b398e08", + "sha256:713f2f70abcdade1ddd68fc91577cb090b3544b07ceba78a12f799355a13ee44", + "sha256:7376e13d28eb16752c398ca1d36ccfe52bf7e887067af9a0474de6331dd948d2", + "sha256:77550c8909ebc23e56a89f91b40ad01b50c42cfbfab49b3393694a50549295ea", + "sha256:7b21cb72958fc49ad757685db1919021d99650d7aaba676576c9e88d3889d456", + "sha256:9ebb9f1c22ddb828e7fd017ea265a59d80461d5a79154b49a4207bd17514d122", + "sha256:a18e5c72b989ff0f7197707ceddc99828320d0ca22ab50dd1b9e37db45b010c0", + "sha256:a6b5f14cd24a2ed06e14255ff40fe2ea0cfaef79a8dd68069b7ace74bd6acbba", + "sha256:b42b120458636a981077cfcfa8568c031b3e8709701315e2bfa866324a83efa8", + "sha256:c4af689352c4fe3d75b2834933ee9d0ccdbf5d7a8a7264f0ce9524e877820c08", + "sha256:c7319b6e68de14e6209460f72a8d1ef13c09fb3d3ef6c37c1e65b35d50b5c145", + "sha256:cf3f0c361a4270185baa89ec7ab92ecaa355fe783791457077473f974f654df5", + "sha256:dd46bde7309088481b1cf9c58e3f0e204b9ff9e3244f441accd220dd3365ce7c", + "sha256:dd5476b6c3fe410ee95926873f377b856dbc4e81a9c605a0dc05aaccc6a7c6c6", + "sha256:e69140bc2d29a8556f55445c15f5794490852af3de0f609a24003ef174528b79", + "sha256:f908a77cbeef9bbd646bd4b81214cbef9ac3dda4181d5092a4aa9797d1bc7774" ], "markers": "python_version >= '3.8'", - "version": "==2.0.1" + "version": "==2.0.2" }, "pathspec": { "hashes": [ @@ -852,11 +860,11 @@ }, "prefect": { "hashes": [ - "sha256:01093f9f10fec16576d7fc5833b168c9e98936f4461037cf22d122798ff01531", - "sha256:0e783af3e6b88eb9bdf1695052c2f0fd2b6d80d9b43274bed8645fbb2fedac7e" + "sha256:91b7b0c4b68beec6ffa251897abc4548b14e22ca23cc969197ad837786c55844", + "sha256:ca3e55c21ddeefee269bfc845f40fde119747dd84d28818098ccffba484cf96e" ], "markers": "python_version >= '3.7'", - "version": "==2.10.9" + "version": "==2.10.12" }, "pyasn1": { "hashes": [ @@ -883,45 +891,45 @@ }, "pydantic": { "hashes": [ - "sha256:01aea3a42c13f2602b7ecbbea484a98169fb568ebd9e247593ea05f01b884b2e", - "sha256:0cd181f1d0b1d00e2b705f1bf1ac7799a2d938cce3376b8007df62b29be3c2c6", - "sha256:10a86d8c8db68086f1e30a530f7d5f83eb0685e632e411dbbcf2d5c0150e8dcd", - "sha256:193924c563fae6ddcb71d3f06fa153866423ac1b793a47936656e806b64e24ca", - "sha256:464855a7ff7f2cc2cf537ecc421291b9132aa9c79aef44e917ad711b4a93163b", - "sha256:516f1ed9bc2406a0467dd777afc636c7091d71f214d5e413d64fef45174cfc7a", - "sha256:6434b49c0b03a51021ade5c4daa7d70c98f7a79e95b551201fff682fc1661245", - "sha256:64d34ab766fa056df49013bb6e79921a0265204c071984e75a09cbceacbbdd5d", - "sha256:670bb4683ad1e48b0ecb06f0cfe2178dcf74ff27921cdf1606e527d2617a81ee", - "sha256:68792151e174a4aa9e9fc1b4e653e65a354a2fa0fed169f7b3d09902ad2cb6f1", - "sha256:701daea9ffe9d26f97b52f1d157e0d4121644f0fcf80b443248434958fd03dc3", - "sha256:7d45fc99d64af9aaf7e308054a0067fdcd87ffe974f2442312372dfa66e1001d", - "sha256:80b1fab4deb08a8292d15e43a6edccdffa5377a36a4597bb545b93e79c5ff0a5", - "sha256:82dffb306dd20bd5268fd6379bc4bfe75242a9c2b79fec58e1041fbbdb1f7914", - "sha256:8c7f51861d73e8b9ddcb9916ae7ac39fb52761d9ea0df41128e81e2ba42886cd", - "sha256:950ce33857841f9a337ce07ddf46bc84e1c4946d2a3bba18f8280297157a3fd1", - "sha256:976cae77ba6a49d80f461fd8bba183ff7ba79f44aa5cfa82f1346b5626542f8e", - "sha256:9f6f0fd68d73257ad6685419478c5aece46432f4bdd8d32c7345f1986496171e", - "sha256:a7cd2251439988b413cb0a985c4ed82b6c6aac382dbaff53ae03c4b23a70e80a", - "sha256:abfb7d4a7cd5cc4e1d1887c43503a7c5dd608eadf8bc615413fc498d3e4645cd", - "sha256:ae150a63564929c675d7f2303008d88426a0add46efd76c3fc797cd71cb1b46f", - "sha256:b0f85904f73161817b80781cc150f8b906d521fa11e3cdabae19a581c3606209", - "sha256:b4a849d10f211389502059c33332e91327bc154acc1845f375a99eca3afa802d", - "sha256:c15582f9055fbc1bfe50266a19771bbbef33dd28c45e78afbe1996fd70966c2a", - "sha256:c230c0d8a322276d6e7b88c3f7ce885f9ed16e0910354510e0bae84d54991143", - "sha256:cc1dde4e50a5fc1336ee0581c1612215bc64ed6d28d2c7c6f25d2fe3e7c3e918", - "sha256:cf135c46099ff3f919d2150a948ce94b9ce545598ef2c6c7bf55dca98a304b52", - "sha256:cfc83c0678b6ba51b0532bea66860617c4cd4251ecf76e9846fa5a9f3454e97e", - "sha256:d2a5ebb48958754d386195fe9e9c5106f11275867051bf017a8059410e9abf1f", - "sha256:d71e69699498b020ea198468e2480a2f1e7433e32a3a99760058c6520e2bea7e", - "sha256:d75ae19d2a3dbb146b6f324031c24f8a3f52ff5d6a9f22f0683694b3afcb16fb", - "sha256:dfe2507b8ef209da71b6fb5f4e597b50c5a34b78d7e857c4f8f3115effaef5fe", - "sha256:e0cfe895a504c060e5d36b287ee696e2fdad02d89e0d895f83037245218a87fe", - "sha256:e79e999e539872e903767c417c897e729e015872040e56b96e67968c3b918b2d", - "sha256:ecbbc51391248116c0a055899e6c3e7ffbb11fb5e2a4cd6f2d0b93272118a209", - "sha256:f4a2b50e2b03d5776e7f21af73e2070e1b5c0d0df255a827e7c632962f8315af" - ], - "markers": "python_version >= '3.7'", - "version": "==1.10.7" + "sha256:052d8654cb65174d6f9490cc9b9a200083a82cf5c3c5d3985db765757eb3b375", + "sha256:0c6fafa0965b539d7aab0a673a046466d23b86e4b0e8019d25fd53f4df62c277", + "sha256:1243d28e9b05003a89d72e7915fdb26ffd1d39bdd39b00b7dbe4afae4b557f9d", + "sha256:12f7b0bf8553e310e530e9f3a2f5734c68699f42218bf3568ef49cd9b0e44df4", + "sha256:1410275520dfa70effadf4c21811d755e7ef9bb1f1d077a21958153a92c8d9ca", + "sha256:16f8c3e33af1e9bb16c7a91fc7d5fa9fe27298e9f299cff6cb744d89d573d62c", + "sha256:17aef11cc1b997f9d574b91909fed40761e13fac438d72b81f902226a69dac01", + "sha256:191ba419b605f897ede9892f6c56fb182f40a15d309ef0142212200a10af4c18", + "sha256:1952526ba40b220b912cdc43c1c32bcf4a58e3f192fa313ee665916b26befb68", + "sha256:1ced8375969673929809d7f36ad322934c35de4af3b5e5b09ec967c21f9f7887", + "sha256:2e4148e635994d57d834be1182a44bdb07dd867fa3c2d1b37002000646cc5459", + "sha256:34d327c81e68a1ecb52fe9c8d50c8a9b3e90d3c8ad991bfc8f953fb477d42fb4", + "sha256:35db5301b82e8661fa9c505c800d0990bc14e9f36f98932bb1d248c0ac5cada5", + "sha256:3e59417ba8a17265e632af99cc5f35ec309de5980c440c255ab1ca3ae96a3e0e", + "sha256:42aa0c4b5c3025483240a25b09f3c09a189481ddda2ea3a831a9d25f444e03c1", + "sha256:666bdf6066bf6dbc107b30d034615d2627e2121506c555f73f90b54a463d1f33", + "sha256:66a703d1983c675a6e0fed8953b0971c44dba48a929a2000a493c3772eb61a5a", + "sha256:6a82d6cda82258efca32b40040228ecf43a548671cb174a1e81477195ed3ed56", + "sha256:6f2e754d5566f050954727c77f094e01793bcb5725b663bf628fa6743a5a9108", + "sha256:7456eb22ed9aaa24ff3e7b4757da20d9e5ce2a81018c1b3ebd81a0b88a18f3b2", + "sha256:7b1f6cb446470b7ddf86c2e57cd119a24959af2b01e552f60705910663af09a4", + "sha256:7d5b8641c24886d764a74ec541d2fc2c7fb19f6da2a4001e6d580ba4a38f7878", + "sha256:84d80219c3f8d4cad44575e18404099c76851bc924ce5ab1c4c8bb5e2a2227d0", + "sha256:88f195f582851e8db960b4a94c3e3ad25692c1c1539e2552f3df7a9e972ef60e", + "sha256:93e6bcfccbd831894a6a434b0aeb1947f9e70b7468f274154d03d71fabb1d7c6", + "sha256:93e766b4a8226e0708ef243e843105bf124e21331694367f95f4e3b4a92bbb3f", + "sha256:ab523c31e22943713d80d8d342d23b6f6ac4b792a1e54064a8d0cf78fd64e800", + "sha256:bb14388ec45a7a0dc429e87def6396f9e73c8c77818c927b6a60706603d5f2ea", + "sha256:c0ab53b609c11dfc0c060d94335993cc2b95b2150e25583bec37a49b2d6c6c3f", + "sha256:c33b60054b2136aef8cf190cd4c52a3daa20b2263917c49adad20eaf381e823b", + "sha256:ceb6a23bf1ba4b837d0cfe378329ad3f351b5897c8d4914ce95b85fba96da5a1", + "sha256:d532bf00f381bd6bc62cabc7d1372096b75a33bc197a312b03f5838b4fb84edd", + "sha256:df7800cb1984d8f6e249351139667a8c50a379009271ee6236138a22a0c0f319", + "sha256:e82d4566fcd527eae8b244fa952d99f2ca3172b7e97add0b43e2d97ee77f81ab", + "sha256:f90c1e29f447557e9e26afb1c4dbf8768a10cc676e3781b6a577841ade126b85", + "sha256:f9613fadad06b4f3bc5db2653ce2f22e0de84a7c6c293909b48f6ed37b83c61f" + ], + "markers": "python_version >= '3.7'", + "version": "==1.10.8" }, "pygments": { "hashes": [ @@ -1161,18 +1169,18 @@ }, "rich": { "hashes": [ - "sha256:2d11b9b8dd03868f09b4fffadc84a6a8cda574e40dc90821bd845720ebb8e89c", - "sha256:69cdf53799e63f38b95b9bf9c875f8c90e78dd62b2f00c13a911c7a3b9fa4704" + "sha256:76f6b65ea7e5c5d924ba80e322231d7cb5b5981aa60bfc1e694f1bc097fe6fe1", + "sha256:d204aadb50b936bf6b1a695385429d192bc1fdaf3e8b907e8e26f4c4e4b5bf75" ], "markers": "python_version >= '3.7'", - "version": "==13.3.5" + "version": "==13.4.1" }, "rsa": { "hashes": [ "sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7", "sha256:e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21" ], - "markers": "python_version >= '3.6'", + "markers": "python_version >= '3.6' and python_version < '4'", "version": "==4.9" }, "s3transfer": { @@ -1209,11 +1217,11 @@ }, "setuptools": { "hashes": [ - "sha256:23aaf86b85ca52ceb801d32703f12d77517b2556af839621c641fca11287952b", - "sha256:f104fa03692a2602fa0fec6c6a9e63b6c8a968de13e17c026957dd1f53d80990" + "sha256:5df61bf30bb10c6f756eb19e7c9f3b473051f48db77fddbe06ff2ca307df9a6f", + "sha256:62642358adc77ffa87233bc4d2354c4b2682d214048f500964dbe760ccedf102" ], "markers": "python_version >= '3.7'", - "version": "==67.7.2" + "version": "==67.8.0" }, "sevenbridges-python": { "hashes": [ @@ -1243,57 +1251,57 @@ "asyncio" ], "hashes": [ - "sha256:005e942b451cad5285015481ae4e557ff4154dde327840ba91b9ac379be3b6ce", - "sha256:066c2b0413e8cb980e6d46bf9d35ca83be81c20af688fedaef01450b06e4aa5e", - "sha256:0817c181271b0ce5df1aa20949f0a9e2426830fed5ecdcc8db449618f12c2730", - "sha256:11c6b1de720f816c22d6ad3bbfa2f026f89c7b78a5c4ffafb220e0183956a92a", - "sha256:1fd8b5ee5a3acc4371f820934b36f8109ce604ee73cc668c724abb054cebcb6e", - "sha256:25887b4f716e085a1c5162f130b852f84e18d2633942c8ca40dfb8519367c14f", - "sha256:2b562e9d1e59be7833edf28b0968f156683d57cabd2137d8121806f38a9d58f4", - "sha256:2b9af65cc58726129d8414fc1a1a650dcdd594ba12e9c97909f1f57d48e393d3", - "sha256:2ee26276f12614d47cc07bc85490a70f559cba965fb178b1c45d46ffa8d73fda", - "sha256:2fc2ab4d9f6d9218a5caa4121bdcf1125303482a1cdcfcdbd8567be8518969c0", - "sha256:3509159e050bd6d24189ec7af373359f07aed690db91909c131e5068176c5a5d", - "sha256:4355e5915844afdc5cf22ec29fba1010166e35dd94a21305f49020022167556b", - "sha256:44d29a3fc6d9c45962476b470a81983dd8add6ad26fdbfae6d463b509d5adcda", - "sha256:49c312bcff4728bffc6fb5e5318b8020ed5c8b958a06800f91859fe9633ca20e", - "sha256:4bac3aa3c3d8bc7408097e6fe8bf983caa6e9491c5d2e2488cfcfd8106f13b6a", - "sha256:5381ddd09a99638f429f4cbe1b71b025bed318f6a7b23e11d65f3eed5e181c33", - "sha256:627e04a5d54bd50628fc8734d5fc6df2a1aa5962f219c44aad50b00a6cdcf965", - "sha256:68413aead943883b341b2b77acd7a7fe2377c34d82e64d1840860247cec7ff7c", - "sha256:6dab89874e72a9ab5462997846d4c760cdb957958be27b03b49cf0de5e5c327c", - "sha256:6f82d8efea1ca92b24f51d3aea1a82897ed2409868a0af04247c8c1e4fef5890", - "sha256:7ad2b0f6520ed5038e795cc2852eb5c1f20fa6831d73301ced4aafbe3a10e1f6", - "sha256:87609f6d4e81a941a17e61a4c19fee57f795e96f834c4f0a30cee725fc3f81d9", - "sha256:92e6133cf337c42bfee03ca08c62ba0f2d9695618c8abc14a564f47503157be9", - "sha256:9af1db7a287ef86e0f5cd990b38da6bd9328de739d17e8864f1817710da2d217", - "sha256:9c8cfe951ed074ba5e708ed29c45397a95c4143255b0d022c7c8331a75ae61f3", - "sha256:9d9b55252d2ca42a09bcd10a697fa041e696def9dfab0b78c0aaea1485551a08", - "sha256:a1fc046756cf2a37d7277c93278566ddf8be135c6a58397b4c940abf837011f4", - "sha256:b47bc287096d989a0838ce96f7d8e966914a24da877ed41a7531d44b55cdb8df", - "sha256:c99bf13e07140601d111a7c6f1fc1519914dd4e5228315bbda255e08412f61a4", - "sha256:cbbe8b8bffb199b225d2fe3804421b7b43a0d49983f81dc654d0431d2f855543", - "sha256:ce7915eecc9c14a93b73f4e1c9d779ca43e955b43ddf1e21df154184f39748e5", - "sha256:cef2e2abc06eab187a533ec3e1067a71d7bbec69e582401afdf6d8cad4ba3515", - "sha256:d53cd8bc582da5c1c8c86b6acc4ef42e20985c57d0ebc906445989df566c5603", - "sha256:dbcae0e528d755f4522cad5842f0942e54b578d79f21a692c44d91352ea6d64e", - "sha256:e1ddbbcef9bcedaa370c03771ebec7e39e3944782bef49e69430383c376a250b", - "sha256:e3e98d4907805b07743b583a99ecc58bf8807ecb6985576d82d5e8ae103b5272", - "sha256:eb5464ee8d4bb6549d368b578e9529d3c43265007193597ddca71c1bae6174e6", - "sha256:eee09350fd538e29cfe3a496ec6f148504d2da40dbf52adefb0d2f8e4d38ccc4", - "sha256:fb0808ad34167f394fea21bd4587fc62f3bd81bba232a1e7fbdfa17e6cfa7cd7", - "sha256:fbde5642104ac6e95f96e8ad6d18d9382aa20672008cf26068fe36f3004491df", - "sha256:fe1dd2562313dd9fe1778ed56739ad5d9aae10f9f43d9f4cf81d65b0c85168bb" + "sha256:1a0754c2d9f0c7982bec0a31138e495ed1f6b8435d7e677c45be60ec18370acf", + "sha256:1d6320a1d175447dce63618ec997a53836de48ed3b44bbe952f0b4b399b19941", + "sha256:1e885dacb167077df15af2f9ccdacbd7f5dd0d538a6d74b94074f2cefc7bb589", + "sha256:201a99f922ac8c780b3929128fbd9df901418877c70e160e19adb05665e51c31", + "sha256:21c89044fc48a25c2184eba332edeffbbf9367913bb065cd31538235d828f06f", + "sha256:256b2b9660e51ad7055a9835b12717416cf7288afcf465107413917b6bb2316f", + "sha256:2e940a8659ef870ae10e0d9e2a6d5aaddf0ff6e91f7d0d7732afc9e8c4be9bbc", + "sha256:3fb5d09f1d51480f711b69fe28ad42e4f8b08600a85ab2473baee669e1257800", + "sha256:435f6807fa6a0597d84741470f19db204a7d34625ea121abd63e8d95f673f0c4", + "sha256:4670ce853cb25f72115a1bbe366ae13cf3f28fc5c87222df14f8d3d55d51816e", + "sha256:4a75fdb9a84072521bb2ebd31eefe1165d4dccea3039dda701a864f4b5daa17f", + "sha256:4d61731a35eddb0f667774fe15e5a4831e444d066081d1e809e1b8a0e3f97cae", + "sha256:51b19887c96d405599880da6a7cbdf8545a7e78ec5683e46a43bac8885e32d0f", + "sha256:536c86ec81ca89291d533ff41a3a05f9e4e88e01906dcee0751fc7082f3e8d6c", + "sha256:55ec62ddc0200b4fee94d11abbec7aa25948d5d21cb8df8807f4bdd3c51ba44b", + "sha256:5cc48a7fda2b5c5b8860494d6c575db3a101a68416492105fed6591dc8a2728a", + "sha256:670ecf74ee2e70b917028a06446ad26ff9b1195e84b09c3139c215123d57dc30", + "sha256:6a3f8020e013e9b3b7941dcf20b0fc8f7429daaf7158760846731cbd8caa5e45", + "sha256:6b42913a0259267e9ee335da0c36498077799e59c5e332d506e72b4f32de781d", + "sha256:6f5784dfb2d45c19cde03c45c04a54bf47428610106197ed6e6fa79f33bc63d3", + "sha256:6f80a9c9a9af0e4bd5080cc0955ce70274c28e9b931ad7e0fb07021afcd32af6", + "sha256:78303719c6f72af97814b0072ad18bee72e70adca8d95cf8fecd59c5e1ddb040", + "sha256:788d1772fb8dcd12091ca82809eef504ce0f2c423e45284bc351b872966ff554", + "sha256:79bfe728219239bdc493950ea4a4d15b02138ecb304771f9024d0d6f5f4e3706", + "sha256:810199d1c5b43603a9e815ae9487aef3ab1ade7ed9c0c485e12519358929fbfe", + "sha256:88ab245ed2c96265441ed2818977be28c840cfa5204ba167425d6c26eb67b7e7", + "sha256:933d30273861fe61f014ce2a7e3c364915f5efe9ed250ec1066ca6ea5942c0bd", + "sha256:994a75b197662e0608b6a76935d7c345f7fd874eac0b7093d561033db61b0e8c", + "sha256:9b31ebde27575b3b0708673ec14f0c305c4564d995b545148ab7ac0f4d9b847a", + "sha256:9d810b4aacd5ef4e293aa4ea01f19fca53999e9edcfc4a8ef1146238b30bdc28", + "sha256:ae1d8deb391ab39cc8f0d5844e588a115ae3717e607d91482023917f920f777f", + "sha256:bc5c2b0da46c26c5f73f700834f871d0723e1e882641932468d56833bab09775", + "sha256:cea7c4a3dfc2ca61f88a2b1ddd6b0bfbd116c9b1a361b3b66fd826034b833142", + "sha256:d14282bf5b4de87f922db3c70858953fd081ef4f05dba6cca3dd705daffe1cc9", + "sha256:d6b17cb86908e7f88be14007d6afe7d2ab11966e373044137f96a6a4d83eb21c", + "sha256:da7381a883aee20b7d2ffda17d909b38134b6a625920e65239a1c681881df800", + "sha256:db269f67ed17b07e80aaa8fba1f650c0d84aa0bdd9d5352e4ac38d5bf47ac568", + "sha256:df25052b92bd514357a9b370d74f240db890ea79aaa428fb893520e10ee5bc18", + "sha256:e17fdcb8971e77c439113642ca8861f9465e21fc693bd3916654ceef3ac26883", + "sha256:f6fd3c88ea4b170d13527e93be1945e69facd917661d3725a63470eb683fbffe", + "sha256:f7f994a53c0e6b44a2966fd6bfc53e37d34b7dca34e75b6be295de6db598255e" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'", - "version": "==1.4.48" + "markers": "python_version >= '3.7'", + "version": "==2.0.15" }, "starlette": { "hashes": [ "sha256:6a6b0d042acb8d469a01eba54e9cda6cbd24ac602c4cd016723117d6a7e73b75", "sha256:918416370e846586541235ccd38a474c08b80443ed31c578a418e2209b3eef91" ], - "index": "pypi", + "markers": "python_version >= '3.7'", "version": "==0.27.0" }, "synapseclient": { @@ -1352,11 +1360,11 @@ }, "typing-extensions": { "hashes": [ - "sha256:5cb5f4a79139d699607b3ef622a1dedafa84e115ab0024e0d9c044a9479ca7cb", - "sha256:fb33085c39dd998ac16d1431ebc293a8b3eedd00fd4a32de0ff79002c19511b4" + "sha256:88a4153d8505aabbb4e13aacb7c486c2b4a33ca3b3f807914a9b4c844c471c26", + "sha256:d91d5919357fe7f681a9f2b5b4cb2a5f1ef0a1e9f59c4d8ff0d3491e05c0ffd5" ], "markers": "python_version >= '3.7'", - "version": "==4.5.0" + "version": "==4.6.3" }, "tzdata": { "hashes": [ @@ -1376,11 +1384,11 @@ }, "urllib3": { "hashes": [ - "sha256:8a388717b9476f934a21484e8c8e61875ab60644d29b9b39e11e4b9dc1c6b305", - "sha256:aa751d169e23c7479ce47a0cb0da579e3ede798f994f5816a74e4f4500dcea42" + "sha256:8d36afa7616d8ab714608411b4a3b13e58f463aee519024578e062e141dce20f", + "sha256:8f135f6502756bde6b2a9b28989df5fbe87c9970cecaa69041edcce7f0589b14" ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'", - "version": "==1.26.15" + "version": "==1.26.16" }, "uvicorn": { "hashes": [ @@ -1392,11 +1400,11 @@ }, "websocket-client": { "hashes": [ - "sha256:3f09e6d8230892547132177f575a4e3e73cfdf06526e20cc02aa1c3b47184d40", - "sha256:cdf5877568b7e83aa7cf2244ab56a3213de587bbe0ce9d8b9600fc77b455d89e" + "sha256:c7d67c13b928645f259d9b847ab5b57fd2d127213ca41ebd880de1f553b7c23b", + "sha256:f8c64e28cd700e7ba1f04350d66422b6833b82a796b525a51e740b8cc8dab4b1" ], "markers": "python_version >= '3.7'", - "version": "==1.5.1" + "version": "==1.5.2" }, "websockets": { "hashes": [ @@ -1954,11 +1962,11 @@ }, "setuptools": { "hashes": [ - "sha256:23aaf86b85ca52ceb801d32703f12d77517b2556af839621c641fca11287952b", - "sha256:f104fa03692a2602fa0fec6c6a9e63b6c8a968de13e17c026957dd1f53d80990" + "sha256:5df61bf30bb10c6f756eb19e7c9f3b473051f48db77fddbe06ff2ca307df9a6f", + "sha256:62642358adc77ffa87233bc4d2354c4b2682d214048f500964dbe760ccedf102" ], "markers": "python_version >= '3.7'", - "version": "==67.7.2" + "version": "==67.8.0" }, "six": { "hashes": [ @@ -1978,11 +1986,11 @@ }, "urllib3": { "hashes": [ - "sha256:8a388717b9476f934a21484e8c8e61875ab60644d29b9b39e11e4b9dc1c6b305", - "sha256:aa751d169e23c7479ce47a0cb0da579e3ede798f994f5816a74e4f4500dcea42" + "sha256:8d36afa7616d8ab714608411b4a3b13e58f463aee519024578e062e141dce20f", + "sha256:8f135f6502756bde6b2a9b28989df5fbe87c9970cecaa69041edcce7f0589b14" ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'", - "version": "==1.26.15" + "version": "==1.26.16" }, "virtualenv": { "hashes": [ From 44a116a69513c7b26d9a97b8a396849b6205959a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 7 Jun 2023 23:23:47 +0000 Subject: [PATCH 06/19] Bump requests from 2.28.1 to 2.31.0 Bumps [requests](https://github.com/psf/requests) from 2.28.1 to 2.31.0. - [Release notes](https://github.com/psf/requests/releases) - [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md) - [Commits](https://github.com/psf/requests/compare/v2.28.1...v2.31.0) --- updated-dependencies: - dependency-name: requests dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- Pipfile.lock | 702 +++++++++++++++++++++++++++++++-------------------- 1 file changed, 424 insertions(+), 278 deletions(-) diff --git a/Pipfile.lock b/Pipfile.lock index d5ea6c0f..a5d07735 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -225,11 +225,84 @@ }, "charset-normalizer": { "hashes": [ - "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845", - "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f" - ], - "markers": "python_version >= '3.6'", - "version": "==2.1.1" + "sha256:04afa6387e2b282cf78ff3dbce20f0cc071c12dc8f685bd40960cc68644cfea6", + "sha256:04eefcee095f58eaabe6dc3cc2262f3bcd776d2c67005880894f447b3f2cb9c1", + "sha256:0be65ccf618c1e7ac9b849c315cc2e8a8751d9cfdaa43027d4f6624bd587ab7e", + "sha256:0c95f12b74681e9ae127728f7e5409cbbef9cd914d5896ef238cc779b8152373", + "sha256:0ca564606d2caafb0abe6d1b5311c2649e8071eb241b2d64e75a0d0065107e62", + "sha256:10c93628d7497c81686e8e5e557aafa78f230cd9e77dd0c40032ef90c18f2230", + "sha256:11d117e6c63e8f495412d37e7dc2e2fff09c34b2d09dbe2bee3c6229577818be", + "sha256:11d3bcb7be35e7b1bba2c23beedac81ee893ac9871d0ba79effc7fc01167db6c", + "sha256:12a2b561af122e3d94cdb97fe6fb2bb2b82cef0cdca131646fdb940a1eda04f0", + "sha256:12d1a39aa6b8c6f6248bb54550efcc1c38ce0d8096a146638fd4738e42284448", + "sha256:1435ae15108b1cb6fffbcea2af3d468683b7afed0169ad718451f8db5d1aff6f", + "sha256:1c60b9c202d00052183c9be85e5eaf18a4ada0a47d188a83c8f5c5b23252f649", + "sha256:1e8fcdd8f672a1c4fc8d0bd3a2b576b152d2a349782d1eb0f6b8e52e9954731d", + "sha256:20064ead0717cf9a73a6d1e779b23d149b53daf971169289ed2ed43a71e8d3b0", + "sha256:21fa558996782fc226b529fdd2ed7866c2c6ec91cee82735c98a197fae39f706", + "sha256:22908891a380d50738e1f978667536f6c6b526a2064156203d418f4856d6e86a", + "sha256:3160a0fd9754aab7d47f95a6b63ab355388d890163eb03b2d2b87ab0a30cfa59", + "sha256:322102cdf1ab682ecc7d9b1c5eed4ec59657a65e1c146a0da342b78f4112db23", + "sha256:34e0a2f9c370eb95597aae63bf85eb5e96826d81e3dcf88b8886012906f509b5", + "sha256:3573d376454d956553c356df45bb824262c397c6e26ce43e8203c4c540ee0acb", + "sha256:3747443b6a904001473370d7810aa19c3a180ccd52a7157aacc264a5ac79265e", + "sha256:38e812a197bf8e71a59fe55b757a84c1f946d0ac114acafaafaf21667a7e169e", + "sha256:3a06f32c9634a8705f4ca9946d667609f52cf130d5548881401f1eb2c39b1e2c", + "sha256:3a5fc78f9e3f501a1614a98f7c54d3969f3ad9bba8ba3d9b438c3bc5d047dd28", + "sha256:3d9098b479e78c85080c98e1e35ff40b4a31d8953102bb0fd7d1b6f8a2111a3d", + "sha256:3dc5b6a8ecfdc5748a7e429782598e4f17ef378e3e272eeb1340ea57c9109f41", + "sha256:4155b51ae05ed47199dc5b2a4e62abccb274cee6b01da5b895099b61b1982974", + "sha256:49919f8400b5e49e961f320c735388ee686a62327e773fa5b3ce6721f7e785ce", + "sha256:53d0a3fa5f8af98a1e261de6a3943ca631c526635eb5817a87a59d9a57ebf48f", + "sha256:5f008525e02908b20e04707a4f704cd286d94718f48bb33edddc7d7b584dddc1", + "sha256:628c985afb2c7d27a4800bfb609e03985aaecb42f955049957814e0491d4006d", + "sha256:65ed923f84a6844de5fd29726b888e58c62820e0769b76565480e1fdc3d062f8", + "sha256:6734e606355834f13445b6adc38b53c0fd45f1a56a9ba06c2058f86893ae8017", + "sha256:6baf0baf0d5d265fa7944feb9f7451cc316bfe30e8df1a61b1bb08577c554f31", + "sha256:6f4f4668e1831850ebcc2fd0b1cd11721947b6dc7c00bf1c6bd3c929ae14f2c7", + "sha256:6f5c2e7bc8a4bf7c426599765b1bd33217ec84023033672c1e9a8b35eaeaaaf8", + "sha256:6f6c7a8a57e9405cad7485f4c9d3172ae486cfef1344b5ddd8e5239582d7355e", + "sha256:7381c66e0561c5757ffe616af869b916c8b4e42b367ab29fedc98481d1e74e14", + "sha256:73dc03a6a7e30b7edc5b01b601e53e7fc924b04e1835e8e407c12c037e81adbd", + "sha256:74db0052d985cf37fa111828d0dd230776ac99c740e1a758ad99094be4f1803d", + "sha256:75f2568b4189dda1c567339b48cba4ac7384accb9c2a7ed655cd86b04055c795", + "sha256:78cacd03e79d009d95635e7d6ff12c21eb89b894c354bd2b2ed0b4763373693b", + "sha256:80d1543d58bd3d6c271b66abf454d437a438dff01c3e62fdbcd68f2a11310d4b", + "sha256:830d2948a5ec37c386d3170c483063798d7879037492540f10a475e3fd6f244b", + "sha256:891cf9b48776b5c61c700b55a598621fdb7b1e301a550365571e9624f270c203", + "sha256:8f25e17ab3039b05f762b0a55ae0b3632b2e073d9c8fc88e89aca31a6198e88f", + "sha256:9a3267620866c9d17b959a84dd0bd2d45719b817245e49371ead79ed4f710d19", + "sha256:a04f86f41a8916fe45ac5024ec477f41f886b3c435da2d4e3d2709b22ab02af1", + "sha256:aaf53a6cebad0eae578f062c7d462155eada9c172bd8c4d250b8c1d8eb7f916a", + "sha256:abc1185d79f47c0a7aaf7e2412a0eb2c03b724581139193d2d82b3ad8cbb00ac", + "sha256:ac0aa6cd53ab9a31d397f8303f92c42f534693528fafbdb997c82bae6e477ad9", + "sha256:ac3775e3311661d4adace3697a52ac0bab17edd166087d493b52d4f4f553f9f0", + "sha256:b06f0d3bf045158d2fb8837c5785fe9ff9b8c93358be64461a1089f5da983137", + "sha256:b116502087ce8a6b7a5f1814568ccbd0e9f6cfd99948aa59b0e241dc57cf739f", + "sha256:b82fab78e0b1329e183a65260581de4375f619167478dddab510c6c6fb04d9b6", + "sha256:bd7163182133c0c7701b25e604cf1611c0d87712e56e88e7ee5d72deab3e76b5", + "sha256:c36bcbc0d5174a80d6cccf43a0ecaca44e81d25be4b7f90f0ed7bcfbb5a00909", + "sha256:c3af8e0f07399d3176b179f2e2634c3ce9c1301379a6b8c9c9aeecd481da494f", + "sha256:c84132a54c750fda57729d1e2599bb598f5fa0344085dbde5003ba429a4798c0", + "sha256:cb7b2ab0188829593b9de646545175547a70d9a6e2b63bf2cd87a0a391599324", + "sha256:cca4def576f47a09a943666b8f829606bcb17e2bc2d5911a46c8f8da45f56755", + "sha256:cf6511efa4801b9b38dc5546d7547d5b5c6ef4b081c60b23e4d941d0eba9cbeb", + "sha256:d16fd5252f883eb074ca55cb622bc0bee49b979ae4e8639fff6ca3ff44f9f854", + "sha256:d2686f91611f9e17f4548dbf050e75b079bbc2a82be565832bc8ea9047b61c8c", + "sha256:d7fc3fca01da18fbabe4625d64bb612b533533ed10045a2ac3dd194bfa656b60", + "sha256:dd5653e67b149503c68c4018bf07e42eeed6b4e956b24c00ccdf93ac79cdff84", + "sha256:de5695a6f1d8340b12a5d6d4484290ee74d61e467c39ff03b39e30df62cf83a0", + "sha256:e0ac8959c929593fee38da1c2b64ee9778733cdf03c482c9ff1d508b6b593b2b", + "sha256:e1b25e3ad6c909f398df8921780d6a3d120d8c09466720226fc621605b6f92b1", + "sha256:e633940f28c1e913615fd624fcdd72fdba807bf53ea6925d6a588e84e1151531", + "sha256:e89df2958e5159b811af9ff0f92614dabf4ff617c03a4c1c6ff53bf1c399e0e1", + "sha256:ea9f9c6034ea2d93d9147818f17c2a0860d41b71c38b9ce4d55f21b6f9165a11", + "sha256:f645caaf0008bacf349875a974220f1f1da349c5dbe7c4ec93048cdc785a3326", + "sha256:f8303414c7b03f794347ad062c0516cee0e15f7a612abd0ce1e25caf6ceb47df", + "sha256:fca62a8301b605b954ad2e9c3666f9d97f63872aa4efcae5492baca2056b74ab" + ], + "markers": "python_version >= '3.7'", + "version": "==3.1.0" }, "click": { "hashes": [ @@ -272,28 +345,28 @@ }, "cryptography": { "hashes": [ - "sha256:0ddaee209d1cf1f180f1efa338a68c4621154de0afaef92b89486f5f96047c55", - "sha256:14754bcdae909d66ff24b7b5f166d69340ccc6cb15731670435efd5719294895", - "sha256:344c6de9f8bda3c425b3a41b319522ba3208551b70c2ae00099c205f0d9fd3be", - "sha256:34d405ea69a8b34566ba3dfb0521379b210ea5d560fafedf9f800a9a94a41928", - "sha256:3680248309d340fda9611498a5319b0193a8dbdb73586a1acf8109d06f25b92d", - "sha256:3c5ef25d060c80d6d9f7f9892e1d41bb1c79b78ce74805b8cb4aa373cb7d5ec8", - "sha256:4ab14d567f7bbe7f1cdff1c53d5324ed4d3fc8bd17c481b395db224fb405c237", - "sha256:5c1f7293c31ebc72163a9a0df246f890d65f66b4a40d9ec80081969ba8c78cc9", - "sha256:6b71f64beeea341c9b4f963b48ee3b62d62d57ba93eb120e1196b31dc1025e78", - "sha256:7d92f0248d38faa411d17f4107fc0bce0c42cae0b0ba5415505df72d751bf62d", - "sha256:8362565b3835ceacf4dc8f3b56471a2289cf51ac80946f9087e66dc283a810e0", - "sha256:84a165379cb9d411d58ed739e4af3396e544eac190805a54ba2e0322feb55c46", - "sha256:88ff107f211ea696455ea8d911389f6d2b276aabf3231bf72c8853d22db755c5", - "sha256:9f65e842cb02550fac96536edb1d17f24c0a338fd84eaf582be25926e993dde4", - "sha256:a4fc68d1c5b951cfb72dfd54702afdbbf0fb7acdc9b7dc4301bbf2225a27714d", - "sha256:b7f2f5c525a642cecad24ee8670443ba27ac1fab81bba4cc24c7b6b41f2d0c75", - "sha256:b846d59a8d5a9ba87e2c3d757ca019fa576793e8758174d3868aecb88d6fc8eb", - "sha256:bf8fc66012ca857d62f6a347007e166ed59c0bc150cefa49f28376ebe7d992a2", - "sha256:f5d0bf9b252f30a31664b6f64432b4730bb7038339bd18b1fafe129cfc2be9be" - ], - "index": "pypi", - "version": "==41.0.0" + "sha256:059e348f9a3c1950937e1b5d7ba1f8e968508ab181e75fc32b879452f08356db", + "sha256:1a5472d40c8f8e91ff7a3d8ac6dfa363d8e3138b961529c996f3e2df0c7a411a", + "sha256:1a8e6c2de6fbbcc5e14fd27fb24414507cb3333198ea9ab1258d916f00bc3039", + "sha256:1fee5aacc7367487b4e22484d3c7e547992ed726d14864ee33c0176ae43b0d7c", + "sha256:5d092fdfedaec4cbbffbf98cddc915ba145313a6fdaab83c6e67f4e6c218e6f3", + "sha256:5f0ff6e18d13a3de56f609dd1fd11470918f770c6bd5d00d632076c727d35485", + "sha256:7bfc55a5eae8b86a287747053140ba221afc65eb06207bedf6e019b8934b477c", + "sha256:7fa01527046ca5facdf973eef2535a27fec4cb651e4daec4d043ef63f6ecd4ca", + "sha256:8dde71c4169ec5ccc1087bb7521d54251c016f126f922ab2dfe6649170a3b8c5", + "sha256:8f4ab7021127a9b4323537300a2acfb450124b2def3756f64dc3a3d2160ee4b5", + "sha256:948224d76c4b6457349d47c0c98657557f429b4e93057cf5a2f71d603e2fc3a3", + "sha256:9a6c7a3c87d595608a39980ebaa04d5a37f94024c9f24eb7d10262b92f739ddb", + "sha256:b46e37db3cc267b4dea1f56da7346c9727e1209aa98487179ee8ebed09d21e43", + "sha256:b4ceb5324b998ce2003bc17d519080b4ec8d5b7b70794cbd2836101406a9be31", + "sha256:cb33ccf15e89f7ed89b235cff9d49e2e62c6c981a6061c9c8bb47ed7951190bc", + "sha256:d198820aba55660b4d74f7b5fd1f17db3aa5eb3e6893b0a41b75e84e4f9e0e4b", + "sha256:d34579085401d3f49762d2f7d6634d6b6c2ae1242202e860f4d26b046e3a1006", + "sha256:eb8163f5e549a22888c18b0d53d6bb62a20510060a22fd5a995ec8a05268df8a", + "sha256:f73bff05db2a3e5974a6fd248af2566134d8981fd7ab012e5dd4ddb1d9a70699" + ], + "markers": "python_version >= '3.7'", + "version": "==41.0.1" }, "dateparser": { "hashes": [ @@ -329,11 +402,11 @@ }, "fastapi": { "hashes": [ - "sha256:4d9d3e8c71c73f11874bcf5e33626258d143252e329a01002f767306c64fb982", - "sha256:d374dbc4ef2ad9b803899bd3360d34c534adc574546e25314ab72c0c4411749f" + "sha256:71232d47c2787446991c81c41c249f8a16238d52d779c0e6b43927d3773dbe3c", + "sha256:b8e11fe81e81eab4e1504209917338e0b80f783878a42c2b99467e5e1019a1e9" ], "markers": "python_version >= '3.7'", - "version": "==0.95.2" + "version": "==0.96.0" }, "fsspec": { "hashes": [ @@ -612,59 +685,59 @@ }, "markupsafe": { "hashes": [ - "sha256:0576fe974b40a400449768941d5d0858cc624e3249dfd1e0c33674e5c7ca7aed", - "sha256:085fd3201e7b12809f9e6e9bc1e5c96a368c8523fad5afb02afe3c051ae4afcc", - "sha256:090376d812fb6ac5f171e5938e82e7f2d7adc2b629101cec0db8b267815c85e2", - "sha256:0b462104ba25f1ac006fdab8b6a01ebbfbce9ed37fd37fd4acd70c67c973e460", - "sha256:137678c63c977754abe9086a3ec011e8fd985ab90631145dfb9294ad09c102a7", - "sha256:1bea30e9bf331f3fef67e0a3877b2288593c98a21ccb2cf29b74c581a4eb3af0", - "sha256:22152d00bf4a9c7c83960521fc558f55a1adbc0631fbb00a9471e097b19d72e1", - "sha256:22731d79ed2eb25059ae3df1dfc9cb1546691cc41f4e3130fe6bfbc3ecbbecfa", - "sha256:2298c859cfc5463f1b64bd55cb3e602528db6fa0f3cfd568d3605c50678f8f03", - "sha256:28057e985dace2f478e042eaa15606c7efccb700797660629da387eb289b9323", - "sha256:2e7821bffe00aa6bd07a23913b7f4e01328c3d5cc0b40b36c0bd81d362faeb65", - "sha256:2ec4f2d48ae59bbb9d1f9d7efb9236ab81429a764dedca114f5fdabbc3788013", - "sha256:340bea174e9761308703ae988e982005aedf427de816d1afe98147668cc03036", - "sha256:40627dcf047dadb22cd25ea7ecfe9cbf3bbbad0482ee5920b582f3809c97654f", - "sha256:40dfd3fefbef579ee058f139733ac336312663c6706d1163b82b3003fb1925c4", - "sha256:4cf06cdc1dda95223e9d2d3c58d3b178aa5dacb35ee7e3bbac10e4e1faacb419", - "sha256:50c42830a633fa0cf9e7d27664637532791bfc31c731a87b202d2d8ac40c3ea2", - "sha256:55f44b440d491028addb3b88f72207d71eeebfb7b5dbf0643f7c023ae1fba619", - "sha256:608e7073dfa9e38a85d38474c082d4281f4ce276ac0010224eaba11e929dd53a", - "sha256:63ba06c9941e46fa389d389644e2d8225e0e3e5ebcc4ff1ea8506dce646f8c8a", - "sha256:65608c35bfb8a76763f37036547f7adfd09270fbdbf96608be2bead319728fcd", - "sha256:665a36ae6f8f20a4676b53224e33d456a6f5a72657d9c83c2aa00765072f31f7", - "sha256:6d6607f98fcf17e534162f0709aaad3ab7a96032723d8ac8750ffe17ae5a0666", - "sha256:7313ce6a199651c4ed9d7e4cfb4aa56fe923b1adf9af3b420ee14e6d9a73df65", - "sha256:7668b52e102d0ed87cb082380a7e2e1e78737ddecdde129acadb0eccc5423859", - "sha256:7df70907e00c970c60b9ef2938d894a9381f38e6b9db73c5be35e59d92e06625", - "sha256:7e007132af78ea9df29495dbf7b5824cb71648d7133cf7848a2a5dd00d36f9ff", - "sha256:835fb5e38fd89328e9c81067fd642b3593c33e1e17e2fdbf77f5676abb14a156", - "sha256:8bca7e26c1dd751236cfb0c6c72d4ad61d986e9a41bbf76cb445f69488b2a2bd", - "sha256:8db032bf0ce9022a8e41a22598eefc802314e81b879ae093f36ce9ddf39ab1ba", - "sha256:99625a92da8229df6d44335e6fcc558a5037dd0a760e11d84be2260e6f37002f", - "sha256:9cad97ab29dfc3f0249b483412c85c8ef4766d96cdf9dcf5a1e3caa3f3661cf1", - "sha256:a4abaec6ca3ad8660690236d11bfe28dfd707778e2442b45addd2f086d6ef094", - "sha256:a6e40afa7f45939ca356f348c8e23048e02cb109ced1eb8420961b2f40fb373a", - "sha256:a6f2fcca746e8d5910e18782f976489939d54a91f9411c32051b4aab2bd7c513", - "sha256:a806db027852538d2ad7555b203300173dd1b77ba116de92da9afbc3a3be3eed", - "sha256:abcabc8c2b26036d62d4c746381a6f7cf60aafcc653198ad678306986b09450d", - "sha256:b8526c6d437855442cdd3d87eede9c425c4445ea011ca38d937db299382e6fa3", - "sha256:bb06feb762bade6bf3c8b844462274db0c76acc95c52abe8dbed28ae3d44a147", - "sha256:c0a33bc9f02c2b17c3ea382f91b4db0e6cde90b63b296422a939886a7a80de1c", - "sha256:c4a549890a45f57f1ebf99c067a4ad0cb423a05544accaf2b065246827ed9603", - "sha256:ca244fa73f50a800cf8c3ebf7fd93149ec37f5cb9596aa8873ae2c1d23498601", - "sha256:cf877ab4ed6e302ec1d04952ca358b381a882fbd9d1b07cccbfd61783561f98a", - "sha256:d9d971ec1e79906046aa3ca266de79eac42f1dbf3612a05dc9368125952bd1a1", - "sha256:da25303d91526aac3672ee6d49a2f3db2d9502a4a60b55519feb1a4c7714e07d", - "sha256:e55e40ff0cc8cc5c07996915ad367fa47da6b3fc091fdadca7f5403239c5fec3", - "sha256:f03a532d7dee1bed20bc4884194a16160a2de9ffc6354b3878ec9682bb623c54", - "sha256:f1cd098434e83e656abf198f103a8207a8187c0fc110306691a2e94a78d0abb2", - "sha256:f2bfb563d0211ce16b63c7cb9395d2c682a23187f54c3d79bfec33e6705473c6", - "sha256:f8ffb705ffcf5ddd0e80b65ddf7bed7ee4f5a441ea7d3419e861a12eaf41af58" - ], - "markers": "python_version >= '3.7'", - "version": "==2.1.2" + "sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e", + "sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e", + "sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431", + "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686", + "sha256:1577735524cdad32f9f694208aa75e422adba74f1baee7551620e43a3141f559", + "sha256:1b40069d487e7edb2676d3fbdb2b0829ffa2cd63a2ec26c4938b2d34391b4ecc", + "sha256:282c2cb35b5b673bbcadb33a585408104df04f14b2d9b01d4c345a3b92861c2c", + "sha256:2c1b19b3aaacc6e57b7e25710ff571c24d6c3613a45e905b1fde04d691b98ee0", + "sha256:2ef12179d3a291be237280175b542c07a36e7f60718296278d8593d21ca937d4", + "sha256:338ae27d6b8745585f87218a3f23f1512dbf52c26c28e322dbe54bcede54ccb9", + "sha256:3c0fae6c3be832a0a0473ac912810b2877c8cb9d76ca48de1ed31e1c68386575", + "sha256:3fd4abcb888d15a94f32b75d8fd18ee162ca0c064f35b11134be77050296d6ba", + "sha256:42de32b22b6b804f42c5d98be4f7e5e977ecdd9ee9b660fda1a3edf03b11792d", + "sha256:504b320cd4b7eff6f968eddf81127112db685e81f7e36e75f9f84f0df46041c3", + "sha256:525808b8019e36eb524b8c68acdd63a37e75714eac50e988180b169d64480a00", + "sha256:56d9f2ecac662ca1611d183feb03a3fa4406469dafe241673d521dd5ae92a155", + "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac", + "sha256:65c1a9bcdadc6c28eecee2c119465aebff8f7a584dd719facdd9e825ec61ab52", + "sha256:68e78619a61ecf91e76aa3e6e8e33fc4894a2bebe93410754bd28fce0a8a4f9f", + "sha256:69c0f17e9f5a7afdf2cc9fb2d1ce6aabdb3bafb7f38017c0b77862bcec2bbad8", + "sha256:6b2b56950d93e41f33b4223ead100ea0fe11f8e6ee5f641eb753ce4b77a7042b", + "sha256:787003c0ddb00500e49a10f2844fac87aa6ce977b90b0feaaf9de23c22508b24", + "sha256:7ef3cb2ebbf91e330e3bb937efada0edd9003683db6b57bb108c4001f37a02ea", + "sha256:8023faf4e01efadfa183e863fefde0046de576c6f14659e8782065bcece22198", + "sha256:8758846a7e80910096950b67071243da3e5a20ed2546e6392603c096778d48e0", + "sha256:8afafd99945ead6e075b973fefa56379c5b5c53fd8937dad92c662da5d8fd5ee", + "sha256:8c41976a29d078bb235fea9b2ecd3da465df42a562910f9022f1a03107bd02be", + "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2", + "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707", + "sha256:962f82a3086483f5e5f64dbad880d31038b698494799b097bc59c2edf392fce6", + "sha256:9dcdfd0eaf283af041973bff14a2e143b8bd64e069f4c383416ecd79a81aab58", + "sha256:aa7bd130efab1c280bed0f45501b7c8795f9fdbeb02e965371bbef3523627779", + "sha256:ab4a0df41e7c16a1392727727e7998a467472d0ad65f3ad5e6e765015df08636", + "sha256:ad9e82fb8f09ade1c3e1b996a6337afac2b8b9e365f926f5a61aacc71adc5b3c", + "sha256:af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad", + "sha256:b076b6226fb84157e3f7c971a47ff3a679d837cf338547532ab866c57930dbee", + "sha256:b7ff0f54cb4ff66dd38bebd335a38e2c22c41a8ee45aa608efc890ac3e3931bc", + "sha256:bfce63a9e7834b12b87c64d6b155fdd9b3b96191b6bd334bf37db7ff1fe457f2", + "sha256:c011a4149cfbcf9f03994ec2edffcb8b1dc2d2aede7ca243746df97a5d41ce48", + "sha256:c9c804664ebe8f83a211cace637506669e7890fec1b4195b505c214e50dd4eb7", + "sha256:ca379055a47383d02a5400cb0d110cef0a776fc644cda797db0c5696cfd7e18e", + "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b", + "sha256:cd0f502fe016460680cd20aaa5a76d241d6f35a1c3350c474bac1273803893fa", + "sha256:ceb01949af7121f9fc39f7d27f91be8546f3fb112c608bc4029aef0bab86a2a5", + "sha256:d080e0a5eb2529460b30190fcfcc4199bd7f827663f858a226a81bc27beaa97e", + "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb", + "sha256:df0be2b576a7abbf737b1575f048c23fb1d769f267ec4358296f31c2479db8f9", + "sha256:e09031c87a1e51556fdcb46e5bd4f59dfb743061cf93c4d6831bf894f125eb57", + "sha256:e4dd52d80b8c83fdce44e12478ad2e85c64ea965e75d66dbeafb0a3e77308fcc", + "sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2" + ], + "markers": "python_version >= '3.7'", + "version": "==2.1.3" }, "mdurl": { "hashes": [ @@ -891,45 +964,45 @@ }, "pydantic": { "hashes": [ - "sha256:052d8654cb65174d6f9490cc9b9a200083a82cf5c3c5d3985db765757eb3b375", - "sha256:0c6fafa0965b539d7aab0a673a046466d23b86e4b0e8019d25fd53f4df62c277", - "sha256:1243d28e9b05003a89d72e7915fdb26ffd1d39bdd39b00b7dbe4afae4b557f9d", - "sha256:12f7b0bf8553e310e530e9f3a2f5734c68699f42218bf3568ef49cd9b0e44df4", - "sha256:1410275520dfa70effadf4c21811d755e7ef9bb1f1d077a21958153a92c8d9ca", - "sha256:16f8c3e33af1e9bb16c7a91fc7d5fa9fe27298e9f299cff6cb744d89d573d62c", - "sha256:17aef11cc1b997f9d574b91909fed40761e13fac438d72b81f902226a69dac01", - "sha256:191ba419b605f897ede9892f6c56fb182f40a15d309ef0142212200a10af4c18", - "sha256:1952526ba40b220b912cdc43c1c32bcf4a58e3f192fa313ee665916b26befb68", - "sha256:1ced8375969673929809d7f36ad322934c35de4af3b5e5b09ec967c21f9f7887", - "sha256:2e4148e635994d57d834be1182a44bdb07dd867fa3c2d1b37002000646cc5459", - "sha256:34d327c81e68a1ecb52fe9c8d50c8a9b3e90d3c8ad991bfc8f953fb477d42fb4", - "sha256:35db5301b82e8661fa9c505c800d0990bc14e9f36f98932bb1d248c0ac5cada5", - "sha256:3e59417ba8a17265e632af99cc5f35ec309de5980c440c255ab1ca3ae96a3e0e", - "sha256:42aa0c4b5c3025483240a25b09f3c09a189481ddda2ea3a831a9d25f444e03c1", - "sha256:666bdf6066bf6dbc107b30d034615d2627e2121506c555f73f90b54a463d1f33", - "sha256:66a703d1983c675a6e0fed8953b0971c44dba48a929a2000a493c3772eb61a5a", - "sha256:6a82d6cda82258efca32b40040228ecf43a548671cb174a1e81477195ed3ed56", - "sha256:6f2e754d5566f050954727c77f094e01793bcb5725b663bf628fa6743a5a9108", - "sha256:7456eb22ed9aaa24ff3e7b4757da20d9e5ce2a81018c1b3ebd81a0b88a18f3b2", - "sha256:7b1f6cb446470b7ddf86c2e57cd119a24959af2b01e552f60705910663af09a4", - "sha256:7d5b8641c24886d764a74ec541d2fc2c7fb19f6da2a4001e6d580ba4a38f7878", - "sha256:84d80219c3f8d4cad44575e18404099c76851bc924ce5ab1c4c8bb5e2a2227d0", - "sha256:88f195f582851e8db960b4a94c3e3ad25692c1c1539e2552f3df7a9e972ef60e", - "sha256:93e6bcfccbd831894a6a434b0aeb1947f9e70b7468f274154d03d71fabb1d7c6", - "sha256:93e766b4a8226e0708ef243e843105bf124e21331694367f95f4e3b4a92bbb3f", - "sha256:ab523c31e22943713d80d8d342d23b6f6ac4b792a1e54064a8d0cf78fd64e800", - "sha256:bb14388ec45a7a0dc429e87def6396f9e73c8c77818c927b6a60706603d5f2ea", - "sha256:c0ab53b609c11dfc0c060d94335993cc2b95b2150e25583bec37a49b2d6c6c3f", - "sha256:c33b60054b2136aef8cf190cd4c52a3daa20b2263917c49adad20eaf381e823b", - "sha256:ceb6a23bf1ba4b837d0cfe378329ad3f351b5897c8d4914ce95b85fba96da5a1", - "sha256:d532bf00f381bd6bc62cabc7d1372096b75a33bc197a312b03f5838b4fb84edd", - "sha256:df7800cb1984d8f6e249351139667a8c50a379009271ee6236138a22a0c0f319", - "sha256:e82d4566fcd527eae8b244fa952d99f2ca3172b7e97add0b43e2d97ee77f81ab", - "sha256:f90c1e29f447557e9e26afb1c4dbf8768a10cc676e3781b6a577841ade126b85", - "sha256:f9613fadad06b4f3bc5db2653ce2f22e0de84a7c6c293909b48f6ed37b83c61f" - ], - "markers": "python_version >= '3.7'", - "version": "==1.10.8" + "sha256:07293ab08e7b4d3c9d7de4949a0ea571f11e4557d19ea24dd3ae0c524c0c334d", + "sha256:0a2aabdc73c2a5960e87c3ffebca6ccde88665616d1fd6d3db3178ef427b267a", + "sha256:0da48717dc9495d3a8f215e0d012599db6b8092db02acac5e0d58a65248ec5bc", + "sha256:128d9453d92e6e81e881dd7e2484e08d8b164da5507f62d06ceecf84bf2e21d3", + "sha256:2196c06484da2b3fded1ab6dbe182bdabeb09f6318b7fdc412609ee2b564c49a", + "sha256:2e9aec8627a1a6823fc62fb96480abe3eb10168fd0d859ee3d3b395105ae19a7", + "sha256:3283b574b01e8dbc982080d8287c968489d25329a463b29a90d4157de4f2baaf", + "sha256:3c52eb595db83e189419bf337b59154bdcca642ee4b2a09e5d7797e41ace783f", + "sha256:4b466a23009ff5cdd7076eb56aca537c745ca491293cc38e72bf1e0e00de5b91", + "sha256:517a681919bf880ce1dac7e5bc0c3af1e58ba118fd774da2ffcd93c5f96eaece", + "sha256:5f8bbaf4013b9a50e8100333cc4e3fa2f81214033e05ac5aa44fa24a98670a29", + "sha256:6257bb45ad78abacda13f15bde5886efd6bf549dd71085e64b8dcf9919c38b60", + "sha256:67195274fd27780f15c4c372f4ba9a5c02dad6d50647b917b6a92bf00b3d301a", + "sha256:6cafde02f6699ce4ff643417d1a9223716ec25e228ddc3b436fe7e2d25a1f305", + "sha256:73ef93e5e1d3c8e83f1ff2e7fdd026d9e063c7e089394869a6e2985696693766", + "sha256:7845b31959468bc5b78d7b95ec52fe5be32b55d0d09983a877cca6aedc51068f", + "sha256:7847ca62e581e6088d9000f3c497267868ca2fa89432714e21a4fb33a04d52e8", + "sha256:7e1d5290044f620f80cf1c969c542a5468f3656de47b41aa78100c5baa2b8276", + "sha256:7ee829b86ce984261d99ff2fd6e88f2230068d96c2a582f29583ed602ef3fc2c", + "sha256:83fcff3c7df7adff880622a98022626f4f6dbce6639a88a15a3ce0f96466cb60", + "sha256:939328fd539b8d0edf244327398a667b6b140afd3bf7e347cf9813c736211896", + "sha256:95c70da2cd3b6ddf3b9645ecaa8d98f3d80c606624b6d245558d202cd23ea3be", + "sha256:963671eda0b6ba6926d8fc759e3e10335e1dc1b71ff2a43ed2efd6996634dafb", + "sha256:970b1bdc6243ef663ba5c7e36ac9ab1f2bfecb8ad297c9824b542d41a750b298", + "sha256:9863b9420d99dfa9c064042304868e8ba08e89081428a1c471858aa2af6f57c4", + "sha256:ad428e92ab68798d9326bb3e5515bc927444a3d71a93b4a2ca02a8a5d795c572", + "sha256:b48d3d634bca23b172f47f2335c617d3fcb4b3ba18481c96b7943a4c634f5c8d", + "sha256:b9cd67fb763248cbe38f0593cd8611bfe4b8ad82acb3bdf2b0898c23415a1f82", + "sha256:d111a21bbbfd85c17248130deac02bbd9b5e20b303338e0dbe0faa78330e37e0", + "sha256:e1aa5c2410769ca28aa9a7841b80d9d9a1c5f223928ca8bec7e7c9a34d26b1d4", + "sha256:e692dec4a40bfb40ca530e07805b1208c1de071a18d26af4a2a0d79015b352ca", + "sha256:e7c9900b43ac14110efa977be3da28931ffc74c27e96ee89fbcaaf0b0fe338e1", + "sha256:eec39224b2b2e861259d6f3c8b6290d4e0fbdce147adb797484a42278a1a486f", + "sha256:f0b7628fb8efe60fe66fd4adadd7ad2304014770cdc1f4934db41fe46cc8825f", + "sha256:f50e1764ce9353be67267e7fd0da08349397c7db17a562ad036aa7c8f4adfdb6", + "sha256:fab81a92f42d6d525dd47ced310b0c3e10c416bbfae5d59523e63ea22f82b31e" + ], + "markers": "python_version >= '3.7'", + "version": "==1.10.9" }, "pygments": { "hashes": [ @@ -1059,105 +1132,105 @@ }, "regex": { "hashes": [ - "sha256:02f4541550459c08fdd6f97aa4e24c6f1932eec780d58a2faa2068253df7d6ff", - "sha256:0a69cf0c00c4d4a929c6c7717fd918414cab0d6132a49a6d8fc3ded1988ed2ea", - "sha256:0bbd5dcb19603ab8d2781fac60114fb89aee8494f4505ae7ad141a3314abb1f9", - "sha256:10250a093741ec7bf74bcd2039e697f519b028518f605ff2aa7ac1e9c9f97423", - "sha256:10374c84ee58c44575b667310d5bbfa89fb2e64e52349720a0182c0017512f6c", - "sha256:1189fbbb21e2c117fda5303653b61905aeeeea23de4a94d400b0487eb16d2d60", - "sha256:1307aa4daa1cbb23823d8238e1f61292fd07e4e5d8d38a6efff00b67a7cdb764", - "sha256:144b5b017646b5a9392a5554a1e5db0000ae637be4971c9747566775fc96e1b2", - "sha256:171c52e320fe29260da550d81c6b99f6f8402450dc7777ef5ced2e848f3b6f8f", - "sha256:18196c16a584619c7c1d843497c069955d7629ad4a3fdee240eb347f4a2c9dbe", - "sha256:18f05d14f14a812fe9723f13afafefe6b74ca042d99f8884e62dbd34dcccf3e2", - "sha256:1ecf3dcff71f0c0fe3e555201cbe749fa66aae8d18f80d2cc4de8e66df37390a", - "sha256:21e90a288e6ba4bf44c25c6a946cb9b0f00b73044d74308b5e0afd190338297c", - "sha256:23d86ad2121b3c4fc78c58f95e19173790e22ac05996df69b84e12da5816cb17", - "sha256:256f7f4c6ba145f62f7a441a003c94b8b1af78cee2cccacfc1e835f93bc09426", - "sha256:290fd35219486dfbc00b0de72f455ecdd63e59b528991a6aec9fdfc0ce85672e", - "sha256:2e9c4f778514a560a9c9aa8e5538bee759b55f6c1dcd35613ad72523fd9175b8", - "sha256:338994d3d4ca4cf12f09822e025731a5bdd3a37aaa571fa52659e85ca793fb67", - "sha256:33d430a23b661629661f1fe8395be2004006bc792bb9fc7c53911d661b69dd7e", - "sha256:385992d5ecf1a93cb85adff2f73e0402dd9ac29b71b7006d342cc920816e6f32", - "sha256:3d45864693351c15531f7e76f545ec35000d50848daa833cead96edae1665559", - "sha256:40005cbd383438aecf715a7b47fe1e3dcbc889a36461ed416bdec07e0ef1db66", - "sha256:4035d6945cb961c90c3e1c1ca2feb526175bcfed44dfb1cc77db4fdced060d3e", - "sha256:445d6f4fc3bd9fc2bf0416164454f90acab8858cd5a041403d7a11e3356980e8", - "sha256:48c9ec56579d4ba1c88f42302194b8ae2350265cb60c64b7b9a88dcb7fbde309", - "sha256:4a5059bd585e9e9504ef9c07e4bc15b0a621ba20504388875d66b8b30a5c4d18", - "sha256:4a6e4b0e0531223f53bad07ddf733af490ba2b8367f62342b92b39b29f72735a", - "sha256:4b870b6f632fc74941cadc2a0f3064ed8409e6f8ee226cdfd2a85ae50473aa94", - "sha256:50fd2d9b36938d4dcecbd684777dd12a407add4f9f934f235c66372e630772b0", - "sha256:53e22e4460f0245b468ee645156a4f84d0fc35a12d9ba79bd7d79bdcd2f9629d", - "sha256:586a011f77f8a2da4b888774174cd266e69e917a67ba072c7fc0e91878178a80", - "sha256:59597cd6315d3439ed4b074febe84a439c33928dd34396941b4d377692eca810", - "sha256:59e4b729eae1a0919f9e4c0fc635fbcc9db59c74ad98d684f4877be3d2607dd6", - "sha256:5a0f874ee8c0bc820e649c900243c6d1e6dc435b81da1492046716f14f1a2a96", - "sha256:5ac2b7d341dc1bd102be849d6dd33b09701223a851105b2754339e390be0627a", - "sha256:5e3f4468b8c6fd2fd33c218bbd0a1559e6a6fcf185af8bb0cc43f3b5bfb7d636", - "sha256:6164d4e2a82f9ebd7752a06bd6c504791bedc6418c0196cd0a23afb7f3e12b2d", - "sha256:6893544e06bae009916a5658ce7207e26ed17385149f35a3125f5259951f1bbe", - "sha256:690a17db524ee6ac4a27efc5406530dd90e7a7a69d8360235323d0e5dafb8f5b", - "sha256:6b8d0c153f07a953636b9cdb3011b733cadd4178123ef728ccc4d5969e67f3c2", - "sha256:72a28979cc667e5f82ef433db009184e7ac277844eea0f7f4d254b789517941d", - "sha256:72aa4746993a28c841e05889f3f1b1e5d14df8d3daa157d6001a34c98102b393", - "sha256:732176f5427e72fa2325b05c58ad0b45af341c459910d766f814b0584ac1f9ac", - "sha256:7918a1b83dd70dc04ab5ed24c78ae833ae8ea228cef84e08597c408286edc926", - "sha256:7923470d6056a9590247ff729c05e8e0f06bbd4efa6569c916943cb2d9b68b91", - "sha256:7d76a8a1fc9da08296462a18f16620ba73bcbf5909e42383b253ef34d9d5141e", - "sha256:811040d7f3dd9c55eb0d8b00b5dcb7fd9ae1761c454f444fd9f37fe5ec57143a", - "sha256:821a88b878b6589c5068f4cc2cfeb2c64e343a196bc9d7ac68ea8c2a776acd46", - "sha256:84397d3f750d153ebd7f958efaa92b45fea170200e2df5e0e1fd4d85b7e3f58a", - "sha256:844671c9c1150fcdac46d43198364034b961bd520f2c4fdaabfc7c7d7138a2dd", - "sha256:890a09cb0a62198bff92eda98b2b507305dd3abf974778bae3287f98b48907d3", - "sha256:8f08276466fedb9e36e5193a96cb944928301152879ec20c2d723d1031cd4ddd", - "sha256:8f5e06df94fff8c4c85f98c6487f6636848e1dc85ce17ab7d1931df4a081f657", - "sha256:921473a93bcea4d00295799ab929522fc650e85c6b9f27ae1e6bb32a790ea7d3", - "sha256:941b3f1b2392f0bcd6abf1bc7a322787d6db4e7457be6d1ffd3a693426a755f2", - "sha256:9b320677521aabf666cdd6e99baee4fb5ac3996349c3b7f8e7c4eee1c00dfe3a", - "sha256:9c3efee9bb53cbe7b285760c81f28ac80dc15fa48b5fe7e58b52752e642553f1", - "sha256:9fda3e50abad8d0f48df621cf75adc73c63f7243cbe0e3b2171392b445401550", - "sha256:a4c5da39bca4f7979eefcbb36efea04471cd68db2d38fcbb4ee2c6d440699833", - "sha256:a56c18f21ac98209da9c54ae3ebb3b6f6e772038681d6cb43b8d53da3b09ee81", - "sha256:a623564d810e7a953ff1357f7799c14bc9beeab699aacc8b7ab7822da1e952b8", - "sha256:a8906669b03c63266b6a7693d1f487b02647beb12adea20f8840c1a087e2dfb5", - "sha256:a99757ad7fe5c8a2bb44829fc57ced11253e10f462233c1255fe03888e06bc19", - "sha256:aa7d032c1d84726aa9edeb6accf079b4caa87151ca9fabacef31fa028186c66d", - "sha256:aad5524c2aedaf9aa14ef1bc9327f8abd915699dea457d339bebbe2f0d218f86", - "sha256:afb1c70ec1e594a547f38ad6bf5e3d60304ce7539e677c1429eebab115bce56e", - "sha256:b6365703e8cf1644b82104cdd05270d1a9f043119a168d66c55684b1b557d008", - "sha256:b8b942d8b3ce765dbc3b1dad0a944712a89b5de290ce8f72681e22b3c55f3cc8", - "sha256:ba73a14e9c8f9ac409863543cde3290dba39098fc261f717dc337ea72d3ebad2", - "sha256:bd7b68fd2e79d59d86dcbc1ccd6e2ca09c505343445daaa4e07f43c8a9cc34da", - "sha256:bd966475e963122ee0a7118ec9024388c602d12ac72860f6eea119a3928be053", - "sha256:c2ce65bdeaf0a386bb3b533a28de3994e8e13b464ac15e1e67e4603dd88787fa", - "sha256:c64d5abe91a3dfe5ff250c6bb267ef00dbc01501518225b45a5f9def458f31fb", - "sha256:c8c143a65ce3ca42e54d8e6fcaf465b6b672ed1c6c90022794a802fb93105d22", - "sha256:cd46f30e758629c3ee91713529cfbe107ac50d27110fdcc326a42ce2acf4dafc", - "sha256:ced02e3bd55e16e89c08bbc8128cff0884d96e7f7a5633d3dc366b6d95fcd1d6", - "sha256:cf123225945aa58b3057d0fba67e8061c62d14cc8a4202630f8057df70189051", - "sha256:d19e57f888b00cd04fc38f5e18d0efbd91ccba2d45039453ab2236e6eec48d4d", - "sha256:d1cbe6b5be3b9b698d8cc4ee4dee7e017ad655e83361cd0ea8e653d65e469468", - "sha256:db09e6c18977a33fea26fe67b7a842f706c67cf8bda1450974d0ae0dd63570df", - "sha256:de2f780c3242ea114dd01f84848655356af4dd561501896c751d7b885ea6d3a1", - "sha256:e2205a81f815b5bb17e46e74cc946c575b484e5f0acfcb805fb252d67e22938d", - "sha256:e645c757183ee0e13f0bbe56508598e2d9cd42b8abc6c0599d53b0d0b8dd1479", - "sha256:f2910502f718828cecc8beff004917dcf577fc5f8f5dd40ffb1ea7612124547b", - "sha256:f764e4dfafa288e2eba21231f455d209f4709436baeebb05bdecfb5d8ddc3d35", - "sha256:f83fe9e10f9d0b6cf580564d4d23845b9d692e4c91bd8be57733958e4c602956", - "sha256:fb2b495dd94b02de8215625948132cc2ea360ae84fe6634cd19b6567709c8ae2", - "sha256:fee0016cc35a8a91e8cc9312ab26a6fe638d484131a7afa79e1ce6165328a135" + "sha256:0385e73da22363778ef2324950e08b689abdf0b108a7d8decb403ad7f5191938", + "sha256:051da80e6eeb6e239e394ae60704d2b566aa6a7aed6f2890a7967307267a5dc6", + "sha256:05ed27acdf4465c95826962528f9e8d41dbf9b1aa8531a387dee6ed215a3e9ef", + "sha256:0654bca0cdf28a5956c83839162692725159f4cda8d63e0911a2c0dc76166525", + "sha256:09e4a1a6acc39294a36b7338819b10baceb227f7f7dbbea0506d419b5a1dd8af", + "sha256:0b49c764f88a79160fa64f9a7b425620e87c9f46095ef9c9920542ab2495c8bc", + "sha256:0b71e63226e393b534105fcbdd8740410dc6b0854c2bfa39bbda6b0d40e59a54", + "sha256:0c29ca1bd61b16b67be247be87390ef1d1ef702800f91fbd1991f5c4421ebae8", + "sha256:10590510780b7541969287512d1b43f19f965c2ece6c9b1c00fc367b29d8dce7", + "sha256:10cb847aeb1728412c666ab2e2000ba6f174f25b2bdc7292e7dd71b16db07568", + "sha256:12b74fbbf6cbbf9dbce20eb9b5879469e97aeeaa874145517563cca4029db65c", + "sha256:20326216cc2afe69b6e98528160b225d72f85ab080cbdf0b11528cbbaba2248f", + "sha256:2239d95d8e243658b8dbb36b12bd10c33ad6e6933a54d36ff053713f129aa536", + "sha256:25be746a8ec7bc7b082783216de8e9473803706723b3f6bef34b3d0ed03d57e2", + "sha256:271f0bdba3c70b58e6f500b205d10a36fb4b58bd06ac61381b68de66442efddb", + "sha256:29cdd471ebf9e0f2fb3cac165efedc3c58db841d83a518b082077e612d3ee5df", + "sha256:2d44dc13229905ae96dd2ae2dd7cebf824ee92bc52e8cf03dcead37d926da019", + "sha256:3676f1dd082be28b1266c93f618ee07741b704ab7b68501a173ce7d8d0d0ca18", + "sha256:36efeba71c6539d23c4643be88295ce8c82c88bbd7c65e8a24081d2ca123da3f", + "sha256:3e5219bf9e75993d73ab3d25985c857c77e614525fac9ae02b1bebd92f7cecac", + "sha256:43e1dd9d12df9004246bacb79a0e5886b3b6071b32e41f83b0acbf293f820ee8", + "sha256:457b6cce21bee41ac292d6753d5e94dcbc5c9e3e3a834da285b0bde7aa4a11e9", + "sha256:463b6a3ceb5ca952e66550a4532cef94c9a0c80dc156c4cc343041951aec1697", + "sha256:4959e8bcbfda5146477d21c3a8ad81b185cd252f3d0d6e4724a5ef11c012fb06", + "sha256:4d3850beab9f527f06ccc94b446c864059c57651b3f911fddb8d9d3ec1d1b25d", + "sha256:5708089ed5b40a7b2dc561e0c8baa9535b77771b64a8330b684823cfd5116036", + "sha256:5c6b48d0fa50d8f4df3daf451be7f9689c2bde1a52b1225c5926e3f54b6a9ed1", + "sha256:61474f0b41fe1a80e8dfa70f70ea1e047387b7cd01c85ec88fa44f5d7561d787", + "sha256:6343c6928282c1f6a9db41f5fd551662310e8774c0e5ebccb767002fcf663ca9", + "sha256:65ba8603753cec91c71de423a943ba506363b0e5c3fdb913ef8f9caa14b2c7e0", + "sha256:687ea9d78a4b1cf82f8479cab23678aff723108df3edeac098e5b2498879f4a7", + "sha256:6b2675068c8b56f6bfd5a2bda55b8accbb96c02fd563704732fd1c95e2083461", + "sha256:7117d10690c38a622e54c432dfbbd3cbd92f09401d622902c32f6d377e2300ee", + "sha256:7178bbc1b2ec40eaca599d13c092079bf529679bf0371c602edaa555e10b41c3", + "sha256:72d1a25bf36d2050ceb35b517afe13864865268dfb45910e2e17a84be6cbfeb0", + "sha256:742e19a90d9bb2f4a6cf2862b8b06dea5e09b96c9f2df1779e53432d7275331f", + "sha256:74390d18c75054947e4194019077e243c06fbb62e541d8817a0fa822ea310c14", + "sha256:74419d2b50ecb98360cfaa2974da8689cb3b45b9deff0dcf489c0d333bcc1477", + "sha256:824bf3ac11001849aec3fa1d69abcb67aac3e150a933963fb12bda5151fe1bfd", + "sha256:83320a09188e0e6c39088355d423aa9d056ad57a0b6c6381b300ec1a04ec3d16", + "sha256:837328d14cde912af625d5f303ec29f7e28cdab588674897baafaf505341f2fc", + "sha256:841d6e0e5663d4c7b4c8099c9997be748677d46cbf43f9f471150e560791f7ff", + "sha256:87b2a5bb5e78ee0ad1de71c664d6eb536dc3947a46a69182a90f4410f5e3f7dd", + "sha256:890e5a11c97cf0d0c550eb661b937a1e45431ffa79803b942a057c4fb12a2da2", + "sha256:8abbc5d54ea0ee80e37fef009e3cec5dafd722ed3c829126253d3e22f3846f1e", + "sha256:8e3f1316c2293e5469f8f09dc2d76efb6c3982d3da91ba95061a7e69489a14ef", + "sha256:8f56fcb7ff7bf7404becdfc60b1e81a6d0561807051fd2f1860b0d0348156a07", + "sha256:9427a399501818a7564f8c90eced1e9e20709ece36be701f394ada99890ea4b3", + "sha256:976d7a304b59ede34ca2921305b57356694f9e6879db323fd90a80f865d355a3", + "sha256:9a5bfb3004f2144a084a16ce19ca56b8ac46e6fd0651f54269fc9e230edb5e4a", + "sha256:9beb322958aaca059f34975b0df135181f2e5d7a13b84d3e0e45434749cb20f7", + "sha256:9edcbad1f8a407e450fbac88d89e04e0b99a08473f666a3f3de0fd292badb6aa", + "sha256:9edce5281f965cf135e19840f4d93d55b3835122aa76ccacfd389e880ba4cf82", + "sha256:a4c3b7fa4cdaa69268748665a1a6ff70c014d39bb69c50fda64b396c9116cf77", + "sha256:a8105e9af3b029f243ab11ad47c19b566482c150c754e4c717900a798806b222", + "sha256:a99b50300df5add73d307cf66abea093304a07eb017bce94f01e795090dea87c", + "sha256:aad51907d74fc183033ad796dd4c2e080d1adcc4fd3c0fd4fd499f30c03011cd", + "sha256:af4dd387354dc83a3bff67127a124c21116feb0d2ef536805c454721c5d7993d", + "sha256:b28f5024a3a041009eb4c333863d7894d191215b39576535c6734cd88b0fcb68", + "sha256:b4598b1897837067a57b08147a68ac026c1e73b31ef6e36deeeb1fa60b2933c9", + "sha256:b6192d5af2ccd2a38877bfef086d35e6659566a335b1492786ff254c168b1693", + "sha256:b862c2b9d5ae38a68b92e215b93f98d4c5e9454fa36aae4450f61dd33ff48487", + "sha256:b956231ebdc45f5b7a2e1f90f66a12be9610ce775fe1b1d50414aac1e9206c06", + "sha256:bb60b503ec8a6e4e3e03a681072fa3a5adcbfa5479fa2d898ae2b4a8e24c4591", + "sha256:bbb02fd4462f37060122e5acacec78e49c0fbb303c30dd49c7f493cf21fc5b27", + "sha256:bdff5eab10e59cf26bc479f565e25ed71a7d041d1ded04ccf9aee1d9f208487a", + "sha256:c123f662be8ec5ab4ea72ea300359023a5d1df095b7ead76fedcd8babbedf969", + "sha256:c2b867c17a7a7ae44c43ebbeb1b5ff406b3e8d5b3e14662683e5e66e6cc868d3", + "sha256:c5f8037000eb21e4823aa485149f2299eb589f8d1fe4b448036d230c3f4e68e0", + "sha256:c6a57b742133830eec44d9b2290daf5cbe0a2f1d6acee1b3c7b1c7b2f3606df7", + "sha256:ccf91346b7bd20c790310c4147eee6ed495a54ddb6737162a36ce9dbef3e4751", + "sha256:cf67ca618b4fd34aee78740bea954d7c69fdda419eb208c2c0c7060bb822d747", + "sha256:d2da3abc88711bce7557412310dfa50327d5769a31d1c894b58eb256459dc289", + "sha256:d4f03bb71d482f979bda92e1427f3ec9b220e62a7dd337af0aa6b47bf4498f72", + "sha256:d54af539295392611e7efbe94e827311eb8b29668e2b3f4cadcfe6f46df9c777", + "sha256:d77f09bc4b55d4bf7cc5eba785d87001d6757b7c9eec237fe2af57aba1a071d9", + "sha256:d831c2f8ff278179705ca59f7e8524069c1a989e716a1874d6d1aab6119d91d1", + "sha256:dbbbfce33cd98f97f6bffb17801b0576e653f4fdb1d399b2ea89638bc8d08ae1", + "sha256:dcba6dae7de533c876255317c11f3abe4907ba7d9aa15d13e3d9710d4315ec0e", + "sha256:e0bb18053dfcfed432cc3ac632b5e5e5c5b7e55fb3f8090e867bfd9b054dbcbf", + "sha256:e2fbd6236aae3b7f9d514312cdb58e6494ee1c76a9948adde6eba33eb1c4264f", + "sha256:e5087a3c59eef624a4591ef9eaa6e9a8d8a94c779dade95d27c0bc24650261cd", + "sha256:e8915cc96abeb8983cea1df3c939e3c6e1ac778340c17732eb63bb96247b91d2", + "sha256:ea353ecb6ab5f7e7d2f4372b1e779796ebd7b37352d290096978fea83c4dba0c", + "sha256:ee2d1a9a253b1729bb2de27d41f696ae893507c7db224436abe83ee25356f5c1", + "sha256:f415f802fbcafed5dcc694c13b1292f07fe0befdb94aa8a52905bd115ff41e88", + "sha256:fb5ec16523dc573a4b277663a2b5a364e2099902d3944c9419a40ebd56a118f9", + "sha256:fea75c3710d4f31389eed3c02f62d0b66a9da282521075061ce875eb5300cf23" ], "markers": "python_version >= '3.6'", - "version": "==2023.5.5" + "version": "==2023.6.3" }, "requests": { "hashes": [ - "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983", - "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349" + "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f", + "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1" ], "index": "pypi", - "version": "==2.28.1" + "version": "==2.31.0" }, "requests-oauthlib": { "hashes": [ @@ -1306,11 +1379,11 @@ }, "synapseclient": { "hashes": [ - "sha256:c15efaec148dda18faa5a1736846f427713ceaa656178d5e7044fcd87fa8aa05", - "sha256:c6a7d5ff834c825390a0514f3f0020876ea4fb8c863889894b9a636458278d69" + "sha256:dc5a61f9f495109a0c89aa7d42b641b6ff278280d7961fb450dd5015704fe15b", + "sha256:dd8b1a1b4667d08311bb651469431f43fe2eeab83c0ef1fe5a03c2929aeb26cd" ], "markers": "python_version >= '3.7'", - "version": "==2.7.1" + "version": "==2.7.2" }, "text-unidecode": { "hashes": [ @@ -1622,11 +1695,84 @@ }, "charset-normalizer": { "hashes": [ - "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845", - "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f" - ], - "markers": "python_version >= '3.6'", - "version": "==2.1.1" + "sha256:04afa6387e2b282cf78ff3dbce20f0cc071c12dc8f685bd40960cc68644cfea6", + "sha256:04eefcee095f58eaabe6dc3cc2262f3bcd776d2c67005880894f447b3f2cb9c1", + "sha256:0be65ccf618c1e7ac9b849c315cc2e8a8751d9cfdaa43027d4f6624bd587ab7e", + "sha256:0c95f12b74681e9ae127728f7e5409cbbef9cd914d5896ef238cc779b8152373", + "sha256:0ca564606d2caafb0abe6d1b5311c2649e8071eb241b2d64e75a0d0065107e62", + "sha256:10c93628d7497c81686e8e5e557aafa78f230cd9e77dd0c40032ef90c18f2230", + "sha256:11d117e6c63e8f495412d37e7dc2e2fff09c34b2d09dbe2bee3c6229577818be", + "sha256:11d3bcb7be35e7b1bba2c23beedac81ee893ac9871d0ba79effc7fc01167db6c", + "sha256:12a2b561af122e3d94cdb97fe6fb2bb2b82cef0cdca131646fdb940a1eda04f0", + "sha256:12d1a39aa6b8c6f6248bb54550efcc1c38ce0d8096a146638fd4738e42284448", + "sha256:1435ae15108b1cb6fffbcea2af3d468683b7afed0169ad718451f8db5d1aff6f", + "sha256:1c60b9c202d00052183c9be85e5eaf18a4ada0a47d188a83c8f5c5b23252f649", + "sha256:1e8fcdd8f672a1c4fc8d0bd3a2b576b152d2a349782d1eb0f6b8e52e9954731d", + "sha256:20064ead0717cf9a73a6d1e779b23d149b53daf971169289ed2ed43a71e8d3b0", + "sha256:21fa558996782fc226b529fdd2ed7866c2c6ec91cee82735c98a197fae39f706", + "sha256:22908891a380d50738e1f978667536f6c6b526a2064156203d418f4856d6e86a", + "sha256:3160a0fd9754aab7d47f95a6b63ab355388d890163eb03b2d2b87ab0a30cfa59", + "sha256:322102cdf1ab682ecc7d9b1c5eed4ec59657a65e1c146a0da342b78f4112db23", + "sha256:34e0a2f9c370eb95597aae63bf85eb5e96826d81e3dcf88b8886012906f509b5", + "sha256:3573d376454d956553c356df45bb824262c397c6e26ce43e8203c4c540ee0acb", + "sha256:3747443b6a904001473370d7810aa19c3a180ccd52a7157aacc264a5ac79265e", + "sha256:38e812a197bf8e71a59fe55b757a84c1f946d0ac114acafaafaf21667a7e169e", + "sha256:3a06f32c9634a8705f4ca9946d667609f52cf130d5548881401f1eb2c39b1e2c", + "sha256:3a5fc78f9e3f501a1614a98f7c54d3969f3ad9bba8ba3d9b438c3bc5d047dd28", + "sha256:3d9098b479e78c85080c98e1e35ff40b4a31d8953102bb0fd7d1b6f8a2111a3d", + "sha256:3dc5b6a8ecfdc5748a7e429782598e4f17ef378e3e272eeb1340ea57c9109f41", + "sha256:4155b51ae05ed47199dc5b2a4e62abccb274cee6b01da5b895099b61b1982974", + "sha256:49919f8400b5e49e961f320c735388ee686a62327e773fa5b3ce6721f7e785ce", + "sha256:53d0a3fa5f8af98a1e261de6a3943ca631c526635eb5817a87a59d9a57ebf48f", + "sha256:5f008525e02908b20e04707a4f704cd286d94718f48bb33edddc7d7b584dddc1", + "sha256:628c985afb2c7d27a4800bfb609e03985aaecb42f955049957814e0491d4006d", + "sha256:65ed923f84a6844de5fd29726b888e58c62820e0769b76565480e1fdc3d062f8", + "sha256:6734e606355834f13445b6adc38b53c0fd45f1a56a9ba06c2058f86893ae8017", + "sha256:6baf0baf0d5d265fa7944feb9f7451cc316bfe30e8df1a61b1bb08577c554f31", + "sha256:6f4f4668e1831850ebcc2fd0b1cd11721947b6dc7c00bf1c6bd3c929ae14f2c7", + "sha256:6f5c2e7bc8a4bf7c426599765b1bd33217ec84023033672c1e9a8b35eaeaaaf8", + "sha256:6f6c7a8a57e9405cad7485f4c9d3172ae486cfef1344b5ddd8e5239582d7355e", + "sha256:7381c66e0561c5757ffe616af869b916c8b4e42b367ab29fedc98481d1e74e14", + "sha256:73dc03a6a7e30b7edc5b01b601e53e7fc924b04e1835e8e407c12c037e81adbd", + "sha256:74db0052d985cf37fa111828d0dd230776ac99c740e1a758ad99094be4f1803d", + "sha256:75f2568b4189dda1c567339b48cba4ac7384accb9c2a7ed655cd86b04055c795", + "sha256:78cacd03e79d009d95635e7d6ff12c21eb89b894c354bd2b2ed0b4763373693b", + "sha256:80d1543d58bd3d6c271b66abf454d437a438dff01c3e62fdbcd68f2a11310d4b", + "sha256:830d2948a5ec37c386d3170c483063798d7879037492540f10a475e3fd6f244b", + "sha256:891cf9b48776b5c61c700b55a598621fdb7b1e301a550365571e9624f270c203", + "sha256:8f25e17ab3039b05f762b0a55ae0b3632b2e073d9c8fc88e89aca31a6198e88f", + "sha256:9a3267620866c9d17b959a84dd0bd2d45719b817245e49371ead79ed4f710d19", + "sha256:a04f86f41a8916fe45ac5024ec477f41f886b3c435da2d4e3d2709b22ab02af1", + "sha256:aaf53a6cebad0eae578f062c7d462155eada9c172bd8c4d250b8c1d8eb7f916a", + "sha256:abc1185d79f47c0a7aaf7e2412a0eb2c03b724581139193d2d82b3ad8cbb00ac", + "sha256:ac0aa6cd53ab9a31d397f8303f92c42f534693528fafbdb997c82bae6e477ad9", + "sha256:ac3775e3311661d4adace3697a52ac0bab17edd166087d493b52d4f4f553f9f0", + "sha256:b06f0d3bf045158d2fb8837c5785fe9ff9b8c93358be64461a1089f5da983137", + "sha256:b116502087ce8a6b7a5f1814568ccbd0e9f6cfd99948aa59b0e241dc57cf739f", + "sha256:b82fab78e0b1329e183a65260581de4375f619167478dddab510c6c6fb04d9b6", + "sha256:bd7163182133c0c7701b25e604cf1611c0d87712e56e88e7ee5d72deab3e76b5", + "sha256:c36bcbc0d5174a80d6cccf43a0ecaca44e81d25be4b7f90f0ed7bcfbb5a00909", + "sha256:c3af8e0f07399d3176b179f2e2634c3ce9c1301379a6b8c9c9aeecd481da494f", + "sha256:c84132a54c750fda57729d1e2599bb598f5fa0344085dbde5003ba429a4798c0", + "sha256:cb7b2ab0188829593b9de646545175547a70d9a6e2b63bf2cd87a0a391599324", + "sha256:cca4def576f47a09a943666b8f829606bcb17e2bc2d5911a46c8f8da45f56755", + "sha256:cf6511efa4801b9b38dc5546d7547d5b5c6ef4b081c60b23e4d941d0eba9cbeb", + "sha256:d16fd5252f883eb074ca55cb622bc0bee49b979ae4e8639fff6ca3ff44f9f854", + "sha256:d2686f91611f9e17f4548dbf050e75b079bbc2a82be565832bc8ea9047b61c8c", + "sha256:d7fc3fca01da18fbabe4625d64bb612b533533ed10045a2ac3dd194bfa656b60", + "sha256:dd5653e67b149503c68c4018bf07e42eeed6b4e956b24c00ccdf93ac79cdff84", + "sha256:de5695a6f1d8340b12a5d6d4484290ee74d61e467c39ff03b39e30df62cf83a0", + "sha256:e0ac8959c929593fee38da1c2b64ee9778733cdf03c482c9ff1d508b6b593b2b", + "sha256:e1b25e3ad6c909f398df8921780d6a3d120d8c09466720226fc621605b6f92b1", + "sha256:e633940f28c1e913615fd624fcdd72fdba807bf53ea6925d6a588e84e1151531", + "sha256:e89df2958e5159b811af9ff0f92614dabf4ff617c03a4c1c6ff53bf1c399e0e1", + "sha256:ea9f9c6034ea2d93d9147818f17c2a0860d41b71c38b9ce4d55f21b6f9165a11", + "sha256:f645caaf0008bacf349875a974220f1f1da349c5dbe7c4ec93048cdc785a3326", + "sha256:f8303414c7b03f794347ad062c0516cee0e15f7a612abd0ce1e25caf6ceb47df", + "sha256:fca62a8301b605b954ad2e9c3666f9d97f63872aa4efcae5492baca2056b74ab" + ], + "markers": "python_version >= '3.7'", + "version": "==3.1.0" }, "click": { "hashes": [ @@ -1709,59 +1855,59 @@ }, "markupsafe": { "hashes": [ - "sha256:0576fe974b40a400449768941d5d0858cc624e3249dfd1e0c33674e5c7ca7aed", - "sha256:085fd3201e7b12809f9e6e9bc1e5c96a368c8523fad5afb02afe3c051ae4afcc", - "sha256:090376d812fb6ac5f171e5938e82e7f2d7adc2b629101cec0db8b267815c85e2", - "sha256:0b462104ba25f1ac006fdab8b6a01ebbfbce9ed37fd37fd4acd70c67c973e460", - "sha256:137678c63c977754abe9086a3ec011e8fd985ab90631145dfb9294ad09c102a7", - "sha256:1bea30e9bf331f3fef67e0a3877b2288593c98a21ccb2cf29b74c581a4eb3af0", - "sha256:22152d00bf4a9c7c83960521fc558f55a1adbc0631fbb00a9471e097b19d72e1", - "sha256:22731d79ed2eb25059ae3df1dfc9cb1546691cc41f4e3130fe6bfbc3ecbbecfa", - "sha256:2298c859cfc5463f1b64bd55cb3e602528db6fa0f3cfd568d3605c50678f8f03", - "sha256:28057e985dace2f478e042eaa15606c7efccb700797660629da387eb289b9323", - "sha256:2e7821bffe00aa6bd07a23913b7f4e01328c3d5cc0b40b36c0bd81d362faeb65", - "sha256:2ec4f2d48ae59bbb9d1f9d7efb9236ab81429a764dedca114f5fdabbc3788013", - "sha256:340bea174e9761308703ae988e982005aedf427de816d1afe98147668cc03036", - "sha256:40627dcf047dadb22cd25ea7ecfe9cbf3bbbad0482ee5920b582f3809c97654f", - "sha256:40dfd3fefbef579ee058f139733ac336312663c6706d1163b82b3003fb1925c4", - "sha256:4cf06cdc1dda95223e9d2d3c58d3b178aa5dacb35ee7e3bbac10e4e1faacb419", - "sha256:50c42830a633fa0cf9e7d27664637532791bfc31c731a87b202d2d8ac40c3ea2", - "sha256:55f44b440d491028addb3b88f72207d71eeebfb7b5dbf0643f7c023ae1fba619", - "sha256:608e7073dfa9e38a85d38474c082d4281f4ce276ac0010224eaba11e929dd53a", - "sha256:63ba06c9941e46fa389d389644e2d8225e0e3e5ebcc4ff1ea8506dce646f8c8a", - "sha256:65608c35bfb8a76763f37036547f7adfd09270fbdbf96608be2bead319728fcd", - "sha256:665a36ae6f8f20a4676b53224e33d456a6f5a72657d9c83c2aa00765072f31f7", - "sha256:6d6607f98fcf17e534162f0709aaad3ab7a96032723d8ac8750ffe17ae5a0666", - "sha256:7313ce6a199651c4ed9d7e4cfb4aa56fe923b1adf9af3b420ee14e6d9a73df65", - "sha256:7668b52e102d0ed87cb082380a7e2e1e78737ddecdde129acadb0eccc5423859", - "sha256:7df70907e00c970c60b9ef2938d894a9381f38e6b9db73c5be35e59d92e06625", - "sha256:7e007132af78ea9df29495dbf7b5824cb71648d7133cf7848a2a5dd00d36f9ff", - "sha256:835fb5e38fd89328e9c81067fd642b3593c33e1e17e2fdbf77f5676abb14a156", - "sha256:8bca7e26c1dd751236cfb0c6c72d4ad61d986e9a41bbf76cb445f69488b2a2bd", - "sha256:8db032bf0ce9022a8e41a22598eefc802314e81b879ae093f36ce9ddf39ab1ba", - "sha256:99625a92da8229df6d44335e6fcc558a5037dd0a760e11d84be2260e6f37002f", - "sha256:9cad97ab29dfc3f0249b483412c85c8ef4766d96cdf9dcf5a1e3caa3f3661cf1", - "sha256:a4abaec6ca3ad8660690236d11bfe28dfd707778e2442b45addd2f086d6ef094", - "sha256:a6e40afa7f45939ca356f348c8e23048e02cb109ced1eb8420961b2f40fb373a", - "sha256:a6f2fcca746e8d5910e18782f976489939d54a91f9411c32051b4aab2bd7c513", - "sha256:a806db027852538d2ad7555b203300173dd1b77ba116de92da9afbc3a3be3eed", - "sha256:abcabc8c2b26036d62d4c746381a6f7cf60aafcc653198ad678306986b09450d", - "sha256:b8526c6d437855442cdd3d87eede9c425c4445ea011ca38d937db299382e6fa3", - "sha256:bb06feb762bade6bf3c8b844462274db0c76acc95c52abe8dbed28ae3d44a147", - "sha256:c0a33bc9f02c2b17c3ea382f91b4db0e6cde90b63b296422a939886a7a80de1c", - "sha256:c4a549890a45f57f1ebf99c067a4ad0cb423a05544accaf2b065246827ed9603", - "sha256:ca244fa73f50a800cf8c3ebf7fd93149ec37f5cb9596aa8873ae2c1d23498601", - "sha256:cf877ab4ed6e302ec1d04952ca358b381a882fbd9d1b07cccbfd61783561f98a", - "sha256:d9d971ec1e79906046aa3ca266de79eac42f1dbf3612a05dc9368125952bd1a1", - "sha256:da25303d91526aac3672ee6d49a2f3db2d9502a4a60b55519feb1a4c7714e07d", - "sha256:e55e40ff0cc8cc5c07996915ad367fa47da6b3fc091fdadca7f5403239c5fec3", - "sha256:f03a532d7dee1bed20bc4884194a16160a2de9ffc6354b3878ec9682bb623c54", - "sha256:f1cd098434e83e656abf198f103a8207a8187c0fc110306691a2e94a78d0abb2", - "sha256:f2bfb563d0211ce16b63c7cb9395d2c682a23187f54c3d79bfec33e6705473c6", - "sha256:f8ffb705ffcf5ddd0e80b65ddf7bed7ee4f5a441ea7d3419e861a12eaf41af58" - ], - "markers": "python_version >= '3.7'", - "version": "==2.1.2" + "sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e", + "sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e", + "sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431", + "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686", + "sha256:1577735524cdad32f9f694208aa75e422adba74f1baee7551620e43a3141f559", + "sha256:1b40069d487e7edb2676d3fbdb2b0829ffa2cd63a2ec26c4938b2d34391b4ecc", + "sha256:282c2cb35b5b673bbcadb33a585408104df04f14b2d9b01d4c345a3b92861c2c", + "sha256:2c1b19b3aaacc6e57b7e25710ff571c24d6c3613a45e905b1fde04d691b98ee0", + "sha256:2ef12179d3a291be237280175b542c07a36e7f60718296278d8593d21ca937d4", + "sha256:338ae27d6b8745585f87218a3f23f1512dbf52c26c28e322dbe54bcede54ccb9", + "sha256:3c0fae6c3be832a0a0473ac912810b2877c8cb9d76ca48de1ed31e1c68386575", + "sha256:3fd4abcb888d15a94f32b75d8fd18ee162ca0c064f35b11134be77050296d6ba", + "sha256:42de32b22b6b804f42c5d98be4f7e5e977ecdd9ee9b660fda1a3edf03b11792d", + "sha256:504b320cd4b7eff6f968eddf81127112db685e81f7e36e75f9f84f0df46041c3", + "sha256:525808b8019e36eb524b8c68acdd63a37e75714eac50e988180b169d64480a00", + "sha256:56d9f2ecac662ca1611d183feb03a3fa4406469dafe241673d521dd5ae92a155", + "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac", + "sha256:65c1a9bcdadc6c28eecee2c119465aebff8f7a584dd719facdd9e825ec61ab52", + "sha256:68e78619a61ecf91e76aa3e6e8e33fc4894a2bebe93410754bd28fce0a8a4f9f", + "sha256:69c0f17e9f5a7afdf2cc9fb2d1ce6aabdb3bafb7f38017c0b77862bcec2bbad8", + "sha256:6b2b56950d93e41f33b4223ead100ea0fe11f8e6ee5f641eb753ce4b77a7042b", + "sha256:787003c0ddb00500e49a10f2844fac87aa6ce977b90b0feaaf9de23c22508b24", + "sha256:7ef3cb2ebbf91e330e3bb937efada0edd9003683db6b57bb108c4001f37a02ea", + "sha256:8023faf4e01efadfa183e863fefde0046de576c6f14659e8782065bcece22198", + "sha256:8758846a7e80910096950b67071243da3e5a20ed2546e6392603c096778d48e0", + "sha256:8afafd99945ead6e075b973fefa56379c5b5c53fd8937dad92c662da5d8fd5ee", + "sha256:8c41976a29d078bb235fea9b2ecd3da465df42a562910f9022f1a03107bd02be", + "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2", + "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707", + "sha256:962f82a3086483f5e5f64dbad880d31038b698494799b097bc59c2edf392fce6", + "sha256:9dcdfd0eaf283af041973bff14a2e143b8bd64e069f4c383416ecd79a81aab58", + "sha256:aa7bd130efab1c280bed0f45501b7c8795f9fdbeb02e965371bbef3523627779", + "sha256:ab4a0df41e7c16a1392727727e7998a467472d0ad65f3ad5e6e765015df08636", + "sha256:ad9e82fb8f09ade1c3e1b996a6337afac2b8b9e365f926f5a61aacc71adc5b3c", + "sha256:af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad", + "sha256:b076b6226fb84157e3f7c971a47ff3a679d837cf338547532ab866c57930dbee", + "sha256:b7ff0f54cb4ff66dd38bebd335a38e2c22c41a8ee45aa608efc890ac3e3931bc", + "sha256:bfce63a9e7834b12b87c64d6b155fdd9b3b96191b6bd334bf37db7ff1fe457f2", + "sha256:c011a4149cfbcf9f03994ec2edffcb8b1dc2d2aede7ca243746df97a5d41ce48", + "sha256:c9c804664ebe8f83a211cace637506669e7890fec1b4195b505c214e50dd4eb7", + "sha256:ca379055a47383d02a5400cb0d110cef0a776fc644cda797db0c5696cfd7e18e", + "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b", + "sha256:cd0f502fe016460680cd20aaa5a76d241d6f35a1c3350c474bac1273803893fa", + "sha256:ceb01949af7121f9fc39f7d27f91be8546f3fb112c608bc4029aef0bab86a2a5", + "sha256:d080e0a5eb2529460b30190fcfcc4199bd7f827663f858a226a81bc27beaa97e", + "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb", + "sha256:df0be2b576a7abbf737b1575f048c23fb1d769f267ec4358296f31c2479db8f9", + "sha256:e09031c87a1e51556fdcb46e5bd4f59dfb743061cf93c4d6831bf894f125eb57", + "sha256:e4dd52d80b8c83fdce44e12478ad2e85c64ea965e75d66dbeafb0a3e77308fcc", + "sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2" + ], + "markers": "python_version >= '3.7'", + "version": "==2.1.3" }, "networkx": { "hashes": [ @@ -1908,11 +2054,11 @@ }, "requests": { "hashes": [ - "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983", - "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349" + "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f", + "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1" ], "index": "pypi", - "version": "==2.28.1" + "version": "==2.31.0" }, "s3transfer": { "hashes": [ From 53f2cacd7919a0d4b923e429752eb10af43d53fc Mon Sep 17 00:00:00 2001 From: Khai Do Date: Thu, 8 Jun 2023 08:37:31 -0700 Subject: [PATCH 07/19] Fix MalformedPolicyDocument error in template It looks like most of the examples from the AWS IAM documented[1] shows that AWS princial parameter takes a list so we try that to fix the MalformedPolicyDocument that we are seeing in the deployment. [1] https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html --- mc2-mcmicro-dev-project.yaml | 690 +++++++++++++++++++++++++++++++++++ templates/tower-project.j2 | 3 +- 2 files changed, 692 insertions(+), 1 deletion(-) create mode 100644 mc2-mcmicro-dev-project.yaml diff --git a/mc2-mcmicro-dev-project.yaml b/mc2-mcmicro-dev-project.yaml new file mode 100644 index 00000000..cb7147eb --- /dev/null +++ b/mc2-mcmicro-dev-project.yaml @@ -0,0 +1,690 @@ +--- +AWSTemplateFormatVersion: "2010-09-09" +Description: >- + Stack for provisioning the AWS resources needed for + configuring compute environments in Nextflow Tower. + +Parameters: + S3ReadWriteAccessArns: + Type: List + Default: "" + Description: >- + (Optional) List of IAM users and roles (strings) who + should have read- and write-access to the S3 bucket. + These ARNs will also have access to the configuration + secret. You can provide role ARNs or assumed-role ARNs. + + S3ReadOnlyAccessArns: + Type: List + Default: "" + Description: >- + (Optional) List of IAM users and roles (strings) + who should only have read-access to the S3 bucket. + These ARNs will also have access to the configuration + secret. You can provide role ARNs or assumed-role ARNs. + + AllowSynapseIndexing: + Type: String + Description: >- + 'Enabled' to allow Synapse indexing on the long-term (archival) bucket. + Default is 'Enabled'. + AllowedValues: + - Enabled + - Disabled + Default: Enabled + + EnableScratchDataExpiration: + Type: String + Description: >- + 'Enabled' to auto-delete objects/files in the short-term (scratch) bucket + based on the top-level folder (e.g., `10days`). Default is 'Enabled'. + AllowedValues: + - Enabled + - Disabled + Default: Enabled + + # TODO: Remove lifecycle transition params + ScratchLifecycleTransition: + Type: Number + Description: >- + Number of days until S3 objects in the short-term (scratch) bucket are + moved to ScratchLifecycleStorageClass. This is not related to data + expiration (i.e., auto-deletion of files). Default is 10 days. + Default: 10 + + ScratchLifecycleStorageClass: + Type: String + Description: >- + S3 bucket objects in the short-term (scratch) bucket will transition into this + storage class after a number of days specified by ScratchLifecycleTransition. + AllowedValues: + - DEEP_ARCHIVE + - INTELLIGENT_TIERING + - STANDARD_IA + - ONEZONE_IA + - GLACIER + Default: INTELLIGENT_TIERING + + AccountAdminArns: + Type: List + Description: >- + List of IAM user and role ARNs (strings) who should have access to + project-specific resources (e.g., private S3 bucket, KMS key, secrets). + + TemplateRootUrl: + Type: String + Description: URL of S3 bucket where templates are deployed + ConstraintDescription: Must be a valid S3 HTTP URL + + TowerForgePolicyArn: + Type: String + Description: ARN for Tower Forge IAM policy + + TowerLaunchPolicyArn: + Type: String + Description: ARN for Tower Launch IAM policy + +Conditions: + HasS3ReadWriteAccessArns: + !Not [!Equals [!Join [",", !Ref S3ReadWriteAccessArns], ""]] + HasS3ReadOnlyAccessArns: + !Not [!Equals [!Join [",", !Ref S3ReadOnlyAccessArns], ""]] + SynapseIndexingEnabled: !Equals [!Ref AllowSynapseIndexing, "Enabled"] + +Resources: + TowerForgeServiceUser: + Type: AWS::IAM::User + + TowerForgeServiceUserAccessKey: + Type: AWS::IAM::AccessKey + Properties: + UserName: !Ref TowerForgeServiceUser + + TowerForgeServiceRole: + Type: AWS::IAM::Role + Properties: + ManagedPolicyArns: + - !Ref TowerForgePolicyArn + - !Ref TowerLaunchPolicyArn + AssumeRolePolicyDocument: + Version: "2012-10-17" + Statement: + - Effect: Allow + Action: sts:AssumeRole + Principal: + AWS: !GetAtt TowerForgeServiceUser.Arn + - Effect: Allow + Action: sts:AssumeRole + Principal: + AWS: !Ref AccountAdminArns + + TowerForgeBatchHeadJobRole: + Type: AWS::IAM::Role + Properties: + AssumeRolePolicyDocument: + Version: "2012-10-17" + Statement: + - Effect: Allow + Action: sts:AssumeRole + Principal: + Service: + - ecs-tasks.amazonaws.com + + TowerForgeBatchWorkJobRole: + Type: AWS::IAM::Role + Properties: + AssumeRolePolicyDocument: + Version: "2012-10-17" + Statement: + - Effect: Allow + Action: sts:AssumeRole + Principal: + Service: + - ecs-tasks.amazonaws.com + + TowerRole: + Type: "AWS::IAM::Role" + Properties: + ManagedPolicyArns: + - !Sub '!ImportValue ${AWS::Region}-nextflow-forge-iam-policy-NextFlowForgePolicyArn' + - !Sub '!ImportValue ${AWS::Region}-nextflow-launch-iam-policy-NextFlowLaunchPolicyArn' + AssumeRolePolicyDocument: + Version: '2012-10-17' + Statement: + - Effect: Allow + Principal: + Service: ec2.amazonaws.com + Action: sts:AssumeRole + - Effect: Allow + Principal: + Service: ecs-tasks.amazonaws.com + Action: sts:AssumeRole + - Effect: Allow + Principal: + Service: eks.amazonaws.com + Action: sts:AssumeRole + - Sid: AllowEc2AssumeRole + Effect: Allow + Principal: + AWS: !Ref AccountAdminArns + Action: sts:AssumeRole + - Sid: AllowEcsServiceRole2AssumeRole + Effect: Allow + Principal: + AWS: !Sub '!ImportValue ${AWS::Region}-nextflow-ecs-service-EcsServiceRoleArn' + Action: sts:AssumeRole + + TowerForgeBatchHeadJobPolicy: + Type: AWS::IAM::Policy + Properties: + PolicyName: TowerForgeBucketAccessPolicy + PolicyDocument: + Version: "2012-10-17" + Statement: + - Sid: NextflowConfig + Effect: Allow + Action: + - batch:DescribeJobQueues + - batch:CancelJob + - batch:SubmitJob + - batch:ListJobs + - batch:DescribeComputeEnvironments + - batch:TerminateJob + - batch:DescribeJobs + - batch:RegisterJobDefinition + - batch:DescribeJobDefinitions + - ecs:DescribeContainerInstances + - ecs:DescribeTasks + - ec2:DescribeInstances + - ec2:DescribeInstanceAttribute + - ec2:DescribeInstanceTypes + - ec2:DescribeInstanceStatus + - secretsmanager:ListSecrets + - logs:GetLogEvents + - batch:TagResource + Resource: "*" + - Sid: IAMConfig + Effect: Allow + Action: + - iam:GetRole + - iam:PassRole + Resource: + - !GetAtt TowerForgeBatchWorkJobRole.Arn + - !GetAtt TowerForgeBatchExecutionRole.Arn + Roles: + - !Ref TowerForgeBatchHeadJobRole + + TowerForgeExternalS3AccessPolicy: + Type: AWS::IAM::Policy + Properties: + PolicyName: TowerForgeExternalS3AccessPolicy + PolicyDocument: + Version: "2012-10-17" + Statement: + - Sid: ConditionalAmazonS3ReadOnlyAccess + Effect: Allow + Action: + - "s3:Get*" + - "s3:List*" + - "s3-object-lambda:Get*" + - "s3-object-lambda:List*" + Resource: "*" + Condition: + StringNotEquals: + s3:ResourceAccount: + - !Sub "${AWS::AccountId}" + Roles: + - !Ref TowerForgeBatchHeadJobRole + - !Ref TowerForgeBatchWorkJobRole + + TowerForgeBatchExecutionRole: + Type: AWS::IAM::Role + Properties: + ManagedPolicyArns: + - arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy + AssumeRolePolicyDocument: + Version: "2012-10-17" + Statement: + - Effect: Allow + Action: sts:AssumeRole + Principal: + Service: + - ecs-tasks.amazonaws.com + + TowerForgeBatchExecutionPolicy: + Type: AWS::IAM::Policy + Properties: + PolicyName: TowerForgeBatchExecutionSecretAccess + PolicyDocument: + Version: "2012-10-17" + Statement: + - Sid: TowerForgeBatchExecutionSecretAccess + Effect: Allow + Action: + - secretsmanager:GetSecretValue + Resource: "arn:aws:secretsmanager:*:*:secret:tower-*" + Roles: + - !Ref TowerForgeBatchExecutionRole + + EncryptionKeyStack: + Type: AWS::CloudFormation::Stack + Properties: + TemplateURL: !Sub ${TemplateRootUrl}/aws-infra/v0.4.6/KMS/kms-key.yaml + TimeoutInMinutes: 5 + Parameters: + AliasName: !Sub "alias/${AWS::StackName}-EncryptionKey" + AdminPrincipalArns: !Join + - "," + - - !Sub "arn:aws:iam::${AWS::AccountId}:root" + - !Join + - "," + - !Ref AccountAdminArns + UserPrincipalArns: !Join + - "," + - - !Sub "arn:aws:iam::${AWS::AccountId}:root" + - !GetAtt TowerForgeBatchHeadJobRole.Arn + - !GetAtt TowerForgeBatchWorkJobRole.Arn + - !GetAtt TowerForgeServiceRole.Arn + - !Join + - "," + - !Ref AccountAdminArns + - !If + - HasS3ReadWriteAccessArns + - !Join + - "," + - !Ref S3ReadWriteAccessArns + - !Ref AWS::NoValue + - !If + - HasS3ReadOnlyAccessArns + - !Join + - "," + - !Ref S3ReadOnlyAccessArns + - !Ref AWS::NoValue + - !If + - SynapseIndexingEnabled + - "arn:aws:iam::325565585839:root" + - !Ref AWS::NoValue + + TowerBucket: + Type: AWS::S3::Bucket + Properties: + BucketName: !Sub "${AWS::StackName}-tower-bucket" + OwnershipControls: + Rules: + - ObjectOwnership: BucketOwnerEnforced + PublicAccessBlockConfiguration: + BlockPublicAcls: true + BlockPublicPolicy: true + IgnorePublicAcls: true + RestrictPublicBuckets: true + BucketEncryption: + ServerSideEncryptionConfiguration: + - BucketKeyEnabled: true + ServerSideEncryptionByDefault: + SSEAlgorithm: aws:kms + KMSMasterKeyID: !GetAtt EncryptionKeyStack.Outputs.KeyArn + LifecycleConfiguration: + Rules: + - Id: IntelligentDataLifecycleRule + Status: Enabled + Transitions: + - TransitionInDays: 30 + StorageClass: INTELLIGENT_TIERING + CorsConfiguration: + CorsRules: + - !If + - SynapseIndexingEnabled + - Id: SynapseCORSRule + AllowedHeaders: ["*"] + AllowedOrigins: ["*"] + AllowedMethods: [GET, POST, PUT, HEAD] + MaxAge: 3000 + - Id: NullCorsRule + AllowedHeaders: [""] + AllowedOrigins: [""] + AllowedMethods: ["GET"] + MaxAge: 0 + + TowerBucketPolicy: + Type: AWS::S3::BucketPolicy + Properties: + Bucket: !Ref TowerBucket + PolicyDocument: + Version: "2012-10-17" + Statement: + - Sid: DenyCrossProjectAccess + Effect: Deny + Principal: + AWS: "*" + Action: + - "s3:*" + Condition: + ArnLike: + aws:PrincipalArn: !Sub "arn:aws:iam::${AWS::AccountId}:role/TowerForge-*" + Resource: + - !Sub "arn:aws:s3:::${TowerBucket}" + - !Sub "arn:aws:s3:::${TowerBucket}/*" + - Sid: TowerForgeRoleS3Access + Effect: Allow + Principal: + AWS: + - !GetAtt TowerForgeServiceRole.Arn + - !GetAtt TowerForgeBatchHeadJobRole.Arn + - !GetAtt TowerForgeBatchWorkJobRole.Arn + Action: + - "s3:GetBucketLocation" + - "s3:ListBucket" + - "s3:GetObject" + - "s3:PutObject" + - "s3:PutObjectTagging" + - "s3:DeleteObject" + - "s3:*MultipartUpload*" + Resource: + - !Sub "arn:aws:s3:::${TowerBucket}" + - !Sub "arn:aws:s3:::${TowerBucket}/*" + - !If + - HasS3ReadWriteAccessArns + - Sid: GrantReadWriteAccessToS3ReadWriteAccessArns + Effect: Allow + Principal: + AWS: !Ref S3ReadWriteAccessArns + Action: + - "s3:GetObject*" + - "s3:PutObject*" + - "s3:DeleteObject*" + - "s3:*MultipartUpload*" + - "s3:ListBucket*" + - "s3:GetBucketLocation" + Resource: + - !Sub "arn:aws:s3:::${TowerBucket}" + - !Sub "arn:aws:s3:::${TowerBucket}/*" + - !Ref AWS::NoValue + - !If + - HasS3ReadOnlyAccessArns + - Sid: GrantReadAccessToS3ReadOnlyAccessArns + Effect: Allow + Principal: + AWS: !Ref S3ReadOnlyAccessArns + Action: + - "s3:ListBucket*" + - "s3:GetBucketLocation" + - "s3:GetObject" + - "s3:GetObjectAcl" + Resource: + - !Sub "arn:aws:s3:::${TowerBucket}" + - !Sub "arn:aws:s3:::${TowerBucket}/*" + - !Ref AWS::NoValue + - !If + - SynapseIndexingEnabled + - Sid: GrantBucketReadAccessToSynapse + Effect: Allow + Principal: + AWS: "arn:aws:iam::325565585839:root" # Synapse Account + Action: + - "s3:ListBucket" + - "s3:GetBucketLocation" + Resource: + - !Sub "arn:aws:s3:::${TowerBucket}" + - !Ref AWS::NoValue + - !If + - SynapseIndexingEnabled + - Sid: GrantObjectReadAccessToSynapse + Effect: Allow + Principal: + AWS: "arn:aws:iam::325565585839:root" # Synapse Account + Action: + - "s3:GetObject" + Resource: + - !Sub "arn:aws:s3:::${TowerBucket}/*" + - !Ref AWS::NoValue + + TowerScratch: + Type: AWS::S3::Bucket + Properties: + BucketName: !Sub "${AWS::StackName}-tower-scratch" + OwnershipControls: + Rules: + - ObjectOwnership: BucketOwnerEnforced + PublicAccessBlockConfiguration: + BlockPublicAcls: true + BlockPublicPolicy: true + IgnorePublicAcls: true + RestrictPublicBuckets: true + BucketEncryption: + ServerSideEncryptionConfiguration: + - BucketKeyEnabled: true + ServerSideEncryptionByDefault: + SSEAlgorithm: aws:kms + KMSMasterKeyID: !GetAtt EncryptionKeyStack.Outputs.KeyArn + LifecycleConfiguration: + Rules: + - Id: LifecycleStorageClassTransition + Status: Enabled + Transitions: + - TransitionInDays: !Ref ScratchLifecycleTransition + StorageClass: !Ref ScratchLifecycleStorageClass + - Id: DataExpirationForWorkDirectory + Status: !Ref EnableScratchDataExpiration + ExpirationInDays: 30 + Prefix: work/ + - Id: DataExpirationFor1DaysDirectory + Status: !Ref EnableScratchDataExpiration + ExpirationInDays: 1 + Prefix: 1days/ + - Id: DataExpirationFor3DaysDirectory + Status: !Ref EnableScratchDataExpiration + ExpirationInDays: 3 + Prefix: 3days/ + - Id: DataExpirationFor5DaysDirectory + Status: !Ref EnableScratchDataExpiration + ExpirationInDays: 5 + Prefix: 5days/ + - Id: DataExpirationFor7DaysDirectory + Status: !Ref EnableScratchDataExpiration + ExpirationInDays: 7 + Prefix: 7days/ + - Id: DataExpirationFor10DaysDirectory + Status: !Ref EnableScratchDataExpiration + ExpirationInDays: 10 + Prefix: 10days/ + - Id: DataExpirationFor20DaysDirectory + Status: !Ref EnableScratchDataExpiration + ExpirationInDays: 20 + Prefix: 20days/ + - Id: DataExpirationFor30DaysDirectory + Status: !Ref EnableScratchDataExpiration + ExpirationInDays: 30 + Prefix: 30days/ + - Id: DataExpirationFor60DaysDirectory + Status: !Ref EnableScratchDataExpiration + ExpirationInDays: 60 + Prefix: 60days/ + - Id: DataExpirationFor90DaysDirectory + Status: !Ref EnableScratchDataExpiration + ExpirationInDays: 90 + Prefix: 90days/ + # max(scratch_data_expirations) (e.g., 90 days) will appear twice. This doesn't + # change the end result. This decision was made to avoid writing the logic to + # exclude the max duration from the above for-loop. + - Id: DataExpirationForEntireBucket + Status: !Ref EnableScratchDataExpiration + ExpirationInDays: 90 + + TowerScratchPolicy: + Type: AWS::S3::BucketPolicy + Properties: + Bucket: !Ref TowerScratch + PolicyDocument: + Version: "2012-10-17" + Statement: + - Sid: DenyCrossProjectAccess + Effect: Deny + Principal: + AWS: "*" + Action: + - "s3:*" + Condition: + ArnLike: + aws:PrincipalArn: !Sub "arn:aws:iam::${AWS::AccountId}:role/TowerForge-*" + Resource: + - !Sub "arn:aws:s3:::${TowerScratch}" + - !Sub "arn:aws:s3:::${TowerScratch}/*" + - Sid: TowerForgeRoleS3Access + Effect: Allow + Principal: + AWS: + - !GetAtt TowerForgeServiceRole.Arn + - !GetAtt TowerForgeBatchHeadJobRole.Arn + - !GetAtt TowerForgeBatchWorkJobRole.Arn + Action: + - "s3:GetBucketLocation" + - "s3:ListBucket" + - "s3:GetObject" + - "s3:DeleteObject" + - "s3:PutObject" + - "s3:PutObjectTagging" + - "s3:*MultipartUpload*" + Resource: + - !Sub "arn:aws:s3:::${TowerScratch}" + - !Sub "arn:aws:s3:::${TowerScratch}/*" + - !If + - HasS3ReadWriteAccessArns + - Sid: GrantReadWriteAccessToS3ReadWriteAccessArns + Effect: Allow + Principal: + AWS: !Ref S3ReadWriteAccessArns + Action: + - "s3:GetObject*" + - "s3:ListBucket*" + - "s3:GetBucketLocation" + - "s3:DeleteObject*" + - "s3:PutObject*" + - "s3:*MultipartUpload*" + Resource: + - !Sub "arn:aws:s3:::${TowerScratch}" + - !Sub "arn:aws:s3:::${TowerScratch}/*" + - !Ref AWS::NoValue + - !If + - HasS3ReadOnlyAccessArns + - Sid: GrantReadAccessToS3ReadOnlyAccessArns + Effect: Allow + Principal: + AWS: !Ref S3ReadOnlyAccessArns + Action: + - "s3:ListBucket*" + - "s3:GetBucketLocation" + - "s3:GetObject" + - "s3:GetObjectAcl" + Resource: + - !Sub "arn:aws:s3:::${TowerScratch}" + - !Sub "arn:aws:s3:::${TowerScratch}/*" + - !Ref AWS::NoValue + + TowerForgeServiceUserAccessKeySecret: + Type: AWS::SecretsManager::Secret + Properties: + Description: !Sub "AWS credentials for the ${TowerForgeServiceUser} IAM user" + SecretString: !Sub >- + { + "aws_access_key_id": "${TowerForgeServiceUserAccessKey}", + "aws_secret_access_key": "${TowerForgeServiceUserAccessKey.SecretAccessKey}" + } + KmsKeyId: !GetAtt EncryptionKeyStack.Outputs.Key + +Outputs: + S3ReadWriteAccessArns: + Condition: HasS3ReadWriteAccessArns + Value: !Join [",", !Ref S3ReadWriteAccessArns] + Export: + Name: !Sub "${AWS::Region}-${AWS::StackName}-S3ReadWriteAccessArns" + + S3ReadOnlyAccessArns: + Condition: HasS3ReadOnlyAccessArns + Value: !Join [",", !Ref S3ReadOnlyAccessArns] + Export: + Name: !Sub "${AWS::Region}-${AWS::StackName}-S3ReadOnlyAccessArns" + + TowerBucket: + Value: !Ref TowerBucket + Export: + Name: !Sub "${AWS::Region}-${AWS::StackName}-TowerBucket" + + TowerBucketArn: + Value: !GetAtt TowerBucket.Arn + Export: + Name: !Sub "${AWS::Region}-${AWS::StackName}-TowerBucketArn" + + TowerScratch: + Value: !Ref TowerScratch + Export: + Name: !Sub "${AWS::Region}-${AWS::StackName}-TowerScratch" + + TowerScratchArn: + Value: !GetAtt TowerScratch.Arn + Export: + Name: !Sub "${AWS::Region}-${AWS::StackName}-TowerScratchArn" + + TowerForgeServiceUser: + Value: !Ref TowerForgeServiceUser + Export: + Name: !Sub "${AWS::Region}-${AWS::StackName}-TowerForgeServiceUser" + + TowerForgeServiceUserArn: + Value: !GetAtt TowerForgeServiceUser.Arn + Export: + Name: !Sub "${AWS::Region}-${AWS::StackName}-TowerForgeServiceUserArn" + + TowerForgeServiceRole: + Value: !Ref TowerForgeServiceRole + Export: + Name: !Sub "${AWS::Region}-${AWS::StackName}-TowerForgeServiceRole" + + TowerForgeServiceRoleArn: + Value: !GetAtt TowerForgeServiceRole.Arn + Export: + Name: !Sub "${AWS::Region}-${AWS::StackName}-TowerForgeServiceRoleArn" + + TowerRoleArn: + Value: !GetAtt TowerRole.Arn + Export: + Name: !Sub "${AWS::Region}-${AWS::StackName}-TowerRoleArn" + + TowerForgeBatchHeadJobRole: + Value: !Ref TowerForgeBatchHeadJobRole + Export: + Name: !Sub "${AWS::Region}-${AWS::StackName}-TowerForgeBatchHeadJobRole" + + TowerForgeBatchHeadJobRoleArn: + Value: !GetAtt TowerForgeBatchHeadJobRole.Arn + Export: + Name: !Sub "${AWS::Region}-${AWS::StackName}-TowerForgeBatchHeadJobRoleArn" + + TowerForgeBatchWorkJobRole: + Value: !Ref TowerForgeBatchWorkJobRole + Export: + Name: !Sub "${AWS::Region}-${AWS::StackName}-TowerForgeBatchWorkJobRole" + + TowerForgeBatchWorkJobRoleArn: + Value: !GetAtt TowerForgeBatchWorkJobRole.Arn + Export: + Name: !Sub "${AWS::Region}-${AWS::StackName}-TowerForgeBatchWorkJobRoleArn" + + TowerForgeBatchExecutionRole: + Value: !Ref TowerForgeBatchExecutionRole + Export: + Name: !Sub "${AWS::Region}-${AWS::StackName}-TowerForgeBatchExecutionRole" + + TowerForgeBatchExecutionRoleArn: + Value: !GetAtt TowerForgeBatchExecutionRole.Arn + Export: + Name: !Sub "${AWS::Region}-${AWS::StackName}-TowerForgeBatchExecutionRoleArn" + + TowerForgeServiceUserAccessKeySecret: + Value: !Sub "${AWS::StackName}-TowerProjectConfiguration" + Export: + Name: !Sub "${AWS::Region}-${AWS::StackName}-TowerForgeServiceUserAccessKeySecret" + + TowerForgeServiceUserAccessKeySecretArn: + Value: !Ref TowerForgeServiceUserAccessKeySecret + Export: + Name: !Sub "${AWS::Region}-${AWS::StackName}-TowerForgeServiceUserAccessKeySecretArn" diff --git a/templates/tower-project.j2 b/templates/tower-project.j2 index 94090adf..414ece92 100644 --- a/templates/tower-project.j2 +++ b/templates/tower-project.j2 @@ -170,7 +170,8 @@ Resources: - Sid: AllowEcsServiceRole2AssumeRole Effect: Allow Principal: - AWS: !Sub '!ImportValue ${AWS::Region}-nextflow-ecs-service-EcsServiceRoleArn' + AWS: + - !Sub '!ImportValue ${AWS::Region}-nextflow-ecs-service-EcsServiceRoleArn' Action: sts:AssumeRole TowerForgeBatchHeadJobPolicy: From e79fc02c29af85dafb052b8afef06dfa6043c67c Mon Sep 17 00:00:00 2001 From: Khai Do Date: Thu, 8 Jun 2023 08:47:30 -0700 Subject: [PATCH 08/19] remove accidentally committed file --- mc2-mcmicro-dev-project.yaml | 690 ----------------------------------- 1 file changed, 690 deletions(-) delete mode 100644 mc2-mcmicro-dev-project.yaml diff --git a/mc2-mcmicro-dev-project.yaml b/mc2-mcmicro-dev-project.yaml deleted file mode 100644 index cb7147eb..00000000 --- a/mc2-mcmicro-dev-project.yaml +++ /dev/null @@ -1,690 +0,0 @@ ---- -AWSTemplateFormatVersion: "2010-09-09" -Description: >- - Stack for provisioning the AWS resources needed for - configuring compute environments in Nextflow Tower. - -Parameters: - S3ReadWriteAccessArns: - Type: List - Default: "" - Description: >- - (Optional) List of IAM users and roles (strings) who - should have read- and write-access to the S3 bucket. - These ARNs will also have access to the configuration - secret. You can provide role ARNs or assumed-role ARNs. - - S3ReadOnlyAccessArns: - Type: List - Default: "" - Description: >- - (Optional) List of IAM users and roles (strings) - who should only have read-access to the S3 bucket. - These ARNs will also have access to the configuration - secret. You can provide role ARNs or assumed-role ARNs. - - AllowSynapseIndexing: - Type: String - Description: >- - 'Enabled' to allow Synapse indexing on the long-term (archival) bucket. - Default is 'Enabled'. - AllowedValues: - - Enabled - - Disabled - Default: Enabled - - EnableScratchDataExpiration: - Type: String - Description: >- - 'Enabled' to auto-delete objects/files in the short-term (scratch) bucket - based on the top-level folder (e.g., `10days`). Default is 'Enabled'. - AllowedValues: - - Enabled - - Disabled - Default: Enabled - - # TODO: Remove lifecycle transition params - ScratchLifecycleTransition: - Type: Number - Description: >- - Number of days until S3 objects in the short-term (scratch) bucket are - moved to ScratchLifecycleStorageClass. This is not related to data - expiration (i.e., auto-deletion of files). Default is 10 days. - Default: 10 - - ScratchLifecycleStorageClass: - Type: String - Description: >- - S3 bucket objects in the short-term (scratch) bucket will transition into this - storage class after a number of days specified by ScratchLifecycleTransition. - AllowedValues: - - DEEP_ARCHIVE - - INTELLIGENT_TIERING - - STANDARD_IA - - ONEZONE_IA - - GLACIER - Default: INTELLIGENT_TIERING - - AccountAdminArns: - Type: List - Description: >- - List of IAM user and role ARNs (strings) who should have access to - project-specific resources (e.g., private S3 bucket, KMS key, secrets). - - TemplateRootUrl: - Type: String - Description: URL of S3 bucket where templates are deployed - ConstraintDescription: Must be a valid S3 HTTP URL - - TowerForgePolicyArn: - Type: String - Description: ARN for Tower Forge IAM policy - - TowerLaunchPolicyArn: - Type: String - Description: ARN for Tower Launch IAM policy - -Conditions: - HasS3ReadWriteAccessArns: - !Not [!Equals [!Join [",", !Ref S3ReadWriteAccessArns], ""]] - HasS3ReadOnlyAccessArns: - !Not [!Equals [!Join [",", !Ref S3ReadOnlyAccessArns], ""]] - SynapseIndexingEnabled: !Equals [!Ref AllowSynapseIndexing, "Enabled"] - -Resources: - TowerForgeServiceUser: - Type: AWS::IAM::User - - TowerForgeServiceUserAccessKey: - Type: AWS::IAM::AccessKey - Properties: - UserName: !Ref TowerForgeServiceUser - - TowerForgeServiceRole: - Type: AWS::IAM::Role - Properties: - ManagedPolicyArns: - - !Ref TowerForgePolicyArn - - !Ref TowerLaunchPolicyArn - AssumeRolePolicyDocument: - Version: "2012-10-17" - Statement: - - Effect: Allow - Action: sts:AssumeRole - Principal: - AWS: !GetAtt TowerForgeServiceUser.Arn - - Effect: Allow - Action: sts:AssumeRole - Principal: - AWS: !Ref AccountAdminArns - - TowerForgeBatchHeadJobRole: - Type: AWS::IAM::Role - Properties: - AssumeRolePolicyDocument: - Version: "2012-10-17" - Statement: - - Effect: Allow - Action: sts:AssumeRole - Principal: - Service: - - ecs-tasks.amazonaws.com - - TowerForgeBatchWorkJobRole: - Type: AWS::IAM::Role - Properties: - AssumeRolePolicyDocument: - Version: "2012-10-17" - Statement: - - Effect: Allow - Action: sts:AssumeRole - Principal: - Service: - - ecs-tasks.amazonaws.com - - TowerRole: - Type: "AWS::IAM::Role" - Properties: - ManagedPolicyArns: - - !Sub '!ImportValue ${AWS::Region}-nextflow-forge-iam-policy-NextFlowForgePolicyArn' - - !Sub '!ImportValue ${AWS::Region}-nextflow-launch-iam-policy-NextFlowLaunchPolicyArn' - AssumeRolePolicyDocument: - Version: '2012-10-17' - Statement: - - Effect: Allow - Principal: - Service: ec2.amazonaws.com - Action: sts:AssumeRole - - Effect: Allow - Principal: - Service: ecs-tasks.amazonaws.com - Action: sts:AssumeRole - - Effect: Allow - Principal: - Service: eks.amazonaws.com - Action: sts:AssumeRole - - Sid: AllowEc2AssumeRole - Effect: Allow - Principal: - AWS: !Ref AccountAdminArns - Action: sts:AssumeRole - - Sid: AllowEcsServiceRole2AssumeRole - Effect: Allow - Principal: - AWS: !Sub '!ImportValue ${AWS::Region}-nextflow-ecs-service-EcsServiceRoleArn' - Action: sts:AssumeRole - - TowerForgeBatchHeadJobPolicy: - Type: AWS::IAM::Policy - Properties: - PolicyName: TowerForgeBucketAccessPolicy - PolicyDocument: - Version: "2012-10-17" - Statement: - - Sid: NextflowConfig - Effect: Allow - Action: - - batch:DescribeJobQueues - - batch:CancelJob - - batch:SubmitJob - - batch:ListJobs - - batch:DescribeComputeEnvironments - - batch:TerminateJob - - batch:DescribeJobs - - batch:RegisterJobDefinition - - batch:DescribeJobDefinitions - - ecs:DescribeContainerInstances - - ecs:DescribeTasks - - ec2:DescribeInstances - - ec2:DescribeInstanceAttribute - - ec2:DescribeInstanceTypes - - ec2:DescribeInstanceStatus - - secretsmanager:ListSecrets - - logs:GetLogEvents - - batch:TagResource - Resource: "*" - - Sid: IAMConfig - Effect: Allow - Action: - - iam:GetRole - - iam:PassRole - Resource: - - !GetAtt TowerForgeBatchWorkJobRole.Arn - - !GetAtt TowerForgeBatchExecutionRole.Arn - Roles: - - !Ref TowerForgeBatchHeadJobRole - - TowerForgeExternalS3AccessPolicy: - Type: AWS::IAM::Policy - Properties: - PolicyName: TowerForgeExternalS3AccessPolicy - PolicyDocument: - Version: "2012-10-17" - Statement: - - Sid: ConditionalAmazonS3ReadOnlyAccess - Effect: Allow - Action: - - "s3:Get*" - - "s3:List*" - - "s3-object-lambda:Get*" - - "s3-object-lambda:List*" - Resource: "*" - Condition: - StringNotEquals: - s3:ResourceAccount: - - !Sub "${AWS::AccountId}" - Roles: - - !Ref TowerForgeBatchHeadJobRole - - !Ref TowerForgeBatchWorkJobRole - - TowerForgeBatchExecutionRole: - Type: AWS::IAM::Role - Properties: - ManagedPolicyArns: - - arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy - AssumeRolePolicyDocument: - Version: "2012-10-17" - Statement: - - Effect: Allow - Action: sts:AssumeRole - Principal: - Service: - - ecs-tasks.amazonaws.com - - TowerForgeBatchExecutionPolicy: - Type: AWS::IAM::Policy - Properties: - PolicyName: TowerForgeBatchExecutionSecretAccess - PolicyDocument: - Version: "2012-10-17" - Statement: - - Sid: TowerForgeBatchExecutionSecretAccess - Effect: Allow - Action: - - secretsmanager:GetSecretValue - Resource: "arn:aws:secretsmanager:*:*:secret:tower-*" - Roles: - - !Ref TowerForgeBatchExecutionRole - - EncryptionKeyStack: - Type: AWS::CloudFormation::Stack - Properties: - TemplateURL: !Sub ${TemplateRootUrl}/aws-infra/v0.4.6/KMS/kms-key.yaml - TimeoutInMinutes: 5 - Parameters: - AliasName: !Sub "alias/${AWS::StackName}-EncryptionKey" - AdminPrincipalArns: !Join - - "," - - - !Sub "arn:aws:iam::${AWS::AccountId}:root" - - !Join - - "," - - !Ref AccountAdminArns - UserPrincipalArns: !Join - - "," - - - !Sub "arn:aws:iam::${AWS::AccountId}:root" - - !GetAtt TowerForgeBatchHeadJobRole.Arn - - !GetAtt TowerForgeBatchWorkJobRole.Arn - - !GetAtt TowerForgeServiceRole.Arn - - !Join - - "," - - !Ref AccountAdminArns - - !If - - HasS3ReadWriteAccessArns - - !Join - - "," - - !Ref S3ReadWriteAccessArns - - !Ref AWS::NoValue - - !If - - HasS3ReadOnlyAccessArns - - !Join - - "," - - !Ref S3ReadOnlyAccessArns - - !Ref AWS::NoValue - - !If - - SynapseIndexingEnabled - - "arn:aws:iam::325565585839:root" - - !Ref AWS::NoValue - - TowerBucket: - Type: AWS::S3::Bucket - Properties: - BucketName: !Sub "${AWS::StackName}-tower-bucket" - OwnershipControls: - Rules: - - ObjectOwnership: BucketOwnerEnforced - PublicAccessBlockConfiguration: - BlockPublicAcls: true - BlockPublicPolicy: true - IgnorePublicAcls: true - RestrictPublicBuckets: true - BucketEncryption: - ServerSideEncryptionConfiguration: - - BucketKeyEnabled: true - ServerSideEncryptionByDefault: - SSEAlgorithm: aws:kms - KMSMasterKeyID: !GetAtt EncryptionKeyStack.Outputs.KeyArn - LifecycleConfiguration: - Rules: - - Id: IntelligentDataLifecycleRule - Status: Enabled - Transitions: - - TransitionInDays: 30 - StorageClass: INTELLIGENT_TIERING - CorsConfiguration: - CorsRules: - - !If - - SynapseIndexingEnabled - - Id: SynapseCORSRule - AllowedHeaders: ["*"] - AllowedOrigins: ["*"] - AllowedMethods: [GET, POST, PUT, HEAD] - MaxAge: 3000 - - Id: NullCorsRule - AllowedHeaders: [""] - AllowedOrigins: [""] - AllowedMethods: ["GET"] - MaxAge: 0 - - TowerBucketPolicy: - Type: AWS::S3::BucketPolicy - Properties: - Bucket: !Ref TowerBucket - PolicyDocument: - Version: "2012-10-17" - Statement: - - Sid: DenyCrossProjectAccess - Effect: Deny - Principal: - AWS: "*" - Action: - - "s3:*" - Condition: - ArnLike: - aws:PrincipalArn: !Sub "arn:aws:iam::${AWS::AccountId}:role/TowerForge-*" - Resource: - - !Sub "arn:aws:s3:::${TowerBucket}" - - !Sub "arn:aws:s3:::${TowerBucket}/*" - - Sid: TowerForgeRoleS3Access - Effect: Allow - Principal: - AWS: - - !GetAtt TowerForgeServiceRole.Arn - - !GetAtt TowerForgeBatchHeadJobRole.Arn - - !GetAtt TowerForgeBatchWorkJobRole.Arn - Action: - - "s3:GetBucketLocation" - - "s3:ListBucket" - - "s3:GetObject" - - "s3:PutObject" - - "s3:PutObjectTagging" - - "s3:DeleteObject" - - "s3:*MultipartUpload*" - Resource: - - !Sub "arn:aws:s3:::${TowerBucket}" - - !Sub "arn:aws:s3:::${TowerBucket}/*" - - !If - - HasS3ReadWriteAccessArns - - Sid: GrantReadWriteAccessToS3ReadWriteAccessArns - Effect: Allow - Principal: - AWS: !Ref S3ReadWriteAccessArns - Action: - - "s3:GetObject*" - - "s3:PutObject*" - - "s3:DeleteObject*" - - "s3:*MultipartUpload*" - - "s3:ListBucket*" - - "s3:GetBucketLocation" - Resource: - - !Sub "arn:aws:s3:::${TowerBucket}" - - !Sub "arn:aws:s3:::${TowerBucket}/*" - - !Ref AWS::NoValue - - !If - - HasS3ReadOnlyAccessArns - - Sid: GrantReadAccessToS3ReadOnlyAccessArns - Effect: Allow - Principal: - AWS: !Ref S3ReadOnlyAccessArns - Action: - - "s3:ListBucket*" - - "s3:GetBucketLocation" - - "s3:GetObject" - - "s3:GetObjectAcl" - Resource: - - !Sub "arn:aws:s3:::${TowerBucket}" - - !Sub "arn:aws:s3:::${TowerBucket}/*" - - !Ref AWS::NoValue - - !If - - SynapseIndexingEnabled - - Sid: GrantBucketReadAccessToSynapse - Effect: Allow - Principal: - AWS: "arn:aws:iam::325565585839:root" # Synapse Account - Action: - - "s3:ListBucket" - - "s3:GetBucketLocation" - Resource: - - !Sub "arn:aws:s3:::${TowerBucket}" - - !Ref AWS::NoValue - - !If - - SynapseIndexingEnabled - - Sid: GrantObjectReadAccessToSynapse - Effect: Allow - Principal: - AWS: "arn:aws:iam::325565585839:root" # Synapse Account - Action: - - "s3:GetObject" - Resource: - - !Sub "arn:aws:s3:::${TowerBucket}/*" - - !Ref AWS::NoValue - - TowerScratch: - Type: AWS::S3::Bucket - Properties: - BucketName: !Sub "${AWS::StackName}-tower-scratch" - OwnershipControls: - Rules: - - ObjectOwnership: BucketOwnerEnforced - PublicAccessBlockConfiguration: - BlockPublicAcls: true - BlockPublicPolicy: true - IgnorePublicAcls: true - RestrictPublicBuckets: true - BucketEncryption: - ServerSideEncryptionConfiguration: - - BucketKeyEnabled: true - ServerSideEncryptionByDefault: - SSEAlgorithm: aws:kms - KMSMasterKeyID: !GetAtt EncryptionKeyStack.Outputs.KeyArn - LifecycleConfiguration: - Rules: - - Id: LifecycleStorageClassTransition - Status: Enabled - Transitions: - - TransitionInDays: !Ref ScratchLifecycleTransition - StorageClass: !Ref ScratchLifecycleStorageClass - - Id: DataExpirationForWorkDirectory - Status: !Ref EnableScratchDataExpiration - ExpirationInDays: 30 - Prefix: work/ - - Id: DataExpirationFor1DaysDirectory - Status: !Ref EnableScratchDataExpiration - ExpirationInDays: 1 - Prefix: 1days/ - - Id: DataExpirationFor3DaysDirectory - Status: !Ref EnableScratchDataExpiration - ExpirationInDays: 3 - Prefix: 3days/ - - Id: DataExpirationFor5DaysDirectory - Status: !Ref EnableScratchDataExpiration - ExpirationInDays: 5 - Prefix: 5days/ - - Id: DataExpirationFor7DaysDirectory - Status: !Ref EnableScratchDataExpiration - ExpirationInDays: 7 - Prefix: 7days/ - - Id: DataExpirationFor10DaysDirectory - Status: !Ref EnableScratchDataExpiration - ExpirationInDays: 10 - Prefix: 10days/ - - Id: DataExpirationFor20DaysDirectory - Status: !Ref EnableScratchDataExpiration - ExpirationInDays: 20 - Prefix: 20days/ - - Id: DataExpirationFor30DaysDirectory - Status: !Ref EnableScratchDataExpiration - ExpirationInDays: 30 - Prefix: 30days/ - - Id: DataExpirationFor60DaysDirectory - Status: !Ref EnableScratchDataExpiration - ExpirationInDays: 60 - Prefix: 60days/ - - Id: DataExpirationFor90DaysDirectory - Status: !Ref EnableScratchDataExpiration - ExpirationInDays: 90 - Prefix: 90days/ - # max(scratch_data_expirations) (e.g., 90 days) will appear twice. This doesn't - # change the end result. This decision was made to avoid writing the logic to - # exclude the max duration from the above for-loop. - - Id: DataExpirationForEntireBucket - Status: !Ref EnableScratchDataExpiration - ExpirationInDays: 90 - - TowerScratchPolicy: - Type: AWS::S3::BucketPolicy - Properties: - Bucket: !Ref TowerScratch - PolicyDocument: - Version: "2012-10-17" - Statement: - - Sid: DenyCrossProjectAccess - Effect: Deny - Principal: - AWS: "*" - Action: - - "s3:*" - Condition: - ArnLike: - aws:PrincipalArn: !Sub "arn:aws:iam::${AWS::AccountId}:role/TowerForge-*" - Resource: - - !Sub "arn:aws:s3:::${TowerScratch}" - - !Sub "arn:aws:s3:::${TowerScratch}/*" - - Sid: TowerForgeRoleS3Access - Effect: Allow - Principal: - AWS: - - !GetAtt TowerForgeServiceRole.Arn - - !GetAtt TowerForgeBatchHeadJobRole.Arn - - !GetAtt TowerForgeBatchWorkJobRole.Arn - Action: - - "s3:GetBucketLocation" - - "s3:ListBucket" - - "s3:GetObject" - - "s3:DeleteObject" - - "s3:PutObject" - - "s3:PutObjectTagging" - - "s3:*MultipartUpload*" - Resource: - - !Sub "arn:aws:s3:::${TowerScratch}" - - !Sub "arn:aws:s3:::${TowerScratch}/*" - - !If - - HasS3ReadWriteAccessArns - - Sid: GrantReadWriteAccessToS3ReadWriteAccessArns - Effect: Allow - Principal: - AWS: !Ref S3ReadWriteAccessArns - Action: - - "s3:GetObject*" - - "s3:ListBucket*" - - "s3:GetBucketLocation" - - "s3:DeleteObject*" - - "s3:PutObject*" - - "s3:*MultipartUpload*" - Resource: - - !Sub "arn:aws:s3:::${TowerScratch}" - - !Sub "arn:aws:s3:::${TowerScratch}/*" - - !Ref AWS::NoValue - - !If - - HasS3ReadOnlyAccessArns - - Sid: GrantReadAccessToS3ReadOnlyAccessArns - Effect: Allow - Principal: - AWS: !Ref S3ReadOnlyAccessArns - Action: - - "s3:ListBucket*" - - "s3:GetBucketLocation" - - "s3:GetObject" - - "s3:GetObjectAcl" - Resource: - - !Sub "arn:aws:s3:::${TowerScratch}" - - !Sub "arn:aws:s3:::${TowerScratch}/*" - - !Ref AWS::NoValue - - TowerForgeServiceUserAccessKeySecret: - Type: AWS::SecretsManager::Secret - Properties: - Description: !Sub "AWS credentials for the ${TowerForgeServiceUser} IAM user" - SecretString: !Sub >- - { - "aws_access_key_id": "${TowerForgeServiceUserAccessKey}", - "aws_secret_access_key": "${TowerForgeServiceUserAccessKey.SecretAccessKey}" - } - KmsKeyId: !GetAtt EncryptionKeyStack.Outputs.Key - -Outputs: - S3ReadWriteAccessArns: - Condition: HasS3ReadWriteAccessArns - Value: !Join [",", !Ref S3ReadWriteAccessArns] - Export: - Name: !Sub "${AWS::Region}-${AWS::StackName}-S3ReadWriteAccessArns" - - S3ReadOnlyAccessArns: - Condition: HasS3ReadOnlyAccessArns - Value: !Join [",", !Ref S3ReadOnlyAccessArns] - Export: - Name: !Sub "${AWS::Region}-${AWS::StackName}-S3ReadOnlyAccessArns" - - TowerBucket: - Value: !Ref TowerBucket - Export: - Name: !Sub "${AWS::Region}-${AWS::StackName}-TowerBucket" - - TowerBucketArn: - Value: !GetAtt TowerBucket.Arn - Export: - Name: !Sub "${AWS::Region}-${AWS::StackName}-TowerBucketArn" - - TowerScratch: - Value: !Ref TowerScratch - Export: - Name: !Sub "${AWS::Region}-${AWS::StackName}-TowerScratch" - - TowerScratchArn: - Value: !GetAtt TowerScratch.Arn - Export: - Name: !Sub "${AWS::Region}-${AWS::StackName}-TowerScratchArn" - - TowerForgeServiceUser: - Value: !Ref TowerForgeServiceUser - Export: - Name: !Sub "${AWS::Region}-${AWS::StackName}-TowerForgeServiceUser" - - TowerForgeServiceUserArn: - Value: !GetAtt TowerForgeServiceUser.Arn - Export: - Name: !Sub "${AWS::Region}-${AWS::StackName}-TowerForgeServiceUserArn" - - TowerForgeServiceRole: - Value: !Ref TowerForgeServiceRole - Export: - Name: !Sub "${AWS::Region}-${AWS::StackName}-TowerForgeServiceRole" - - TowerForgeServiceRoleArn: - Value: !GetAtt TowerForgeServiceRole.Arn - Export: - Name: !Sub "${AWS::Region}-${AWS::StackName}-TowerForgeServiceRoleArn" - - TowerRoleArn: - Value: !GetAtt TowerRole.Arn - Export: - Name: !Sub "${AWS::Region}-${AWS::StackName}-TowerRoleArn" - - TowerForgeBatchHeadJobRole: - Value: !Ref TowerForgeBatchHeadJobRole - Export: - Name: !Sub "${AWS::Region}-${AWS::StackName}-TowerForgeBatchHeadJobRole" - - TowerForgeBatchHeadJobRoleArn: - Value: !GetAtt TowerForgeBatchHeadJobRole.Arn - Export: - Name: !Sub "${AWS::Region}-${AWS::StackName}-TowerForgeBatchHeadJobRoleArn" - - TowerForgeBatchWorkJobRole: - Value: !Ref TowerForgeBatchWorkJobRole - Export: - Name: !Sub "${AWS::Region}-${AWS::StackName}-TowerForgeBatchWorkJobRole" - - TowerForgeBatchWorkJobRoleArn: - Value: !GetAtt TowerForgeBatchWorkJobRole.Arn - Export: - Name: !Sub "${AWS::Region}-${AWS::StackName}-TowerForgeBatchWorkJobRoleArn" - - TowerForgeBatchExecutionRole: - Value: !Ref TowerForgeBatchExecutionRole - Export: - Name: !Sub "${AWS::Region}-${AWS::StackName}-TowerForgeBatchExecutionRole" - - TowerForgeBatchExecutionRoleArn: - Value: !GetAtt TowerForgeBatchExecutionRole.Arn - Export: - Name: !Sub "${AWS::Region}-${AWS::StackName}-TowerForgeBatchExecutionRoleArn" - - TowerForgeServiceUserAccessKeySecret: - Value: !Sub "${AWS::StackName}-TowerProjectConfiguration" - Export: - Name: !Sub "${AWS::Region}-${AWS::StackName}-TowerForgeServiceUserAccessKeySecret" - - TowerForgeServiceUserAccessKeySecretArn: - Value: !Ref TowerForgeServiceUserAccessKeySecret - Export: - Name: !Sub "${AWS::Region}-${AWS::StackName}-TowerForgeServiceUserAccessKeySecretArn" From a1499e7e1ab96caba15554b0a12d886e13e7ea00 Mon Sep 17 00:00:00 2001 From: Khai Do <3697686+zaro0508@users.noreply.github.com> Date: Thu, 8 Jun 2023 09:20:33 -0700 Subject: [PATCH 09/19] Revert "Fix MalformedPolicyDocument error in template " --- templates/tower-project.j2 | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/templates/tower-project.j2 b/templates/tower-project.j2 index 414ece92..94090adf 100644 --- a/templates/tower-project.j2 +++ b/templates/tower-project.j2 @@ -170,8 +170,7 @@ Resources: - Sid: AllowEcsServiceRole2AssumeRole Effect: Allow Principal: - AWS: - - !Sub '!ImportValue ${AWS::Region}-nextflow-ecs-service-EcsServiceRoleArn' + AWS: !Sub '!ImportValue ${AWS::Region}-nextflow-ecs-service-EcsServiceRoleArn' Action: sts:AssumeRole TowerForgeBatchHeadJobPolicy: From 4218a22d79ba984528e0218a76ca439e2a6644f6 Mon Sep 17 00:00:00 2001 From: Thomas Yu Date: Thu, 8 Jun 2023 10:08:09 -0700 Subject: [PATCH 10/19] Revert "[IT-2360] Setup IAM roles for tower" --- templates/nextflow-ecs-service.yaml | 5 ---- templates/tower-project.j2 | 37 ----------------------------- 2 files changed, 42 deletions(-) diff --git a/templates/nextflow-ecs-service.yaml b/templates/nextflow-ecs-service.yaml index 9a272385..faec4502 100644 --- a/templates/nextflow-ecs-service.yaml +++ b/templates/nextflow-ecs-service.yaml @@ -214,8 +214,3 @@ Outputs: Value: !GetAtt EcsApplicationLoadBalancer.CanonicalHostedZoneID Export: Name: !Sub '${AWS::Region}-${AWS::StackName}-LoadBalancerCanonicalHostedZoneID' - - EcsServiceRoleArn: - Value: !GetAtt EcsServiceRole.Arn - Export: - Name: !Sub '${AWS::Region}-${AWS::StackName}-EcsServiceRoleArn' diff --git a/templates/tower-project.j2 b/templates/tower-project.j2 index 94090adf..9f4b9f27 100644 --- a/templates/tower-project.j2 +++ b/templates/tower-project.j2 @@ -141,38 +141,6 @@ Resources: Service: - ecs-tasks.amazonaws.com - TowerRole: - Type: "AWS::IAM::Role" - Properties: - ManagedPolicyArns: - - !Sub '!ImportValue ${AWS::Region}-nextflow-forge-iam-policy-NextFlowForgePolicyArn' - - !Sub '!ImportValue ${AWS::Region}-nextflow-launch-iam-policy-NextFlowLaunchPolicyArn' - AssumeRolePolicyDocument: - Version: '2012-10-17' - Statement: - - Effect: Allow - Principal: - Service: ec2.amazonaws.com - Action: sts:AssumeRole - - Effect: Allow - Principal: - Service: ecs-tasks.amazonaws.com - Action: sts:AssumeRole - - Effect: Allow - Principal: - Service: eks.amazonaws.com - Action: sts:AssumeRole - - Sid: AllowEc2AssumeRole - Effect: Allow - Principal: - AWS: !Ref AccountAdminArns - Action: sts:AssumeRole - - Sid: AllowEcsServiceRole2AssumeRole - Effect: Allow - Principal: - AWS: !Sub '!ImportValue ${AWS::Region}-nextflow-ecs-service-EcsServiceRoleArn' - Action: sts:AssumeRole - TowerForgeBatchHeadJobPolicy: Type: AWS::IAM::Policy Properties: @@ -615,11 +583,6 @@ Outputs: Export: Name: !Sub "${AWS::Region}-${AWS::StackName}-TowerForgeServiceRoleArn" - TowerRoleArn: - Value: !GetAtt TowerRole.Arn - Export: - Name: !Sub "${AWS::Region}-${AWS::StackName}-TowerRoleArn" - TowerForgeBatchHeadJobRole: Value: !Ref TowerForgeBatchHeadJobRole Export: From 36586f4723ec4773fc09b56d91ab482808e23f02 Mon Sep 17 00:00:00 2001 From: Khai Do Date: Thu, 8 Jun 2023 10:31:13 -0700 Subject: [PATCH 11/19] [IT-2360] Export EcsServiceRoleArn Export the ECS service role ARN from the nextflow-ecs-service stack. --- templates/nextflow-ecs-service.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/templates/nextflow-ecs-service.yaml b/templates/nextflow-ecs-service.yaml index faec4502..9a272385 100644 --- a/templates/nextflow-ecs-service.yaml +++ b/templates/nextflow-ecs-service.yaml @@ -214,3 +214,8 @@ Outputs: Value: !GetAtt EcsApplicationLoadBalancer.CanonicalHostedZoneID Export: Name: !Sub '${AWS::Region}-${AWS::StackName}-LoadBalancerCanonicalHostedZoneID' + + EcsServiceRoleArn: + Value: !GetAtt EcsServiceRole.Arn + Export: + Name: !Sub '${AWS::Region}-${AWS::StackName}-EcsServiceRoleArn' From 0c1843a612aab398943a8b2ae6c477d0b47f7ebb Mon Sep 17 00:00:00 2001 From: Khai Do Date: Thu, 8 Jun 2023 10:35:56 -0700 Subject: [PATCH 12/19] [IT-2360] Setup IAM roles for tower Allow tower to use roles instead of a service user to access AWS resources. This a 2nd attempt at PR #181, that one failed to deploy. depends on #204 --- templates/tower-project.j2 | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/templates/tower-project.j2 b/templates/tower-project.j2 index 9f4b9f27..94090adf 100644 --- a/templates/tower-project.j2 +++ b/templates/tower-project.j2 @@ -141,6 +141,38 @@ Resources: Service: - ecs-tasks.amazonaws.com + TowerRole: + Type: "AWS::IAM::Role" + Properties: + ManagedPolicyArns: + - !Sub '!ImportValue ${AWS::Region}-nextflow-forge-iam-policy-NextFlowForgePolicyArn' + - !Sub '!ImportValue ${AWS::Region}-nextflow-launch-iam-policy-NextFlowLaunchPolicyArn' + AssumeRolePolicyDocument: + Version: '2012-10-17' + Statement: + - Effect: Allow + Principal: + Service: ec2.amazonaws.com + Action: sts:AssumeRole + - Effect: Allow + Principal: + Service: ecs-tasks.amazonaws.com + Action: sts:AssumeRole + - Effect: Allow + Principal: + Service: eks.amazonaws.com + Action: sts:AssumeRole + - Sid: AllowEc2AssumeRole + Effect: Allow + Principal: + AWS: !Ref AccountAdminArns + Action: sts:AssumeRole + - Sid: AllowEcsServiceRole2AssumeRole + Effect: Allow + Principal: + AWS: !Sub '!ImportValue ${AWS::Region}-nextflow-ecs-service-EcsServiceRoleArn' + Action: sts:AssumeRole + TowerForgeBatchHeadJobPolicy: Type: AWS::IAM::Policy Properties: @@ -583,6 +615,11 @@ Outputs: Export: Name: !Sub "${AWS::Region}-${AWS::StackName}-TowerForgeServiceRoleArn" + TowerRoleArn: + Value: !GetAtt TowerRole.Arn + Export: + Name: !Sub "${AWS::Region}-${AWS::StackName}-TowerRoleArn" + TowerForgeBatchHeadJobRole: Value: !Ref TowerForgeBatchHeadJobRole Export: From da2aa18144e2c5c0dad9687408ac297ee71c5d7d Mon Sep 17 00:00:00 2001 From: Khai Do Date: Thu, 8 Jun 2023 12:26:20 -0700 Subject: [PATCH 13/19] Fix MalformedPolicyDocument error in template --- templates/tower-project.j2 | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/templates/tower-project.j2 b/templates/tower-project.j2 index 94090adf..ef082587 100644 --- a/templates/tower-project.j2 +++ b/templates/tower-project.j2 @@ -145,8 +145,8 @@ Resources: Type: "AWS::IAM::Role" Properties: ManagedPolicyArns: - - !Sub '!ImportValue ${AWS::Region}-nextflow-forge-iam-policy-NextFlowForgePolicyArn' - - !Sub '!ImportValue ${AWS::Region}-nextflow-launch-iam-policy-NextFlowLaunchPolicyArn' + - 'Fn::ImportValue': !Sub ${AWS::Region}-nextflow-forge-iam-policy-NextFlowForgePolicyArn + - 'Fn::ImportValue': !Sub ${AWS::Region}-nextflow-launch-iam-policy-NextFlowLaunchPolicyArn AssumeRolePolicyDocument: Version: '2012-10-17' Statement: @@ -170,7 +170,8 @@ Resources: - Sid: AllowEcsServiceRole2AssumeRole Effect: Allow Principal: - AWS: !Sub '!ImportValue ${AWS::Region}-nextflow-ecs-service-EcsServiceRoleArn' + AWS: + - 'Fn::ImportValue': !Sub ${AWS::Region}-nextflow-ecs-service-EcsServiceRoleArn Action: sts:AssumeRole TowerForgeBatchHeadJobPolicy: From 932b2f9584cb63d21642ca675be3cb048fe59ab8 Mon Sep 17 00:00:00 2001 From: thomasyu888 Date: Thu, 15 Jun 2023 16:35:19 -0700 Subject: [PATCH 14/19] Add in tower configuration to allow instance credentials --- src/tower/resources/environment.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/tower/resources/environment.yaml b/src/tower/resources/environment.yaml index 91456ca4..723264f3 100644 --- a/src/tower/resources/environment.yaml +++ b/src/tower/resources/environment.yaml @@ -25,3 +25,4 @@ TOWER_OIDC_TOKEN_IMPORT: "!If [ HasTowerOidcClient, !Ref TowerOidcTokenImport, ! TOWER_ROOT_USERS: "!If [ HasTowerRootUsers, !Join [',', !Ref TowerRootUsers], !Ref AWS::NoValue]" TOWER_USER_WORKSPACE_ENABLED: "!Ref 'TowerUserWorkspace'" TOWER_CONFIG_FILE: "!Sub '${EfsVolumeMountPath}/${TowerConfigFileName}'" +TOWER_ALLOW_INSTANCE_CREDENTIALS: true From a706515331a0f39be9435baaa2545c4f244933f8 Mon Sep 17 00:00:00 2001 From: Thomas Yu Date: Fri, 16 Jun 2023 08:53:56 -0700 Subject: [PATCH 15/19] Update environment.yaml --- src/tower/resources/environment.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tower/resources/environment.yaml b/src/tower/resources/environment.yaml index 723264f3..da79f502 100644 --- a/src/tower/resources/environment.yaml +++ b/src/tower/resources/environment.yaml @@ -25,4 +25,4 @@ TOWER_OIDC_TOKEN_IMPORT: "!If [ HasTowerOidcClient, !Ref TowerOidcTokenImport, ! TOWER_ROOT_USERS: "!If [ HasTowerRootUsers, !Join [',', !Ref TowerRootUsers], !Ref AWS::NoValue]" TOWER_USER_WORKSPACE_ENABLED: "!Ref 'TowerUserWorkspace'" TOWER_CONFIG_FILE: "!Sub '${EfsVolumeMountPath}/${TowerConfigFileName}'" -TOWER_ALLOW_INSTANCE_CREDENTIALS: true +TOWER_ALLOW_INSTANCE_CREDENTIALS: "true" From e2bf724db1314185230435ba65b86389b8a7c270 Mon Sep 17 00:00:00 2001 From: Phil Snyder Date: Fri, 16 Jun 2023 11:17:57 -0700 Subject: [PATCH 16/19] Grant phil.snyder read/write access to example project --- config/projects-prod/example-project.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/config/projects-prod/example-project.yaml b/config/projects-prod/example-project.yaml index ac23ff17..5d62901b 100644 --- a/config/projects-prod/example-project.yaml +++ b/config/projects-prod/example-project.yaml @@ -16,6 +16,7 @@ parameters: # (REQUIRED) Step 3: Replace the email below with your '@sagebase.org' address - '{{stack_group_config.tower_viewer_arn_prefix}}/thomas.yu@sagebase.org' - '{{stack_group_config.tower_viewer_arn_prefix}}/brad.macdonald@sagebase.org' + - '{{stack_group_config.tower_viewer_arn_prefix}}/phil.snyder@sagebase.org' # (Optional) Step 4: Uncomment and update the following line(s) to grant additional users with read/write access # - '{{stack_group_config.tower_viewer_arn_prefix}}/rixing.xu@sagebase.org' From 8bb8a21e71d42ce6b7162463654ea791468b3264 Mon Sep 17 00:00:00 2001 From: Phil Snyder Date: Fri, 16 Jun 2023 11:24:56 -0700 Subject: [PATCH 17/19] Grant phil.snyder read/write access to example dev project --- config/projects-dev/example-dev-project.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/config/projects-dev/example-dev-project.yaml b/config/projects-dev/example-dev-project.yaml index 23930459..68be0f1b 100644 --- a/config/projects-dev/example-dev-project.yaml +++ b/config/projects-dev/example-dev-project.yaml @@ -9,6 +9,7 @@ parameters: S3ReadWriteAccessArns: - '{{stack_group_config.tower_viewer_arn_prefix}}/thomas.yu@sagebase.org' - '{{stack_group_config.tower_viewer_arn_prefix}}/brad.macdonald@sagebase.org' + - - '{{stack_group_config.tower_viewer_arn_prefix}}/phil.snyder@sagebase.org' AllowSynapseIndexing: Enabled AccountAdminArns: - '{{stack_group_config.sso_admin_role.arn}}' From 4cd0e7c46a18695a1c09b8c994cae32ff0cd0314 Mon Sep 17 00:00:00 2001 From: Thomas Yu Date: Fri, 16 Jun 2023 11:26:30 -0700 Subject: [PATCH 18/19] Update config/projects-dev/example-dev-project.yaml --- config/projects-dev/example-dev-project.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/projects-dev/example-dev-project.yaml b/config/projects-dev/example-dev-project.yaml index 68be0f1b..13b6e905 100644 --- a/config/projects-dev/example-dev-project.yaml +++ b/config/projects-dev/example-dev-project.yaml @@ -9,7 +9,7 @@ parameters: S3ReadWriteAccessArns: - '{{stack_group_config.tower_viewer_arn_prefix}}/thomas.yu@sagebase.org' - '{{stack_group_config.tower_viewer_arn_prefix}}/brad.macdonald@sagebase.org' - - - '{{stack_group_config.tower_viewer_arn_prefix}}/phil.snyder@sagebase.org' + - '{{stack_group_config.tower_viewer_arn_prefix}}/phil.snyder@sagebase.org' AllowSynapseIndexing: Enabled AccountAdminArns: - '{{stack_group_config.sso_admin_role.arn}}' From b93c9b5710cb9af31d7718dbbfeb0ebd7942cdcb Mon Sep 17 00:00:00 2001 From: Khai Do Date: Mon, 19 Jun 2023 13:11:25 -0700 Subject: [PATCH 19/19] Increase intance type size The instance/ontainer that's running `redis-check-aof --fix appendonly.aof` is super duper slow which is causing the nexflow-tower service really slow to start. We increase the instance size to see if it will run faster to unblock the redis/frontend/backend services from starting. --- config/infra-prod/nextflow-ecs-cluster.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/config/infra-prod/nextflow-ecs-cluster.yaml b/config/infra-prod/nextflow-ecs-cluster.yaml index 28e51e63..2fcb7656 100644 --- a/config/infra-prod/nextflow-ecs-cluster.yaml +++ b/config/infra-prod/nextflow-ecs-cluster.yaml @@ -8,6 +8,7 @@ dependencies: parameters: EcsSecurityGroupId: !stack_output_external nextflow-ecs-security-group::SecurityGroupId SubnetId: !stack_output_external nextflow-vpc::PrivateSubnet + EcsInstanceType: "c4.4xlarge" stack_tags: {{stack_group_config.default_stack_tags}}