Skip to content

Commit

Permalink
Merge pull request #709 from icgc-argo/rc/3.43.0
Browse files Browse the repository at this point in the history
🚀 RC 3.43.0
  • Loading branch information
demariadaniel authored Dec 5, 2023
2 parents 1e9550e + 1f3cc40 commit 94d27fe
Show file tree
Hide file tree
Showing 11 changed files with 255 additions and 255 deletions.
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "server",
"version": "3.42.1",
"version": "3.43.0",
"description": "",
"main": "index.js",
"scripts": {
Expand Down
27 changes: 14 additions & 13 deletions src/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,9 @@ export const ADVERTISED_HOST = process.env.ADVERTISED_HOST || 'http://localhost:

// Elasticsearch config
export const ELASTICSEARCH_HOST = process.env.ELASTICSEARCH_HOST || 'http://localhost:9200';
export const ELASTICSEARCH_VAULT_SECRET_PATH = process.env
.ELASTICSEARCH_VAULT_SECRET_PATH as string;
export const ELASTICSEARCH_VAULT_SECRET_PATH =
process.env.ELASTICSEARCH_VAULT_SECRET_PATH ||
'Missing env variable ELASTICSEARCH_VAULT_SECRET_PATH';
export const ELASTICSEARCH_USERNAME = process.env.ELASTICSEARCH_USERNAME;
export const ELASTICSEARCH_PASSWORD = process.env.ELASTICSEARCH_PASSWORD;
export const ELASTICSEARCH_CLIENT_TRUST_SSL_CERT =
Expand All @@ -44,28 +45,27 @@ export const ARRANGER_PROJECT_ID = process.env.ARRANGER_PROJECT_ID || 'argo';
export const EGO_ROOT_REST = process.env.EGO_ROOT_REST || 'http://localhost:8081';
export const EGO_ROOT_GRPC = process.env.EGO_ROOT_GRPC || 'localhost:50051';
export const EGO_DACO_POLICY_NAME = process.env.EGO_DACO_POLICY_NAME || 'DACO';
export const EGO_VAULT_SECRET_PATH = process.env.EGO_VAULT_SECRET_PATH as string;
export const EGO_VAULT_SECRET_PATH =
process.env.EGO_VAULT_SECRET_PATH || 'Missing env variable EGO_VAULT_SECRET_PATH';
export const EGO_CLIENT_ID = process.env.EGO_CLIENT_ID;
export const EGO_CLIENT_SECRET = process.env.EGO_CLIENT_SECRET;

// Ego Credentials for Score Proxy
export const EGO_VAULT_SCORE_PROXY_SECRET_PATH = process.env
.EGO_VAULT_SCORE_PROXY_SECRET_PATH as string;
export const EGO_VAULT_SCORE_PROXY_SECRET_PATH = process.env.EGO_VAULT_SCORE_PROXY_SECRET_PATH;
export const EGO_SCORE_PROXY_CLIENT_ID = process.env.EGO_SCORE_PROXY_CLIENT_ID;
export const EGO_SCORE_PROXY_CLIENT_SECRET = process.env.EGO_SCORE_PROXY_CLIENT_SECRET;

// Ego Credentials for Clinical API
export const EGO_VAULT_CLINICAL_API_SECRET_PATH = process.env
.EGO_VAULT_CLINICAL_API_SECRET_PATH as string;
export const EGO_VAULT_CLINICAL_API_SECRET_PATH = process.env.EGO_VAULT_CLINICAL_API_SECRET_PATH;
export const EGO_CLINICAL_API_CLIENT_ID = process.env.EGO_CLINICAL_API_CLIENT_ID;
export const EGO_CLINICAL_API_CLIENT_SECRET = process.env.EGO_CLINICAL_API_CLIENT_SECRET;

// Vault
export const USE_VAULT = process.env.USE_VAULT === 'true';
export const VAULT_TOKEN = process.env.VAULT_TOKEN as string;
export const VAULT_AUTH_METHOD = process.env.VAULT_AUTH_METHOD as 'token' | 'kubernetes';
export const VAULT_URL = (process.env.VAULT_URL as string) || 'http://localhost:8200';
export const VAULT_ROLE = process.env.VAULT_ROLE as string;
export const VAULT_TOKEN = process.env.VAULT_TOKEN;
export const VAULT_AUTH_METHOD = process.env.VAULT_AUTH_METHOD;
export const VAULT_URL = process.env.VAULT_URL || 'http://localhost:8200';
export const VAULT_ROLE = process.env.VAULT_ROLE;

// Default ego public key value is the example value provided in the application.yml of the public overture repository
export const EGO_PUBLIC_KEY =
Expand All @@ -85,8 +85,9 @@ export const DATA_CENTER_REGISTRY_API_ROOT =
export const APP_DIR = __dirname;

// Helpdesk auth
export const JIRA_ADMIN_VAULT_CREDENTIALS_PATH = process.env
.JIRA_ADMIN_VAULT_CREDENTIALS_PATH as string;
export const JIRA_ADMIN_VAULT_CREDENTIALS_PATH =
process.env.JIRA_ADMIN_VAULT_CREDENTIALS_PATH ||
'Missing env variable JIRA_ADMIN_VAULT_CREDENTIALS_PATH';
export const JIRA_REST_URI =
process.env.JIRA_REST_URI || 'https://extsd.oicr.on.ca/rest/servicedeskapi';
export const JIRA_SERVICEDESK_ID = process.env.JIRA_SERVICEDESK_ID || '9';
Expand Down
59 changes: 0 additions & 59 deletions src/resources/Ego.proto

This file was deleted.

2 changes: 0 additions & 2 deletions src/schemas/Clinical/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -469,8 +469,6 @@ const resolvers = {
) => {
const { Authorization } = context;

console.log('clinical errors');

const errorResponse: ClinicalErrors = await clinicalService.getClinicalErrors(
args.programShortName,
args.donorIds,
Expand Down
90 changes: 56 additions & 34 deletions src/schemas/Program/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ import { get, merge, pickBy } from 'lodash';

import customScalars from 'schemas/customScalars';
import programService from 'services/programService';
import { grpcToGql } from 'utils/grpcUtils';

const typeDefs = gql`
scalar DateTime
Expand Down Expand Up @@ -72,6 +71,7 @@ const typeDefs = gql`
regions: [String]
cancerTypes: [String]
primarySites: [String]
dataCenter: DataCenter
membershipType: MembershipType
Expand All @@ -96,6 +96,22 @@ const typeDefs = gql`
countries: [String]!
}
type DataCenter {
id: ID
shortName: String!
name: String
organization: String
email: String
uiUrl: String
gatewayUrl: String
analysisSongCode: String
analysisSongUrl: String
analysisScoreUrl: String
submissionSongCode: String
submissionSongUrl: String
submissionScoreUrl: String
}
input ProgramUserInput {
email: String!
firstName: String!
Expand Down Expand Up @@ -161,14 +177,19 @@ const typeDefs = gql`
"""
retrieve all Programs
"""
programs: [Program]
programs(dataCenter: String): [Program]
"""
retrieve join program invitation by id
"""
joinProgramInvite(id: ID!): JoinProgramInvite
programOptions: ProgramOptions!
"""
retrieve all DataCenters
"""
dataCenters(shortName: String): [DataCenter]
}
type Mutation {
Expand Down Expand Up @@ -212,7 +233,7 @@ const typeDefs = gql`
`;

/* =========
Convert GRPC Response to GQL output
HTTP resolvers
* ========= */
const getIsoDate = (time) => (time ? new Date(parseInt(time) * 1000).toISOString() : null);

Expand Down Expand Up @@ -242,33 +263,19 @@ const convertGrpcUserToGql = (userDetails) => ({
inviteAcceptedAt: getIsoDate(get(userDetails, 'accepted_at.seconds')),
});

const formatHttpProgram = (program) => ({
name: program.name,
shortName: program.shortName,
description: program.description,
website: program.website,
institutions: program.programInstitutions?.map((institution) => institution.name) || [],
countries: program.programCountries?.map((country) => country.name) || [],
regions: program.processingRegions?.map((region) => region.name) || [],
cancerTypes: program.programCancers?.map((cancer) => cancer.name) || [],
primarySites: program.programPrimarySites?.map((primarySite) => primarySite.name) || [],
});

const resolveProgramList = async (egoToken) => {
const response = await programService.listPrograms(egoToken);
const programs = get(response, 'programs', []);
return programs.map((program) => convertGrpcProgramToGql(program));
const resolvePrivateProgramList = async (egoToken) => {
const response = await programService.listPrivatePrograms(egoToken);
return response || null;
};

const resolveSingleProgram = async (egoToken, programShortName) => {
const response = await programService.getProgram(programShortName, egoToken);
const programDetails = get(response, 'program');
return response ? convertGrpcProgramToGql(programDetails) : null;
const resolvePrivateSingleProgram = async (egoToken, programShortName) => {
const response = await programService.getPrivateProgram(egoToken, programShortName);
return response || null;
};

const resolveHTTPProgram = async (programShortName) => {
const response = await programService.getProgramPublicFields(programShortName);
return response ? formatHttpProgram(response) : null;
const resolvePublicSingleProgram = async (programShortName) => {
const response = await programService.getPublicProgram(programShortName);
return response || null;
};

const programServicePrivateFields = [
Expand All @@ -277,6 +284,7 @@ const programServicePrivateFields = [
'genomicDonors',
'membershipType',
'users',
'dataCenter',
];

const resolvers = {
Expand Down Expand Up @@ -339,21 +347,35 @@ const resolvers = {
);

return hasPrivateField
? resolveSingleProgram(egoToken, shortName)
: resolveHTTPProgram(shortName);
? resolvePrivateSingleProgram(egoToken, shortName)
: resolvePublicSingleProgram(shortName);
},

programs: async (obj, args, context, info) => {
programs: async (obj, args, context) => {
const { egoToken } = context;
return resolveProgramList(egoToken);
const { dataCenter } = args;

const programs = await resolvePrivateProgramList(egoToken);

const filteredPrograms = dataCenter
? programs.filter((program) => program.dataCenter?.shortName === dataCenter)
: programs;

return filteredPrograms;
},

joinProgramInvite: async (obj, args, context, info) => {
const { egoToken } = context;
const response = await programService.getJoinProgramInvite(args.id, egoToken);
const joinProgramDetails = get(response, 'invitation');
return response ? grpcToGql(joinProgramDetails) : null;
const response = await programService.getJoinProgramInvite(egoToken, args.id);
return response || null;
},
programOptions: () => ({}),
dataCenters: async (obj, args, context, info) => {
const { egoToken } = context;
const shortName = get(args, 'shortName', null);
const response = await programService.listDataCenters(shortName, egoToken);
return response || null;
},
},
Mutation: {
createProgram: async (obj, args, context, info) => {
Expand All @@ -368,7 +390,7 @@ const resolvers = {

try {
const createResponse = await programService.createProgram(program, egoToken);
return resolveSingleProgram(egoToken, program.shortName);
return resolvePrivateSingleProgram(egoToken, program.shortName);
} catch (err) {
const GRPC_INVALID_ARGUMENT_ERROR_CODE = 3;
if (err.code === GRPC_INVALID_ARGUMENT_ERROR_CODE) {
Expand Down
Loading

0 comments on commit 94d27fe

Please sign in to comment.