Skip to content

Commit 6591e1f

Browse files
committed
feat: use challenge domain
1 parent 4f15efb commit 6591e1f

14 files changed

+656
-645
lines changed

config/default.js

Lines changed: 70 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -1,107 +1,120 @@
11
/**
22
* The configuration file.
33
*/
4-
const _ = require('lodash')
5-
require('dotenv').config()
4+
const _ = require("lodash");
5+
require("dotenv").config();
66
module.exports = {
7-
READONLY: process.env.READONLY === 'true' || false,
8-
LOG_LEVEL: process.env.LOG_LEVEL || 'debug',
7+
READONLY: process.env.READONLY === "true" || false,
8+
LOG_LEVEL: process.env.LOG_LEVEL || "debug",
99
PORT: process.env.PORT || 3000,
1010
// used to properly set the header response to api calls for services behind a load balancer
1111
API_BASE_URL: process.env.API_BASE_URL || `http://localhost:3000`,
12-
API_VERSION: process.env.API_VERSION || 'v5',
13-
AUTH_SECRET: process.env.AUTH_SECRET || 'mysecret',
14-
VALID_ISSUERS: process.env.VALID_ISSUERS || '["https://api.topcoder-dev.com", "https://api.topcoder.com", "https://topcoder-dev.auth0.com/"]',
12+
API_VERSION: process.env.API_VERSION || "v5",
13+
AUTH_SECRET: process.env.AUTH_SECRET || "mysecret",
14+
VALID_ISSUERS:
15+
process.env.VALID_ISSUERS ||
16+
'["https://api.topcoder-dev.com", "https://api.topcoder.com", "https://topcoder-dev.auth0.com/"]',
1517

1618
// used to get M2M token
1719
AUTH0_URL: process.env.AUTH0_URL,
1820
AUTH0_PROXY_SERVER_URL: process.env.AUTH0_PROXY_SERVER_URL,
19-
AUTH0_AUDIENCE: process.env.AUTH0_AUDIENCE || 'https://www.topcoder-dev.com',
21+
AUTH0_AUDIENCE: process.env.AUTH0_AUDIENCE || "https://www.topcoder-dev.com",
2022
TOKEN_CACHE_TIME: process.env.TOKEN_CACHE_TIME,
2123
AUTH0_CLIENT_ID: process.env.AUTH0_CLIENT_ID,
2224
AUTH0_CLIENT_SECRET: process.env.AUTH0_CLIENT_SECRET,
2325

2426
// bus API config params
25-
BUSAPI_URL: process.env.BUSAPI_URL || 'https://api.topcoder-dev.com/v5',
26-
KAFKA_ERROR_TOPIC: process.env.KAFKA_ERROR_TOPIC || 'common.error.reporting',
27-
SCHEDULING_TOPIC: process.env.SCHEDULING_TOPIC || 'challenge.notification.schedule.update',
27+
BUSAPI_URL: process.env.BUSAPI_URL || "https://api.topcoder-dev.com/v5",
28+
KAFKA_ERROR_TOPIC: process.env.KAFKA_ERROR_TOPIC || "common.error.reporting",
29+
SCHEDULING_TOPIC: process.env.SCHEDULING_TOPIC || "challenge.notification.schedule.update",
2830

2931
AMAZON: {
3032
// AWS_ACCESS_KEY_ID: process.env.AWS_FAKE_ID || 'FAKE_ACCESS_KEY',
3133
// AWS_SECRET_ACCESS_KEY: process.env.AWS_FAKE_KEY || 'FAKE_SECRET_ACCESS_KEY',
32-
AWS_REGION: process.env.AWS_REGION || 'ap-northeast-1',
34+
AWS_REGION: process.env.AWS_REGION || "ap-northeast-1",
3335
IS_LOCAL_DB: process.env.IS_LOCAL_DB || true,
34-
DYNAMODB_URL: process.env.DYNAMODB_URL || 'http://localhost:7777',
35-
S3_API_VERSION: process.env.S3_API_VERSION || '2006-03-01',
36-
BUCKET_WHITELIST: process.env.BUCKET_WHITELIST || 'topcoder_01, topcoder_02'
36+
DYNAMODB_URL: process.env.DYNAMODB_URL || "http://localhost:7777",
37+
S3_API_VERSION: process.env.S3_API_VERSION || "2006-03-01",
38+
BUCKET_WHITELIST: process.env.BUCKET_WHITELIST || "topcoder_01, topcoder_02",
3739
},
3840

3941
ES: {
4042
// above AWS_REGION is used if we use AWS ES
41-
HOST: process.env.ES_HOST || 'localhost:9200',
42-
API_VERSION: process.env.ES_API_VERSION || '6.8',
43-
ES_INDEX: process.env.ES_INDEX || 'challenge',
44-
ES_TYPE: process.env.ES_TYPE || '_doc', // ES 6.x accepts only 1 Type per index and it's mandatory to define it
45-
ES_REFRESH: process.env.ES_REFRESH || 'true',
46-
TEMP_REINDEXING: process.env.TEMP_REINDEXING || true // if true, it won't delete the existing index when reindexing data
43+
HOST: process.env.ES_HOST || "localhost:9200",
44+
API_VERSION: process.env.ES_API_VERSION || "6.8",
45+
ES_INDEX: process.env.ES_INDEX || "challenge",
46+
ES_TYPE: process.env.ES_TYPE || "_doc", // ES 6.x accepts only 1 Type per index and it's mandatory to define it
47+
ES_REFRESH: process.env.ES_REFRESH || "true",
48+
TEMP_REINDEXING: process.env.TEMP_REINDEXING || true, // if true, it won't delete the existing index when reindexing data
4749
},
4850

4951
// in bytes
5052
FILE_UPLOAD_SIZE_LIMIT: process.env.FILE_UPLOAD_SIZE_LIMIT
51-
? Number(process.env.FILE_UPLOAD_SIZE_LIMIT) : 50 * 1024 * 1024, // 50M
53+
? Number(process.env.FILE_UPLOAD_SIZE_LIMIT)
54+
: 50 * 1024 * 1024, // 50M
5255
// TODO: change this to localhost
53-
SUBMISSIONS_API_URL: process.env.SUBMISSIONS_API_URL || 'https://api.topcoder-dev.com/v5/submissions',
54-
MEMBERS_API_URL: process.env.MEMBERS_API_URL || 'https://api.topcoder-dev.com/v5/members',
55-
RESOURCES_API_URL: process.env.RESOURCES_API_URL || 'http://localhost:4000/v5/resources',
56+
SUBMISSIONS_API_URL:
57+
process.env.SUBMISSIONS_API_URL || "https://api.topcoder-dev.com/v5/submissions",
58+
MEMBERS_API_URL: process.env.MEMBERS_API_URL || "https://api.topcoder-dev.com/v5/members",
59+
RESOURCES_API_URL: process.env.RESOURCES_API_URL || "http://localhost:4000/v5/resources",
5660
// TODO: change this to localhost
57-
RESOURCE_ROLES_API_URL: process.env.RESOURCE_ROLES_API_URL || 'http://api.topcoder-dev.com/v5/resource-roles',
58-
GROUPS_API_URL: process.env.GROUPS_API_URL || 'http://localhost:4000/v5/groups',
59-
PROJECTS_API_URL: process.env.PROJECTS_API_URL || 'http://localhost:4000/v5/projects',
60-
TERMS_API_URL: process.env.TERMS_API_URL || 'http://localhost:4000/v5/terms',
61-
CUSTOMER_PAYMENTS_URL: process.env.CUSTOMER_PAYMENTS_URL || 'https://api.topcoder-dev.com/v5/customer-payments',
62-
CHALLENGE_MIGRATION_APP_URL: process.env.CHALLENGE_MIGRATION_APP_URL || 'https://api.topcoder.com/v5/challenge-migration',
61+
RESOURCE_ROLES_API_URL:
62+
process.env.RESOURCE_ROLES_API_URL || "http://api.topcoder-dev.com/v5/resource-roles",
63+
GROUPS_API_URL: process.env.GROUPS_API_URL || "http://localhost:4000/v5/groups",
64+
PROJECTS_API_URL: process.env.PROJECTS_API_URL || "http://localhost:4000/v5/projects",
65+
TERMS_API_URL: process.env.TERMS_API_URL || "http://localhost:4000/v5/terms",
66+
CUSTOMER_PAYMENTS_URL:
67+
process.env.CUSTOMER_PAYMENTS_URL || "https://api.topcoder-dev.com/v5/customer-payments",
68+
CHALLENGE_MIGRATION_APP_URL:
69+
process.env.CHALLENGE_MIGRATION_APP_URL || "https://api.topcoder.com/v5/challenge-migration",
6370
// copilot resource role ids allowed to upload attachment
6471
COPILOT_RESOURCE_ROLE_IDS: process.env.COPILOT_RESOURCE_ROLE_IDS
65-
? process.env.COPILOT_RESOURCE_ROLE_IDS.split(',') : ['10ba038e-48da-487b-96e8-8d3b99b6d18b'],
66-
SUBMITTER_ROLE_ID: process.env.SUBMITTER_ROLE_ID || '732339e7-8e30-49d7-9198-cccf9451e221',
72+
? process.env.COPILOT_RESOURCE_ROLE_IDS.split(",")
73+
: ["10ba038e-48da-487b-96e8-8d3b99b6d18b"],
74+
SUBMITTER_ROLE_ID: process.env.SUBMITTER_ROLE_ID || "732339e7-8e30-49d7-9198-cccf9451e221",
6775

68-
MANAGER_ROLE_ID: process.env.MANAGER_ROLE_ID || '0e9c6879-39e4-4eb6-b8df-92407890faf1',
69-
OBSERVER_ROLE_ID: process.env.OBSERVER_ROLE_ID || '2a4dc376-a31c-4d00-b173-13934d89e286',
70-
CLIENT_MANAGER_ROLE_ID: process.env.OBSERVER_ROLE_ID || '9b2f1905-8128-42da-85df-ed64410f4781',
76+
MANAGER_ROLE_ID: process.env.MANAGER_ROLE_ID || "0e9c6879-39e4-4eb6-b8df-92407890faf1",
77+
OBSERVER_ROLE_ID: process.env.OBSERVER_ROLE_ID || "2a4dc376-a31c-4d00-b173-13934d89e286",
78+
CLIENT_MANAGER_ROLE_ID: process.env.OBSERVER_ROLE_ID || "9b2f1905-8128-42da-85df-ed64410f4781",
7179

7280
// health check timeout in milliseconds
7381
HEALTH_CHECK_TIMEOUT: process.env.HEALTH_CHECK_TIMEOUT || 3000,
7482

7583
SCOPES: {
76-
READ: process.env.SCOPE_CHALLENGES_READ || 'read:challenges',
77-
CREATE: process.env.SCOPE_CHALLENGES_CREATE || 'create:challenges',
78-
UPDATE: process.env.SCOPE_CHALLENGES_UPDATE || 'update:challenges',
79-
DELETE: process.env.SCOPE_CHALLENGES_DELETE || 'delete:challenges',
80-
ALL: process.env.SCOPE_CHALLENGES_ALL || 'all:challenges'
84+
READ: process.env.SCOPE_CHALLENGES_READ || "read:challenges",
85+
CREATE: process.env.SCOPE_CHALLENGES_CREATE || "create:challenges",
86+
UPDATE: process.env.SCOPE_CHALLENGES_UPDATE || "update:challenges",
87+
DELETE: process.env.SCOPE_CHALLENGES_DELETE || "delete:challenges",
88+
ALL: process.env.SCOPE_CHALLENGES_ALL || "all:challenges",
8189
},
8290

83-
DEFAULT_CONFIDENTIALITY_TYPE: process.env.DEFAULT_CONFIDENTIALITY_TYPE || 'public',
91+
DEFAULT_CONFIDENTIALITY_TYPE: process.env.DEFAULT_CONFIDENTIALITY_TYPE || "public",
8492

85-
M2M_AUDIT_HANDLE: process.env.M2M_AUDIT_HANDLE || 'tcwebservice',
93+
M2M_AUDIT_HANDLE: process.env.M2M_AUDIT_HANDLE || "tcwebservice",
8694

8795
FORUM_TITLE_LENGTH_LIMIT: process.env.FORUM_TITLE_LENGTH_LIMIT || 90,
8896

89-
NEW_SELF_SERVICE_PROJECT_TYPE: process.env.NEW_SELF_SERVICE_PROJECT_TYPE || 'self-service',
97+
NEW_SELF_SERVICE_PROJECT_TYPE: process.env.NEW_SELF_SERVICE_PROJECT_TYPE || "self-service",
9098

9199
SENDGRID_TEMPLATES: {
92-
WORK_REQUEST_SUBMITTED: process.env.WORK_REQUEST_SUBMITTED || '',
93-
WORK_REQUEST_STARTED: process.env.WORK_REQUEST_STARTED || '',
94-
WORK_REQUEST_REDIRECTED: process.env.WORK_REQUEST_REDIRECTED || '',
95-
WORK_COMPLETED: process.env.WORK_COMPLETED || ''
100+
WORK_REQUEST_SUBMITTED: process.env.WORK_REQUEST_SUBMITTED || "",
101+
WORK_REQUEST_STARTED: process.env.WORK_REQUEST_STARTED || "",
102+
WORK_REQUEST_REDIRECTED: process.env.WORK_REQUEST_REDIRECTED || "",
103+
WORK_COMPLETED: process.env.WORK_COMPLETED || "",
96104
},
97105

98-
EMAIL_FROM: process.env.EMAIL_FROM || '[email protected]',
99-
SELF_SERVICE_EMAIL_CC_ACCOUNTS: process.env.SELF_SERVICE_EMAIL_CC_ACCOUNTS ? _.map(process.env.SELF_SERVICE_EMAIL_CC_ACCOUNTS.split(','), email => ({ email })) : [{ email: '[email protected]' }],
100-
SELF_SERVICE_WHITELIST_HANDLES: process.env.SELF_SERVICE_WHITELIST_HANDLES ? process.env.SELF_SERVICE_WHITELIST_HANDLES.split(',') : ['TCConnCopilot', 'sstestcopilot'],
101-
SELF_SERVICE_APP_URL: process.env.SELF_SERVICE_APP_URL || 'https://platform.topcoder-dev.com/self-service',
102-
ZENDESK_API_TOKEN: process.env.ZENDESK_API_TOKEN || '',
103-
ZENDESK_API_URL: process.env.ZENDESK_API_URL || '',
106+
EMAIL_FROM: process.env.EMAIL_FROM || "[email protected]",
107+
SELF_SERVICE_EMAIL_CC_ACCOUNTS: process.env.SELF_SERVICE_EMAIL_CC_ACCOUNTS
108+
? _.map(process.env.SELF_SERVICE_EMAIL_CC_ACCOUNTS.split(","), (email) => ({ email }))
109+
: [{ email: "[email protected]" }],
110+
SELF_SERVICE_WHITELIST_HANDLES: process.env.SELF_SERVICE_WHITELIST_HANDLES
111+
? process.env.SELF_SERVICE_WHITELIST_HANDLES.split(",")
112+
: ["TCConnCopilot", "sstestcopilot"],
113+
SELF_SERVICE_APP_URL:
114+
process.env.SELF_SERVICE_APP_URL || "https://platform.topcoder-dev.com/self-service",
115+
ZENDESK_API_TOKEN: process.env.ZENDESK_API_TOKEN || "",
116+
ZENDESK_API_URL: process.env.ZENDESK_API_URL || "",
104117
ZENDESK_CUSTOM_FIELD_TAG_ID: process.env.ZENDESK_CUSTOM_FIELD_TAG_ID,
105-
ZENDESK_DEFAULT_PRIORITY: process.env.ZENDESK_DEFAULT_PRIORITY || 'high',
106-
INTERNAL_CACHE_TTL: process.env.INTERNAL_CACHE_TTL || 1800
107-
}
118+
ZENDESK_DEFAULT_PRIORITY: process.env.ZENDESK_DEFAULT_PRIORITY || "high",
119+
INTERNAL_CACHE_TTL: process.env.INTERNAL_CACHE_TTL || 1800,
120+
};

