|
1 | 1 | ### |
2 | | -# Copyright 2015-2023, Institute for Systems Biology |
| 2 | +# Copyright 2015-2025, Institute for Systems Biology |
3 | 3 | # |
4 | 4 | # Licensed under the Apache License, Version 2.0 (the "License"); |
5 | 5 | # you may not use this file except in compliance with the License. |
|
84 | 84 | DEFAULT_AUTO_FIELD = 'django.db.models.AutoField' |
85 | 85 |
|
86 | 86 | GCLOUD_PROJECT_ID = os.environ.get('GCLOUD_PROJECT_ID', '') |
| 87 | +GCLOUD_TOPICS_ID = os.environ.get('GCLOUD_TOPICS_ID', GCLOUD_PROJECT_ID) |
87 | 88 | GCLOUD_PROJECT_NUMBER = os.environ.get('GCLOUD_PROJECT_NUMBER', '') |
88 | 89 | BIGQUERY_PROJECT_ID = os.environ.get('BIGQUERY_PROJECT_ID', GCLOUD_PROJECT_ID) |
89 | 90 | BIGQUERY_DATA_PROJECT_ID = os.environ.get('BIGQUERY_DATA_PROJECT_ID', GCLOUD_PROJECT_ID) |
90 | 91 | BIGQUERY_USER_DATA_PROJECT_ID = os.environ.get('BIGQUERY_USER_DATA_PROJECT_ID', GCLOUD_PROJECT_ID) |
91 | 92 | BIGQUERY_USER_MANIFEST_DATASET = os.environ.get('BIGQUERY_USER_MANIFEST_DATASET', 'dev_user_dataset') |
92 | 93 | BIGQUERY_USER_MANIFEST_TIMEOUT = int(os.environ.get('BIGQUERY_USER_MANIFEST_TIMEOUT', '7')) |
93 | | -PUBSUB_USER_MANIFEST_TOPIC = "projects/{}/topics/{}".format(GCLOUD_PROJECT_ID, os.environ.get('PUBSUB_USER_MANIFEST_TOPIC', 'user-manifest')) |
| 94 | +PUBSUB_USER_MANIFEST_TOPIC = "projects/{}/topics/{}".format(GCLOUD_TOPICS_ID, os.environ.get('PUBSUB_USER_MANIFEST_TOPIC', 'user-manifest')) |
94 | 95 | USER_MANIFESTS_FOLDER = os.environ.get('USER_MANIFESTS_FOLDER', 'user-manifests') |
95 | 96 | RESULT_BUCKET = os.environ.get('RESULT_BUCKET', 'idc-dev-files') |
96 | 97 |
|
|
284 | 285 | 'django.contrib.sessions.middleware.SessionMiddleware', |
285 | 286 | 'idc.checkreqsize_middleware.CheckReqSize', |
286 | 287 | 'django.middleware.csrf.CsrfViewMiddleware', |
| 288 | + 'django.contrib.messages.middleware.MessageMiddleware', |
287 | 289 | 'django.contrib.auth.middleware.AuthenticationMiddleware', |
288 | 290 | 'adminrestrict.middleware.AdminPagesRestrictMiddleware', |
289 | | - 'django.contrib.messages.middleware.MessageMiddleware', |
| 291 | + "allauth.account.middleware.AccountMiddleware", |
290 | 292 | 'idc.team_only_middleware.TeamOnly', |
291 | 293 | # Uncomment the next line for simple clickjacking protection: |
292 | 294 | 'django.middleware.clickjacking.XFrameOptionsMiddleware', |
|
311 | 313 | 'django.contrib.humanize', |
312 | 314 | 'anymail', |
313 | 315 | 'idc', |
314 | | - 'data_upload', |
315 | 316 | 'sharing', |
316 | 317 | 'cohorts', |
317 | 318 | 'idc_collections', |
|
590 | 591 | DEFAULT_FROM_EMAIL = NOTIFICATION_EMAIL_FROM_ADDRESS |
591 | 592 | SERVER_EMAIL = "[email protected]" |
592 | 593 |
|
593 | | -GOOGLE_APPLICATION_CREDENTIALS = join(dirname(__file__), '../{}{}'.format(SECURE_LOCAL_PATH,os.environ.get('GOOGLE_APPLICATION_CREDENTIALS', ''))) |
594 | 594 | OAUTH2_CLIENT_ID = os.environ.get('OAUTH2_CLIENT_ID', '') |
595 | 595 | OAUTH2_CLIENT_SECRET = os.environ.get('OAUTH2_CLIENT_SECRET', '') |
596 | 596 |
|
597 | | -if not exists(GOOGLE_APPLICATION_CREDENTIALS): |
598 | | - print("[ERROR] Google application credentials file wasn't found! Provided path: {}".format(GOOGLE_APPLICATION_CREDENTIALS)) |
599 | | - exit(1) |
| 597 | +# WJRL 5/21/25: Pulling in the GAC test code now in use on ISB-CGC to support keyless deployment: |
| 598 | +# |
| 599 | +# Deployed systems retrieve credentials from the metadata server, but a local VM build must provide a credentials file |
| 600 | +# for some actions. CircleCI needs SA access but can make use of the deployment SA's key. |
| 601 | +GOOGLE_APPLICATION_CREDENTIALS = None |
| 602 | + |
| 603 | +if IS_DEV: |
| 604 | + GOOGLE_APPLICATION_CREDENTIALS = os.environ.get('GOOGLE_APPLICATION_CREDENTIALS', '') |
| 605 | +elif IS_CI: |
| 606 | + GOOGLE_APPLICATION_CREDENTIALS = "deployment.key.json" |
| 607 | + |
| 608 | +if not IS_APP_ENGINE: |
| 609 | + if GOOGLE_APPLICATION_CREDENTIALS is not None and not exists(GOOGLE_APPLICATION_CREDENTIALS): |
| 610 | + print("[ERROR] Google application credentials file wasn't found! Provided path: {}".format(GOOGLE_APPLICATION_CREDENTIALS)) |
| 611 | + exit(1) |
| 612 | + print("[STATUS] GOOGLE_APPLICATION_CREDENTIALS: {}".format(GOOGLE_APPLICATION_CREDENTIALS)) |
| 613 | +else: |
| 614 | + print("[STATUS] AppEngine Flex detected--default credentials will be used.") |
600 | 615 |
|
601 | | -################################# |
602 | | -# For NIH/eRA Commons login # |
603 | | -################################# |
604 | | -GOOGLE_GROUP_ADMIN = os.environ.get('GOOGLE_GROUP_ADMIN', '') |
605 | | -SUPERADMIN_FOR_REPORTS = os.environ.get('SUPERADMIN_FOR_REPORTS', '') |
606 | 616 |
|
607 | 617 |
|
608 | 618 | ############################## |
|
668 | 678 |
|
669 | 679 |
|
670 | 680 | # Explicitly check for known problems in descriptions and names provided by users |
671 | | -DENYLIST_RE = r'((?i)<script>|(?i)</script>|!\[\]|!!\[\]|\[\]\[\".*\"\]|(?i)<iframe>|(?i)</iframe>)' |
| 681 | +DENYLIST_RE = r'(<script>|</script>|!\[\]|!!\[\]|\[\]\[\".*\"\]|<iframe>|</iframe>)' |
672 | 682 | ATTRIBUTE_DISALLOW_RE = r'([^a-zA-Z0-9_])' |
673 | 683 |
|
674 | 684 | if DEBUG and DEBUG_TOOLBAR and not IS_APP_ENGINE: |
|
0 commit comments