From 3e31f07b509f1f2fd5c90a6891ff407243cb015d Mon Sep 17 00:00:00 2001 From: John Carmichael Date: Mon, 11 Apr 2022 09:55:50 -0400 Subject: [PATCH 1/7] UDNTECH-2314: Make FS secondary to Gateway for Uploader tool routes (#115) --- fileservice/filemaster/uploader.py | 276 ++++------------------------- fileservice/filemaster/urls.py | 4 +- 2 files changed, 40 insertions(+), 240 deletions(-) diff --git a/fileservice/filemaster/uploader.py b/fileservice/filemaster/uploader.py index db55c3e..3169a02 100644 --- a/fileservice/filemaster/uploader.py +++ b/fileservice/filemaster/uploader.py @@ -4,89 +4,19 @@ import logging from datetime import datetime -from django.conf import settings from django.contrib.auth import get_user_model from rest_framework import status from rest_framework.response import Response from rest_framework.views import APIView -from filemaster.aws import awsResource, awsBucketRegion, signedUrlUpload -from filemaster.models import ArchiveFile +from filemaster.models import ArchiveFile, FileLocation LOGGER = logging.getLogger(__name__) -def is_bucket_valid(bucket): - """ - Return True if we have the info configured to write to the bucket provided - """ - try: - return ( - hasattr(settings, 'BUCKET_CREDENTIALS') and - settings.BUCKET_CREDENTIALS.get(bucket) and - settings.BUCKET_CREDENTIALS[bucket].get('AWS_KEY_ID') and - settings.BUCKET_CREDENTIALS[bucket].get('AWS_SECRET')) != None - except Exception as exc: - LOGGER.exception('Error thrown while looking up credentials for bucket %s: %s', bucket, exc) - return False - - -def get_file_s3_data(location): - """ - Return the S3 data for the location provided - """ - try: - bucket, path = location.get_bucket() - region = awsBucketRegion(bucket) - s3 = awsResource(service='s3', region=region) - - return s3.Object(bucket, path) - except Exception as exc: - LOGGER.exception( - 'Unable to fetch S3 data for file location %s with error: %s', location.id, exc) - return None - - -def get_s3_upload_information(bucket, sequencing_file): - """ - Plucks the needed values from the url hash - """ - try: - urlhash = signedUrlUpload(sequencing_file, bucket=bucket) - - access_key = urlhash['accesskey'] if 'accesskey' in urlhash else None - folder_name = urlhash['foldername'] if 'foldername' in urlhash else None - location_id = urlhash['locationid'] if 'locationid' in urlhash else None - secret_key = urlhash['secretkey'] if 'secretkey' in urlhash else None - session_token = urlhash['sessiontoken'] if 'sessiontoken' in urlhash else None - - return access_key, folder_name, location_id, secret_key, session_token - except Exception as exc: - LOGGER.exception( - 'Error thrown while attempting to get S3 upload info for file %s: %s', sequencing_file.filename, exc) - return None, None, None, None, None - - -def mark_location_complete(file_size, location, storage_type): - """ - Update the location's filesize and uploadComplete attributes - """ - try: - location.filesize = file_size - location.storagetype = storage_type - location.uploadComplete = datetime.now() - location.save() - - return True - except Exception as exc: - LOGGER.exception( - 'Unable to update file location %s as complete with error: %s', location.id, exc) - return False - - class UploaderComplete(APIView): """ - API endpoint used by the UDN Uploader tool to mark a file upload as completed + API endpoint used by the UDN Uploader tool to add an uploaded file to FS """ def post(self, request): @@ -94,67 +24,57 @@ def post(self, request): Mark the file location, specified in the request as completed """ try: - location_id = request.data['location_id'] if 'location_id' in request.data else None - uuid = request.data['uuid'] if 'uuid' in request.data else None - - if not location_id or not uuid: - LOGGER.exception('Request to mark file complete missing required parameters') - return Response( - {'error': 'Missing required parameters: location_id and uuid'}, status=status.HTTP_400_BAD_REQUEST) + required_fields = [ + 'description', 'filename', 'filesize', 'metadata', 'permissions', 'storage_location', + 'storage_type', 'user_email', 'uuid'] + for field in required_fields: + if field not in request.data: + LOGGER.exception('Request to upload new file missing required parameters') + return Response( + {'error': 'Missing required parameters: {}'.format(', '.join(required_fields))}, + status=status.HTTP_400_BAD_REQUEST) + + try: + User = get_user_model() + user = User.objects.get(email=request.data['user_email']) + except User.DoesNotExist: + LOGGER.exception('Unable to find user by email specified') + return Response({'error': 'Unable to find user by email specified'}, status=status.HTTP_403_FORBIDDEN) try: - sequencing_file = ArchiveFile.objects.get(uuid=uuid) + sequencing_file = ArchiveFile.objects.get(uuid=request.data['uuid']) + sequencing_file.description=request.data['description'] + sequencing_file.metadata=request.data['metadata'] + sequencing_file.save() except ArchiveFile.DoesNotExist: - LOGGER.exception('Unable to find file %s to mark it as complete', uuid) - return Response( - {'error': 'Unable to find requested sequencing file'}, status=status.HTTP_404_NOT_FOUND) + sequencing_file = ArchiveFile.objects.create( + description=request.data['description'], filename=request.data['filename'], + metadata=request.data['metadata'], owner=user, uuid=request.data['uuid']) try: - location = sequencing_file.locations.get(id=location_id) - except Exception: - LOGGER.exception( - 'Unable to find file location %s associated with file %s to mark it as complete', - location_id, uuid) - return Response( - {'error': 'Mismatched location_id and uuid'}, status=status.HTTP_404_NOT_FOUND) - - if not location: - LOGGER.exception( - 'Unable to find file location %s associated with file %s to mark it as complete', - location_id, uuid) - return Response( - {'error': 'Mismatched location_id and uuid'}, status=status.HTTP_404_NOT_FOUND) + sequencing_file.killPerms() - s3_data = get_file_s3_data(location) - file_size = s3_data.content_length if s3_data and s3_data.content_length else None - storage_type = s3_data.storage_class.lower() if s3_data and s3_data.storage_class else 's3' - - if not file_size: - LOGGER.exception( - 'Unable to get file_size from S3 data for location %s to mark it as complete', location_id) - return Response( - {'error': 'Unable to get S3 data for file'}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) - - updated = mark_location_complete(file_size, location, storage_type) - - if not updated: + for perm in request.data['permissions']: + sequencing_file.setPerms(perm) + except Exception as exc: LOGGER.exception( - 'Unable to mark file location %s as complete', location_id) + 'Exception thrown while attempting to set permissions on a new file with name %s: %s', request.data['filename'], exc) return Response( - {'error': 'Unable to update FileService location as complete'}, - status=status.HTTP_500_INTERNAL_SERVER_ERROR) + {'error': 'Exception thrown while attempting to create file'}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) - location.refresh_from_db() + location = FileLocation( + filesize=request.data['filesize'], storagetype=request.data['storage_type'], + uploadComplete=datetime.now(), url=request.data['storage_location']) + location.save() + sequencing_file.locations.add(location) return Response({ - 'description': sequencing_file.description, - 'filesize': location.filesize, - 'storage_type': location.storagetype, - 'upload_completed': location.uploadComplete, + 'location_id': location.id, + 'uuid': sequencing_file.uuid, }, status=status.HTTP_200_OK) except Exception as exc: LOGGER.exception( - 'Unknown error while attempting to mark file location %s as complete: %s', location_id, exc) + 'Unknown error while attempting to mark file location %s as complete: %s', location.id, exc) return Response( {'error': 'Unknown error while attempting to mark file complete'}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) @@ -222,121 +142,3 @@ def put(self, request): return Response( {'error': 'Unknown error while attempting to update file metadata'}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) - - -class UploaderNew(APIView): - """ - API endpoint used by the UDN Uploader tool to create a new file entry - """ - - def post(self, request): - """ - Create a new ArchiveFile record with the data provided - """ - try: - bucket = request.data['bucket'] if 'bucket' in request.data else None - description = request.data['description'] if 'description' in request.data else None - filename = request.data['filename'] if 'filename' in request.data else None - metadata = request.data['metadata'] if 'metadata' in request.data else None - permissions = request.data['permissions'] if 'permissions' in request.data else None - user_email = request.data['user_email'] if 'user_email' in request.data else None - - if not bucket or not description or not filename or not metadata or not permissions or not user_email: - LOGGER.exception('Request to upload new file missing required parameters') - return Response( - {'error': 'Missing required parameters: bucket, description, filename, metadata, permissions, user_email'}, - status=status.HTTP_400_BAD_REQUEST) - - if not is_bucket_valid(bucket): - return Response({'error': 'Provided bucket is not a valid upload location'}, status=status.HTTP_400_BAD_REQUEST) - - try: - User = get_user_model() - user = User.objects.get(email=user_email) - except User.DoesNotExist: - LOGGER.exception('Unable to find user by email specified') - return Response({'error': 'Unable to find user by email specified'}, status=status.HTTP_403_FORBIDDEN) - - try: - sequencing_file = ArchiveFile.objects.create( - description=description, filename=filename, metadata=metadata, owner=user) - except Exception as exc: - LOGGER.exception('Exception thrown while attempting to create a new file with name %s: %s', filename, exc) - return Response( - {'error': 'Error thrown while attempting to create file'}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) - - try: - for perm in permissions: - sequencing_file.setPerms(perm) - except Exception as exc: - LOGGER.exception( - 'Exception thrown while attempting to set permissions on a new file with name %s: %s', filename, exc) - return Response( - {'error': 'Exception thrown while attempting to create file'}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) - - (access_key, folder_name, location_id, secret_key, - session_token) = get_s3_upload_information(bucket, sequencing_file) - - return Response({ - 'access_key': access_key, - 'folder_name': folder_name, - 'location_id': location_id, - 'secret_key': secret_key, - 'session_token': session_token, - 'uuid': sequencing_file.uuid, - }, status=status.HTTP_201_CREATED) - except Exception as exc: - LOGGER.exception( - 'Exception thrown while attempting to create new file with name: %s', exc) - return Response( - {'error': 'Unknown error while attempting to create new file'}, - status=status.HTTP_500_INTERNAL_SERVER_ERROR) - - -class UploaderUpdate(APIView): - """ - API endpoint used by the UDN Uploader tool to add a new location to an - existing file entry - """ - - def post(self, request): - """ - Create a new ArchiveFile record with the data provided - """ - try: - bucket = request.data['bucket'] if 'bucket' in request.data else None - uuid = request.data['uuid'] if 'uuid' in request.data else None - - if not bucket or not uuid: - LOGGER.exception('Request to add location to existing file is missing required fields') - return Response( - {'error': 'Missing required parameters: bucket and uuid'}, - status=status.HTTP_400_BAD_REQUEST) - - if not is_bucket_valid(bucket): - return Response({'error': 'Provided bucket is not a valid upload location'}, status=status.HTTP_400_BAD_REQUEST) - - try: - sequencing_file = ArchiveFile.objects.get(uuid=uuid) - except ArchiveFile.DoesNotExist: - LOGGER.exception('Unable to find file %s to add a new location', uuid) - return Response( - {'error': 'Unable to find requested sequencing file'}, status=status.HTTP_404_NOT_FOUND) - - (access_key, folder_name, location_id, secret_key, - session_token) = get_s3_upload_information(bucket, sequencing_file) - - return Response({ - 'access_key': access_key, - 'folder_name': folder_name, - 'location_id': location_id, - 'secret_key': secret_key, - 'session_token': session_token, - 'uuid': sequencing_file.uuid, - }, status=status.HTTP_201_CREATED) - except Exception as exc: - LOGGER.exception( - 'Error thrown while attempting to add a new location to the file %s: %s', uuid, exc) - return Response( - {'error': 'Unknown error while attempting to create new file'}, - status=status.HTTP_500_INTERNAL_SERVER_ERROR) diff --git a/fileservice/filemaster/urls.py b/fileservice/filemaster/urls.py index 011687b..da1060f 100644 --- a/fileservice/filemaster/urls.py +++ b/fileservice/filemaster/urls.py @@ -19,7 +19,7 @@ from .files import FileLocationDetail from filemaster.realignment import CreateRealignedFile -from filemaster.uploader import UploaderComplete, UploaderCheck, UploaderMetadata, UploaderNew, UploaderUpdate +from filemaster.uploader import UploaderComplete, UploaderCheck, UploaderMetadata app_name = FilemasterConfig.name @@ -35,8 +35,6 @@ url(r'^uploader/complete$', UploaderComplete.as_view(), name='uploader_complete'), url(r'^uploader/check$', UploaderCheck.as_view(), name='uploader_check'), url(r'^uploader/metadata$', UploaderMetadata.as_view(), name='uploader_metadata'), - url(r'^uploader/new$', UploaderNew.as_view(), name='uploader_new'), - url(r'^uploader/update$', UploaderUpdate.as_view(), name='uploader_update'), url(r'^api/', include(router.urls)), url(r'^api/logs/?$', DownloadLogList.as_view()), url(r'^api/location/?$', FileLocationList.as_view()), From 4ffceb4ce3a5e3b1e3d192b6297a87445b1b7a3a Mon Sep 17 00:00:00 2001 From: b32147 Date: Sat, 7 May 2022 07:56:00 -0600 Subject: [PATCH 2/7] Dbmisvc 105 (#90) * DBMISVC-105 - Migrated to pip-tools for dependency management; added Github actions for automated updates * DBMISVC-105 - Moved django-nose back to primary requirements * DBMISVC-105 - Updated base Docker image; set to Python 3.10 * DBMISVC-105 - Fixed image tag; updated requirements; added pre-commit --- .github/workflows/requirements-update.yml | 60 ++++ .github/workflows/scan.yml | 67 ++++ .github/workflows/test.yml | 44 +++ .pre-commit-config.yaml | 21 ++ Dockerfile | 58 ++-- buildspec.yml | 5 + dev-requirements.in | 2 + dev-requirements.txt | 111 +++++++ requirements.in | 19 ++ requirements.txt | 381 ++++++++++++++++++++++ requirements/constraints.txt | 43 --- requirements/requirements.txt | 20 -- 12 files changed, 744 insertions(+), 87 deletions(-) create mode 100644 .github/workflows/requirements-update.yml create mode 100644 .github/workflows/scan.yml create mode 100644 .github/workflows/test.yml create mode 100644 .pre-commit-config.yaml create mode 100644 dev-requirements.in create mode 100644 dev-requirements.txt create mode 100644 requirements.in create mode 100644 requirements.txt delete mode 100644 requirements/constraints.txt delete mode 100644 requirements/requirements.txt diff --git a/.github/workflows/requirements-update.yml b/.github/workflows/requirements-update.yml new file mode 100644 index 0000000..e692c18 --- /dev/null +++ b/.github/workflows/requirements-update.yml @@ -0,0 +1,60 @@ +name: Requirements Update + +on: + schedule: + - cron: '0 12 * * 1' # runs at 12:00 UTC on Mondays + workflow_dispatch: + +jobs: + + stale: + runs-on: ubuntu-latest + steps: + - uses: actions/stale@v4 + with: + only-labels: dependencies,automated pr + stale-pr-message: 'This PR is stale because it has been open 7 days with no activity. Remove stale label or comment or this will be closed in 7 days.' + close-pr-message: 'This PR was closed because it has been stalled for 7 days with no activity.' + days-before-pr-stale: 7 + days-before-pr-close: 7 + delete-branch: true + + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + ref: development + + - name: Setup python + uses: actions/setup-python@v2 + with: + python-version: '3.10' + + - name: Install dev Python packages + run: | + python -m pip install --upgrade pip + pip install -r dev-requirements.txt + + - name: Check for pip-tools upgrades + run: | + pip-compile --generate-hashes \ + --allow-unsafe \ + --upgrade \ + --output-file requirements.txt requirements.in + + - name: Create Pull Request + uses: peter-evans/create-pull-request@v3 + with: + token: ${{ secrets.GITHUB_TOKEN }} + base: development + branch: requirements-updates + branch-suffix: timestamp + delete-branch: true + commit-message: "fix(requirements): Updated Python requirements" + title: 'Python Requirements Updates' + body: > + This PR is auto-generated by Github Actions job [requirements-update]. + labels: dependencies, automated pr diff --git a/.github/workflows/scan.yml b/.github/workflows/scan.yml new file mode 100644 index 0000000..821b6ef --- /dev/null +++ b/.github/workflows/scan.yml @@ -0,0 +1,67 @@ +name: Scan + +on: + push: + branches: [ master, development ] + pull_request: + branches: [ master, development ] + schedule: + - cron: '0 12 * * 1' # runs at 12:00 UTC on Mondays + workflow_dispatch: + +jobs: + + scan: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + + - name: Login to DockerHub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_HUB_USERNAME }} + password: ${{ secrets.DOCKER_HUB_PASSWORD }} + + - name: Set image name + id: setimagename + run: | + echo "Image name: $GITHUB_REPOSITORY:$GITHUB_SHA" + echo "::set-output name=imagename::$GITHUB_REPOSITORY:$GITHUB_SHA" + + - name: Build the image + id: buildimage + uses: docker/build-push-action@v2 + with: + context: ./ + file: ./Dockerfile + push: false + tags: ${{ steps.setimagename.outputs.imagename }} + + - name: Check whether container scanning should be enabled + id: checkcontainerscanning + env: + SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }} + run: | + echo "Enable container scanning: ${{ env.SNYK_TOKEN != '' }}" + echo "::set-output name=enabled::${{ env.SNYK_TOKEN != '' }}" + + - name: Run Snyk to check Docker image for vulnerabilities + uses: snyk/actions/docker@master + if: steps.checkcontainerscanning.outputs.enabled == 'true' + continue-on-error: true + env: + SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }} + with: + image: ${{ steps.setimagename.outputs.imagename }} + args: --file=Dockerfile + + - name: Upload result to GitHub Code Scanning + uses: github/codeql-action/upload-sarif@v1 + if: steps.checkcontainerscanning.outputs.enabled == 'true' + with: + sarif_file: snyk.sarif diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..4319600 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,44 @@ +name: Test + +on: + push: + branches: [ master, development ] + pull_request: + branches: [ master, development ] + paths: + - 'requirements.in' + - 'requirements.txt' + - 'Dockerfile' + +jobs: + + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + + - name: Login to DockerHub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_HUB_USERNAME }} + password: ${{ secrets.DOCKER_HUB_PASSWORD }} + + - name: Set image name + id: setimagename + run: | + echo "Image name: $GITHUB_REPOSITORY:$GITHUB_SHA" + echo "::set-output name=imagename::$GITHUB_REPOSITORY:$GITHUB_SHA" + + - name: Build the image + id: buildimage + uses: docker/build-push-action@v2 + with: + context: ./ + file: ./Dockerfile + push: false + tags: ${{ steps.setimagename.outputs.imagename }} diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..6590b88 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,21 @@ +minimum_pre_commit_version: "2.13.0" +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks.git + rev: v4.2.0 + hooks: + - id: trailing-whitespace + - id: mixed-line-ending + - id: check-byte-order-marker + - id: check-merge-conflict + - id: detect-aws-credentials + - repo: https://github.com/jazzband/pip-tools + rev: 6.6.0 + hooks: + - id: pip-compile + name: pip-compile dev-requirements.in + args: [dev-requirements.in, --upgrade, --generate-hashes, --allow-unsafe, --output-file, dev-requirements.txt] + files: ^dev-requirements\.(in|txt)$ + - id: pip-compile + name: pip-compile requirements.in + args: [requirements.in, --upgrade, --generate-hashes, --allow-unsafe, --output-file, requirements.txt] + files: ^requirements\.(in|txt)$ diff --git a/Dockerfile b/Dockerfile index f07c15c..c9e3158 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,36 +1,46 @@ -FROM python:3.6-alpine3.11 AS builder +FROM hmsdbmitc/dbmisvc:debian11-slim-python3.10-0.3.3 AS builder -# Install dependencies -RUN apk add --update \ - build-base \ - g++ \ - libffi-dev \ - mariadb-dev \ - git +# Install requirements +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + curl \ + ca-certificates \ + bzip2 \ + gcc \ + default-libmysqlclient-dev \ + libssl-dev \ + && rm -rf /var/lib/apt/lists/* # Add requirements -ADD requirements /requirements +ADD requirements.* / -# Use this until we can safely update to Alpine 3.13 or above -ENV CRYPTOGRAPHY_DONT_BUILD_RUST=1 +# Build Python wheels with hash checking +RUN pip install -U wheel \ + && pip wheel -r /requirements.txt \ + --wheel-dir=/root/wheels -# Install Python packages -RUN pip install -r /requirements/requirements.txt +FROM hmsdbmitc/dbmisvc:debian11-slim-python3.10-0.3.3 -FROM hmsdbmitc/dbmisvc:alpine-zip-python3.6-0.1.0 +# Copy Python wheels from builder +COPY --from=builder /root/wheels /root/wheels -RUN apk add --no-cache --update \ - mariadb-connector-c git libffi-dev git \ - && rm -rf /var/cache/apk/* +# Install requirements +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + default-libmysqlclient-dev \ + && rm -rf /var/lib/apt/lists/* -# Copy pip packages from builder -COPY --from=builder /root/.cache /root/.cache +# Add requirements files +ADD requirements.* / -# Add requirements -ADD requirements /requirements - -# Install Python packages -RUN pip install -r /requirements/requirements.txt +# Install Python packages from wheels +RUN pip install --no-index \ + --find-links=/root/wheels \ + --force-reinstall \ + # Use requirements without hashes to allow using wheels. + # For some reason the hashes of the wheels change between stages + # and Pip errors out on the mismatches. + -r /requirements.in # Copy app source COPY /fileservice /app diff --git a/buildspec.yml b/buildspec.yml index f7e0f17..76612a0 100644 --- a/buildspec.yml +++ b/buildspec.yml @@ -25,3 +25,8 @@ phases: - echo Build completed on `date` - echo Pushing the Docker image... - docker push $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME:$IMAGE_TAG + - echo Generate imagedefinitions.json file + - printf "[{\"name\":\"$CONTAINER_NAME\",\"imageUri\":\"$AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME:$IMAGE_TAG\"}]" > imagedefinitions.json + +artifacts: + files: imagedefinitions.json diff --git a/dev-requirements.in b/dev-requirements.in new file mode 100644 index 0000000..5d56e25 --- /dev/null +++ b/dev-requirements.in @@ -0,0 +1,2 @@ +pip-tools +pre-commit diff --git a/dev-requirements.txt b/dev-requirements.txt new file mode 100644 index 0000000..c0a7d2f --- /dev/null +++ b/dev-requirements.txt @@ -0,0 +1,111 @@ +# +# This file is autogenerated by pip-compile with python 3.10 +# To update, run: +# +# pip-compile --allow-unsafe --generate-hashes --output-file=dev-requirements.txt dev-requirements.in +# +cfgv==3.3.1 \ + --hash=sha256:c6a0883f3917a037485059700b9e75da2464e6c27051014ad85ba6aaa5884426 \ + --hash=sha256:f5a830efb9ce7a445376bb66ec94c638a9787422f96264c98edc6bdeed8ab736 + # via pre-commit +click==8.1.3 \ + --hash=sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e \ + --hash=sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48 + # via pip-tools +distlib==0.3.4 \ + --hash=sha256:6564fe0a8f51e734df6333d08b8b94d4ea8ee6b99b5ed50613f731fd4089f34b \ + --hash=sha256:e4b58818180336dc9c529bfb9a0b58728ffc09ad92027a3f30b7cd91e3458579 + # via virtualenv +filelock==3.6.0 \ + --hash=sha256:9cd540a9352e432c7246a48fe4e8712b10acb1df2ad1f30e8c070b82ae1fed85 \ + --hash=sha256:f8314284bfffbdcfa0ff3d7992b023d4c628ced6feb957351d4c48d059f56bc0 + # via virtualenv +identify==2.5.0 \ + --hash=sha256:3acfe15a96e4272b4ec5662ee3e231ceba976ef63fd9980ed2ce9cc415df393f \ + --hash=sha256:c83af514ea50bf2be2c4a3f2fb349442b59dc87284558ae9ff54191bff3541d2 + # via pre-commit +nodeenv==1.6.0 \ + --hash=sha256:3ef13ff90291ba2a4a7a4ff9a979b63ffdd00a464dbe04acf0ea6471517a4c2b \ + --hash=sha256:621e6b7076565ddcacd2db0294c0381e01fd28945ab36bcf00f41c5daf63bef7 + # via pre-commit +pep517==0.12.0 \ + --hash=sha256:931378d93d11b298cf511dd634cf5ea4cb249a28ef84160b3247ee9afb4e8ab0 \ + --hash=sha256:dd884c326898e2c6e11f9e0b64940606a93eb10ea022a2e067959f3a110cf161 + # via pip-tools +pip-tools==6.6.0 \ + --hash=sha256:66318bc2e884b61fafa1cb2cf01b35fdd779ab9ce82cc1bce277adb8cf3ab845 \ + --hash=sha256:98aa24004440a1c0489d71a567a4e8afdf23c7782bff483d1219881e7302de83 + # via -r dev-requirements.in +platformdirs==2.5.2 \ + --hash=sha256:027d8e83a2d7de06bbac4e5ef7e023c02b863d7ea5d079477e722bb41ab25788 \ + --hash=sha256:58c8abb07dcb441e6ee4b11d8df0ac856038f944ab98b7be6b27b2a3c7feef19 + # via virtualenv +pre-commit==2.19.0 \ + --hash=sha256:10c62741aa5704faea2ad69cb550ca78082efe5697d6f04e5710c3c229afdd10 \ + --hash=sha256:4233a1e38621c87d9dda9808c6606d7e7ba0e087cd56d3fe03202a01d2919615 + # via -r dev-requirements.in +pyyaml==6.0 \ + --hash=sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293 \ + --hash=sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b \ + --hash=sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57 \ + --hash=sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b \ + --hash=sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4 \ + --hash=sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07 \ + --hash=sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba \ + --hash=sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9 \ + --hash=sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287 \ + --hash=sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513 \ + --hash=sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0 \ + --hash=sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0 \ + --hash=sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92 \ + --hash=sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f \ + --hash=sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2 \ + --hash=sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc \ + --hash=sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c \ + --hash=sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86 \ + --hash=sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4 \ + --hash=sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c \ + --hash=sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34 \ + --hash=sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b \ + --hash=sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c \ + --hash=sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb \ + --hash=sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737 \ + --hash=sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3 \ + --hash=sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d \ + --hash=sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53 \ + --hash=sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78 \ + --hash=sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803 \ + --hash=sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a \ + --hash=sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174 \ + --hash=sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5 + # via pre-commit +six==1.16.0 \ + --hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \ + --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 + # via virtualenv +toml==0.10.2 \ + --hash=sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b \ + --hash=sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f + # via pre-commit +tomli==2.0.1 \ + --hash=sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc \ + --hash=sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f + # via pep517 +virtualenv==20.14.1 \ + --hash=sha256:e617f16e25b42eb4f6e74096b9c9e37713cf10bf30168fb4a739f3fa8f898a3a \ + --hash=sha256:ef589a79795589aada0c1c5b319486797c03b67ac3984c48c669c0e4f50df3a5 + # via pre-commit +wheel==0.37.1 \ + --hash=sha256:4bdcd7d840138086126cd09254dc6195fb4fc6f01c050a1d7236f2630db1d22a \ + --hash=sha256:e9a504e793efbca1b8e0e9cb979a249cf4a0a7b5b8c9e8b65a5e39d49529c1c4 + # via pip-tools + +# The following packages are considered to be unsafe in a requirements file: +pip==22.0.4 \ + --hash=sha256:b3a9de2c6ef801e9247d1527a4b16f92f2cc141cd1489f3fffaf6a9e96729764 \ + --hash=sha256:c6aca0f2f081363f689f041d90dab2a07a9a07fb840284db2218117a52da800b + # via pip-tools +setuptools==62.1.0 \ + --hash=sha256:26ead7d1f93efc0f8c804d9fafafbe4a44b179580a7105754b245155f9af05a8 \ + --hash=sha256:47c7b0c0f8fc10eec4cf1e71c6fdadf8decaa74ffa087e68cd1c20db7ad6a592 + # via pip-tools diff --git a/requirements.in b/requirements.in new file mode 100644 index 0000000..a895c48 --- /dev/null +++ b/requirements.in @@ -0,0 +1,19 @@ +boto<3.0 +boto3<2.0 +croniter<2.0 +Django<3.0 +django-axes<5.28 +django-dbmi-client==0.4.6 +django-filter<22.0 +django-health-check<4.0 +django-guardian<3.0 +django-nose<2.0 +django-taggit<2.0 +django-taggit-serializer<2.0 +djangorestframework<4.0 +djangorestframework-guardian<2.0 +jsonfield<4.0 +mysqlclient<3.0 +pyyaml<7.0 +raven<7.0 +requests<3.0 diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..5184f59 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,381 @@ +# +# This file is autogenerated by pip-compile with python 3.10 +# To update, run: +# +# pip-compile --allow-unsafe --generate-hashes --output-file=requirements.txt requirements.in +# +boto==2.49.0 \ + --hash=sha256:147758d41ae7240dc989f0039f27da8ca0d53734be0eb869ef16e3adcfa462e8 \ + --hash=sha256:ea0d3b40a2d852767be77ca343b58a9e3a4b00d9db440efb8da74b4e58025e5a + # via -r requirements.in +boto3==1.22.9 \ + --hash=sha256:441b619067cb205bfcd0e66fe085c16989ab65bd348823013e11bef991c00a5c \ + --hash=sha256:65e45029d234ff94ba8aa3bacb9df00fbbb2f1d9ee7fd1c2e40f4815d12ec3f5 + # via -r requirements.in +botocore==1.25.9 \ + --hash=sha256:71962de55b053a0124a0514155f4cdcf0bce81795ffc2bd6e000c1594e99125a \ + --hash=sha256:a1d26b95aaa5b2e126df74b223d774fae7e6597bb55c363782178f5b87f0cad3 + # via + # boto3 + # s3transfer +certifi==2021.10.8 \ + --hash=sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872 \ + --hash=sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569 + # via requests +cffi==1.15.0 \ + --hash=sha256:00c878c90cb53ccfaae6b8bc18ad05d2036553e6d9d1d9dbcf323bbe83854ca3 \ + --hash=sha256:0104fb5ae2391d46a4cb082abdd5c69ea4eab79d8d44eaaf79f1b1fd806ee4c2 \ + --hash=sha256:06c48159c1abed75c2e721b1715c379fa3200c7784271b3c46df01383b593636 \ + --hash=sha256:0808014eb713677ec1292301ea4c81ad277b6cdf2fdd90fd540af98c0b101d20 \ + --hash=sha256:10dffb601ccfb65262a27233ac273d552ddc4d8ae1bf93b21c94b8511bffe728 \ + --hash=sha256:14cd121ea63ecdae71efa69c15c5543a4b5fbcd0bbe2aad864baca0063cecf27 \ + --hash=sha256:17771976e82e9f94976180f76468546834d22a7cc404b17c22df2a2c81db0c66 \ + --hash=sha256:181dee03b1170ff1969489acf1c26533710231c58f95534e3edac87fff06c443 \ + --hash=sha256:23cfe892bd5dd8941608f93348c0737e369e51c100d03718f108bf1add7bd6d0 \ + --hash=sha256:263cc3d821c4ab2213cbe8cd8b355a7f72a8324577dc865ef98487c1aeee2bc7 \ + --hash=sha256:2756c88cbb94231c7a147402476be2c4df2f6078099a6f4a480d239a8817ae39 \ + --hash=sha256:27c219baf94952ae9d50ec19651a687b826792055353d07648a5695413e0c605 \ + --hash=sha256:2a23af14f408d53d5e6cd4e3d9a24ff9e05906ad574822a10563efcef137979a \ + --hash=sha256:31fb708d9d7c3f49a60f04cf5b119aeefe5644daba1cd2a0fe389b674fd1de37 \ + --hash=sha256:3415c89f9204ee60cd09b235810be700e993e343a408693e80ce7f6a40108029 \ + --hash=sha256:3773c4d81e6e818df2efbc7dd77325ca0dcb688116050fb2b3011218eda36139 \ + --hash=sha256:3b96a311ac60a3f6be21d2572e46ce67f09abcf4d09344c49274eb9e0bf345fc \ + --hash=sha256:3f7d084648d77af029acb79a0ff49a0ad7e9d09057a9bf46596dac9514dc07df \ + --hash=sha256:41d45de54cd277a7878919867c0f08b0cf817605e4eb94093e7516505d3c8d14 \ + --hash=sha256:4238e6dab5d6a8ba812de994bbb0a79bddbdf80994e4ce802b6f6f3142fcc880 \ + --hash=sha256:45db3a33139e9c8f7c09234b5784a5e33d31fd6907800b316decad50af323ff2 \ + --hash=sha256:45e8636704eacc432a206ac7345a5d3d2c62d95a507ec70d62f23cd91770482a \ + --hash=sha256:4958391dbd6249d7ad855b9ca88fae690783a6be9e86df65865058ed81fc860e \ + --hash=sha256:4a306fa632e8f0928956a41fa8e1d6243c71e7eb59ffbd165fc0b41e316b2474 \ + --hash=sha256:57e9ac9ccc3101fac9d6014fba037473e4358ef4e89f8e181f8951a2c0162024 \ + --hash=sha256:59888172256cac5629e60e72e86598027aca6bf01fa2465bdb676d37636573e8 \ + --hash=sha256:5e069f72d497312b24fcc02073d70cb989045d1c91cbd53979366077959933e0 \ + --hash=sha256:64d4ec9f448dfe041705426000cc13e34e6e5bb13736e9fd62e34a0b0c41566e \ + --hash=sha256:6dc2737a3674b3e344847c8686cf29e500584ccad76204efea14f451d4cc669a \ + --hash=sha256:74fdfdbfdc48d3f47148976f49fab3251e550a8720bebc99bf1483f5bfb5db3e \ + --hash=sha256:75e4024375654472cc27e91cbe9eaa08567f7fbdf822638be2814ce059f58032 \ + --hash=sha256:786902fb9ba7433aae840e0ed609f45c7bcd4e225ebb9c753aa39725bb3e6ad6 \ + --hash=sha256:8b6c2ea03845c9f501ed1313e78de148cd3f6cad741a75d43a29b43da27f2e1e \ + --hash=sha256:91d77d2a782be4274da750752bb1650a97bfd8f291022b379bb8e01c66b4e96b \ + --hash=sha256:91ec59c33514b7c7559a6acda53bbfe1b283949c34fe7440bcf917f96ac0723e \ + --hash=sha256:920f0d66a896c2d99f0adbb391f990a84091179542c205fa53ce5787aff87954 \ + --hash=sha256:a5263e363c27b653a90078143adb3d076c1a748ec9ecc78ea2fb916f9b861962 \ + --hash=sha256:abb9a20a72ac4e0fdb50dae135ba5e77880518e742077ced47eb1499e29a443c \ + --hash=sha256:c2051981a968d7de9dd2d7b87bcb9c939c74a34626a6e2f8181455dd49ed69e4 \ + --hash=sha256:c21c9e3896c23007803a875460fb786118f0cdd4434359577ea25eb556e34c55 \ + --hash=sha256:c2502a1a03b6312837279c8c1bd3ebedf6c12c4228ddbad40912d671ccc8a962 \ + --hash=sha256:d4d692a89c5cf08a8557fdeb329b82e7bf609aadfaed6c0d79f5a449a3c7c023 \ + --hash=sha256:da5db4e883f1ce37f55c667e5c0de439df76ac4cb55964655906306918e7363c \ + --hash=sha256:e7022a66d9b55e93e1a845d8c9eba2a1bebd4966cd8bfc25d9cd07d515b33fa6 \ + --hash=sha256:ef1f279350da2c586a69d32fc8733092fd32cc8ac95139a00377841f59a3f8d8 \ + --hash=sha256:f54a64f8b0c8ff0b64d18aa76675262e1700f3995182267998c31ae974fbc382 \ + --hash=sha256:f5c7150ad32ba43a07c4479f40241756145a1f03b43480e058cfd862bf5041c7 \ + --hash=sha256:f6f824dc3bce0edab5f427efcfb1d63ee75b6fcb7282900ccaf925be84efb0fc \ + --hash=sha256:fd8a250edc26254fe5b33be00402e6d287f562b6a5b2152dec302fa15bb3e997 \ + --hash=sha256:ffaa5c925128e29efbde7301d8ecaf35c8c60ffbcd6a1ffd3a552177c8e5e796 + # via cryptography +charset-normalizer==2.0.12 \ + --hash=sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597 \ + --hash=sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df + # via requests +croniter==1.3.4 \ + --hash=sha256:1ac5fee61aa3467c9d998b8a889cd3acbf391ad3f473addb0212dc7733b7b5cd \ + --hash=sha256:3169365916834be654c2cac57ea14d710e742f8eb8a5fce804f6ce548da80bf2 + # via -r requirements.in +cryptography==37.0.2 \ + --hash=sha256:093cb351031656d3ee2f4fa1be579a8c69c754cf874206be1d4cf3b542042804 \ + --hash=sha256:0cc20f655157d4cfc7bada909dc5cc228211b075ba8407c46467f63597c78178 \ + --hash=sha256:1b9362d34363f2c71b7853f6251219298124aa4cc2075ae2932e64c91a3e2717 \ + --hash=sha256:1f3bfbd611db5cb58ca82f3deb35e83af34bb8cf06043fa61500157d50a70982 \ + --hash=sha256:2bd1096476aaac820426239ab534b636c77d71af66c547b9ddcd76eb9c79e004 \ + --hash=sha256:31fe38d14d2e5f787e0aecef831457da6cec68e0bb09a35835b0b44ae8b988fe \ + --hash=sha256:3b8398b3d0efc420e777c40c16764d6870bcef2eb383df9c6dbb9ffe12c64452 \ + --hash=sha256:3c81599befb4d4f3d7648ed3217e00d21a9341a9a688ecdd615ff72ffbed7336 \ + --hash=sha256:419c57d7b63f5ec38b1199a9521d77d7d1754eb97827bbb773162073ccd8c8d4 \ + --hash=sha256:46f4c544f6557a2fefa7ac8ac7d1b17bf9b647bd20b16decc8fbcab7117fbc15 \ + --hash=sha256:471e0d70201c069f74c837983189949aa0d24bb2d751b57e26e3761f2f782b8d \ + --hash=sha256:59b281eab51e1b6b6afa525af2bd93c16d49358404f814fe2c2410058623928c \ + --hash=sha256:731c8abd27693323b348518ed0e0705713a36d79fdbd969ad968fbef0979a7e0 \ + --hash=sha256:95e590dd70642eb2079d280420a888190aa040ad20f19ec8c6e097e38aa29e06 \ + --hash=sha256:a68254dd88021f24a68b613d8c51d5c5e74d735878b9e32cc0adf19d1f10aaf9 \ + --hash=sha256:a7d5137e556cc0ea418dca6186deabe9129cee318618eb1ffecbd35bee55ddc1 \ + --hash=sha256:aeaba7b5e756ea52c8861c133c596afe93dd716cbcacae23b80bc238202dc023 \ + --hash=sha256:dc26bb134452081859aa21d4990474ddb7e863aa39e60d1592800a8865a702de \ + --hash=sha256:e53258e69874a306fcecb88b7534d61820db8a98655662a3dd2ec7f1afd9132f \ + --hash=sha256:ef15c2df7656763b4ff20a9bc4381d8352e6640cfeb95c2972c38ef508e75181 \ + --hash=sha256:f224ad253cc9cea7568f49077007d2263efa57396a2f2f78114066fd54b5c68e \ + --hash=sha256:f8ec91983e638a9bcd75b39f1396e5c0dc2330cbd9ce4accefe68717e6779e0a + # via + # django-dbmi-client + # jwcrypto +deprecated==1.2.13 \ + --hash=sha256:43ac5335da90c31c24ba028af536a91d41d53f9e6901ddb021bcc572ce44e38d \ + --hash=sha256:64756e3e14c8c5eea9795d93c524551432a0be75629f8f29e67ab8caf076c76d + # via jwcrypto +django==2.2.28 \ + --hash=sha256:0200b657afbf1bc08003845ddda053c7641b9b24951e52acd51f6abda33a7413 \ + --hash=sha256:365429d07c1336eb42ba15aa79f45e1c13a0b04d5c21569e7d596696418a6a45 + # via + # -r requirements.in + # django-axes + # django-bootstrap3 + # django-dbmi-client + # django-filter + # django-guardian + # django-health-check + # django-taggit + # djangorestframework + # djangorestframework-guardian + # jsonfield +django-axes==5.27.0 \ + --hash=sha256:65c8f71025a42d03b65d0db3ef779ec2f672cfc40f6017b2aa3bcb5b560e5fd0 \ + --hash=sha256:e6ac2266626d4e52a44939bdb861817766f127efe110c8e8ce2a776270954926 + # via -r requirements.in +django-bootstrap3==21.2 \ + --hash=sha256:845a53e0f68fd520e3df6d53686a641e5008329e492687e225a0c394941dd430 \ + --hash=sha256:9a7e95a053455c15cdcbc5dc7f9261f9aecf01d0558435b59e7b364765f2c3e2 + # via django-dbmi-client +django-dbmi-client==0.4.6 \ + --hash=sha256:094c8b3dad40347592ef3e329e72451f0b8f3d0458ceefd1298d242c6636924e \ + --hash=sha256:a0af1748c07d35d716e8a9fe0ab9d3f7de64c59451130621e81ca03a17c9b88d + # via -r requirements.in +django-filter==21.1 \ + --hash=sha256:632a251fa8f1aadb4b8cceff932bb52fe2f826dd7dfe7f3eac40e5c463d6836e \ + --hash=sha256:f4a6737a30104c98d2e2a5fb93043f36dd7978e0c7ddc92f5998e85433ea5063 + # via -r requirements.in +django-guardian==2.4.0 \ + --hash=sha256:440ca61358427e575323648b25f8384739e54c38b3d655c81d75e0cd0d61b697 \ + --hash=sha256:c58a68ae76922d33e6bdc0e69af1892097838de56e93e78a8361090bcd9f89a0 + # via + # -r requirements.in + # djangorestframework-guardian +django-health-check==3.16.5 \ + --hash=sha256:1edfd49293ccebbce29f9da609c407f307aee240ab799ab4201031341ae78c0f \ + --hash=sha256:8d66781a0ea82b1a8b44878187b38a27370e94f18287312e39be0593e72d8983 + # via -r requirements.in +django-ipware==4.0.2 \ + --hash=sha256:602a58325a4808bd19197fef2676a0b2da2df40d0ecf21be414b2ff48c72ad05 \ + --hash=sha256:878dbb06a87e25550798e9ef3204ed70a200dd8b15e47dcef848cf08244f04c9 + # via django-axes +django-nose==1.4.7 \ + --hash=sha256:304adc447ee35b889b733d7106004f98aa401d8387ddcada5d4f2239d86790a9 \ + --hash=sha256:a4885cd002d65fd2de96e2bb2563ef477c3fbe207009360c015fca5c3b5561b7 + # via -r requirements.in +django-taggit==1.5.1 \ + --hash=sha256:dfe9e9c10b5929132041de0c00093ef0072c73c2a97d0f74a818ae50fa77149a \ + --hash=sha256:e5bb62891f458d55332e36a32e19c08d20142c43f74bc5656c803f8af25c084a + # via + # -r requirements.in + # django-taggit-serializer +django-taggit-serializer==0.1.7 \ + --hash=sha256:f712eb2482079be452bcd1e82b18a820e26427c3ee1cef2b4fcd4d6b8b9f14d0 + # via -r requirements.in +djangorestframework==3.13.1 \ + --hash=sha256:0c33407ce23acc68eca2a6e46424b008c9c02eceb8cf18581921d0092bc1f2ee \ + --hash=sha256:24c4bf58ed7e85d1fe4ba250ab2da926d263cd57d64b03e8dcef0ac683f8b1aa + # via + # -r requirements.in + # django-dbmi-client + # djangorestframework-guardian +djangorestframework-guardian==0.3.0 \ + --hash=sha256:1883756452d9bfcc2a51fb4e039a6837a8f6697c756447aa83af085749b59330 \ + --hash=sha256:3bd3dd6ea58e1bceca5048faf6f8b1a93bb5dcff30ba5eb91b9a0e190a48a0c7 + # via -r requirements.in +furl==2.1.3 \ + --hash=sha256:5a6188fe2666c484a12159c18be97a1977a71d632ef5bb867ef15f54af39cc4e \ + --hash=sha256:9ab425062c4217f9802508e45feb4a83e54324273ac4b202f1850363309666c0 + # via django-dbmi-client +idna==3.3 \ + --hash=sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff \ + --hash=sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d + # via requests +jmespath==1.0.0 \ + --hash=sha256:a490e280edd1f57d6de88636992d05b71e97d69a26a19f058ecf7d304474bf5e \ + --hash=sha256:e8dcd576ed616f14ec02eed0005c85973b5890083313860136657e24784e4c04 + # via + # boto3 + # botocore +jsonfield==3.1.0 \ + --hash=sha256:7e4e84597de21eeaeeaaa7cc5da08c61c48a9b64d0c446b2d71255d01812887a \ + --hash=sha256:df857811587f252b97bafba42e02805e70a398a7a47870bc6358a0308dd689ed + # via -r requirements.in +jwcrypto==1.2 \ + --hash=sha256:edf4309321721e5161cefccdd64b04509e03924feaf3de085b47780765989ae3 + # via django-dbmi-client +mysqlclient==2.1.0 \ + --hash=sha256:02c8826e6add9b20f4cb12dcf016485f7b1d6e30356a1204d05431867a1b3947 \ + --hash=sha256:2c8410f54492a3d2488a6a53e2d85b7e016751a1e7d116e7aea9c763f59f5e8c \ + --hash=sha256:973235686f1b720536d417bf0a0d39b4ab3d5086b2b6ad5e6752393428c02b12 \ + --hash=sha256:b62d23c11c516cedb887377c8807628c1c65d57593b57853186a6ee18b0c6a5b \ + --hash=sha256:e6279263d5a9feca3e0edbc2b2a52c057375bf301d47da2089c075ff76331d14 + # via -r requirements.in +nose==1.3.7 \ + --hash=sha256:9ff7c6cc443f8c51994b34a667bbcf45afd6d945be7477b52e97516fd17c53ac \ + --hash=sha256:dadcddc0aefbf99eea214e0f1232b94f2fa9bd98fa8353711dacb112bfcbbb2a \ + --hash=sha256:f1bffef9cbc82628f6e7d7b40d7e255aefaa1adb6a1b1d26c69a8b79e6208a98 + # via django-nose +orderedmultidict==1.0.1 \ + --hash=sha256:04070bbb5e87291cc9bfa51df413677faf2141c73c61d2a5f7b26bea3cd882ad \ + --hash=sha256:43c839a17ee3cdd62234c47deca1a8508a3f2ca1d0678a3bf791c87cf84adbf3 + # via furl +pycparser==2.21 \ + --hash=sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9 \ + --hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206 + # via cffi +pyjwt==1.7.1 \ + --hash=sha256:5c6eca3c2940464d106b99ba83b00c6add741c9becaec087fb7ccdefea71350e \ + --hash=sha256:8d59a976fb773f3e6a39c85636357c4f0e242707394cadadd9814f5cbaa20e96 + # via django-dbmi-client +python-dateutil==2.8.2 \ + --hash=sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86 \ + --hash=sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 + # via + # botocore + # croniter +pytz==2022.1 \ + --hash=sha256:1e760e2fe6a8163bc0b3d9a19c4f84342afa0a2affebfaa84b01b978a02ecaa7 \ + --hash=sha256:e68985985296d9a66a881eb3193b0906246245294a881e7c8afe623866ac6a5c + # via + # django + # djangorestframework +pyyaml==6.0 \ + --hash=sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293 \ + --hash=sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b \ + --hash=sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57 \ + --hash=sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b \ + --hash=sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4 \ + --hash=sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07 \ + --hash=sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba \ + --hash=sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9 \ + --hash=sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287 \ + --hash=sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513 \ + --hash=sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0 \ + --hash=sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0 \ + --hash=sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92 \ + --hash=sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f \ + --hash=sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2 \ + --hash=sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc \ + --hash=sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c \ + --hash=sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86 \ + --hash=sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4 \ + --hash=sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c \ + --hash=sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34 \ + --hash=sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b \ + --hash=sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c \ + --hash=sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb \ + --hash=sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737 \ + --hash=sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3 \ + --hash=sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d \ + --hash=sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53 \ + --hash=sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78 \ + --hash=sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803 \ + --hash=sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a \ + --hash=sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174 \ + --hash=sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5 + # via -r requirements.in +raven==6.10.0 \ + --hash=sha256:3fa6de6efa2493a7c827472e984ce9b020797d0da16f1db67197bcc23c8fae54 \ + --hash=sha256:44a13f87670836e153951af9a3c80405d36b43097db869a36e92809673692ce4 + # via + # -r requirements.in + # django-dbmi-client +requests==2.27.1 \ + --hash=sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61 \ + --hash=sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d + # via + # -r requirements.in + # django-dbmi-client +s3transfer==0.5.2 \ + --hash=sha256:7a6f4c4d1fdb9a2b640244008e142cbc2cd3ae34b386584ef044dd0f27101971 \ + --hash=sha256:95c58c194ce657a5f4fb0b9e60a84968c808888aed628cd98ab8771fe1db98ed + # via boto3 +six==1.16.0 \ + --hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \ + --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 + # via + # django-taggit-serializer + # furl + # orderedmultidict + # python-dateutil +sqlparse==0.4.2 \ + --hash=sha256:0c00730c74263a94e5a9919ade150dfc3b19c574389985446148402998287dae \ + --hash=sha256:48719e356bb8b42991bdbb1e8b83223757b93789c00910a616a071910ca4a64d + # via django +urllib3==1.26.9 \ + --hash=sha256:44ece4d53fb1706f667c9bd1c648f5469a2ec925fcf3a776667042d645472c14 \ + --hash=sha256:aabaf16477806a5e1dd19aa41f8c2b7950dd3c746362d7e3223dbe6de6ac448e + # via + # botocore + # requests +wrapt==1.14.1 \ + --hash=sha256:00b6d4ea20a906c0ca56d84f93065b398ab74b927a7a3dbd470f6fc503f95dc3 \ + --hash=sha256:01c205616a89d09827986bc4e859bcabd64f5a0662a7fe95e0d359424e0e071b \ + --hash=sha256:02b41b633c6261feff8ddd8d11c711df6842aba629fdd3da10249a53211a72c4 \ + --hash=sha256:07f7a7d0f388028b2df1d916e94bbb40624c59b48ecc6cbc232546706fac74c2 \ + --hash=sha256:11871514607b15cfeb87c547a49bca19fde402f32e2b1c24a632506c0a756656 \ + --hash=sha256:1b376b3f4896e7930f1f772ac4b064ac12598d1c38d04907e696cc4d794b43d3 \ + --hash=sha256:21ac0156c4b089b330b7666db40feee30a5d52634cc4560e1905d6529a3897ff \ + --hash=sha256:257fd78c513e0fb5cdbe058c27a0624c9884e735bbd131935fd49e9fe719d310 \ + --hash=sha256:2b39d38039a1fdad98c87279b48bc5dce2c0ca0d73483b12cb72aa9609278e8a \ + --hash=sha256:2cf71233a0ed05ccdabe209c606fe0bac7379fdcf687f39b944420d2a09fdb57 \ + --hash=sha256:2fe803deacd09a233e4762a1adcea5db5d31e6be577a43352936179d14d90069 \ + --hash=sha256:3232822c7d98d23895ccc443bbdf57c7412c5a65996c30442ebe6ed3df335383 \ + --hash=sha256:34aa51c45f28ba7f12accd624225e2b1e5a3a45206aa191f6f9aac931d9d56fe \ + --hash=sha256:36f582d0c6bc99d5f39cd3ac2a9062e57f3cf606ade29a0a0d6b323462f4dd87 \ + --hash=sha256:380a85cf89e0e69b7cfbe2ea9f765f004ff419f34194018a6827ac0e3edfed4d \ + --hash=sha256:40e7bc81c9e2b2734ea4bc1aceb8a8f0ceaac7c5299bc5d69e37c44d9081d43b \ + --hash=sha256:43ca3bbbe97af00f49efb06e352eae40434ca9d915906f77def219b88e85d907 \ + --hash=sha256:4fcc4649dc762cddacd193e6b55bc02edca674067f5f98166d7713b193932b7f \ + --hash=sha256:5a0f54ce2c092aaf439813735584b9537cad479575a09892b8352fea5e988dc0 \ + --hash=sha256:5a9a0d155deafd9448baff28c08e150d9b24ff010e899311ddd63c45c2445e28 \ + --hash=sha256:5b02d65b9ccf0ef6c34cba6cf5bf2aab1bb2f49c6090bafeecc9cd81ad4ea1c1 \ + --hash=sha256:60db23fa423575eeb65ea430cee741acb7c26a1365d103f7b0f6ec412b893853 \ + --hash=sha256:642c2e7a804fcf18c222e1060df25fc210b9c58db7c91416fb055897fc27e8cc \ + --hash=sha256:6a9a25751acb379b466ff6be78a315e2b439d4c94c1e99cb7266d40a537995d3 \ + --hash=sha256:6b1a564e6cb69922c7fe3a678b9f9a3c54e72b469875aa8018f18b4d1dd1adf3 \ + --hash=sha256:6d323e1554b3d22cfc03cd3243b5bb815a51f5249fdcbb86fda4bf62bab9e164 \ + --hash=sha256:6e743de5e9c3d1b7185870f480587b75b1cb604832e380d64f9504a0535912d1 \ + --hash=sha256:709fe01086a55cf79d20f741f39325018f4df051ef39fe921b1ebe780a66184c \ + --hash=sha256:7b7c050ae976e286906dd3f26009e117eb000fb2cf3533398c5ad9ccc86867b1 \ + --hash=sha256:7d2872609603cb35ca513d7404a94d6d608fc13211563571117046c9d2bcc3d7 \ + --hash=sha256:7ef58fb89674095bfc57c4069e95d7a31cfdc0939e2a579882ac7d55aadfd2a1 \ + --hash=sha256:80bb5c256f1415f747011dc3604b59bc1f91c6e7150bd7db03b19170ee06b320 \ + --hash=sha256:81b19725065dcb43df02b37e03278c011a09e49757287dca60c5aecdd5a0b8ed \ + --hash=sha256:833b58d5d0b7e5b9832869f039203389ac7cbf01765639c7309fd50ef619e0b1 \ + --hash=sha256:88bd7b6bd70a5b6803c1abf6bca012f7ed963e58c68d76ee20b9d751c74a3248 \ + --hash=sha256:8ad85f7f4e20964db4daadcab70b47ab05c7c1cf2a7c1e51087bfaa83831854c \ + --hash=sha256:8c0ce1e99116d5ab21355d8ebe53d9460366704ea38ae4d9f6933188f327b456 \ + --hash=sha256:8d649d616e5c6a678b26d15ece345354f7c2286acd6db868e65fcc5ff7c24a77 \ + --hash=sha256:903500616422a40a98a5a3c4ff4ed9d0066f3b4c951fa286018ecdf0750194ef \ + --hash=sha256:9736af4641846491aedb3c3f56b9bc5568d92b0692303b5a305301a95dfd38b1 \ + --hash=sha256:988635d122aaf2bdcef9e795435662bcd65b02f4f4c1ae37fbee7401c440b3a7 \ + --hash=sha256:9cca3c2cdadb362116235fdbd411735de4328c61425b0aa9f872fd76d02c4e86 \ + --hash=sha256:9e0fd32e0148dd5dea6af5fee42beb949098564cc23211a88d799e434255a1f4 \ + --hash=sha256:9f3e6f9e05148ff90002b884fbc2a86bd303ae847e472f44ecc06c2cd2fcdb2d \ + --hash=sha256:a85d2b46be66a71bedde836d9e41859879cc54a2a04fad1191eb50c2066f6e9d \ + --hash=sha256:a9a52172be0b5aae932bef82a79ec0a0ce87288c7d132946d645eba03f0ad8a8 \ + --hash=sha256:aa31fdcc33fef9eb2552cbcbfee7773d5a6792c137b359e82879c101e98584c5 \ + --hash=sha256:b014c23646a467558be7da3d6b9fa409b2c567d2110599b7cf9a0c5992b3b471 \ + --hash=sha256:b21bb4c09ffabfa0e85e3a6b623e19b80e7acd709b9f91452b8297ace2a8ab00 \ + --hash=sha256:b5901a312f4d14c59918c221323068fad0540e34324925c8475263841dbdfe68 \ + --hash=sha256:b9b7a708dd92306328117d8c4b62e2194d00c365f18eff11a9b53c6f923b01e3 \ + --hash=sha256:d1967f46ea8f2db647c786e78d8cc7e4313dbd1b0aca360592d8027b8508e24d \ + --hash=sha256:d52a25136894c63de15a35bc0bdc5adb4b0e173b9c0d07a2be9d3ca64a332735 \ + --hash=sha256:d77c85fedff92cf788face9bfa3ebaa364448ebb1d765302e9af11bf449ca36d \ + --hash=sha256:d79d7d5dc8a32b7093e81e97dad755127ff77bcc899e845f41bf71747af0c569 \ + --hash=sha256:dbcda74c67263139358f4d188ae5faae95c30929281bc6866d00573783c422b7 \ + --hash=sha256:ddaea91abf8b0d13443f6dac52e89051a5063c7d014710dcb4d4abb2ff811a59 \ + --hash=sha256:dee0ce50c6a2dd9056c20db781e9c1cfd33e77d2d569f5d1d9321c641bb903d5 \ + --hash=sha256:dee60e1de1898bde3b238f18340eec6148986da0455d8ba7848d50470a7a32fb \ + --hash=sha256:e2f83e18fe2f4c9e7db597e988f72712c0c3676d337d8b101f6758107c42425b \ + --hash=sha256:e3fb1677c720409d5f671e39bac6c9e0e422584e5f518bfd50aa4cbbea02433f \ + --hash=sha256:ee2b1b1769f6707a8a445162ea16dddf74285c3964f605877a20e38545c3c462 \ + --hash=sha256:ee6acae74a2b91865910eef5e7de37dc6895ad96fa23603d1d27ea69df545015 \ + --hash=sha256:ef3f72c9666bba2bab70d2a8b79f2c6d2c1a42a7f7e2b0ec83bb2f9e383950af + # via deprecated + +# The following packages are considered to be unsafe in a requirements file: +setuptools==62.1.0 \ + --hash=sha256:26ead7d1f93efc0f8c804d9fafafbe4a44b179580a7105754b245155f9af05a8 \ + --hash=sha256:47c7b0c0f8fc10eec4cf1e71c6fdadf8decaa74ffa087e68cd1c20db7ad6a592 + # via django-axes diff --git a/requirements/constraints.txt b/requirements/constraints.txt deleted file mode 100644 index 4b434e2..0000000 --- a/requirements/constraints.txt +++ /dev/null @@ -1,43 +0,0 @@ -boto==2.49.0 -boto3==1.14.40 -botocore==1.17.40 -certifi==2020.6.20 -cffi==1.14.1 -chardet==3.0.4 -cryptography==3.4.6 -Django==2.2.19 -django-appconf==1.0.4 -django-axes==5.4.3 -django-bootstrap3==14.1.0 -django-dbmi-client==0.3.14 -django-filter==2.3.0 -django-guardian==2.3.0 -django-health-check==3.12.1 -django-ipware==3.0.1 -django-nose==1.4.6 -django-taggit==1.3.0 -django-taggit-serializer==0.1.7 -djangorestframework==3.11.1 -djangorestframework-guardian==0.3.0 -docutils==0.15.2 -furl==2.1.0 -idna==2.10 -importlib-metadata==1.7.0 -jmespath==0.10.0 -jsonfield==3.1.0 -jwcrypto==0.7 -mysqlclient==2.0.1 -nose==1.3.7 -orderedmultidict==1.0.1 -pycparser==2.20 -PyJWT==1.7.1 -python-dateutil==2.8.1 -pytz==2020.1 -PyYAML==5.3.1 -raven==6.10.0 -requests==2.24.0 -s3transfer==0.3.3 -six==1.15.0 -sqlparse==0.3.1 -urllib3==1.25.10 -zipp==3.1.0 diff --git a/requirements/requirements.txt b/requirements/requirements.txt deleted file mode 100644 index 5313c1f..0000000 --- a/requirements/requirements.txt +++ /dev/null @@ -1,20 +0,0 @@ --c constraints.txt -boto -boto3 -Django -django-axes -django-bootstrap3 -django-dbmi-client -django-filter -django-guardian -django-health-check -django-nose -django-taggit -django-taggit-serializer -djangorestframework -djangorestframework-guardian -jsonfield -mysqlclient -pyyaml -raven -requests \ No newline at end of file From 55778f672edc791a5ec97fb5dbc7ee569bac1f4f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 14 Jun 2022 08:42:13 -0400 Subject: [PATCH 3/7] fix(requirements): Updated Python requirements (#121) Co-authored-by: b32147 --- requirements.txt | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/requirements.txt b/requirements.txt index 5184f59..affdee5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -8,19 +8,19 @@ boto==2.49.0 \ --hash=sha256:147758d41ae7240dc989f0039f27da8ca0d53734be0eb869ef16e3adcfa462e8 \ --hash=sha256:ea0d3b40a2d852767be77ca343b58a9e3a4b00d9db440efb8da74b4e58025e5a # via -r requirements.in -boto3==1.22.9 \ - --hash=sha256:441b619067cb205bfcd0e66fe085c16989ab65bd348823013e11bef991c00a5c \ - --hash=sha256:65e45029d234ff94ba8aa3bacb9df00fbbb2f1d9ee7fd1c2e40f4815d12ec3f5 +boto3==1.24.7 \ + --hash=sha256:6e243e28c804dccd2015935acfac0567e1861b20fdd96aa47f232b47aa214a69 \ + --hash=sha256:925a34a55257219f4601e803951fd4d61ed6eac2208dc834a04fe150b03f265e # via -r requirements.in -botocore==1.25.9 \ - --hash=sha256:71962de55b053a0124a0514155f4cdcf0bce81795ffc2bd6e000c1594e99125a \ - --hash=sha256:a1d26b95aaa5b2e126df74b223d774fae7e6597bb55c363782178f5b87f0cad3 +botocore==1.27.7 \ + --hash=sha256:3e0cbe26f08fe9a3f6df5de4dcc3bef686e01ba5f79ad03ffbe79d92f51ecea5 \ + --hash=sha256:dc83ef991c730ab0f06b51fcefda74f493b990903b882452aff78c123e3040e2 # via # boto3 # s3transfer -certifi==2021.10.8 \ - --hash=sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872 \ - --hash=sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569 +certifi==2022.5.18.1 \ + --hash=sha256:9c5705e395cd70084351dd8ad5c41e65655e08ce46f2ec9cf6c2c08390f71eb7 \ + --hash=sha256:f1d53542ee8cbedbe2118b5686372fb33c297fcd6379b050cca0ef13a597382a # via requests cffi==1.15.0 \ --hash=sha256:00c878c90cb53ccfaae6b8bc18ad05d2036553e6d9d1d9dbcf323bbe83854ca3 \ @@ -78,9 +78,9 @@ charset-normalizer==2.0.12 \ --hash=sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597 \ --hash=sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df # via requests -croniter==1.3.4 \ - --hash=sha256:1ac5fee61aa3467c9d998b8a889cd3acbf391ad3f473addb0212dc7733b7b5cd \ - --hash=sha256:3169365916834be654c2cac57ea14d710e742f8eb8a5fce804f6ce548da80bf2 +croniter==1.3.5 \ + --hash=sha256:4f72faca42c00beb6e30907f1315145f43dfbe5ec0ad4ada24b4c0d57b86a33a \ + --hash=sha256:7592fc0e8a00d82af98dfa2768b75983b6fb4c2adc8f6d0d7c931a715b7cefee # via -r requirements.in cryptography==37.0.2 \ --hash=sha256:093cb351031656d3ee2f4fa1be579a8c69c754cf874206be1d4cf3b542042804 \ @@ -199,8 +199,8 @@ jsonfield==3.1.0 \ --hash=sha256:7e4e84597de21eeaeeaaa7cc5da08c61c48a9b64d0c446b2d71255d01812887a \ --hash=sha256:df857811587f252b97bafba42e02805e70a398a7a47870bc6358a0308dd689ed # via -r requirements.in -jwcrypto==1.2 \ - --hash=sha256:edf4309321721e5161cefccdd64b04509e03924feaf3de085b47780765989ae3 +jwcrypto==1.3.1 \ + --hash=sha256:54b551b115ffb4d12b1f1ee93b8ba2a71bb8556ba3d85d62f707549613da877c # via django-dbmi-client mysqlclient==2.1.0 \ --hash=sha256:02c8826e6add9b20f4cb12dcf016485f7b1d6e30356a1204d05431867a1b3947 \ @@ -279,15 +279,15 @@ raven==6.10.0 \ # via # -r requirements.in # django-dbmi-client -requests==2.27.1 \ - --hash=sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61 \ - --hash=sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d +requests==2.28.0 \ + --hash=sha256:bc7861137fbce630f17b03d3ad02ad0bf978c844f3536d0edda6499dafce2b6f \ + --hash=sha256:d568723a7ebd25875d8d1eaf5dfa068cd2fc8194b2e483d7b1f7c81918dbec6b # via # -r requirements.in # django-dbmi-client -s3transfer==0.5.2 \ - --hash=sha256:7a6f4c4d1fdb9a2b640244008e142cbc2cd3ae34b386584ef044dd0f27101971 \ - --hash=sha256:95c58c194ce657a5f4fb0b9e60a84968c808888aed628cd98ab8771fe1db98ed +s3transfer==0.6.0 \ + --hash=sha256:06176b74f3a15f61f1b4f25a1fc29a4429040b7647133a463da8fa5bd28d5ecd \ + --hash=sha256:2ed07d3866f523cc561bf4a00fc5535827981b117dd7876f036b0c1aca42c947 # via boto3 six==1.16.0 \ --hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \ @@ -375,7 +375,7 @@ wrapt==1.14.1 \ # via deprecated # The following packages are considered to be unsafe in a requirements file: -setuptools==62.1.0 \ - --hash=sha256:26ead7d1f93efc0f8c804d9fafafbe4a44b179580a7105754b245155f9af05a8 \ - --hash=sha256:47c7b0c0f8fc10eec4cf1e71c6fdadf8decaa74ffa087e68cd1c20db7ad6a592 +setuptools==62.3.4 \ + --hash=sha256:1f5d3a1502812025cdb2e5609b6af2d207332e3f50febe6db10ed3a59b2f155f \ + --hash=sha256:30b6b0fbacc459c90d27a63e6173facfc8b8c99a48fb24b5044f459ba63cd6cf # via django-axes From 725fe8d071fa0dfa88303c8db249cfa6a35a1267 Mon Sep 17 00:00:00 2001 From: Bryan Larson Date: Fri, 22 Jul 2022 11:24:05 -0600 Subject: [PATCH 4/7] PPM-HOTFIX-072222 - Updated base image for Fargate compatibility --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index c9e3158..5a81ff2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM hmsdbmitc/dbmisvc:debian11-slim-python3.10-0.3.3 AS builder +FROM hmsdbmitc/dbmisvc:debian11-slim-python3.10-0.5.0 AS builder # Install requirements RUN apt-get update \ @@ -19,7 +19,7 @@ RUN pip install -U wheel \ && pip wheel -r /requirements.txt \ --wheel-dir=/root/wheels -FROM hmsdbmitc/dbmisvc:debian11-slim-python3.10-0.3.3 +FROM hmsdbmitc/dbmisvc:debian11-slim-python3.10-0.5.0 # Copy Python wheels from builder COPY --from=builder /root/wheels /root/wheels From 51c07a853d334b8e90211818dd5ad2b10f4a4b13 Mon Sep 17 00:00:00 2001 From: Bryan Larson Date: Tue, 16 Aug 2022 08:39:48 -0600 Subject: [PATCH 5/7] fix(requirements): Updated Python requirements --- requirements.in | 3 +- requirements.txt | 246 +++++++++++++++++++++++++---------------------- 2 files changed, 134 insertions(+), 115 deletions(-) diff --git a/requirements.in b/requirements.in index a895c48..b644223 100644 --- a/requirements.in +++ b/requirements.in @@ -3,7 +3,8 @@ boto3<2.0 croniter<2.0 Django<3.0 django-axes<5.28 -django-dbmi-client==0.4.6 +django-dbmi-client<2.0 +django-bootstrap3<22.0 django-filter<22.0 django-health-check<4.0 django-guardian<3.0 diff --git a/requirements.txt b/requirements.txt index affdee5..db9af83 100644 --- a/requirements.txt +++ b/requirements.txt @@ -8,103 +8,117 @@ boto==2.49.0 \ --hash=sha256:147758d41ae7240dc989f0039f27da8ca0d53734be0eb869ef16e3adcfa462e8 \ --hash=sha256:ea0d3b40a2d852767be77ca343b58a9e3a4b00d9db440efb8da74b4e58025e5a # via -r requirements.in -boto3==1.24.7 \ - --hash=sha256:6e243e28c804dccd2015935acfac0567e1861b20fdd96aa47f232b47aa214a69 \ - --hash=sha256:925a34a55257219f4601e803951fd4d61ed6eac2208dc834a04fe150b03f265e +boto3==1.24.52 \ + --hash=sha256:3e7664515a2228e695489600412644f59df4eb56202c5b4acab24f4d65e6e7c0 \ + --hash=sha256:95a1f54b5cf5e09b81f5ee79f3704977951605683fa1aafa86438bedd1f22507 # via -r requirements.in -botocore==1.27.7 \ - --hash=sha256:3e0cbe26f08fe9a3f6df5de4dcc3bef686e01ba5f79ad03ffbe79d92f51ecea5 \ - --hash=sha256:dc83ef991c730ab0f06b51fcefda74f493b990903b882452aff78c123e3040e2 +botocore==1.27.52 \ + --hash=sha256:30b1f14dec9a58995d7921893beaf3ce2f3289658ea2e7449a900b0c58d154b5 \ + --hash=sha256:31d1379ceebcbb572f3040901d76b91e9147c3be6523957a5f4da26ac0ba8ff2 # via # boto3 # s3transfer -certifi==2022.5.18.1 \ - --hash=sha256:9c5705e395cd70084351dd8ad5c41e65655e08ce46f2ec9cf6c2c08390f71eb7 \ - --hash=sha256:f1d53542ee8cbedbe2118b5686372fb33c297fcd6379b050cca0ef13a597382a +certifi==2022.6.15 \ + --hash=sha256:84c85a9078b11105f04f3036a9482ae10e4621616db313fe045dd24743a0820d \ + --hash=sha256:fe86415d55e84719d75f8b69414f6438ac3547d2078ab91b67e779ef69378412 # via requests -cffi==1.15.0 \ - --hash=sha256:00c878c90cb53ccfaae6b8bc18ad05d2036553e6d9d1d9dbcf323bbe83854ca3 \ - --hash=sha256:0104fb5ae2391d46a4cb082abdd5c69ea4eab79d8d44eaaf79f1b1fd806ee4c2 \ - --hash=sha256:06c48159c1abed75c2e721b1715c379fa3200c7784271b3c46df01383b593636 \ - --hash=sha256:0808014eb713677ec1292301ea4c81ad277b6cdf2fdd90fd540af98c0b101d20 \ - --hash=sha256:10dffb601ccfb65262a27233ac273d552ddc4d8ae1bf93b21c94b8511bffe728 \ - --hash=sha256:14cd121ea63ecdae71efa69c15c5543a4b5fbcd0bbe2aad864baca0063cecf27 \ - --hash=sha256:17771976e82e9f94976180f76468546834d22a7cc404b17c22df2a2c81db0c66 \ - --hash=sha256:181dee03b1170ff1969489acf1c26533710231c58f95534e3edac87fff06c443 \ - --hash=sha256:23cfe892bd5dd8941608f93348c0737e369e51c100d03718f108bf1add7bd6d0 \ - --hash=sha256:263cc3d821c4ab2213cbe8cd8b355a7f72a8324577dc865ef98487c1aeee2bc7 \ - --hash=sha256:2756c88cbb94231c7a147402476be2c4df2f6078099a6f4a480d239a8817ae39 \ - --hash=sha256:27c219baf94952ae9d50ec19651a687b826792055353d07648a5695413e0c605 \ - --hash=sha256:2a23af14f408d53d5e6cd4e3d9a24ff9e05906ad574822a10563efcef137979a \ - --hash=sha256:31fb708d9d7c3f49a60f04cf5b119aeefe5644daba1cd2a0fe389b674fd1de37 \ - --hash=sha256:3415c89f9204ee60cd09b235810be700e993e343a408693e80ce7f6a40108029 \ - --hash=sha256:3773c4d81e6e818df2efbc7dd77325ca0dcb688116050fb2b3011218eda36139 \ - --hash=sha256:3b96a311ac60a3f6be21d2572e46ce67f09abcf4d09344c49274eb9e0bf345fc \ - --hash=sha256:3f7d084648d77af029acb79a0ff49a0ad7e9d09057a9bf46596dac9514dc07df \ - --hash=sha256:41d45de54cd277a7878919867c0f08b0cf817605e4eb94093e7516505d3c8d14 \ - --hash=sha256:4238e6dab5d6a8ba812de994bbb0a79bddbdf80994e4ce802b6f6f3142fcc880 \ - --hash=sha256:45db3a33139e9c8f7c09234b5784a5e33d31fd6907800b316decad50af323ff2 \ - --hash=sha256:45e8636704eacc432a206ac7345a5d3d2c62d95a507ec70d62f23cd91770482a \ - --hash=sha256:4958391dbd6249d7ad855b9ca88fae690783a6be9e86df65865058ed81fc860e \ - --hash=sha256:4a306fa632e8f0928956a41fa8e1d6243c71e7eb59ffbd165fc0b41e316b2474 \ - --hash=sha256:57e9ac9ccc3101fac9d6014fba037473e4358ef4e89f8e181f8951a2c0162024 \ - --hash=sha256:59888172256cac5629e60e72e86598027aca6bf01fa2465bdb676d37636573e8 \ - --hash=sha256:5e069f72d497312b24fcc02073d70cb989045d1c91cbd53979366077959933e0 \ - --hash=sha256:64d4ec9f448dfe041705426000cc13e34e6e5bb13736e9fd62e34a0b0c41566e \ - --hash=sha256:6dc2737a3674b3e344847c8686cf29e500584ccad76204efea14f451d4cc669a \ - --hash=sha256:74fdfdbfdc48d3f47148976f49fab3251e550a8720bebc99bf1483f5bfb5db3e \ - --hash=sha256:75e4024375654472cc27e91cbe9eaa08567f7fbdf822638be2814ce059f58032 \ - --hash=sha256:786902fb9ba7433aae840e0ed609f45c7bcd4e225ebb9c753aa39725bb3e6ad6 \ - --hash=sha256:8b6c2ea03845c9f501ed1313e78de148cd3f6cad741a75d43a29b43da27f2e1e \ - --hash=sha256:91d77d2a782be4274da750752bb1650a97bfd8f291022b379bb8e01c66b4e96b \ - --hash=sha256:91ec59c33514b7c7559a6acda53bbfe1b283949c34fe7440bcf917f96ac0723e \ - --hash=sha256:920f0d66a896c2d99f0adbb391f990a84091179542c205fa53ce5787aff87954 \ - --hash=sha256:a5263e363c27b653a90078143adb3d076c1a748ec9ecc78ea2fb916f9b861962 \ - --hash=sha256:abb9a20a72ac4e0fdb50dae135ba5e77880518e742077ced47eb1499e29a443c \ - --hash=sha256:c2051981a968d7de9dd2d7b87bcb9c939c74a34626a6e2f8181455dd49ed69e4 \ - --hash=sha256:c21c9e3896c23007803a875460fb786118f0cdd4434359577ea25eb556e34c55 \ - --hash=sha256:c2502a1a03b6312837279c8c1bd3ebedf6c12c4228ddbad40912d671ccc8a962 \ - --hash=sha256:d4d692a89c5cf08a8557fdeb329b82e7bf609aadfaed6c0d79f5a449a3c7c023 \ - --hash=sha256:da5db4e883f1ce37f55c667e5c0de439df76ac4cb55964655906306918e7363c \ - --hash=sha256:e7022a66d9b55e93e1a845d8c9eba2a1bebd4966cd8bfc25d9cd07d515b33fa6 \ - --hash=sha256:ef1f279350da2c586a69d32fc8733092fd32cc8ac95139a00377841f59a3f8d8 \ - --hash=sha256:f54a64f8b0c8ff0b64d18aa76675262e1700f3995182267998c31ae974fbc382 \ - --hash=sha256:f5c7150ad32ba43a07c4479f40241756145a1f03b43480e058cfd862bf5041c7 \ - --hash=sha256:f6f824dc3bce0edab5f427efcfb1d63ee75b6fcb7282900ccaf925be84efb0fc \ - --hash=sha256:fd8a250edc26254fe5b33be00402e6d287f562b6a5b2152dec302fa15bb3e997 \ - --hash=sha256:ffaa5c925128e29efbde7301d8ecaf35c8c60ffbcd6a1ffd3a552177c8e5e796 +cffi==1.15.1 \ + --hash=sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5 \ + --hash=sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef \ + --hash=sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104 \ + --hash=sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426 \ + --hash=sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405 \ + --hash=sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375 \ + --hash=sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a \ + --hash=sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e \ + --hash=sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc \ + --hash=sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf \ + --hash=sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185 \ + --hash=sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497 \ + --hash=sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3 \ + --hash=sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35 \ + --hash=sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c \ + --hash=sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83 \ + --hash=sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21 \ + --hash=sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca \ + --hash=sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984 \ + --hash=sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac \ + --hash=sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd \ + --hash=sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee \ + --hash=sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a \ + --hash=sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2 \ + --hash=sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192 \ + --hash=sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7 \ + --hash=sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585 \ + --hash=sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f \ + --hash=sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e \ + --hash=sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27 \ + --hash=sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b \ + --hash=sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e \ + --hash=sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e \ + --hash=sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d \ + --hash=sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c \ + --hash=sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415 \ + --hash=sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82 \ + --hash=sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02 \ + --hash=sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314 \ + --hash=sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325 \ + --hash=sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c \ + --hash=sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3 \ + --hash=sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914 \ + --hash=sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045 \ + --hash=sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d \ + --hash=sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9 \ + --hash=sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5 \ + --hash=sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2 \ + --hash=sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c \ + --hash=sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3 \ + --hash=sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2 \ + --hash=sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8 \ + --hash=sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d \ + --hash=sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d \ + --hash=sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9 \ + --hash=sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162 \ + --hash=sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76 \ + --hash=sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4 \ + --hash=sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e \ + --hash=sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9 \ + --hash=sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6 \ + --hash=sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b \ + --hash=sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01 \ + --hash=sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0 # via cryptography -charset-normalizer==2.0.12 \ - --hash=sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597 \ - --hash=sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df +charset-normalizer==2.1.0 \ + --hash=sha256:5189b6f22b01957427f35b6a08d9a0bc45b46d3788ef5a92e978433c7a35f8a5 \ + --hash=sha256:575e708016ff3a5e3681541cb9d79312c416835686d054a23accb873b254f413 # via requests croniter==1.3.5 \ --hash=sha256:4f72faca42c00beb6e30907f1315145f43dfbe5ec0ad4ada24b4c0d57b86a33a \ --hash=sha256:7592fc0e8a00d82af98dfa2768b75983b6fb4c2adc8f6d0d7c931a715b7cefee # via -r requirements.in -cryptography==37.0.2 \ - --hash=sha256:093cb351031656d3ee2f4fa1be579a8c69c754cf874206be1d4cf3b542042804 \ - --hash=sha256:0cc20f655157d4cfc7bada909dc5cc228211b075ba8407c46467f63597c78178 \ - --hash=sha256:1b9362d34363f2c71b7853f6251219298124aa4cc2075ae2932e64c91a3e2717 \ - --hash=sha256:1f3bfbd611db5cb58ca82f3deb35e83af34bb8cf06043fa61500157d50a70982 \ - --hash=sha256:2bd1096476aaac820426239ab534b636c77d71af66c547b9ddcd76eb9c79e004 \ - --hash=sha256:31fe38d14d2e5f787e0aecef831457da6cec68e0bb09a35835b0b44ae8b988fe \ - --hash=sha256:3b8398b3d0efc420e777c40c16764d6870bcef2eb383df9c6dbb9ffe12c64452 \ - --hash=sha256:3c81599befb4d4f3d7648ed3217e00d21a9341a9a688ecdd615ff72ffbed7336 \ - --hash=sha256:419c57d7b63f5ec38b1199a9521d77d7d1754eb97827bbb773162073ccd8c8d4 \ - --hash=sha256:46f4c544f6557a2fefa7ac8ac7d1b17bf9b647bd20b16decc8fbcab7117fbc15 \ - --hash=sha256:471e0d70201c069f74c837983189949aa0d24bb2d751b57e26e3761f2f782b8d \ - --hash=sha256:59b281eab51e1b6b6afa525af2bd93c16d49358404f814fe2c2410058623928c \ - --hash=sha256:731c8abd27693323b348518ed0e0705713a36d79fdbd969ad968fbef0979a7e0 \ - --hash=sha256:95e590dd70642eb2079d280420a888190aa040ad20f19ec8c6e097e38aa29e06 \ - --hash=sha256:a68254dd88021f24a68b613d8c51d5c5e74d735878b9e32cc0adf19d1f10aaf9 \ - --hash=sha256:a7d5137e556cc0ea418dca6186deabe9129cee318618eb1ffecbd35bee55ddc1 \ - --hash=sha256:aeaba7b5e756ea52c8861c133c596afe93dd716cbcacae23b80bc238202dc023 \ - --hash=sha256:dc26bb134452081859aa21d4990474ddb7e863aa39e60d1592800a8865a702de \ - --hash=sha256:e53258e69874a306fcecb88b7534d61820db8a98655662a3dd2ec7f1afd9132f \ - --hash=sha256:ef15c2df7656763b4ff20a9bc4381d8352e6640cfeb95c2972c38ef508e75181 \ - --hash=sha256:f224ad253cc9cea7568f49077007d2263efa57396a2f2f78114066fd54b5c68e \ - --hash=sha256:f8ec91983e638a9bcd75b39f1396e5c0dc2330cbd9ce4accefe68717e6779e0a +cryptography==37.0.4 \ + --hash=sha256:190f82f3e87033821828f60787cfa42bff98404483577b591429ed99bed39d59 \ + --hash=sha256:2be53f9f5505673eeda5f2736bea736c40f051a739bfae2f92d18aed1eb54596 \ + --hash=sha256:30788e070800fec9bbcf9faa71ea6d8068f5136f60029759fd8c3efec3c9dcb3 \ + --hash=sha256:3d41b965b3380f10e4611dbae366f6dc3cefc7c9ac4e8842a806b9672ae9add5 \ + --hash=sha256:4c590ec31550a724ef893c50f9a97a0c14e9c851c85621c5650d699a7b88f7ab \ + --hash=sha256:549153378611c0cca1042f20fd9c5030d37a72f634c9326e225c9f666d472884 \ + --hash=sha256:63f9c17c0e2474ccbebc9302ce2f07b55b3b3fcb211ded18a42d5764f5c10a82 \ + --hash=sha256:6bc95ed67b6741b2607298f9ea4932ff157e570ef456ef7ff0ef4884a134cc4b \ + --hash=sha256:7099a8d55cd49b737ffc99c17de504f2257e3787e02abe6d1a6d136574873441 \ + --hash=sha256:75976c217f10d48a8b5a8de3d70c454c249e4b91851f6838a4e48b8f41eb71aa \ + --hash=sha256:7bc997818309f56c0038a33b8da5c0bfbb3f1f067f315f9abd6fc07ad359398d \ + --hash=sha256:80f49023dd13ba35f7c34072fa17f604d2f19bf0989f292cedf7ab5770b87a0b \ + --hash=sha256:91ce48d35f4e3d3f1d83e29ef4a9267246e6a3be51864a5b7d2247d5086fa99a \ + --hash=sha256:a958c52505c8adf0d3822703078580d2c0456dd1d27fabfb6f76fe63d2971cd6 \ + --hash=sha256:b62439d7cd1222f3da897e9a9fe53bbf5c104fff4d60893ad1355d4c14a24157 \ + --hash=sha256:b7f8dd0d4c1f21759695c05a5ec8536c12f31611541f8904083f3dc582604280 \ + --hash=sha256:d204833f3c8a33bbe11eda63a54b1aad7aa7456ed769a982f21ec599ba5fa282 \ + --hash=sha256:e007f052ed10cc316df59bc90fbb7ff7950d7e2919c9757fd42a2b8ecf8a5f67 \ + --hash=sha256:f2dcb0b3b63afb6df7fd94ec6fbddac81b5492513f7b0436210d390c14d46ee8 \ + --hash=sha256:f721d1885ecae9078c3f6bbe8a88bc0786b6e749bf32ccec1ef2b18929a05046 \ + --hash=sha256:f7a6de3e98771e183645181b3627e2563dcde3ce94a9e42a3f427d2255190327 \ + --hash=sha256:f8c0a6e9e1dd3eb0414ba320f85da6b0dcbd543126e30fcc546e7372a7fbf3b9 # via # django-dbmi-client # jwcrypto @@ -134,10 +148,12 @@ django-axes==5.27.0 \ django-bootstrap3==21.2 \ --hash=sha256:845a53e0f68fd520e3df6d53686a641e5008329e492687e225a0c394941dd430 \ --hash=sha256:9a7e95a053455c15cdcbc5dc7f9261f9aecf01d0558435b59e7b364765f2c3e2 - # via django-dbmi-client -django-dbmi-client==0.4.6 \ - --hash=sha256:094c8b3dad40347592ef3e329e72451f0b8f3d0458ceefd1298d242c6636924e \ - --hash=sha256:a0af1748c07d35d716e8a9fe0ab9d3f7de64c59451130621e81ca03a17c9b88d + # via + # -r requirements.in + # django-dbmi-client +django-dbmi-client==0.5.2 \ + --hash=sha256:270fff5b6f089858b7bb6f4c3fe64c8d616348146feb5b8c6c1f158f1dab144d \ + --hash=sha256:4dbd944c7fd5d4f13ce073facb761df175057d24ff4e28153a8a97e38c5d93cd # via -r requirements.in django-filter==21.1 \ --hash=sha256:632a251fa8f1aadb4b8cceff932bb52fe2f826dd7dfe7f3eac40e5c463d6836e \ @@ -189,9 +205,9 @@ idna==3.3 \ --hash=sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff \ --hash=sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d # via requests -jmespath==1.0.0 \ - --hash=sha256:a490e280edd1f57d6de88636992d05b71e97d69a26a19f058ecf7d304474bf5e \ - --hash=sha256:e8dcd576ed616f14ec02eed0005c85973b5890083313860136657e24784e4c04 +jmespath==1.0.1 \ + --hash=sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980 \ + --hash=sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe # via # boto3 # botocore @@ -202,12 +218,14 @@ jsonfield==3.1.0 \ jwcrypto==1.3.1 \ --hash=sha256:54b551b115ffb4d12b1f1ee93b8ba2a71bb8556ba3d85d62f707549613da877c # via django-dbmi-client -mysqlclient==2.1.0 \ - --hash=sha256:02c8826e6add9b20f4cb12dcf016485f7b1d6e30356a1204d05431867a1b3947 \ - --hash=sha256:2c8410f54492a3d2488a6a53e2d85b7e016751a1e7d116e7aea9c763f59f5e8c \ - --hash=sha256:973235686f1b720536d417bf0a0d39b4ab3d5086b2b6ad5e6752393428c02b12 \ - --hash=sha256:b62d23c11c516cedb887377c8807628c1c65d57593b57853186a6ee18b0c6a5b \ - --hash=sha256:e6279263d5a9feca3e0edbc2b2a52c057375bf301d47da2089c075ff76331d14 +mysqlclient==2.1.1 \ + --hash=sha256:0d1cd3a5a4d28c222fa199002810e8146cffd821410b67851af4cc80aeccd97c \ + --hash=sha256:828757e419fb11dd6c5ed2576ec92c3efaa93a0f7c39e263586d1ee779c3d782 \ + --hash=sha256:996924f3483fd36a34a5812210c69e71dea5a3d5978d01199b78b7f6d485c855 \ + --hash=sha256:b355c8b5a7d58f2e909acdbb050858390ee1b0e13672ae759e5e784110022994 \ + --hash=sha256:c1ed71bd6244993b526113cca3df66428609f90e4652f37eb51c33496d478b37 \ + --hash=sha256:c812b67e90082a840efb82a8978369e6e69fc62ce1bda4ca8f3084a9d862308b \ + --hash=sha256:dea88c8d3f5a5d9293dfe7f087c16dd350ceb175f2f6631c9cf4caf3e19b7a96 # via -r requirements.in nose==1.3.7 \ --hash=sha256:9ff7c6cc443f8c51994b34a667bbcf45afd6d945be7477b52e97516fd17c53ac \ @@ -222,9 +240,9 @@ pycparser==2.21 \ --hash=sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9 \ --hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206 # via cffi -pyjwt==1.7.1 \ - --hash=sha256:5c6eca3c2940464d106b99ba83b00c6add741c9becaec087fb7ccdefea71350e \ - --hash=sha256:8d59a976fb773f3e6a39c85636357c4f0e242707394cadadd9814f5cbaa20e96 +pyjwt==2.4.0 \ + --hash=sha256:72d1d253f32dbd4f5c88eaf1fdc62f3a19f676ccbadb9dbc5d07e951b2b26daf \ + --hash=sha256:d42908208c699b3b973cbeb01a969ba6a96c821eefb1c5bfe4c390c01d67abba # via django-dbmi-client python-dateutil==2.8.2 \ --hash=sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86 \ @@ -232,9 +250,9 @@ python-dateutil==2.8.2 \ # via # botocore # croniter -pytz==2022.1 \ - --hash=sha256:1e760e2fe6a8163bc0b3d9a19c4f84342afa0a2affebfaa84b01b978a02ecaa7 \ - --hash=sha256:e68985985296d9a66a881eb3193b0906246245294a881e7c8afe623866ac6a5c +pytz==2022.2.1 \ + --hash=sha256:220f481bdafa09c3955dfbdddb7b57780e9a94f5127e35456a48589b9e0c0197 \ + --hash=sha256:cea221417204f2d1a2aa03ddae3e867921971d0d76f14d87abb4414415bbdcf5 # via # django # djangorestframework @@ -279,9 +297,9 @@ raven==6.10.0 \ # via # -r requirements.in # django-dbmi-client -requests==2.28.0 \ - --hash=sha256:bc7861137fbce630f17b03d3ad02ad0bf978c844f3536d0edda6499dafce2b6f \ - --hash=sha256:d568723a7ebd25875d8d1eaf5dfa068cd2fc8194b2e483d7b1f7c81918dbec6b +requests==2.28.1 \ + --hash=sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983 \ + --hash=sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349 # via # -r requirements.in # django-dbmi-client @@ -301,9 +319,9 @@ sqlparse==0.4.2 \ --hash=sha256:0c00730c74263a94e5a9919ade150dfc3b19c574389985446148402998287dae \ --hash=sha256:48719e356bb8b42991bdbb1e8b83223757b93789c00910a616a071910ca4a64d # via django -urllib3==1.26.9 \ - --hash=sha256:44ece4d53fb1706f667c9bd1c648f5469a2ec925fcf3a776667042d645472c14 \ - --hash=sha256:aabaf16477806a5e1dd19aa41f8c2b7950dd3c746362d7e3223dbe6de6ac448e +urllib3==1.26.11 \ + --hash=sha256:c33ccba33c819596124764c23a97d25f32b28433ba0dedeb77d873a38722c9bc \ + --hash=sha256:ea6e8fb210b19d950fab93b60c9009226c63a28808bc8386e05301e25883ac0a # via # botocore # requests @@ -375,7 +393,7 @@ wrapt==1.14.1 \ # via deprecated # The following packages are considered to be unsafe in a requirements file: -setuptools==62.3.4 \ - --hash=sha256:1f5d3a1502812025cdb2e5609b6af2d207332e3f50febe6db10ed3a59b2f155f \ - --hash=sha256:30b6b0fbacc459c90d27a63e6173facfc8b8c99a48fb24b5044f459ba63cd6cf +setuptools==65.0.1 \ + --hash=sha256:7a2e7e95c3bf33f356b4c59aee7a6848585c4219dd3e941e43cc117888f210e4 \ + --hash=sha256:c04a012ae3a1b2cc2aeed4893377b70ea61c6c143d0acceea16ec4b60de6e40d # via django-axes From 6268a4ce3eb9666e711e22fabd54036f22b6b666 Mon Sep 17 00:00:00 2001 From: Bryan Larson Date: Tue, 16 Aug 2022 08:40:16 -0600 Subject: [PATCH 6/7] fix(admin): Fixed admin search fields --- fileservice/filemaster/admin.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fileservice/filemaster/admin.py b/fileservice/filemaster/admin.py index 43c33d3..8928d5f 100644 --- a/fileservice/filemaster/admin.py +++ b/fileservice/filemaster/admin.py @@ -33,8 +33,8 @@ class ArchiveFileAdmin(GuardedModelAdmin): fields = ('creationdate', 'uuid', 'filename', 'owner', 'tags', 'locations') list_display = ('filename', 'uuid', 'creationdate', 'owner') readonly_fields = ('uuid', 'creationdate') - sortable_by = ('owner', 'creationdate', 'modifydate') - search_fields = ('owner', 'filename', 'metadata', ) + sortable_by = ('owner__email', 'creationdate', 'modifydate') + search_fields = ('owner__email', 'filename', 'metadata', 'uuid', ) admin.site.register(ArchiveFile, ArchiveFileAdmin) From 4fbc5be5b5090a66907d8fcc1b16459a3366d616 Mon Sep 17 00:00:00 2001 From: b32147 Date: Tue, 16 Aug 2022 11:02:03 -0400 Subject: [PATCH 7/7] DBMISVC-110 - Fixed admin search fields (#91) --- fileservice/filemaster/admin.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fileservice/filemaster/admin.py b/fileservice/filemaster/admin.py index 8928d5f..e3c677f 100644 --- a/fileservice/filemaster/admin.py +++ b/fileservice/filemaster/admin.py @@ -33,8 +33,8 @@ class ArchiveFileAdmin(GuardedModelAdmin): fields = ('creationdate', 'uuid', 'filename', 'owner', 'tags', 'locations') list_display = ('filename', 'uuid', 'creationdate', 'owner') readonly_fields = ('uuid', 'creationdate') - sortable_by = ('owner__email', 'creationdate', 'modifydate') - search_fields = ('owner__email', 'filename', 'metadata', 'uuid', ) + sortable_by = ('owner', 'creationdate', 'modifydate') + search_fields = ('owner__email', 'owner__username', 'filename', 'metadata', ) admin.site.register(ArchiveFile, ArchiveFileAdmin) @@ -56,7 +56,7 @@ class DownloadLogAdmin(admin.ModelAdmin): readonly_fields = ('download_requested_on', ) list_display = ('archivefile', 'download_requested_on', 'requesting_user', ) sortable_by = ('archivefile', 'download_requested_on', 'requesting_user', ) - search_fields = ('archivefile', 'requesting_user', ) + search_fields = ('archivefile__uuid', 'requesting_user__email', 'requesting_user__username', ) admin.site.register(DownloadLog, DownloadLogAdmin)