local/docker-compose.yml

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,33 @@
11
version: '3'
22
services:
3-
dynamodb:
4-
image: amazon/dynamodb-local
5-
ports:
6-
- "8000:8000"
7-
command: "-inMemory -port 8000"
3+
# dynamodb:
4+
# image: amazon/dynamodb-local
5+
# ports:
6+
# - "8000:8000"
7+
# command: "-inMemory -port 8000"
88
esearch:
99
image: "docker.elastic.co/elasticsearch/elasticsearch:6.8.0"
1010
ports:
1111
- "9200:9200"
1212
environment:
1313
- "discovery.type=single-node"
14-
minio1:
15-
image: minio/minio
16-
ports:
17-
- "9000:9000"
18-
environment:
19-
MINIO_ACCESS_KEY: "FAKE_ACCESS_KEY"
20-
MINIO_SECRET_KEY: "FAKE_SECRET_ACCESS_KEY"
21-
command: "server /data"
22-
mock-api:
23-
image: mock-api:latest
24-
build:
25-
context: ../
26-
dockerfile: mock-api/Dockerfile
27-
volumes:
28-
- ../mock-api:/challenge-api/mock-api
29-
environment:
30-
DYNAMODB_URL: http://dynamodb:7777
31-
IS_LOCAL_DB: "true"
32-
ports:
33-
- "4000:4000"
14+
# minio1:
15+
# image: minio/minio
16+
# ports:
17+
# - "9000:9000"
18+
# environment:
19+
# MINIO_ACCESS_KEY: "FAKE_ACCESS_KEY"
20+
# MINIO_SECRET_KEY: "FAKE_SECRET_ACCESS_KEY"
21+
# command: "server /data"
22+
# mock-api:
23+
# image: mock-api:latest
24+
# build:
25+
# context: ../
26+
# dockerfile: mock-api/Dockerfile
27+
# volumes:
28+
# - ../mock-api:/challenge-api/mock-api
29+
# environment:
30+
# DYNAMODB_URL: http://dynamodb:7777
31+
# IS_LOCAL_DB: "true"
32+
# ports:
33+
# - "4000:4000"

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
"local:reset": "npm run init-es force && npm run init-db force"
2929
},
3030
"author": "TCSCODER",
31-
"license": "none",
31+
"license": "MIT",
3232
"repository": "https://github.com/topcoder-platform/challenge-api",
3333
"devDependencies": {
3434
"chai": "^4.2.0",
@@ -39,8 +39,8 @@
3939
"prettier": "^2.8.1"
4040
},
4141
"dependencies": {
42-
"@topcoder-framework/domain-challenge": "^0.4.12-ci.0",
43-
"@topcoder-framework/lib-common": "^0.4.12-ci.0",
42+
"@topcoder-framework/domain-challenge": "^0.4.18-ci.0",
43+
"@topcoder-framework/lib-common": "^0.4.18-ci.0",
4444
"aws-sdk": "^2.1145.0",
4545
"aws-xray-sdk": "^3.3.8",
4646
"axios": "^0.19.0",

0 commit comments

Comments
 (0)