From 4acfbd4cd496efafc8d52e0bfa7faf973a6a3090 Mon Sep 17 00:00:00 2001 From: norda-gunni <161026627+norda-gunni@users.noreply.github.com> Date: Thu, 14 Nov 2024 12:21:09 +0000 Subject: [PATCH 01/66] chore(application-system): Stop populating club info which duplicates employer info (#16861) * chore(application-system): Stop populating club info which duplicates employer info * Cleanup * Correct log method --------- Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- .../src/lib/accident-notification.service.ts | 2 +- .../accident-notification-v2.utils.ts | 23 ------------------- 2 files changed, 1 insertion(+), 24 deletions(-) diff --git a/libs/api/domains/health-insurance/src/lib/accident-notification.service.ts b/libs/api/domains/health-insurance/src/lib/accident-notification.service.ts index bf112489a2cc..850d35039809 100644 --- a/libs/api/domains/health-insurance/src/lib/accident-notification.service.ts +++ b/libs/api/domains/health-insurance/src/lib/accident-notification.service.ts @@ -69,7 +69,7 @@ export class AccidentNotificationService { auth: Auth, ihiDocumentID: number, ): Promise { - this.logger.log('starting call to get accident', ihiDocumentID) + this.logger.debug('starting call to get accident', ihiDocumentID) const accidentStatus = await this.accidentsReportsApiWithAuth( auth, diff --git a/libs/application/template-api-modules/src/lib/modules/templates/accident-notification/accident-notification-v2.utils.ts b/libs/application/template-api-modules/src/lib/modules/templates/accident-notification/accident-notification-v2.utils.ts index f1c711319e56..6c5b3db62187 100644 --- a/libs/application/template-api-modules/src/lib/modules/templates/accident-notification/accident-notification-v2.utils.ts +++ b/libs/application/template-api-modules/src/lib/modules/templates/accident-notification/accident-notification-v2.utils.ts @@ -28,7 +28,6 @@ import { MinarsidurAPIModelsAccidentReportsInjuredDTO, MinarsidurAPIModelsAccidentReportsAccidentDTO, MinarsidurAPIModelsAccidentReportsEmployerDTO, - MinarsidurAPIModelsAccidentReportsClubDTO, MinarsidurAPIModelsAccidentReportsAccidentReportAttachmentDTO, MinarsidurAPIModelsAccidentReportsReporterDTOReportingForEnum, MinarsidurAPIModelsAccidentReportsAccidentReportAttachmentTypeEnum, @@ -43,7 +42,6 @@ export const applicationToAccidentReport = ( injured: getInjured(answers), accident: getAccident(answers), employer: getEmployer(answers), - club: getClub(answers), attachments: getAttachments(attachments), } } @@ -399,27 +397,6 @@ const getEmployer = ( } } -const getClub = ( - answers: AccidentNotificationAnswers, -): MinarsidurAPIModelsAccidentReportsClubDTO | undefined => { - const accidentType = getValueViaPath( - answers, - 'accidentType.radioButton', - ) - if (accidentType !== AccidentTypeEnum.SPORTS) return - - const club = getValueViaPath(answers, 'companyInfo') - const accidentLocation = getValueViaPath( - answers, - 'accidentLocation.answer', - ) - return { - nationalId: club?.nationalRegistrationId ?? '', - name: club?.name ?? '', - accidentType: accidentLocation ?? '', - } -} - const getAttachments = ( attachments: Array, ): Array => { From e47d2b9f4d97c18625668137f525b86d24d4928b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gu=C3=B0j=C3=B3n=20Gu=C3=B0j=C3=B3nsson?= Date: Thu, 14 Nov 2024 13:03:52 +0000 Subject: [PATCH 02/66] fix(j-s): Merge Case Access (#16786) * Fixes file and PDF access in merged cases * removes redundant defendant query --------- Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- .../src/app/modules/case/case.service.ts | 94 +++++++++++++------ .../app/modules/case/filters/cases.filter.ts | 34 +++++-- .../case/filters/test/cases.filter.spec.ts | 30 ++++-- .../case/guards/mergedCaseExists.guard.ts | 1 + .../case/guards/test/caseExistsGuard.spec.ts | 3 +- .../guards/test/caseHasExistedGuard.spec.ts | 3 +- .../test/limitedAccessCaseExistsGuard.spec.ts | 3 +- .../modules/case/limitedAccessCase.service.ts | 45 +++++---- .../case/test/caseController/create.spec.ts | 4 +- .../caseController/createCourtCase.spec.ts | 3 +- .../case/test/caseController/extend.spec.ts | 3 +- .../test/caseController/transition.spec.ts | 4 +- .../src/app/modules/file/file.controller.ts | 1 - .../guards/limitedAccessViewCaseFile.guard.ts | 12 ++- .../getCaseFileSignedUrlRolesRules.spec.ts | 4 +- .../src/components/FormProvider/case.graphql | 37 ++++++++ libs/judicial-system/types/src/index.ts | 7 +- .../types/src/lib/caseString.ts | 2 + libs/judicial-system/types/src/lib/dateLog.ts | 2 + .../judicial-system/types/src/lib/eventLog.ts | 2 + .../types/src/lib/notification.ts | 15 +-- 21 files changed, 211 insertions(+), 98 deletions(-) diff --git a/apps/judicial-system/backend/src/app/modules/case/case.service.ts b/apps/judicial-system/backend/src/app/modules/case/case.service.ts index f33789f515e9..c9b3cc707220 100644 --- a/apps/judicial-system/backend/src/app/modules/case/case.service.ts +++ b/apps/judicial-system/backend/src/app/modules/case/case.service.ts @@ -1,5 +1,5 @@ import { Op, WhereOptions } from 'sequelize' -import { Includeable, OrderItem, Transaction } from 'sequelize/types' +import { Includeable, Transaction } from 'sequelize/types' import { Sequelize } from 'sequelize-typescript' import { @@ -39,12 +39,16 @@ import { CaseTransition, CaseType, DateType, + dateTypes, EventType, + eventTypes, isCompletedCase, isIndictmentCase, isRequestCase, isTrafficViolationCase, + notificationTypes, StringType, + stringTypes, UserRole, } from '@island.is/judicial-system/types' @@ -200,10 +204,6 @@ const caseStringTypes: Record = { civilDemands: StringType.CIVIL_DEMANDS, } -const eventTypes = Object.values(EventType) -const dateTypes = Object.values(DateType) -const stringTypes = Object.values(StringType) - export const include: Includeable[] = [ { model: Institution, as: 'prosecutorsOffice' }, { model: Institution, as: 'court' }, @@ -288,8 +288,20 @@ export const include: Includeable[] = [ ], separate: true, }, - { model: CivilClaimant, as: 'civilClaimants' }, - { model: IndictmentCount, as: 'indictmentCounts' }, + { + model: CivilClaimant, + as: 'civilClaimants', + required: false, + order: [['created', 'ASC']], + separate: true, + }, + { + model: IndictmentCount, + as: 'indictmentCounts', + required: false, + order: [['created', 'ASC']], + separate: true, + }, { model: CaseFile, as: 'caseFiles', @@ -301,7 +313,7 @@ export const include: Includeable[] = [ model: EventLog, as: 'eventLogs', required: false, - where: { eventType: { [Op.in]: eventTypes } }, + where: { eventType: eventTypes }, order: [['created', 'DESC']], separate: true, }, @@ -309,21 +321,47 @@ export const include: Includeable[] = [ model: DateLog, as: 'dateLogs', required: false, - where: { dateType: { [Op.in]: dateTypes } }, + where: { dateType: dateTypes }, + order: [['created', 'DESC']], + separate: true, }, { model: CaseString, as: 'caseStrings', required: false, - where: { stringType: { [Op.in]: stringTypes } }, + where: { stringType: stringTypes }, + separate: true, + }, + { + model: Notification, + as: 'notifications', + required: false, + where: { type: notificationTypes }, + order: [['created', 'DESC']], + separate: true, }, - { model: Notification, as: 'notifications' }, { model: Case, as: 'mergeCase' }, { model: Case, as: 'mergedCases', where: { state: CaseState.COMPLETED }, include: [ + { + model: Defendant, + as: 'defendants', + required: false, + order: [['created', 'ASC']], + include: [ + { + model: Subpoena, + as: 'subpoenas', + required: false, + order: [['created', 'DESC']], + separate: true, + }, + ], + separate: true, + }, { model: CaseFile, as: 'caseFiles', @@ -355,16 +393,15 @@ export const include: Includeable[] = [ }, ] -export const order: OrderItem[] = [ - [{ model: CivilClaimant, as: 'civilClaimants' }, 'created', 'ASC'], - [{ model: IndictmentCount, as: 'indictmentCounts' }, 'created', 'ASC'], - [{ model: DateLog, as: 'dateLogs' }, 'created', 'DESC'], - [{ model: Notification, as: 'notifications' }, 'created', 'DESC'], -] - export const caseListInclude: Includeable[] = [ { model: Institution, as: 'prosecutorsOffice' }, - { model: Defendant, as: 'defendants' }, + { + model: Defendant, + as: 'defendants', + required: false, + order: [['created', 'ASC']], + separate: true, + }, { model: User, as: 'creatingProsecutor', @@ -394,28 +431,27 @@ export const caseListInclude: Includeable[] = [ model: DateLog, as: 'dateLogs', required: false, - where: { dateType: { [Op.in]: dateTypes } }, + where: { dateType: dateTypes }, + order: [['created', 'DESC']], + separate: true, }, { model: CaseString, as: 'caseStrings', required: false, - where: { stringType: { [Op.in]: stringTypes } }, + where: { stringType: stringTypes }, + separate: true, }, { model: EventLog, as: 'eventLogs', required: false, - where: { eventType: { [Op.in]: eventTypes } }, + where: { eventType: eventTypes }, + order: [['created', 'DESC']], + separate: true, }, ] -export const listOrder: OrderItem[] = [ - [{ model: Defendant, as: 'defendants' }, 'created', 'ASC'], - [{ model: DateLog, as: 'dateLogs' }, 'created', 'DESC'], - [{ model: EventLog, as: 'eventLogs' }, 'created', 'DESC'], -] - @Injectable() export class CaseService { constructor( @@ -1392,7 +1428,6 @@ export class CaseService { async findById(caseId: string, allowDeleted = false): Promise { const theCase = await this.caseModel.findOne({ include, - order, where: { id: caseId, ...(allowDeleted ? {} : { state: { [Op.not]: CaseState.DELETED } }), @@ -1410,7 +1445,6 @@ export class CaseService { getAll(user: TUser): Promise { return this.caseModel.findAll({ include: caseListInclude, - order: listOrder, where: getCasesQueryFilter(user), }) } diff --git a/apps/judicial-system/backend/src/app/modules/case/filters/cases.filter.ts b/apps/judicial-system/backend/src/app/modules/case/filters/cases.filter.ts index eff50bcad3b5..e4bf7c5af74d 100644 --- a/apps/judicial-system/backend/src/app/modules/case/filters/cases.filter.ts +++ b/apps/judicial-system/backend/src/app/modules/case/filters/cases.filter.ts @@ -86,10 +86,13 @@ const getPublicProsecutionUserCasesQueryFilter = (): WhereOptions => { ], }, { - // The following condition will filter out all event logs that are not of type INDICTMENT_SENT_TO_PUBLIC_PROSECUTOR - // but that should be ok the case list for the public prosecutor is not using other event logs - '$eventLogs.event_type$': - EventType.INDICTMENT_SENT_TO_PUBLIC_PROSECUTOR, + id: { + [Op.in]: Sequelize.literal(` + (SELECT case_id + FROM event_log + WHERE event_type = '${EventType.INDICTMENT_SENT_TO_PUBLIC_PROSECUTOR}') + `), + }, }, ], } @@ -215,7 +218,9 @@ const getPrisonAdminUserCasesQueryFilter = (): WhereOptions => { [Op.notIn]: Sequelize.literal(` (SELECT case_id FROM defendant - WHERE (verdict_appeal_date IS NOT NULL OR verdict_view_date IS NULL OR verdict_view_date > NOW() - INTERVAL '${VERDICT_APPEAL_WINDOW_DAYS} days')) + WHERE (verdict_appeal_date IS NOT NULL + OR verdict_view_date IS NULL + OR verdict_view_date > NOW() - INTERVAL '${VERDICT_APPEAL_WINDOW_DAYS} days')) `), }, }, @@ -248,9 +253,15 @@ const getDefenceUserCasesQueryFilter = (user: User): WhereOptions => { { [Op.and]: [ { state: CaseState.RECEIVED }, - // The following condition will filter out all date logs that are not of type ARRAIGNMENT_DATE - // but that should be ok for request cases since they only have one date log - { '$dateLogs.date_type$': DateType.ARRAIGNMENT_DATE }, + { + id: { + [Op.in]: Sequelize.literal(` + (SELECT case_id + FROM date_log + WHERE date_type = '${DateType.ARRAIGNMENT_DATE}') + `), + }, + }, ], }, { @@ -284,7 +295,8 @@ const getDefenceUserCasesQueryFilter = (user: User): WhereOptions => { [Op.in]: Sequelize.literal(` (SELECT case_id FROM defendant - WHERE defender_national_id in ('${normalizedNationalId}', '${formattedNationalId}') and is_defender_choice_confirmed = true) + WHERE defender_national_id in ('${normalizedNationalId}', '${formattedNationalId}') + AND is_defender_choice_confirmed = true) `), }, }, @@ -293,7 +305,9 @@ const getDefenceUserCasesQueryFilter = (user: User): WhereOptions => { [Op.in]: Sequelize.literal(` (SELECT case_id FROM civil_claimant - WHERE has_spokesperson = true AND spokesperson_national_id in ('${normalizedNationalId}', '${formattedNationalId}') and is_spokesperson_confirmed = true) + WHERE has_spokesperson = true + AND spokesperson_national_id in ('${normalizedNationalId}', '${formattedNationalId}') + AND is_spokesperson_confirmed = true) `), }, }, diff --git a/apps/judicial-system/backend/src/app/modules/case/filters/test/cases.filter.spec.ts b/apps/judicial-system/backend/src/app/modules/case/filters/test/cases.filter.spec.ts index ff0dcf935a61..eb3cc40db316 100644 --- a/apps/judicial-system/backend/src/app/modules/case/filters/test/cases.filter.spec.ts +++ b/apps/judicial-system/backend/src/app/modules/case/filters/test/cases.filter.spec.ts @@ -317,8 +317,13 @@ describe('getCasesQueryFilter', () => { ], }, { - '$eventLogs.event_type$': - EventType.INDICTMENT_SENT_TO_PUBLIC_PROSECUTOR, + id: { + [Op.in]: Sequelize.literal(` + (SELECT case_id + FROM event_log + WHERE event_type = '${EventType.INDICTMENT_SENT_TO_PUBLIC_PROSECUTOR}') + `), + }, }, ], }) @@ -390,7 +395,9 @@ describe('getCasesQueryFilter', () => { [Op.notIn]: Sequelize.literal(` (SELECT case_id FROM defendant - WHERE (verdict_appeal_date IS NOT NULL OR verdict_view_date IS NULL OR verdict_view_date > NOW() - INTERVAL '${VERDICT_APPEAL_WINDOW_DAYS} days')) + WHERE (verdict_appeal_date IS NOT NULL + OR verdict_view_date IS NULL + OR verdict_view_date > NOW() - INTERVAL '${VERDICT_APPEAL_WINDOW_DAYS} days')) `), }, }, @@ -432,7 +439,15 @@ describe('getCasesQueryFilter', () => { { [Op.and]: [ { state: CaseState.RECEIVED }, - { '$dateLogs.date_type$': DateType.ARRAIGNMENT_DATE }, + { + id: { + [Op.in]: Sequelize.literal(` + (SELECT case_id + FROM date_log + WHERE date_type = '${DateType.ARRAIGNMENT_DATE}') + `), + }, + }, ], }, { state: completedRequestCaseStates }, @@ -460,7 +475,8 @@ describe('getCasesQueryFilter', () => { [Op.in]: Sequelize.literal(` (SELECT case_id FROM defendant - WHERE defender_national_id in ('${user.nationalId}', '${user.nationalId}') and is_defender_choice_confirmed = true) + WHERE defender_national_id in ('${user.nationalId}', '${user.nationalId}') + AND is_defender_choice_confirmed = true) `), }, }, @@ -469,7 +485,9 @@ describe('getCasesQueryFilter', () => { [Op.in]: Sequelize.literal(` (SELECT case_id FROM civil_claimant - WHERE has_spokesperson = true AND spokesperson_national_id in ('${user.nationalId}', '${user.nationalId}') and is_spokesperson_confirmed = true) + WHERE has_spokesperson = true + AND spokesperson_national_id in ('${user.nationalId}', '${user.nationalId}') + AND is_spokesperson_confirmed = true) `), }, }, diff --git a/apps/judicial-system/backend/src/app/modules/case/guards/mergedCaseExists.guard.ts b/apps/judicial-system/backend/src/app/modules/case/guards/mergedCaseExists.guard.ts index 2347b578d010..d3892e9036aa 100644 --- a/apps/judicial-system/backend/src/app/modules/case/guards/mergedCaseExists.guard.ts +++ b/apps/judicial-system/backend/src/app/modules/case/guards/mergedCaseExists.guard.ts @@ -37,6 +37,7 @@ export class MergedCaseExistsGuard implements CanActivate { throw new BadRequestException('Merged case not found') } + request.mergedCaseParent = theCase request.params.caseId = mergedCaseId request.case = mergedCase diff --git a/apps/judicial-system/backend/src/app/modules/case/guards/test/caseExistsGuard.spec.ts b/apps/judicial-system/backend/src/app/modules/case/guards/test/caseExistsGuard.spec.ts index 018537eb2af5..953b1c22c323 100644 --- a/apps/judicial-system/backend/src/app/modules/case/guards/test/caseExistsGuard.spec.ts +++ b/apps/judicial-system/backend/src/app/modules/case/guards/test/caseExistsGuard.spec.ts @@ -11,7 +11,7 @@ import { CaseState } from '@island.is/judicial-system/types' import { createTestingCaseModule } from '../../test/createTestingCaseModule' -import { include, order } from '../../case.service' +import { include } from '../../case.service' import { Case } from '../../models/case.model' import { CaseExistsGuard } from '../caseExists.guard' @@ -65,7 +65,6 @@ describe('Case Exists Guard', () => { it('should activate', () => { expect(mockCaseModel.findOne).toHaveBeenCalledWith({ include, - order, where: { id: caseId, state: { [Op.not]: CaseState.DELETED }, diff --git a/apps/judicial-system/backend/src/app/modules/case/guards/test/caseHasExistedGuard.spec.ts b/apps/judicial-system/backend/src/app/modules/case/guards/test/caseHasExistedGuard.spec.ts index 96e3332c820e..88f145abfeb7 100644 --- a/apps/judicial-system/backend/src/app/modules/case/guards/test/caseHasExistedGuard.spec.ts +++ b/apps/judicial-system/backend/src/app/modules/case/guards/test/caseHasExistedGuard.spec.ts @@ -8,7 +8,7 @@ import { import { createTestingCaseModule } from '../../test/createTestingCaseModule' -import { include, order } from '../../case.service' +import { include } from '../../case.service' import { Case } from '../../models/case.model' import { CaseHasExistedGuard } from '../caseHasExisted.guard' @@ -62,7 +62,6 @@ describe('Case Has Existed Guard', () => { it('should activate', () => { expect(mockCaseModel.findOne).toHaveBeenCalledWith({ include, - order, where: { id: caseId, isArchived: false, diff --git a/apps/judicial-system/backend/src/app/modules/case/guards/test/limitedAccessCaseExistsGuard.spec.ts b/apps/judicial-system/backend/src/app/modules/case/guards/test/limitedAccessCaseExistsGuard.spec.ts index 08e0aa1e3031..8fb4f42f2b03 100644 --- a/apps/judicial-system/backend/src/app/modules/case/guards/test/limitedAccessCaseExistsGuard.spec.ts +++ b/apps/judicial-system/backend/src/app/modules/case/guards/test/limitedAccessCaseExistsGuard.spec.ts @@ -11,7 +11,7 @@ import { CaseState } from '@island.is/judicial-system/types' import { createTestingCaseModule } from '../../test/createTestingCaseModule' -import { attributes, include, order } from '../../limitedAccessCase.service' +import { attributes, include } from '../../limitedAccessCase.service' import { Case } from '../../models/case.model' import { LimitedAccessCaseExistsGuard } from '../limitedAccessCaseExists.guard' @@ -67,7 +67,6 @@ describe('Restricted Case Exists Guard', () => { expect(mockCaseModel.findOne).toHaveBeenCalledWith({ attributes, include, - order, where: { id: caseId, state: { [Op.not]: CaseState.DELETED }, diff --git a/apps/judicial-system/backend/src/app/modules/case/limitedAccessCase.service.ts b/apps/judicial-system/backend/src/app/modules/case/limitedAccessCase.service.ts index 993a7e7406dc..ab32e32f69d3 100644 --- a/apps/judicial-system/backend/src/app/modules/case/limitedAccessCase.service.ts +++ b/apps/judicial-system/backend/src/app/modules/case/limitedAccessCase.service.ts @@ -1,5 +1,5 @@ import archiver from 'archiver' -import { Includeable, Op, OrderItem } from 'sequelize' +import { Includeable, Op } from 'sequelize' import { Writable } from 'stream' import { @@ -22,9 +22,9 @@ import { CaseFileState, CaseNotificationType, CaseState, - DateType, - EventType, - StringType, + dateTypes, + eventTypes, + stringTypes, UserRole, } from '@island.is/judicial-system/types' @@ -119,10 +119,6 @@ export interface LimitedAccessUpdateCase | 'appealRulingDecision' > {} -const eventTypes = Object.values(EventType) -const dateTypes = Object.values(DateType) -const stringTypes = Object.values(StringType) - export const include: Includeable[] = [ { model: Institution, as: 'prosecutorsOffice' }, { model: Institution, as: 'court' }, @@ -189,8 +185,20 @@ export const include: Includeable[] = [ ], separate: true, }, - { model: IndictmentCount, as: 'indictmentCounts' }, - { model: CivilClaimant, as: 'civilClaimants' }, + { + model: CivilClaimant, + as: 'civilClaimants', + required: false, + order: [['created', 'ASC']], + separate: true, + }, + { + model: IndictmentCount, + as: 'indictmentCounts', + required: false, + order: [['created', 'ASC']], + separate: true, + }, { model: CaseFile, as: 'caseFiles', @@ -218,12 +226,13 @@ export const include: Includeable[] = [ CaseFileCategory.CIVIL_CLAIM, ], }, + separate: true, }, { model: EventLog, as: 'eventLogs', required: false, - where: { eventType: { [Op.in]: eventTypes } }, + where: { eventType: eventTypes }, order: [['created', 'DESC']], separate: true, }, @@ -231,13 +240,16 @@ export const include: Includeable[] = [ model: DateLog, as: 'dateLogs', required: false, - where: { dateType: { [Op.in]: dateTypes } }, + where: { dateType: dateTypes }, + order: [['created', 'DESC']], + separate: true, }, { model: CaseString, as: 'caseStrings', required: false, - where: { stringType: { [Op.in]: stringTypes } }, + where: { stringType: stringTypes }, + separate: true, }, { model: Case, as: 'mergeCase', attributes }, { @@ -272,12 +284,6 @@ export const include: Includeable[] = [ }, ] -export const order: OrderItem[] = [ - [{ model: IndictmentCount, as: 'indictmentCounts' }, 'created', 'ASC'], - [{ model: CivilClaimant, as: 'civilClaimants' }, 'created', 'ASC'], - [{ model: DateLog, as: 'dateLogs' }, 'created', 'DESC'], -] - @Injectable() export class LimitedAccessCaseService { constructor( @@ -294,7 +300,6 @@ export class LimitedAccessCaseService { const theCase = await this.caseModel.findOne({ attributes, include, - order, where: { id: caseId, state: { [Op.not]: CaseState.DELETED }, diff --git a/apps/judicial-system/backend/src/app/modules/case/test/caseController/create.spec.ts b/apps/judicial-system/backend/src/app/modules/case/test/caseController/create.spec.ts index 5f58bc59323f..d7712f9bcceb 100644 --- a/apps/judicial-system/backend/src/app/modules/case/test/caseController/create.spec.ts +++ b/apps/judicial-system/backend/src/app/modules/case/test/caseController/create.spec.ts @@ -13,7 +13,7 @@ import { import { createTestingCaseModule } from '../createTestingCaseModule' import { DefendantService } from '../../../defendant' -import { include, order } from '../../case.service' +import { include } from '../../case.service' import { CreateCaseDto } from '../../dto/createCase.dto' import { Case } from '../../models/case.model' @@ -113,7 +113,7 @@ describe('CaseController - Create', () => { ) expect(mockCaseModel.findOne).toHaveBeenCalledWith({ include, - order, + where: { id: caseId, isArchived: false, diff --git a/apps/judicial-system/backend/src/app/modules/case/test/caseController/createCourtCase.spec.ts b/apps/judicial-system/backend/src/app/modules/case/test/caseController/createCourtCase.spec.ts index da16c809f375..318a3420af0d 100644 --- a/apps/judicial-system/backend/src/app/modules/case/test/caseController/createCourtCase.spec.ts +++ b/apps/judicial-system/backend/src/app/modules/case/test/caseController/createCourtCase.spec.ts @@ -18,7 +18,7 @@ import { createTestingCaseModule } from '../createTestingCaseModule' import { randomEnum } from '../../../../test' import { CourtService } from '../../../court' -import { include, order } from '../../case.service' +import { include } from '../../case.service' import { Case } from '../../models/case.model' interface Then { @@ -135,7 +135,6 @@ describe('CaseController - Create court case', () => { ) expect(mockCaseModel.findOne).toHaveBeenCalledWith({ include, - order, where: { id: caseId, isArchived: false, diff --git a/apps/judicial-system/backend/src/app/modules/case/test/caseController/extend.spec.ts b/apps/judicial-system/backend/src/app/modules/case/test/caseController/extend.spec.ts index 4276c6aa64f8..8aba769e0036 100644 --- a/apps/judicial-system/backend/src/app/modules/case/test/caseController/extend.spec.ts +++ b/apps/judicial-system/backend/src/app/modules/case/test/caseController/extend.spec.ts @@ -16,7 +16,7 @@ import { createTestingCaseModule } from '../createTestingCaseModule' import { randomDate, randomEnum } from '../../../../test' import { DefendantService } from '../../../defendant' -import { include, order } from '../../case.service' +import { include } from '../../case.service' import { Case } from '../../models/case.model' interface Then { @@ -181,7 +181,6 @@ describe('CaseController - Extend', () => { ) expect(mockCaseModel.findOne).toHaveBeenCalledWith({ include, - order, where: { id: extendedCaseId, isArchived: false, diff --git a/apps/judicial-system/backend/src/app/modules/case/test/caseController/transition.spec.ts b/apps/judicial-system/backend/src/app/modules/case/test/caseController/transition.spec.ts index e1d0c49e6887..24c0b31f3a84 100644 --- a/apps/judicial-system/backend/src/app/modules/case/test/caseController/transition.spec.ts +++ b/apps/judicial-system/backend/src/app/modules/case/test/caseController/transition.spec.ts @@ -31,7 +31,7 @@ import { createTestingCaseModule } from '../createTestingCaseModule' import { nowFactory } from '../../../../factories' import { randomDate } from '../../../../test' import { caseModuleConfig } from '../../case.config' -import { include, order } from '../../case.service' +import { include } from '../../case.service' import { TransitionCaseDto } from '../../dto/transitionCase.dto' import { Case } from '../../models/case.model' @@ -282,7 +282,6 @@ describe('CaseController - Transition', () => { } else { expect(mockCaseModel.findOne).toHaveBeenCalledWith({ include, - order, where: { id: caseId, isArchived: false, @@ -541,7 +540,6 @@ describe('CaseController - Transition', () => { } else { expect(mockCaseModel.findOne).toHaveBeenCalledWith({ include, - order, where: { id: caseId, isArchived: false, diff --git a/apps/judicial-system/backend/src/app/modules/file/file.controller.ts b/apps/judicial-system/backend/src/app/modules/file/file.controller.ts index abbd76f30659..9982d5c839c3 100644 --- a/apps/judicial-system/backend/src/app/modules/file/file.controller.ts +++ b/apps/judicial-system/backend/src/app/modules/file/file.controller.ts @@ -143,7 +143,6 @@ export class FileController { courtOfAppealsJudgeRule, courtOfAppealsRegistrarRule, courtOfAppealsAssistantRule, - prisonSystemStaffRule, ) @Get(['file/:fileId/url', 'mergedCase/:mergedCaseId/file/:fileId/url']) @ApiOkResponse({ diff --git a/apps/judicial-system/backend/src/app/modules/file/guards/limitedAccessViewCaseFile.guard.ts b/apps/judicial-system/backend/src/app/modules/file/guards/limitedAccessViewCaseFile.guard.ts index f6b0d1c69a3a..686e2974c339 100644 --- a/apps/judicial-system/backend/src/app/modules/file/guards/limitedAccessViewCaseFile.guard.ts +++ b/apps/judicial-system/backend/src/app/modules/file/guards/limitedAccessViewCaseFile.guard.ts @@ -35,14 +35,18 @@ export class LimitedAccessViewCaseFileGuard implements CanActivate { throw new InternalServerErrorException('Missing case file') } + // If the user is accessing a case file from a merged case, + // then the parent case is used for access control + const accessControlCase: Case = request.mergedCaseParent ?? theCase + if ( canLimitedAccessUserViewCaseFile( user, - theCase.type, - theCase.state, + accessControlCase.type, + accessControlCase.state, caseFile.category, - theCase.defendants, - theCase.civilClaimants, + accessControlCase.defendants, + accessControlCase.civilClaimants, ) ) { return true diff --git a/apps/judicial-system/backend/src/app/modules/file/test/fileController/getCaseFileSignedUrlRolesRules.spec.ts b/apps/judicial-system/backend/src/app/modules/file/test/fileController/getCaseFileSignedUrlRolesRules.spec.ts index 86d57470734e..70d152f8d119 100644 --- a/apps/judicial-system/backend/src/app/modules/file/test/fileController/getCaseFileSignedUrlRolesRules.spec.ts +++ b/apps/judicial-system/backend/src/app/modules/file/test/fileController/getCaseFileSignedUrlRolesRules.spec.ts @@ -5,7 +5,6 @@ import { districtCourtAssistantRule, districtCourtJudgeRule, districtCourtRegistrarRule, - prisonSystemStaffRule, prosecutorRepresentativeRule, prosecutorRule, publicProsecutorStaffRule, @@ -24,7 +23,7 @@ describe('FileController - Get case file signed url rules', () => { }) it('should give permission to roles', () => { - expect(rules).toHaveLength(10) + expect(rules).toHaveLength(9) expect(rules).toContain(prosecutorRule) expect(rules).toContain(prosecutorRepresentativeRule) expect(rules).toContain(publicProsecutorStaffRule) @@ -34,6 +33,5 @@ describe('FileController - Get case file signed url rules', () => { expect(rules).toContain(courtOfAppealsJudgeRule) expect(rules).toContain(courtOfAppealsRegistrarRule) expect(rules).toContain(courtOfAppealsAssistantRule) - expect(rules).toContain(prisonSystemStaffRule) }) }) diff --git a/apps/judicial-system/web/src/components/FormProvider/case.graphql b/apps/judicial-system/web/src/components/FormProvider/case.graphql index be8f2524060e..d80ada64e561 100644 --- a/apps/judicial-system/web/src/components/FormProvider/case.graphql +++ b/apps/judicial-system/web/src/components/FormProvider/case.graphql @@ -314,6 +314,43 @@ query Case($input: CaseQueryInput!) { id name } + defendants { + id + noNationalId + nationalId + name + gender + address + citizenship + defenderName + defenderNationalId + defenderEmail + defenderPhoneNumber + defenderChoice + defendantPlea + requestedDefenderChoice + requestedDefenderNationalId + requestedDefenderName + isDefenderChoiceConfirmed + caseFilesSharedWithDefender + serviceRequirement + verdictViewDate + verdictAppealDeadline + verdictAppealDate + isVerdictAppealDeadlineExpired + subpoenaType + subpoenas { + id + created + serviceStatus + serviceDate + servedBy + comment + defenderNationalId + caseId + subpoenaId + } + } caseFiles { id created diff --git a/libs/judicial-system/types/src/index.ts b/libs/judicial-system/types/src/index.ts index 1efa7d83b731..494e5067a5e2 100644 --- a/libs/judicial-system/types/src/index.ts +++ b/libs/judicial-system/types/src/index.ts @@ -18,11 +18,12 @@ export { InstitutionNotificationType, NotificationDispatchType, DefendantNotificationType, + notificationTypes, } from './lib/notification' export type { Institution } from './lib/institution' -export { EventType } from './lib/eventLog' -export { DateType } from './lib/dateLog' -export { StringType } from './lib/caseString' +export { EventType, eventTypes } from './lib/eventLog' +export { DateType, dateTypes } from './lib/dateLog' +export { StringType, stringTypes } from './lib/caseString' export { CaseFileState, CaseFileCategory } from './lib/file' diff --git a/libs/judicial-system/types/src/lib/caseString.ts b/libs/judicial-system/types/src/lib/caseString.ts index 2f78b27d1577..694b2f33bcef 100644 --- a/libs/judicial-system/types/src/lib/caseString.ts +++ b/libs/judicial-system/types/src/lib/caseString.ts @@ -2,3 +2,5 @@ export enum StringType { POSTPONED_INDEFINITELY_EXPLANATION = 'POSTPONED_INDEFINITELY_EXPLANATION', CIVIL_DEMANDS = 'CIVIL_DEMANDS', } + +export const stringTypes = Object.values(StringType) diff --git a/libs/judicial-system/types/src/lib/dateLog.ts b/libs/judicial-system/types/src/lib/dateLog.ts index 935ae44c1d67..62efd7b02fef 100644 --- a/libs/judicial-system/types/src/lib/dateLog.ts +++ b/libs/judicial-system/types/src/lib/dateLog.ts @@ -2,3 +2,5 @@ export enum DateType { ARRAIGNMENT_DATE = 'ARRAIGNMENT_DATE', COURT_DATE = 'COURT_DATE', } + +export const dateTypes = Object.values(DateType) diff --git a/libs/judicial-system/types/src/lib/eventLog.ts b/libs/judicial-system/types/src/lib/eventLog.ts index bbb599780607..e39c40a5feae 100644 --- a/libs/judicial-system/types/src/lib/eventLog.ts +++ b/libs/judicial-system/types/src/lib/eventLog.ts @@ -10,3 +10,5 @@ export enum EventType { CASE_RECEIVED_BY_COURT = 'CASE_RECEIVED_BY_COURT', INDICTMENT_SENT_TO_PUBLIC_PROSECUTOR = 'INDICTMENT_SENT_TO_PUBLIC_PROSECUTOR', } + +export const eventTypes = Object.values(EventType) diff --git a/libs/judicial-system/types/src/lib/notification.ts b/libs/judicial-system/types/src/lib/notification.ts index 99ec32bc92f8..89d0dcdc5f71 100644 --- a/libs/judicial-system/types/src/lib/notification.ts +++ b/libs/judicial-system/types/src/lib/notification.ts @@ -20,14 +20,18 @@ export enum CaseNotificationType { CASE_FILES_UPDATED = 'CASE_FILES_UPDATED', } +export enum DefendantNotificationType { + DEFENDER_ASSIGNED = 'DEFENDER_ASSIGNED', +} + export enum SubpoenaNotificationType { SERVICE_SUCCESSFUL = 'SERVICE_SUCCESSFUL', SERVICE_FAILED = 'SERVICE_FAILED', DEFENDANT_SELECTED_DEFENDER = 'DEFENDANT_SELECTED_DEFENDER', } -export enum DefendantNotificationType { - DEFENDER_ASSIGNED = 'DEFENDER_ASSIGNED', +export enum InstitutionNotificationType { + INDICTMENTS_WAITING_FOR_CONFIRMATION = 'INDICTMENTS_WAITING_FOR_CONFIRMATION', } export enum NotificationType { @@ -38,7 +42,6 @@ export enum NotificationType { RULING = CaseNotificationType.RULING, MODIFIED = CaseNotificationType.MODIFIED, REVOKED = CaseNotificationType.REVOKED, - DEFENDER_ASSIGNED = DefendantNotificationType.DEFENDER_ASSIGNED, ADVOCATE_ASSIGNED = CaseNotificationType.ADVOCATE_ASSIGNED, DEFENDANTS_NOT_UPDATED_AT_COURT = CaseNotificationType.DEFENDANTS_NOT_UPDATED_AT_COURT, APPEAL_TO_COURT_OF_APPEALS = CaseNotificationType.APPEAL_TO_COURT_OF_APPEALS, @@ -51,14 +54,14 @@ export enum NotificationType { INDICTMENT_DENIED = CaseNotificationType.INDICTMENT_DENIED, INDICTMENT_RETURNED = CaseNotificationType.INDICTMENT_RETURNED, CASE_FILES_UPDATED = CaseNotificationType.CASE_FILES_UPDATED, + DEFENDER_ASSIGNED = DefendantNotificationType.DEFENDER_ASSIGNED, SERVICE_SUCCESSFUL = SubpoenaNotificationType.SERVICE_SUCCESSFUL, SERVICE_FAILED = SubpoenaNotificationType.SERVICE_FAILED, DEFENDANT_SELECTED_DEFENDER = SubpoenaNotificationType.DEFENDANT_SELECTED_DEFENDER, + INDICTMENTS_WAITING_FOR_CONFIRMATION = InstitutionNotificationType.INDICTMENTS_WAITING_FOR_CONFIRMATION, } -export enum InstitutionNotificationType { - INDICTMENTS_WAITING_FOR_CONFIRMATION = 'INDICTMENTS_WAITING_FOR_CONFIRMATION', -} +export const notificationTypes = Object.values(NotificationType) export enum NotificationDispatchType { INDICTMENTS_WAITING_FOR_CONFIRMATION = InstitutionNotificationType.INDICTMENTS_WAITING_FOR_CONFIRMATION, From 968552922d5d81e3d3353b4b5b7772c94e29570e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=8Dvar=20Oddsson?= Date: Thu, 14 Nov 2024 13:31:53 +0000 Subject: [PATCH 03/66] chore(j-s): Display case info in header (#16759) * Remove console.log * Refactor * Refactoring * Refactoring --------- Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- .../CaseTitleInfoAndTags.tsx | 7 +- .../OverviewHeader/OverviewHeader.tsx | 27 ------- .../src/components/PageTitle/PageTitle.tsx | 72 ++++++++++++++++--- .../web/src/components/index.ts | 1 - .../src/routes/Admin/UserForm/UserForm.tsx | 8 +-- .../Court/Indictments/Completed/Completed.tsx | 10 ++- .../Confirmation/Confirmation.tsx | 7 +- .../CourtRecord/CourtRecord.tsx | 7 +- .../HearingArrangements.tsx | 7 +- .../InvestigationCase/Overview/Overview.tsx | 7 +- .../Court/InvestigationCase/Ruling/Ruling.tsx | 7 +- .../Confirmation/Confirmation.tsx | 7 +- .../CourtRecord/CourtRecord.tsx | 7 +- .../HearingArrangements.tsx | 7 +- .../RestrictionCase/Overview/Overview.tsx | 13 ++-- .../Court/RestrictionCase/Ruling/Ruling.tsx | 7 +- .../ReceptionAndAssignment.tsx | 9 +-- .../routes/CourtOfAppeal/Ruling/Ruling.tsx | 7 +- .../WithdrawnAppealCase.tsx | 7 +- .../IndictmentOverview/IndictmentOverview.tsx | 22 ++---- .../Indictments/CaseFile/CaseFile.tsx | 9 +-- .../Indictments/CaseFiles/CaseFiles.tsx | 9 +-- .../Indictments/Overview/Overview.tsx | 8 +-- .../Indictments/Processing/Processing.tsx | 7 +- .../InvestigationCase/Defendant/Defendant.tsx | 7 +- .../HearingArrangements.tsx | 7 +- .../InvestigationCase/Overview/Overview.tsx | 7 +- .../PoliceDemands/PoliceDemands.tsx | 7 +- .../PoliceReport/PoliceReport.tsx | 7 +- .../RestrictionCase/Defendant/Defendant.tsx | 7 +- .../HearingArrangements.tsx | 9 ++- .../RestrictionCase/Overview/Overview.tsx | 15 ++-- .../PoliceDemands/PoliceDemands.tsx | 7 +- .../PoliceReport/PoliceReport.tsx | 7 +- .../components/CaseFiles/CaseFiles.tsx | 7 +- .../src/routes/Shared/AddFiles/AddFiles.tsx | 8 +-- .../AppealCaseFiles.tsx | 19 ++--- .../AppealToCourtOfAppeals.tsx | 19 ++--- .../web/src/routes/Shared/Login/Login.tsx | 13 ++-- .../src/routes/Shared/Statement/Statement.tsx | 19 ++--- 40 files changed, 170 insertions(+), 274 deletions(-) delete mode 100644 apps/judicial-system/web/src/components/OverviewHeader/OverviewHeader.tsx diff --git a/apps/judicial-system/web/src/components/CaseTitleInfoAndTags/CaseTitleInfoAndTags.tsx b/apps/judicial-system/web/src/components/CaseTitleInfoAndTags/CaseTitleInfoAndTags.tsx index 1ed0759b7ba3..66a1fda75bbd 100644 --- a/apps/judicial-system/web/src/components/CaseTitleInfoAndTags/CaseTitleInfoAndTags.tsx +++ b/apps/judicial-system/web/src/components/CaseTitleInfoAndTags/CaseTitleInfoAndTags.tsx @@ -10,8 +10,9 @@ import { InstitutionType, UserRole, } from '../../graphql/schema' +import { titleForCase } from '../../utils/titleForCase/titleForCase' import { FormContext } from '../FormProvider/FormProvider' -import OverviewHeader from '../OverviewHeader/OverviewHeader' +import PageTitle from '../PageTitle/PageTitle' import RestrictionTags from '../RestrictionTags/RestrictionTags' import RulingDateLabel from '../RulingDateLabel/RulingDateLabel' import { UserContext } from '../UserProvider/UserProvider' @@ -30,7 +31,9 @@ const CaseTitleInfoAndTags: FC = () => { marginBottom={3} > - + + {titleForCase(formatMessage, workingCase)} + {workingCase.rulingDate && ( )} diff --git a/apps/judicial-system/web/src/components/OverviewHeader/OverviewHeader.tsx b/apps/judicial-system/web/src/components/OverviewHeader/OverviewHeader.tsx deleted file mode 100644 index 4944c9f000cd..000000000000 --- a/apps/judicial-system/web/src/components/OverviewHeader/OverviewHeader.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import { FC, useContext } from 'react' -import { useIntl } from 'react-intl' - -import { Box, Text } from '@island.is/island-ui/core' -import { titleForCase } from '@island.is/judicial-system-web/src/utils/titleForCase/titleForCase' - -import { FormContext } from '../FormProvider/FormProvider' - -interface Props { - dataTestid?: string -} - -const OverviewHeader: FC = (props) => { - const { workingCase } = useContext(FormContext) - const { formatMessage } = useIntl() - const { dataTestid } = props - - return ( - - - {titleForCase(formatMessage, workingCase)} - - - ) -} - -export default OverviewHeader diff --git a/apps/judicial-system/web/src/components/PageTitle/PageTitle.tsx b/apps/judicial-system/web/src/components/PageTitle/PageTitle.tsx index d9882f66e792..3ab09a38abc9 100644 --- a/apps/judicial-system/web/src/components/PageTitle/PageTitle.tsx +++ b/apps/judicial-system/web/src/components/PageTitle/PageTitle.tsx @@ -1,13 +1,67 @@ -import { FC, PropsWithChildren } from 'react' +import { FC, PropsWithChildren, useContext } from 'react' +import { useIntl } from 'react-intl' +import { useRouter } from 'next/router' -import { Box, Text } from '@island.is/island-ui/core' +import { + Box, + Button, + ResponsiveProp, + Space, + Text, +} from '@island.is/island-ui/core' +import { + isCompletedCase, + isIndictmentCase, +} from '@island.is/judicial-system/types' +import { core } from '@island.is/judicial-system-web/messages' -const PageTitle: FC = ({ children }) => ( - - - {children} - - -) +import { FormContext } from '../FormProvider/FormProvider' +import TagCaseState from '../TagCaseState/TagCaseState' + +interface Props { + marginBottom?: ResponsiveProp + previousUrl?: string +} + +const PageTitle: FC> = (props) => { + const { marginBottom, previousUrl, children } = props + const { workingCase } = useContext(FormContext) + const { formatMessage } = useIntl() + const router = useRouter() + + return ( + + + {previousUrl && ( + + + + )} + + {children} + + + {isIndictmentCase(workingCase.type) && + workingCase.indictmentRulingDecision && + isCompletedCase(workingCase.state) && ( + + )} + + ) +} export default PageTitle diff --git a/apps/judicial-system/web/src/components/index.ts b/apps/judicial-system/web/src/components/index.ts index 2a230dffdd67..adf54284e0c6 100644 --- a/apps/judicial-system/web/src/components/index.ts +++ b/apps/judicial-system/web/src/components/index.ts @@ -66,7 +66,6 @@ export { default as ServiceAnnouncement } from './ServiceAnnouncement/ServiceAnn export { strings as serviceAnnouncementStrings } from './ServiceAnnouncement/ServiceAnnouncement.strings' export { default as ServiceInterruptionBanner } from './ServiceInterruptionBanner/ServiceInterruptionBanner' export { default as SignedDocument } from './SignedDocument/SignedDocument' -export { default as OverviewHeader } from './OverviewHeader/OverviewHeader' export { default as TagAppealState } from './TagAppealState/TagAppealState' export { default as TagCaseState } from './TagCaseState/TagCaseState' export { default as CaseTag } from './Tags/CaseTag' diff --git a/apps/judicial-system/web/src/routes/Admin/UserForm/UserForm.tsx b/apps/judicial-system/web/src/routes/Admin/UserForm/UserForm.tsx index 6675bfc4fa7e..c5023332ba1c 100644 --- a/apps/judicial-system/web/src/routes/Admin/UserForm/UserForm.tsx +++ b/apps/judicial-system/web/src/routes/Admin/UserForm/UserForm.tsx @@ -7,13 +7,13 @@ import { Input, RadioButton, Select, - Text, } from '@island.is/island-ui/core' import * as constants from '@island.is/judicial-system/consts' import { isCoreUser } from '@island.is/judicial-system/types' import { FormContentContainer, FormFooter, + PageTitle, } from '@island.is/judicial-system-web/src/components' import { Institution, @@ -136,11 +136,7 @@ export const UserForm: FC = ({ return (
- - - Notandi - - + Notandi { > - - - {formatMessage(strings.heading)} - - + {formatMessage(strings.heading)} + diff --git a/apps/judicial-system/web/src/routes/Court/InvestigationCase/Confirmation/Confirmation.tsx b/apps/judicial-system/web/src/routes/Court/InvestigationCase/Confirmation/Confirmation.tsx index b7b764cec99f..70d7734c6e4d 100644 --- a/apps/judicial-system/web/src/routes/Court/InvestigationCase/Confirmation/Confirmation.tsx +++ b/apps/judicial-system/web/src/routes/Court/InvestigationCase/Confirmation/Confirmation.tsx @@ -18,6 +18,7 @@ import { FormFooter, PageHeader, PageLayout, + PageTitle, PdfButton, PoliceRequestAccordionItem, RulingAccordionItem, @@ -129,11 +130,7 @@ const Confirmation: FC = () => { title={formatMessage(titles.court.investigationCases.conclusion)} /> - - - {formatMessage(strings.title)} - - + {formatMessage(strings.title)} diff --git a/apps/judicial-system/web/src/routes/Court/InvestigationCase/CourtRecord/CourtRecord.tsx b/apps/judicial-system/web/src/routes/Court/InvestigationCase/CourtRecord/CourtRecord.tsx index fb14b1171179..22dbdc8b102e 100644 --- a/apps/judicial-system/web/src/routes/Court/InvestigationCase/CourtRecord/CourtRecord.tsx +++ b/apps/judicial-system/web/src/routes/Court/InvestigationCase/CourtRecord/CourtRecord.tsx @@ -30,6 +30,7 @@ import { HideableText, PageHeader, PageLayout, + PageTitle, PdfButton, } from '@island.is/judicial-system-web/src/components' import { @@ -233,11 +234,7 @@ const CourtRecord: FC = () => { title={formatMessage(titles.court.investigationCases.courtRecord)} /> - - - {formatMessage(m.sections.title)} - - + {formatMessage(m.sections.title)} diff --git a/apps/judicial-system/web/src/routes/Court/InvestigationCase/HearingArrangements/HearingArrangements.tsx b/apps/judicial-system/web/src/routes/Court/InvestigationCase/HearingArrangements/HearingArrangements.tsx index 3d5e89fa1bf8..fe6b8e5775b3 100644 --- a/apps/judicial-system/web/src/routes/Court/InvestigationCase/HearingArrangements/HearingArrangements.tsx +++ b/apps/judicial-system/web/src/routes/Court/InvestigationCase/HearingArrangements/HearingArrangements.tsx @@ -16,6 +16,7 @@ import { Modal, PageHeader, PageLayout, + PageTitle, useCourtArrangements, } from '@island.is/judicial-system-web/src/components' import { @@ -150,11 +151,7 @@ const HearingArrangements = () => { /> )} - - - {formatMessage(m.title)} - - + {formatMessage(m.title)} diff --git a/apps/judicial-system/web/src/routes/Court/InvestigationCase/Overview/Overview.tsx b/apps/judicial-system/web/src/routes/Court/InvestigationCase/Overview/Overview.tsx index 42e69b18d72e..4d38d35173f0 100644 --- a/apps/judicial-system/web/src/routes/Court/InvestigationCase/Overview/Overview.tsx +++ b/apps/judicial-system/web/src/routes/Court/InvestigationCase/Overview/Overview.tsx @@ -31,6 +31,7 @@ import { InfoCard, PageHeader, PageLayout, + PageTitle, PdfButton, UserContext, } from '@island.is/judicial-system-web/src/components' @@ -101,11 +102,7 @@ const Overview = () => { /> )} - - - Yfirlit kröfu um rannsóknarheimild - - + Yfirlit kröfu um rannsóknarheimild {workingCase.state === CaseState.RECEIVED && workingCase.arraignmentDate?.date && diff --git a/apps/judicial-system/web/src/routes/Court/InvestigationCase/Ruling/Ruling.tsx b/apps/judicial-system/web/src/routes/Court/InvestigationCase/Ruling/Ruling.tsx index 51e80fa56c8c..4562afd300a9 100644 --- a/apps/judicial-system/web/src/routes/Court/InvestigationCase/Ruling/Ruling.tsx +++ b/apps/judicial-system/web/src/routes/Court/InvestigationCase/Ruling/Ruling.tsx @@ -23,6 +23,7 @@ import { FormFooter, PageHeader, PageLayout, + PageTitle, PdfButton, PoliceRequestAccordionItem, RulingInput, @@ -123,11 +124,7 @@ const Ruling = () => { title={formatMessage(titles.court.investigationCases.ruling)} /> - - - {formatMessage(m.title)} - - + {formatMessage(m.title)} diff --git a/apps/judicial-system/web/src/routes/Court/RestrictionCase/Confirmation/Confirmation.tsx b/apps/judicial-system/web/src/routes/Court/RestrictionCase/Confirmation/Confirmation.tsx index 7c3016906d9f..ce69733b6b51 100644 --- a/apps/judicial-system/web/src/routes/Court/RestrictionCase/Confirmation/Confirmation.tsx +++ b/apps/judicial-system/web/src/routes/Court/RestrictionCase/Confirmation/Confirmation.tsx @@ -18,6 +18,7 @@ import { FormFooter, PageHeader, PageLayout, + PageTitle, PdfButton, PoliceRequestAccordionItem, RulingAccordionItem, @@ -129,11 +130,7 @@ const Confirmation: FC = () => { title={formatMessage(titles.court.restrictionCases.conclusion)} /> - - - {formatMessage(strings.title)} - - + {formatMessage(strings.title)} diff --git a/apps/judicial-system/web/src/routes/Court/RestrictionCase/CourtRecord/CourtRecord.tsx b/apps/judicial-system/web/src/routes/Court/RestrictionCase/CourtRecord/CourtRecord.tsx index d8a531715f3c..c4f55b835138 100644 --- a/apps/judicial-system/web/src/routes/Court/RestrictionCase/CourtRecord/CourtRecord.tsx +++ b/apps/judicial-system/web/src/routes/Court/RestrictionCase/CourtRecord/CourtRecord.tsx @@ -31,6 +31,7 @@ import { HideableText, PageHeader, PageLayout, + PageTitle, PdfButton, } from '@island.is/judicial-system-web/src/components' import { @@ -249,11 +250,7 @@ export const CourtRecord: FC = () => { title={formatMessage(titles.court.restrictionCases.courtRecord)} /> - - - {formatMessage(m.sections.title)} - - + {formatMessage(m.sections.title)} diff --git a/apps/judicial-system/web/src/routes/Court/RestrictionCase/HearingArrangements/HearingArrangements.tsx b/apps/judicial-system/web/src/routes/Court/RestrictionCase/HearingArrangements/HearingArrangements.tsx index 2951a87b42c2..1746dab1ae24 100644 --- a/apps/judicial-system/web/src/routes/Court/RestrictionCase/HearingArrangements/HearingArrangements.tsx +++ b/apps/judicial-system/web/src/routes/Court/RestrictionCase/HearingArrangements/HearingArrangements.tsx @@ -15,6 +15,7 @@ import { Modal, PageHeader, PageLayout, + PageTitle, useCourtArrangements, } from '@island.is/judicial-system-web/src/components' import { @@ -155,11 +156,7 @@ export const HearingArrangements = () => { /> )} - - - {formatMessage(m.title)} - - + {formatMessage(m.title)} diff --git a/apps/judicial-system/web/src/routes/Court/RestrictionCase/Overview/Overview.tsx b/apps/judicial-system/web/src/routes/Court/RestrictionCase/Overview/Overview.tsx index 9ab9d322935a..565c4fd06fb6 100644 --- a/apps/judicial-system/web/src/routes/Court/RestrictionCase/Overview/Overview.tsx +++ b/apps/judicial-system/web/src/routes/Court/RestrictionCase/Overview/Overview.tsx @@ -33,6 +33,7 @@ import { InfoCard, PageHeader, PageLayout, + PageTitle, PdfButton, UserContext, } from '@island.is/judicial-system-web/src/components' @@ -108,13 +109,11 @@ export const JudgeOverview = () => { /> )} - - - {formatMessage(rcCourtOverview.sections.title, { - caseType: workingCase.type, - })} - - + + {formatMessage(rcCourtOverview.sections.title, { + caseType: workingCase.type, + })} + {workingCase.state === CaseState.RECEIVED && workingCase.arraignmentDate?.date && diff --git a/apps/judicial-system/web/src/routes/Court/RestrictionCase/Ruling/Ruling.tsx b/apps/judicial-system/web/src/routes/Court/RestrictionCase/Ruling/Ruling.tsx index 53274729dcd5..dde04c7e2dba 100644 --- a/apps/judicial-system/web/src/routes/Court/RestrictionCase/Ruling/Ruling.tsx +++ b/apps/judicial-system/web/src/routes/Court/RestrictionCase/Ruling/Ruling.tsx @@ -24,6 +24,7 @@ import { FormFooter, PageHeader, PageLayout, + PageTitle, PdfButton, PoliceRequestAccordionItem, RestrictionLength, @@ -337,11 +338,7 @@ export const Ruling = () => { > - - - {formatMessage(m.title)} - - + {formatMessage(m.title)} diff --git a/apps/judicial-system/web/src/routes/Court/components/ReceptionAndAssignment/ReceptionAndAssignment.tsx b/apps/judicial-system/web/src/routes/Court/components/ReceptionAndAssignment/ReceptionAndAssignment.tsx index a43b6c24c4cb..fbde3ea941f9 100644 --- a/apps/judicial-system/web/src/routes/Court/components/ReceptionAndAssignment/ReceptionAndAssignment.tsx +++ b/apps/judicial-system/web/src/routes/Court/components/ReceptionAndAssignment/ReceptionAndAssignment.tsx @@ -2,7 +2,7 @@ import { useCallback, useContext } from 'react' import { useIntl } from 'react-intl' import { useRouter } from 'next/router' -import { AlertMessage, Box, Text } from '@island.is/island-ui/core' +import { AlertMessage, Box } from '@island.is/island-ui/core' import * as constants from '@island.is/judicial-system/consts' import { isIndictmentCase, @@ -16,6 +16,7 @@ import { FormFooter, PageHeader, PageLayout, + PageTitle, } from '@island.is/judicial-system-web/src/components' import { Gender } from '@island.is/judicial-system-web/src/graphql/schema' import { getDefendantPleaText } from '@island.is/judicial-system-web/src/utils/stepHelper' @@ -110,11 +111,7 @@ const ReceptionAndAssignment = () => { /> )} - - - {formatMessage(strings.title)} - - + {formatMessage(strings.title)} diff --git a/apps/judicial-system/web/src/routes/CourtOfAppeal/Ruling/Ruling.tsx b/apps/judicial-system/web/src/routes/CourtOfAppeal/Ruling/Ruling.tsx index 09a716cf2685..bf465477bdc4 100644 --- a/apps/judicial-system/web/src/routes/CourtOfAppeal/Ruling/Ruling.tsx +++ b/apps/judicial-system/web/src/routes/CourtOfAppeal/Ruling/Ruling.tsx @@ -20,6 +20,7 @@ import { FormFooter, PageHeader, PageLayout, + PageTitle, RestrictionLength, SectionHeading, } from '@island.is/judicial-system-web/src/components' @@ -176,11 +177,7 @@ const CourtOfAppealRuling = () => { > - - - {formatMessage(strings.title)} - - + {formatMessage(strings.title)} diff --git a/apps/judicial-system/web/src/routes/CourtOfAppeal/WithdrawnAppealCase/WithdrawnAppealCase.tsx b/apps/judicial-system/web/src/routes/CourtOfAppeal/WithdrawnAppealCase/WithdrawnAppealCase.tsx index 34682238544c..a4602d925096 100644 --- a/apps/judicial-system/web/src/routes/CourtOfAppeal/WithdrawnAppealCase/WithdrawnAppealCase.tsx +++ b/apps/judicial-system/web/src/routes/CourtOfAppeal/WithdrawnAppealCase/WithdrawnAppealCase.tsx @@ -11,6 +11,7 @@ import { FormFooter, PageHeader, PageLayout, + PageTitle, SectionHeading, } from '@island.is/judicial-system-web/src/components' import { CaseFileCategory } from '@island.is/judicial-system-web/src/graphql/schema' @@ -43,11 +44,7 @@ const WithdrawnAppealCase = () => { - - - {formatMessage(strings.title)} - - + {formatMessage(strings.title)} diff --git a/apps/judicial-system/web/src/routes/Prison/IndictmentOverview/IndictmentOverview.tsx b/apps/judicial-system/web/src/routes/Prison/IndictmentOverview/IndictmentOverview.tsx index e54977b11363..fa2d92993205 100644 --- a/apps/judicial-system/web/src/routes/Prison/IndictmentOverview/IndictmentOverview.tsx +++ b/apps/judicial-system/web/src/routes/Prison/IndictmentOverview/IndictmentOverview.tsx @@ -1,8 +1,7 @@ import { useContext } from 'react' import { useIntl } from 'react-intl' -import { useRouter } from 'next/router' -import { Box, Button, Text } from '@island.is/island-ui/core' +import { Box, Text } from '@island.is/island-ui/core' import * as constants from '@island.is/judicial-system/consts' import { formatDate } from '@island.is/judicial-system/formatters' import { core } from '@island.is/judicial-system-web/messages' @@ -13,6 +12,7 @@ import { InfoCardClosedIndictment, PageHeader, PageLayout, + PageTitle, RenderFiles, } from '@island.is/judicial-system-web/src/components' import { CaseFileCategory } from '@island.is/judicial-system-web/src/graphql/schema' @@ -23,7 +23,6 @@ import { strings } from './IndictmentOverview.strings' const IndictmentOverview = () => { const { workingCase } = useContext(FormContext) const { formatMessage } = useIntl() - const router = useRouter() const { onOpen } = useFileList({ caseId: workingCase.id, @@ -33,20 +32,9 @@ const IndictmentOverview = () => { - - - - - - {formatMessage(strings.title)} - - + + {formatMessage(strings.title)} + {workingCase.courtCaseNumber && ( diff --git a/apps/judicial-system/web/src/routes/Prosecutor/Indictments/CaseFile/CaseFile.tsx b/apps/judicial-system/web/src/routes/Prosecutor/Indictments/CaseFile/CaseFile.tsx index 8170d9b93f44..653d044e73a2 100644 --- a/apps/judicial-system/web/src/routes/Prosecutor/Indictments/CaseFile/CaseFile.tsx +++ b/apps/judicial-system/web/src/routes/Prosecutor/Indictments/CaseFile/CaseFile.tsx @@ -3,7 +3,7 @@ import { useIntl } from 'react-intl' import { LayoutGroup } from 'framer-motion' import router from 'next/router' -import { Accordion, AlertMessage, Box, Text } from '@island.is/island-ui/core' +import { Accordion, AlertMessage, Box } from '@island.is/island-ui/core' import * as constants from '@island.is/judicial-system/consts' import { titles } from '@island.is/judicial-system-web/messages' import { @@ -13,6 +13,7 @@ import { IndictmentsCaseFilesAccordionItem, PageHeader, PageLayout, + PageTitle, PdfButton, ProsecutorCaseInfo, } from '@island.is/judicial-system-web/src/components' @@ -60,11 +61,7 @@ const CaseFile = () => { title={formatMessage(titles.prosecutor.indictments.caseFile)} /> - - - {formatMessage(m.heading)} - - + {formatMessage(m.heading)} diff --git a/apps/judicial-system/web/src/routes/Prosecutor/Indictments/CaseFiles/CaseFiles.tsx b/apps/judicial-system/web/src/routes/Prosecutor/Indictments/CaseFiles/CaseFiles.tsx index 0417695836be..72f3b46677af 100644 --- a/apps/judicial-system/web/src/routes/Prosecutor/Indictments/CaseFiles/CaseFiles.tsx +++ b/apps/judicial-system/web/src/routes/Prosecutor/Indictments/CaseFiles/CaseFiles.tsx @@ -2,7 +2,7 @@ import { useCallback, useContext } from 'react' import { useIntl } from 'react-intl' import router from 'next/router' -import { Box, InputFileUpload, Text } from '@island.is/island-ui/core' +import { Box, InputFileUpload } from '@island.is/island-ui/core' import { fileExtensionWhitelist } from '@island.is/island-ui/core/types' import * as constants from '@island.is/judicial-system/consts' import { isTrafficViolationCase } from '@island.is/judicial-system/types' @@ -13,6 +13,7 @@ import { FormFooter, PageHeader, PageLayout, + PageTitle, PdfButton, ProsecutorCaseInfo, SectionHeading, @@ -67,11 +68,7 @@ const CaseFiles = () => { title={formatMessage(titles.prosecutor.indictments.caseFiles)} /> - - - {formatMessage(strings.caseFiles.heading)} - - + {formatMessage(strings.caseFiles.heading)} {!isTrafficViolationCaseCheck && ( diff --git a/apps/judicial-system/web/src/routes/Prosecutor/Indictments/Overview/Overview.tsx b/apps/judicial-system/web/src/routes/Prosecutor/Indictments/Overview/Overview.tsx index 464eee6cdaa2..3f1c8110e6b9 100644 --- a/apps/judicial-system/web/src/routes/Prosecutor/Indictments/Overview/Overview.tsx +++ b/apps/judicial-system/web/src/routes/Prosecutor/Indictments/Overview/Overview.tsx @@ -9,7 +9,6 @@ import { Box, Button, RadioButton, - Text, toast, } from '@island.is/island-ui/core' import * as constants from '@island.is/judicial-system/consts' @@ -27,6 +26,7 @@ import { Modal, PageHeader, PageLayout, + PageTitle, ProsecutorCaseInfo, SectionHeading, ServiceAnnouncement, @@ -188,11 +188,7 @@ const Overview: FC = () => { > )} - - - {formatMessage(strings.heading)} - - + {formatMessage(strings.heading)} {workingCase.defendants?.map((defendant) => defendant.subpoenas?.map( diff --git a/apps/judicial-system/web/src/routes/Prosecutor/Indictments/Processing/Processing.tsx b/apps/judicial-system/web/src/routes/Prosecutor/Indictments/Processing/Processing.tsx index 3a1800e8c7a2..c2a21ccaf8a9 100644 --- a/apps/judicial-system/web/src/routes/Prosecutor/Indictments/Processing/Processing.tsx +++ b/apps/judicial-system/web/src/routes/Prosecutor/Indictments/Processing/Processing.tsx @@ -26,6 +26,7 @@ import { InputNationalId, PageHeader, PageLayout, + PageTitle, ProsecutorCaseInfo, SectionHeading, UserContext, @@ -287,11 +288,7 @@ const Processing: FC = () => { title={formatMessage(titles.prosecutor.indictments.processing)} /> - - - {formatMessage(strings.heading)} - - + {formatMessage(strings.heading)} diff --git a/apps/judicial-system/web/src/routes/Prosecutor/InvestigationCase/Defendant/Defendant.tsx b/apps/judicial-system/web/src/routes/Prosecutor/InvestigationCase/Defendant/Defendant.tsx index 985ca04df5a9..58d28cb6146b 100644 --- a/apps/judicial-system/web/src/routes/Prosecutor/InvestigationCase/Defendant/Defendant.tsx +++ b/apps/judicial-system/web/src/routes/Prosecutor/InvestigationCase/Defendant/Defendant.tsx @@ -32,6 +32,7 @@ import { FormFooter, PageHeader, PageLayout, + PageTitle, } from '@island.is/judicial-system-web/src/components' import { CaseOrigin, @@ -246,11 +247,7 @@ const Defendant = () => { - - - {formatMessage(m.heading)} - - + {formatMessage(m.heading)} { {user && ( <> - - - {formatMessage(m.heading)} - - + {formatMessage(m.heading)} diff --git a/apps/judicial-system/web/src/routes/Prosecutor/InvestigationCase/Overview/Overview.tsx b/apps/judicial-system/web/src/routes/Prosecutor/InvestigationCase/Overview/Overview.tsx index a1ca0086e267..515c483ca2d4 100644 --- a/apps/judicial-system/web/src/routes/Prosecutor/InvestigationCase/Overview/Overview.tsx +++ b/apps/judicial-system/web/src/routes/Prosecutor/InvestigationCase/Overview/Overview.tsx @@ -32,6 +32,7 @@ import { Modal, PageHeader, PageLayout, + PageTitle, PdfButton, ProsecutorCaseInfo, UserContext, @@ -154,11 +155,7 @@ export const Overview = () => { /> )} - - - {formatMessage(m.heading)} - - + {formatMessage(m.heading)} {workingCase.state === CaseState.RECEIVED && workingCase.arraignmentDate?.date && diff --git a/apps/judicial-system/web/src/routes/Prosecutor/InvestigationCase/PoliceDemands/PoliceDemands.tsx b/apps/judicial-system/web/src/routes/Prosecutor/InvestigationCase/PoliceDemands/PoliceDemands.tsx index 1da6026ff2d2..b70d075d4e2e 100644 --- a/apps/judicial-system/web/src/routes/Prosecutor/InvestigationCase/PoliceDemands/PoliceDemands.tsx +++ b/apps/judicial-system/web/src/routes/Prosecutor/InvestigationCase/PoliceDemands/PoliceDemands.tsx @@ -16,6 +16,7 @@ import { FormFooter, PageHeader, PageLayout, + PageTitle, ProsecutorCaseInfo, } from '@island.is/judicial-system-web/src/components' import { CaseType } from '@island.is/judicial-system-web/src/graphql/schema' @@ -188,11 +189,7 @@ const PoliceDemands = () => { )} /> - - - {formatMessage(icDemands.heading)} - - + {formatMessage(icDemands.heading)} diff --git a/apps/judicial-system/web/src/routes/Prosecutor/InvestigationCase/PoliceReport/PoliceReport.tsx b/apps/judicial-system/web/src/routes/Prosecutor/InvestigationCase/PoliceReport/PoliceReport.tsx index 1873a2a82f29..5cab24c06a5d 100644 --- a/apps/judicial-system/web/src/routes/Prosecutor/InvestigationCase/PoliceReport/PoliceReport.tsx +++ b/apps/judicial-system/web/src/routes/Prosecutor/InvestigationCase/PoliceReport/PoliceReport.tsx @@ -13,6 +13,7 @@ import { FormFooter, PageHeader, PageLayout, + PageTitle, ProsecutorCaseInfo, } from '@island.is/judicial-system-web/src/components' import { @@ -73,11 +74,7 @@ const PoliceReport = () => { title={formatMessage(titles.prosecutor.investigationCases.policeReport)} /> - - - {formatMessage(icReportForm.heading)} - - + {formatMessage(icReportForm.heading)} diff --git a/apps/judicial-system/web/src/routes/Prosecutor/RestrictionCase/Defendant/Defendant.tsx b/apps/judicial-system/web/src/routes/Prosecutor/RestrictionCase/Defendant/Defendant.tsx index 685cf8a440e4..b7e0f94d90e4 100644 --- a/apps/judicial-system/web/src/routes/Prosecutor/RestrictionCase/Defendant/Defendant.tsx +++ b/apps/judicial-system/web/src/routes/Prosecutor/RestrictionCase/Defendant/Defendant.tsx @@ -16,6 +16,7 @@ import { FormFooter, PageHeader, PageLayout, + PageTitle, } from '@island.is/judicial-system-web/src/components' import { CaseOrigin, @@ -137,11 +138,7 @@ export const Defendant = () => { {!institutionLoading && ( <> - - - {formatMessage(m.heading)} - - + {formatMessage(m.heading)} { /> <> - - - {formatMessage(rcRequestedHearingArrangements.heading)} - - + + {formatMessage(rcRequestedHearingArrangements.heading)} + diff --git a/apps/judicial-system/web/src/routes/Prosecutor/RestrictionCase/Overview/Overview.tsx b/apps/judicial-system/web/src/routes/Prosecutor/RestrictionCase/Overview/Overview.tsx index 685a888a32fa..1c5d3b0e2723 100644 --- a/apps/judicial-system/web/src/routes/Prosecutor/RestrictionCase/Overview/Overview.tsx +++ b/apps/judicial-system/web/src/routes/Prosecutor/RestrictionCase/Overview/Overview.tsx @@ -34,6 +34,7 @@ import { Modal, PageHeader, PageLayout, + PageTitle, PdfButton, ProsecutorCaseInfo, UserContext, @@ -158,14 +159,12 @@ export const Overview = () => { /> )} - - - {formatMessage(m.headingV3, { - isExtended: Boolean(workingCase.parentCase), - caseType: workingCase.type, - })} - - + + {formatMessage(m.headingV3, { + isExtended: Boolean(workingCase.parentCase), + caseType: workingCase.type, + })} + {workingCase.state === CaseState.RECEIVED && workingCase.arraignmentDate?.date && diff --git a/apps/judicial-system/web/src/routes/Prosecutor/RestrictionCase/PoliceDemands/PoliceDemands.tsx b/apps/judicial-system/web/src/routes/Prosecutor/RestrictionCase/PoliceDemands/PoliceDemands.tsx index 2b2367ad5b95..fc985121ff41 100644 --- a/apps/judicial-system/web/src/routes/Prosecutor/RestrictionCase/PoliceDemands/PoliceDemands.tsx +++ b/apps/judicial-system/web/src/routes/Prosecutor/RestrictionCase/PoliceDemands/PoliceDemands.tsx @@ -21,6 +21,7 @@ import { FormFooter, PageHeader, PageLayout, + PageTitle, ProsecutorCaseInfo, SectionHeading, } from '@island.is/judicial-system-web/src/components' @@ -186,11 +187,7 @@ export const PoliceDemands = () => { title={formatMessage(titles.prosecutor.restrictionCases.policeDemands)} /> - - - {formatMessage(rcDemands.heading)} - - + {formatMessage(rcDemands.heading)} { title={formatMessage(titles.prosecutor.restrictionCases.policeReport)} /> - - - {formatMessage(rcReportForm.heading)} - - + {formatMessage(rcReportForm.heading)} diff --git a/apps/judicial-system/web/src/routes/Prosecutor/components/CaseFiles/CaseFiles.tsx b/apps/judicial-system/web/src/routes/Prosecutor/components/CaseFiles/CaseFiles.tsx index 396051818735..17c9e63443b4 100644 --- a/apps/judicial-system/web/src/routes/Prosecutor/components/CaseFiles/CaseFiles.tsx +++ b/apps/judicial-system/web/src/routes/Prosecutor/components/CaseFiles/CaseFiles.tsx @@ -21,6 +21,7 @@ import { Item, PageHeader, PageLayout, + PageTitle, ParentCaseFiles, ProsecutorCaseInfo, SectionHeading, @@ -197,11 +198,7 @@ export const CaseFiles = () => { > - - - {formatMessage(strings.heading)} - - + {formatMessage(strings.heading)} { title={formatMessage(titles.prosecutor.indictments.overview)} /> - - - {formatMessage(strings.heading)} - - + {formatMessage(strings.heading)} { - - - - - - {formatMessage(strings.title)} - - + + {formatMessage(strings.title)} + {workingCase.rulingDate && ( diff --git a/apps/judicial-system/web/src/routes/Shared/AppealToCourtOfAppeals/AppealToCourtOfAppeals.tsx b/apps/judicial-system/web/src/routes/Shared/AppealToCourtOfAppeals/AppealToCourtOfAppeals.tsx index fdea9436e1af..6d37c54802a8 100644 --- a/apps/judicial-system/web/src/routes/Shared/AppealToCourtOfAppeals/AppealToCourtOfAppeals.tsx +++ b/apps/judicial-system/web/src/routes/Shared/AppealToCourtOfAppeals/AppealToCourtOfAppeals.tsx @@ -4,7 +4,6 @@ import { useRouter } from 'next/router' import { Box, - Button, InputFileUpload, Text, UploadFile, @@ -22,6 +21,7 @@ import { Modal, PageHeader, PageLayout, + PageTitle, RulingDateLabel, SectionHeading, UserContext, @@ -111,20 +111,9 @@ const AppealToCourtOfAppeals = () => { - - - - - - {formatMessage(strings.title)} - - + + {formatMessage(strings.title)} + {workingCase.rulingDate && ( diff --git a/apps/judicial-system/web/src/routes/Shared/Login/Login.tsx b/apps/judicial-system/web/src/routes/Shared/Login/Login.tsx index a6d630f8f62b..cd4f118ceb05 100644 --- a/apps/judicial-system/web/src/routes/Shared/Login/Login.tsx +++ b/apps/judicial-system/web/src/routes/Shared/Login/Login.tsx @@ -3,7 +3,10 @@ import { useRouter } from 'next/router' import { AlertMessage, Box, Button, Text } from '@island.is/island-ui/core' import { login, titles } from '@island.is/judicial-system-web/messages' -import { PageHeader } from '@island.is/judicial-system-web/src/components' +import { + PageHeader, + PageTitle, +} from '@island.is/judicial-system-web/src/components' import { api } from '@island.is/judicial-system-web/src/services' import { LoginErrorCodes } from '@island.is/judicial-system-web/src/types' @@ -64,11 +67,9 @@ const Login = () => {
)}
- - - {formatMessage(login.general.heading)} - - + + {formatMessage(login.general.heading)} +
{formatMessage(login.general.description)} diff --git a/apps/judicial-system/web/src/routes/Shared/Statement/Statement.tsx b/apps/judicial-system/web/src/routes/Shared/Statement/Statement.tsx index f2c74e70c11e..dc760154e637 100644 --- a/apps/judicial-system/web/src/routes/Shared/Statement/Statement.tsx +++ b/apps/judicial-system/web/src/routes/Shared/Statement/Statement.tsx @@ -4,7 +4,6 @@ import { useRouter } from 'next/router' import { Box, - Button, InputFileUpload, Text, UploadFile, @@ -23,6 +22,7 @@ import { Modal, PageHeader, PageLayout, + PageTitle, RulingDateLabel, SectionHeading, UserContext, @@ -118,20 +118,9 @@ const Statement = () => { - - - - - - {formatMessage(strings.title)} - - + + {formatMessage(strings.title)} + {workingCase.rulingDate && ( From 64ad820c3e36082f58704206c71efbb1a4b39303 Mon Sep 17 00:00:00 2001 From: unakb Date: Thu, 14 Nov 2024 14:07:48 +0000 Subject: [PATCH 04/66] chore(j-s): Logging more info for system status (#16808) * chore(j-s): Logging more info for system status * fix(j-s): Filtering case list to remove deleted indictments for digital mailbox * Update event.service.ts * Update event.service.ts --------- Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- .../src/app/modules/case/case.service.ts | 17 --------- .../modules/case/internalCase.controller.ts | 4 +- .../app/modules/case/internalCase.service.ts | 6 +++ .../modules/case/limitedAccessCase.service.ts | 17 --------- .../src/app/modules/event/event.service.ts | 38 +++++++++++++++++++ .../app/modules/subpoena/subpoena.service.ts | 4 ++ .../xrd-api/src/app/app.controller.ts | 2 +- 7 files changed, 51 insertions(+), 37 deletions(-) diff --git a/apps/judicial-system/backend/src/app/modules/case/case.service.ts b/apps/judicial-system/backend/src/app/modules/case/case.service.ts index c9b3cc707220..6f77a6752c3e 100644 --- a/apps/judicial-system/backend/src/app/modules/case/case.service.ts +++ b/apps/judicial-system/backend/src/app/modules/case/case.service.ts @@ -1703,23 +1703,6 @@ export class CaseService { const schedulingNewArraignmentDateForIndictmentCase = isIndictmentCase(theCase.type) && Boolean(updatedArraignmentDate) - if (update.accusedPostponedAppealDate) { - const relevantInfo = { - appealState: theCase.appealState, - accusedAppealDecision: theCase.accusedAppealDecision, - accusedPostponedAppealDate: theCase.accusedPostponedAppealDate, - prosecutorAppealDecision: theCase.prosecutorAppealDecision, - prosecutorPostponedAppealDate: theCase.prosecutorPostponedAppealDate, - update: update, - } - - this.logger.info( - `Updating accusedPostponedAppealDate in case service for case ${ - theCase.id - }. Relevant info: ${JSON.stringify(relevantInfo)}`, - ) - } - return this.sequelize .transaction(async (transaction) => { if (receivingCase) { diff --git a/apps/judicial-system/backend/src/app/modules/case/internalCase.controller.ts b/apps/judicial-system/backend/src/app/modules/case/internalCase.controller.ts index c81b939f4a16..2b03c85cdb96 100644 --- a/apps/judicial-system/backend/src/app/modules/case/internalCase.controller.ts +++ b/apps/judicial-system/backend/src/app/modules/case/internalCase.controller.ts @@ -80,7 +80,7 @@ export class InternalCaseController { @ApiOkResponse({ type: Case, isArray: true, - description: 'Gets all indictment cases', + description: 'Gets all indictment cases for digital mailbox', }) @UseInterceptors(CasesInterceptor) getIndictmentCases( @@ -96,7 +96,7 @@ export class InternalCaseController { @Post('case/indictment/:caseId') @ApiOkResponse({ type: Case, - description: 'Gets indictment case by id', + description: 'Gets indictment case by id for digital mailbox', }) @UseInterceptors(CaseInterceptor) getIndictmentCase( diff --git a/apps/judicial-system/backend/src/app/modules/case/internalCase.service.ts b/apps/judicial-system/backend/src/app/modules/case/internalCase.service.ts index 80385cf96b66..211931752bfc 100644 --- a/apps/judicial-system/backend/src/app/modules/case/internalCase.service.ts +++ b/apps/judicial-system/backend/src/app/modules/case/internalCase.service.ts @@ -1223,6 +1223,12 @@ export class InternalCaseService { attributes: ['id', 'courtCaseNumber', 'type', 'state'], where: { type: CaseType.INDICTMENT, + // Make sure we don't send cases that are in deleted or other inaccessible states + state: [ + CaseState.RECEIVED, + CaseState.COMPLETED, + CaseState.WAITING_FOR_CANCELLATION, + ], // The national id could be without a hyphen or with a hyphen so we need to // search for both '$defendants.national_id$': normalizeAndFormatNationalId(nationalId), diff --git a/apps/judicial-system/backend/src/app/modules/case/limitedAccessCase.service.ts b/apps/judicial-system/backend/src/app/modules/case/limitedAccessCase.service.ts index ab32e32f69d3..bd17a87781d9 100644 --- a/apps/judicial-system/backend/src/app/modules/case/limitedAccessCase.service.ts +++ b/apps/judicial-system/backend/src/app/modules/case/limitedAccessCase.service.ts @@ -319,23 +319,6 @@ export class LimitedAccessCaseService { update: LimitedAccessUpdateCase, user: TUser, ): Promise { - if (update.accusedPostponedAppealDate) { - const relevantInfo = { - appealState: theCase.appealState, - accusedAppealDecision: theCase.accusedAppealDecision, - accusedPostponedAppealDate: theCase.accusedPostponedAppealDate, - prosecutorAppealDecision: theCase.prosecutorAppealDecision, - prosecutorPostponedAppealDate: theCase.prosecutorPostponedAppealDate, - update: update, - } - - this.logger.info( - `Updating accusedPostponedAppealDate in limited access case service for case ${ - theCase.id - }. Relevant info: ${JSON.stringify(relevantInfo)}`, - ) - } - const [numberOfAffectedRows] = await this.caseModel.update( { ...update }, { where: { id: theCase.id } }, diff --git a/apps/judicial-system/backend/src/app/modules/event/event.service.ts b/apps/judicial-system/backend/src/app/modules/event/event.service.ts index 36b84bf40361..9ab7679e86ae 100644 --- a/apps/judicial-system/backend/src/app/modules/event/event.service.ts +++ b/apps/judicial-system/backend/src/app/modules/event/event.service.ts @@ -78,6 +78,17 @@ export type CaseEvent = | 'SCHEDULE_COURT_DATE' | 'SUBPOENA_SERVICE_STATUS' +const caseEventsToLog = [ + 'CREATE', + 'CREATE_XRD', + 'SCHEDULE_COURT_DATE', + 'SUBPOENA_SERVICE_STATUS', + 'COMPLETE', + 'ACCEPT', + 'REJECT', + 'DISMISS', +] + @Injectable() export class EventService { constructor( @@ -152,6 +163,7 @@ export class EventService { ], }), }) + this.logInfo(event, theCase) } catch (error) { // Tolerate failure, but log error this.logger.error( @@ -210,4 +222,30 @@ export class EventService { return infoText } + + logInfo = (event: CaseEvent, theCase: Case) => { + if (!caseEventsToLog.includes(event)) { + return + } + + let extraInfo + + switch (event) { + case 'SCHEDULE_COURT_DATE': + extraInfo = `courtDate: ${formatDate( + DateLog.courtDate(theCase.dateLogs)?.date ?? + DateLog.arraignmentDate(theCase.dateLogs)?.date, + 'Pp', + )}` + break + default: + break + } + + this.logger.info(`Event ${event} for case ${theCase.id}`, { + caseId: theCase.id, + event, + extraInfo, + }) + } } diff --git a/apps/judicial-system/backend/src/app/modules/subpoena/subpoena.service.ts b/apps/judicial-system/backend/src/app/modules/subpoena/subpoena.service.ts index 62e0eae1fc01..9f7322f11fe3 100644 --- a/apps/judicial-system/backend/src/app/modules/subpoena/subpoena.service.ts +++ b/apps/judicial-system/backend/src/app/modules/subpoena/subpoena.service.ts @@ -331,6 +331,10 @@ export class SubpoenaService { ) } + this.logger.info( + `Subpoena ${createdSubpoena.subpoenaId} delivered to police`, + ) + return { delivered: true } } catch (error) { this.logger.error('Error delivering subpoena to police', error) diff --git a/apps/judicial-system/xrd-api/src/app/app.controller.ts b/apps/judicial-system/xrd-api/src/app/app.controller.ts index d5e3a6fd9de8..5e49256d0d48 100644 --- a/apps/judicial-system/xrd-api/src/app/app.controller.ts +++ b/apps/judicial-system/xrd-api/src/app/app.controller.ts @@ -71,7 +71,7 @@ export class AppController { @Param('subpoenaId', new ParseUUIDPipe()) subpoenaId: string, @Body() updateSubpoena: UpdateSubpoenaDto, ): Promise { - this.logger.debug(`Updating subpoena for ${subpoenaId}`) + this.logger.info(`Updating subpoena ${subpoenaId}`) return this.appService.updateSubpoena(subpoenaId, updateSubpoena) } From b43466005f9bff62ee49aa8876079cc77f0c5c34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81sd=C3=ADs=20Erna=20Gu=C3=B0mundsd=C3=B3ttir?= Date: Thu, 14 Nov 2024 14:50:36 +0000 Subject: [PATCH 05/66] fix(api): add ff to resolver (#16865) Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- .../src/lib/health-directorate.module.ts | 3 ++- .../src/lib/health-directorate.resolver.ts | 11 +++++++++-- libs/feature-flags/src/lib/features.ts | 3 ++- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/libs/api/domains/health-directorate/src/lib/health-directorate.module.ts b/libs/api/domains/health-directorate/src/lib/health-directorate.module.ts index 23a06c73e96c..a4386cc36008 100644 --- a/libs/api/domains/health-directorate/src/lib/health-directorate.module.ts +++ b/libs/api/domains/health-directorate/src/lib/health-directorate.module.ts @@ -2,9 +2,10 @@ import { HealthDirectorateClientModule } from '@island.is/clients/health-directo import { Module } from '@nestjs/common' import { HealthDirectorateResolver } from './health-directorate.resolver' import { HealthDirectorateService } from './health-directorate.service' +import { FeatureFlagModule } from '@island.is/nest/feature-flags' @Module({ - imports: [HealthDirectorateClientModule], + imports: [HealthDirectorateClientModule, FeatureFlagModule], providers: [HealthDirectorateResolver, HealthDirectorateService], }) export class HealthDirectorateModule {} diff --git a/libs/api/domains/health-directorate/src/lib/health-directorate.resolver.ts b/libs/api/domains/health-directorate/src/lib/health-directorate.resolver.ts index 9961e0cd8328..9473cac0eca2 100644 --- a/libs/api/domains/health-directorate/src/lib/health-directorate.resolver.ts +++ b/libs/api/domains/health-directorate/src/lib/health-directorate.resolver.ts @@ -22,8 +22,12 @@ import { DonorInput, Organ, OrganDonation } from './models/organ-donation.model' import type { Locale } from '@island.is/shared/types' import { Vaccinations } from './models/vaccinations.model' import { HealthDirectorateService } from './health-directorate.service' - -@UseGuards(IdsUserGuard, ScopesGuard) +import { + FeatureFlag, + FeatureFlagGuard, + Features, +} from '@island.is/nest/feature-flags' +@UseGuards(IdsUserGuard, ScopesGuard, FeatureFlagGuard) @Scopes(ApiScope.internal) @Audit({ namespace: '@island.is/api/health-directorate' }) @Resolver(() => OrganDonation) @@ -35,6 +39,7 @@ export class HealthDirectorateResolver { name: 'healthDirectorateOrganDonation', }) @Audit() + @FeatureFlag(Features.servicePortalHealthOrganDonationPageEnabled) async getDonorStatus( @Args('locale', { type: () => String, nullable: true }) locale: Locale = 'is', @@ -58,6 +63,7 @@ export class HealthDirectorateResolver { name: 'healthDirectorateOrganDonationUpdateDonorStatus', }) @Audit() + @FeatureFlag(Features.servicePortalHealthOrganDonationPageEnabled) async updateDonorStatus( @Args('input') input: DonorInput, @Args('locale', { type: () => String, nullable: true }) @@ -72,6 +78,7 @@ export class HealthDirectorateResolver { name: 'healthDirectorateVaccinations', }) @Audit() + @FeatureFlag(Features.servicePortalHealthVaccinationsPageEnabled) getVaccinations( @Args('locale', { type: () => String, nullable: true }) locale: Locale = 'is', diff --git a/libs/feature-flags/src/lib/features.ts b/libs/feature-flags/src/lib/features.ts index 71759a803ae5..ae839cdd1690 100644 --- a/libs/feature-flags/src/lib/features.ts +++ b/libs/feature-flags/src/lib/features.ts @@ -45,7 +45,8 @@ export enum Features { servicePortalVehicleBulkMileagePageEnabled = 'isServicePortalVehicleBulkMileagePageEnabled', servicePortalSocialInsurancePageEnabled = 'isServicePortalSocialInsurancePageEnabled', servicePortalSocialInsuranceIncomePlanPageEnabled = 'isServicePortalSocialInsuranceIncomePlanPageEnabled', - + servicePortalHealthVaccinationsPageEnabled = 'isServicePortalHealthVaccinationsPageEnabled', + servicePortalHealthOrganDonationPageEnabled = 'isServicePortalHealthOrganDonationPageEnabled', ServicePortalNotificationsEnabled = 'isServicePortalNotificationsPageEnabled', servicePortalLawAndOrderModuleEnabled = 'isServicePortalLawAndOrderModuleEnabled', servicePortalDocumentsActionsEnabled = 'isServicePortalDocumentsActionsEnabled', From e1e3ef7e3573f6e694159d3c1cb9effa88dfa4e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B3n=20Levy?= Date: Thu, 14 Nov 2024 15:25:27 +0000 Subject: [PATCH 06/66] fix: add global values to service values files (#16869) * fix: add global values to service values files * chore: charts update dirty files --------- Co-authored-by: andes-it Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- .../air-discount-scheme-api/values.dev.yaml | 162 ++--- .../air-discount-scheme-api/values.prod.yaml | 156 +++-- .../values.staging.yaml | 162 ++--- .../values.dev.yaml | 220 ++++--- .../values.prod.yaml | 210 +++--- .../values.staging.yaml | 220 ++++--- .../air-discount-scheme-web/values.dev.yaml | 156 +++-- .../air-discount-scheme-web/values.prod.yaml | 148 +++-- .../values.staging.yaml | 156 +++-- charts/services/api/values.dev.yaml | 622 +++++++++--------- charts/services/api/values.prod.yaml | 620 ++++++++--------- charts/services/api/values.staging.yaml | 614 ++++++++--------- .../values.dev.yaml | 212 +++--- .../values.prod.yaml | 212 +++--- .../values.staging.yaml | 212 +++--- .../application-system-api/values.dev.yaml | 496 +++++++------- .../application-system-api/values.prod.yaml | 496 +++++++------- .../values.staging.yaml | 496 +++++++------- .../application-system-form/values.dev.yaml | 144 ++-- .../application-system-form/values.prod.yaml | 150 +++-- .../values.staging.yaml | 144 ++-- .../services/auth-admin-web/values.dev.yaml | 148 +++-- .../services/auth-admin-web/values.prod.yaml | 144 ++-- .../auth-admin-web/values.staging.yaml | 148 +++-- .../consultation-portal/values.dev.yaml | 144 ++-- .../consultation-portal/values.prod.yaml | 150 +++-- .../consultation-portal/values.staging.yaml | 144 ++-- .../services/contentful-apps/values.dev.yaml | 134 ++-- .../services/contentful-apps/values.prod.yaml | 134 ++-- .../values.dev.yaml | 138 ++-- .../values.prod.yaml | 138 ++-- .../services/download-service/values.dev.yaml | 210 +++--- .../download-service/values.prod.yaml | 208 +++--- .../download-service/values.staging.yaml | 210 +++--- .../endorsement-system-api/values.dev.yaml | 218 +++--- .../endorsement-system-api/values.prod.yaml | 218 +++--- .../values.staging.yaml | 218 +++--- .../external-contracts-tests/values.dev.yaml | 122 ++-- .../github-actions-cache/values.dev.yaml | 150 +++-- .../values.dev.yaml | 176 ++--- .../values.prod.yaml | 176 ++--- .../values.staging.yaml | 176 ++--- .../services/identity-server/values.dev.yaml | 250 +++---- .../services/identity-server/values.prod.yaml | 248 +++---- .../identity-server/values.staging.yaml | 250 +++---- .../island-ui-storybook/values.dev.yaml | 124 ++-- .../island-ui-storybook/values.prod.yaml | 124 ++-- .../island-ui-storybook/values.staging.yaml | 124 ++-- .../judicial-system-api/values.dev.yaml | 180 ++--- .../judicial-system-api/values.prod.yaml | 180 ++--- .../judicial-system-api/values.staging.yaml | 180 ++--- .../judicial-system-backend/values.dev.yaml | 268 ++++---- .../judicial-system-backend/values.prod.yaml | 268 ++++---- .../values.staging.yaml | 270 ++++---- .../values.dev.yaml | 152 +++-- .../values.prod.yaml | 152 +++-- .../values.staging.yaml | 152 +++-- .../values.dev.yaml | 140 ++-- .../values.prod.yaml | 140 ++-- .../values.staging.yaml | 140 ++-- .../judicial-system-robot-api/values.dev.yaml | 148 +++-- .../values.prod.yaml | 148 +++-- .../values.staging.yaml | 148 +++-- .../judicial-system-scheduler/values.dev.yaml | 144 ++-- .../values.prod.yaml | 144 ++-- .../values.staging.yaml | 144 ++-- .../judicial-system-web/values.dev.yaml | 138 ++-- .../judicial-system-web/values.prod.yaml | 138 ++-- .../judicial-system-web/values.staging.yaml | 138 ++-- .../judicial-system-xrd-api/values.dev.yaml | 150 +++-- .../judicial-system-xrd-api/values.prod.yaml | 150 +++-- .../values.staging.yaml | 150 +++-- charts/services/license-api/values.dev.yaml | 198 +++--- charts/services/license-api/values.prod.yaml | 198 +++--- .../services/license-api/values.staging.yaml | 198 +++--- charts/services/portals-admin/values.dev.yaml | 142 ++-- .../services/portals-admin/values.prod.yaml | 148 +++-- .../portals-admin/values.staging.yaml | 142 ++-- .../regulations-admin-backend/values.dev.yaml | 184 +++--- .../values.prod.yaml | 184 +++--- .../values.staging.yaml | 184 +++--- .../search-indexer-service/values.dev.yaml | 250 +++---- .../search-indexer-service/values.prod.yaml | 248 +++---- .../values.staging.yaml | 250 +++---- .../service-portal-api/values.dev.yaml | 248 +++---- .../service-portal-api/values.prod.yaml | 248 +++---- .../service-portal-api/values.staging.yaml | 248 +++---- .../services/service-portal/values.dev.yaml | 150 +++-- .../services/service-portal/values.prod.yaml | 156 +++-- .../service-portal/values.staging.yaml | 150 +++-- .../services-auth-admin-api/values.dev.yaml | 194 +++--- .../services-auth-admin-api/values.prod.yaml | 194 +++--- .../values.staging.yaml | 194 +++--- .../values.dev.yaml | 192 +++--- .../values.prod.yaml | 192 +++--- .../values.staging.yaml | 192 +++--- .../values.dev.yaml | 134 ++-- .../values.prod.yaml | 134 ++-- .../values.staging.yaml | 134 ++-- .../services-auth-ids-api/values.dev.yaml | 262 ++++---- .../services-auth-ids-api/values.prod.yaml | 262 ++++---- .../services-auth-ids-api/values.staging.yaml | 262 ++++---- .../values.dev.yaml | 134 ++-- .../values.prod.yaml | 134 ++-- .../values.staging.yaml | 134 ++-- .../values.dev.yaml | 180 ++--- .../values.prod.yaml | 180 ++--- .../values.staging.yaml | 180 ++--- .../services-auth-public-api/values.dev.yaml | 212 +++--- .../services-auth-public-api/values.prod.yaml | 212 +++--- .../values.staging.yaml | 212 +++--- .../values.dev.yaml | 176 ++--- .../values.prod.yaml | 180 ++--- .../values.staging.yaml | 176 ++--- .../services-documents/values.dev.yaml | 152 +++-- .../services-documents/values.prod.yaml | 152 +++-- .../services-documents/values.staging.yaml | 152 +++-- .../services-sessions-cleanup/values.dev.yaml | 132 ++-- .../values.prod.yaml | 132 ++-- .../values.staging.yaml | 132 ++-- .../services-sessions-worker/values.dev.yaml | 184 +++--- .../services-sessions-worker/values.prod.yaml | 184 +++--- .../values.staging.yaml | 184 +++--- .../services-sessions/values.dev.yaml | 144 ++-- .../services-sessions/values.prod.yaml | 144 ++-- .../services-sessions/values.staging.yaml | 144 ++-- .../values.dev.yaml | 180 ++--- .../values.prod.yaml | 180 ++--- .../values.staging.yaml | 180 ++--- .../values.dev.yaml | 250 +++---- .../values.prod.yaml | 250 +++---- .../values.staging.yaml | 250 +++---- .../services/skilavottord-web/values.dev.yaml | 144 ++-- .../skilavottord-web/values.prod.yaml | 150 +++-- .../skilavottord-web/values.staging.yaml | 144 ++-- .../services/skilavottord-ws/values.dev.yaml | 188 +++--- .../services/skilavottord-ws/values.prod.yaml | 194 +++--- .../skilavottord-ws/values.staging.yaml | 188 +++--- .../values.dev.yaml | 180 ++--- .../values.prod.yaml | 180 ++--- .../values.staging.yaml | 180 ++--- .../user-notification-worker/values.dev.yaml | 234 +++---- .../user-notification-worker/values.prod.yaml | 234 +++---- .../values.staging.yaml | 234 +++---- .../user-notification/values.dev.yaml | 216 +++--- .../user-notification/values.prod.yaml | 216 +++--- .../user-notification/values.staging.yaml | 216 +++--- charts/services/web/values.dev.yaml | 152 +++-- charts/services/web/values.prod.yaml | 158 ++--- charts/services/web/values.staging.yaml | 154 +++-- .../services/xroad-collector/values.dev.yaml | 144 ++-- .../services/xroad-collector/values.prod.yaml | 144 ++-- .../xroad-collector/values.staging.yaml | 144 ++-- infra/src/cli/generate-chart-values.ts | 9 +- 154 files changed, 15517 insertions(+), 13988 deletions(-) diff --git a/charts/services/air-discount-scheme-api/values.dev.yaml b/charts/services/air-discount-scheme-api/values.dev.yaml index 2abd0492814c..899274367f69 100644 --- a/charts/services/air-discount-scheme-api/values.dev.yaml +++ b/charts/services/air-discount-scheme-api/values.dev.yaml @@ -5,81 +5,91 @@ # ##################################################################### -service: - name: 'air-discount-scheme-api' - enabled: true +global: env: - AUTH_AUDIENCE: 'loftbru.dev01.devland.is' - BACKEND_URL: 'http://web-air-discount-scheme-backend' - CONTENTFUL_HOST: 'preview.contentful.com' - ELASTIC_NODE: 'https://vpc-search-njkekqydiegezhr4vqpkfnw5la.eu-west-1.es.amazonaws.com' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - grantNamespaces: - - 'nginx-ingress-external' - - 'islandis' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 20 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/air-discount-scheme-api' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'loftbru.dev01.devland.is' - paths: - - '/api/graphql' - - host: 'loftbru-cf.dev01.devland.is' - paths: - - '/api/graphql' - namespace: 'air-discount-scheme' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '50m' - memory: '256Mi' - secrets: - ADMINS: '/k8s/air-discount-scheme/api/ADMINS' - AUTH_JWT_SECRET: '/k8s/air-discount-scheme/api/AUTH_JWT_SECRET' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - CONTENTFUL_ACCESS_TOKEN: '/k8s/air-discount-scheme/api/CONTENTFUL_ACCESS_TOKEN' - DEVELOPERS: '/k8s/air-discount-scheme/api/DEVELOPERS' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'air-discount-scheme-api' +enabled: true +env: + AUTH_AUDIENCE: 'loftbru.dev01.devland.is' + BACKEND_URL: 'http://web-air-discount-scheme-backend' + CONTENTFUL_HOST: 'preview.contentful.com' + ELASTIC_NODE: 'https://vpc-search-njkekqydiegezhr4vqpkfnw5la.eu-west-1.es.amazonaws.com' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: + - 'nginx-ingress-external' + - 'islandis' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 20 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/air-discount-scheme-api' +ingress: + primary-alb: annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/air-discount-scheme-api' - create: true - name: 'air-discount-scheme-api' + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'loftbru.dev01.devland.is' + paths: + - '/api/graphql' + - host: 'loftbru-cf.dev01.devland.is' + paths: + - '/api/graphql' +namespace: 'air-discount-scheme' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '50m' + memory: '256Mi' +secrets: + ADMINS: '/k8s/air-discount-scheme/api/ADMINS' + AUTH_JWT_SECRET: '/k8s/air-discount-scheme/api/AUTH_JWT_SECRET' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + CONTENTFUL_ACCESS_TOKEN: '/k8s/air-discount-scheme/api/CONTENTFUL_ACCESS_TOKEN' + DEVELOPERS: '/k8s/air-discount-scheme/api/DEVELOPERS' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/air-discount-scheme-api' + create: true + name: 'air-discount-scheme-api' diff --git a/charts/services/air-discount-scheme-api/values.prod.yaml b/charts/services/air-discount-scheme-api/values.prod.yaml index b817389c689e..1557cd1d2b25 100644 --- a/charts/services/air-discount-scheme-api/values.prod.yaml +++ b/charts/services/air-discount-scheme-api/values.prod.yaml @@ -5,78 +5,88 @@ # ##################################################################### -service: - name: 'air-discount-scheme-api' - enabled: true +global: env: - AUTH_AUDIENCE: 'loftbru.island.is' - BACKEND_URL: 'http://web-air-discount-scheme-backend' - CONTENTFUL_HOST: 'cdn.contentful.com' - ELASTIC_NODE: 'https://vpc-search-mw4w5c2m2g5edjrtvwbpzhkw24.eu-west-1.es.amazonaws.com' - IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - grantNamespaces: - - 'nginx-ingress-external' - - 'islandis' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 20 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/air-discount-scheme-api' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'loftbru.island.is' - paths: - - '/api/graphql' - namespace: 'air-discount-scheme' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '50m' - memory: '256Mi' - secrets: - ADMINS: '/k8s/air-discount-scheme/api/ADMINS' - AUTH_JWT_SECRET: '/k8s/air-discount-scheme/api/AUTH_JWT_SECRET' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - CONTENTFUL_ACCESS_TOKEN: '/k8s/air-discount-scheme/api/CONTENTFUL_ACCESS_TOKEN' - DEVELOPERS: '/k8s/air-discount-scheme/api/DEVELOPERS' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'air-discount-scheme-api' +enabled: true +env: + AUTH_AUDIENCE: 'loftbru.island.is' + BACKEND_URL: 'http://web-air-discount-scheme-backend' + CONTENTFUL_HOST: 'cdn.contentful.com' + ELASTIC_NODE: 'https://vpc-search-mw4w5c2m2g5edjrtvwbpzhkw24.eu-west-1.es.amazonaws.com' + IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' +grantNamespaces: + - 'nginx-ingress-external' + - 'islandis' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 20 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/air-discount-scheme-api' +ingress: + primary-alb: annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/air-discount-scheme-api' - create: true - name: 'air-discount-scheme-api' + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'loftbru.island.is' + paths: + - '/api/graphql' +namespace: 'air-discount-scheme' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '50m' + memory: '256Mi' +secrets: + ADMINS: '/k8s/air-discount-scheme/api/ADMINS' + AUTH_JWT_SECRET: '/k8s/air-discount-scheme/api/AUTH_JWT_SECRET' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + CONTENTFUL_ACCESS_TOKEN: '/k8s/air-discount-scheme/api/CONTENTFUL_ACCESS_TOKEN' + DEVELOPERS: '/k8s/air-discount-scheme/api/DEVELOPERS' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/air-discount-scheme-api' + create: true + name: 'air-discount-scheme-api' diff --git a/charts/services/air-discount-scheme-api/values.staging.yaml b/charts/services/air-discount-scheme-api/values.staging.yaml index 0b7c0438900e..03dae66f38f1 100644 --- a/charts/services/air-discount-scheme-api/values.staging.yaml +++ b/charts/services/air-discount-scheme-api/values.staging.yaml @@ -5,81 +5,91 @@ # ##################################################################### -service: - name: 'air-discount-scheme-api' - enabled: true +global: env: - AUTH_AUDIENCE: 'loftbru.staging01.devland.is' - BACKEND_URL: 'http://web-air-discount-scheme-backend' - CONTENTFUL_HOST: 'cdn.contentful.com' - ELASTIC_NODE: 'https://vpc-search-q6hdtjcdlhkffyxvrnmzfwphuq.eu-west-1.es.amazonaws.com' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - grantNamespaces: - - 'nginx-ingress-external' - - 'islandis' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 20 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/air-discount-scheme-api' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'loftbru.staging01.devland.is' - paths: - - '/api/graphql' - - host: 'loftbru-cf.staging01.devland.is' - paths: - - '/api/graphql' - namespace: 'air-discount-scheme' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '50m' - memory: '256Mi' - secrets: - ADMINS: '/k8s/air-discount-scheme/api/ADMINS' - AUTH_JWT_SECRET: '/k8s/air-discount-scheme/api/AUTH_JWT_SECRET' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - CONTENTFUL_ACCESS_TOKEN: '/k8s/air-discount-scheme/api/CONTENTFUL_ACCESS_TOKEN' - DEVELOPERS: '/k8s/air-discount-scheme/api/DEVELOPERS' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'air-discount-scheme-api' +enabled: true +env: + AUTH_AUDIENCE: 'loftbru.staging01.devland.is' + BACKEND_URL: 'http://web-air-discount-scheme-backend' + CONTENTFUL_HOST: 'cdn.contentful.com' + ELASTIC_NODE: 'https://vpc-search-q6hdtjcdlhkffyxvrnmzfwphuq.eu-west-1.es.amazonaws.com' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: + - 'nginx-ingress-external' + - 'islandis' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 20 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/air-discount-scheme-api' +ingress: + primary-alb: annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/air-discount-scheme-api' - create: true - name: 'air-discount-scheme-api' + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'loftbru.staging01.devland.is' + paths: + - '/api/graphql' + - host: 'loftbru-cf.staging01.devland.is' + paths: + - '/api/graphql' +namespace: 'air-discount-scheme' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '50m' + memory: '256Mi' +secrets: + ADMINS: '/k8s/air-discount-scheme/api/ADMINS' + AUTH_JWT_SECRET: '/k8s/air-discount-scheme/api/AUTH_JWT_SECRET' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + CONTENTFUL_ACCESS_TOKEN: '/k8s/air-discount-scheme/api/CONTENTFUL_ACCESS_TOKEN' + DEVELOPERS: '/k8s/air-discount-scheme/api/DEVELOPERS' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/air-discount-scheme-api' + create: true + name: 'air-discount-scheme-api' diff --git a/charts/services/air-discount-scheme-backend/values.dev.yaml b/charts/services/air-discount-scheme-backend/values.dev.yaml index a7bf4efcb972..7ef002972cb3 100644 --- a/charts/services/air-discount-scheme-backend/values.dev.yaml +++ b/charts/services/air-discount-scheme-backend/values.dev.yaml @@ -5,116 +5,126 @@ # ##################################################################### -service: - name: 'air-discount-scheme-backend' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'air-discount-scheme-backend' +enabled: true +env: + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'air_discount_scheme_backend' + DB_REPLICAS_HOST: 'postgres-applications-reader.internal' + DB_USER: 'air_discount_scheme_backend' + ENVIRONMENT: 'dev' + IDENTITY_SERVER_CLIENT_ID: '@vegagerdin.is/clients/air-discount-scheme' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + REDIS_URL_NODE_01: 'clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379' + SERVERSIDE_FEATURES_ON: '' + XROAD_BASE_PATH: 'http://securityserver.dev01.devland.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.dev01.devland.is/r1/IS-DEV' + XROAD_CLIENT_ID: 'IS-DEV/GOV/10000/island-is-client' + XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' + XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS-DEV/GOV/10001/SKRA-Protected/Einstaklingar-v1' + XROAD_TJODSKRA_API_PATH: '/SKRA-Protected/Einstaklingar-v1' + XROAD_TJODSKRA_MEMBER_CODE: '10001' + XROAD_TLS_BASE_PATH: 'https://securityserver.dev01.devland.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.dev01.devland.is/r1/IS-DEV' +grantNamespaces: + - 'islandis' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 20 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/air-discount-scheme-backend' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/enable-global-auth: 'false' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'loftbru.dev01.devland.is' + paths: + - '/api/swagger' + - '/api/public' + - host: 'loftbru-cf.dev01.devland.is' + paths: + - '/api/swagger' + - '/api/public' +initContainer: + containers: + - args: + - 'sequelize-cli' + - 'db:migrate' + command: + - 'npx' + name: 'migrations' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' env: DB_HOST: 'postgres-applications.internal' DB_NAME: 'air_discount_scheme_backend' DB_REPLICAS_HOST: 'postgres-applications-reader.internal' DB_USER: 'air_discount_scheme_backend' - ENVIRONMENT: 'dev' - IDENTITY_SERVER_CLIENT_ID: '@vegagerdin.is/clients/air-discount-scheme' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' - REDIS_URL_NODE_01: 'clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379' SERVERSIDE_FEATURES_ON: '' - XROAD_BASE_PATH: 'http://securityserver.dev01.devland.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.dev01.devland.is/r1/IS-DEV' - XROAD_CLIENT_ID: 'IS-DEV/GOV/10000/island-is-client' - XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' - XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS-DEV/GOV/10001/SKRA-Protected/Einstaklingar-v1' - XROAD_TJODSKRA_API_PATH: '/SKRA-Protected/Einstaklingar-v1' - XROAD_TJODSKRA_MEMBER_CODE: '10001' - XROAD_TLS_BASE_PATH: 'https://securityserver.dev01.devland.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.dev01.devland.is/r1/IS-DEV' - grantNamespaces: - - 'islandis' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 20 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/air-discount-scheme-backend' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/enable-global-auth: 'false' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'loftbru.dev01.devland.is' - paths: - - '/api/swagger' - - '/api/public' - - host: 'loftbru-cf.dev01.devland.is' - paths: - - '/api/swagger' - - '/api/public' - initContainer: - containers: - - args: - - 'sequelize-cli' - - 'db:migrate' - command: - - 'npx' - name: 'migrations' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'air_discount_scheme_backend' - DB_REPLICAS_HOST: 'postgres-applications-reader.internal' - DB_USER: 'air_discount_scheme_backend' - SERVERSIDE_FEATURES_ON: '' - secrets: - DB_PASS: '/k8s/air-discount-scheme-backend/DB_PASSWORD' - namespace: 'air-discount-scheme' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '50m' - memory: '256Mi' secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' DB_PASS: '/k8s/air-discount-scheme-backend/DB_PASSWORD' - ERNIR_API_KEY: '/k8s/air-discount-scheme/backend/ERNIR_API_KEY' - ICELANDAIR_API_KEY: '/k8s/air-discount-scheme/backend/ICELANDAIR_API_KEY' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/air-discount-scheme-backend/VEGAGERDIN_IDS_CLIENTS_ADS_SECRET' - MYFLUG_API_KEY: '/k8s/air-discount-scheme/backend/MYFLUG_API_KEY' - NATIONAL_REGISTRY_PASSWORD: '/k8s/air-discount-scheme/backend/NATIONAL_REGISTRY_PASSWORD' - NATIONAL_REGISTRY_URL: '/k8s/air-discount-scheme/backend/NATIONAL_REGISTRY_URL' - NATIONAL_REGISTRY_USERNAME: '/k8s/air-discount-scheme/backend/NATIONAL_REGISTRY_USERNAME' - NORLANDAIR_API_KEY: '/k8s/air-discount-scheme/backend/NORLANDAIR_API_KEY' - securityContext: - allowPrivilegeEscalation: false - privileged: false +namespace: 'air-discount-scheme' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '50m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/air-discount-scheme-backend/DB_PASSWORD' + ERNIR_API_KEY: '/k8s/air-discount-scheme/backend/ERNIR_API_KEY' + ICELANDAIR_API_KEY: '/k8s/air-discount-scheme/backend/ICELANDAIR_API_KEY' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/air-discount-scheme-backend/VEGAGERDIN_IDS_CLIENTS_ADS_SECRET' + MYFLUG_API_KEY: '/k8s/air-discount-scheme/backend/MYFLUG_API_KEY' + NATIONAL_REGISTRY_PASSWORD: '/k8s/air-discount-scheme/backend/NATIONAL_REGISTRY_PASSWORD' + NATIONAL_REGISTRY_URL: '/k8s/air-discount-scheme/backend/NATIONAL_REGISTRY_URL' + NATIONAL_REGISTRY_USERNAME: '/k8s/air-discount-scheme/backend/NATIONAL_REGISTRY_USERNAME' + NORLANDAIR_API_KEY: '/k8s/air-discount-scheme/backend/NORLANDAIR_API_KEY' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/air-discount-scheme-backend/values.prod.yaml b/charts/services/air-discount-scheme-backend/values.prod.yaml index 61bcabd949a8..b768eac9f0fb 100644 --- a/charts/services/air-discount-scheme-backend/values.prod.yaml +++ b/charts/services/air-discount-scheme-backend/values.prod.yaml @@ -5,111 +5,121 @@ # ##################################################################### -service: - name: 'air-discount-scheme-backend' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'air-discount-scheme-backend' +enabled: true +env: + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'air_discount_scheme_backend' + DB_REPLICAS_HOST: 'postgres-applications.internal' + DB_USER: 'air_discount_scheme_backend' + ENVIRONMENT: 'prod' + IDENTITY_SERVER_CLIENT_ID: '@vegagerdin.is/clients/air-discount-scheme' + IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + REDIS_URL_NODE_01: 'clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' + XROAD_BASE_PATH: 'http://securityserver.island.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.island.is/r1/IS' + XROAD_CLIENT_ID: 'IS/GOV/5501692829/island-is-client' + XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379"]' + XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS/GOV/6503760649/SKRA-Protected/Einstaklingar-v1' + XROAD_TJODSKRA_API_PATH: '/SKRA-Protected/Einstaklingar-v1' + XROAD_TJODSKRA_MEMBER_CODE: '6503760649' + XROAD_TLS_BASE_PATH: 'https://securityserver.island.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.island.is/r1/IS' +grantNamespaces: + - 'islandis' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 20 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/air-discount-scheme-backend' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'loftbru.island.is' + paths: + - '/api/swagger' + - '/api/public' +initContainer: + containers: + - args: + - 'sequelize-cli' + - 'db:migrate' + command: + - 'npx' + name: 'migrations' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' env: DB_HOST: 'postgres-applications.internal' DB_NAME: 'air_discount_scheme_backend' DB_REPLICAS_HOST: 'postgres-applications.internal' DB_USER: 'air_discount_scheme_backend' - ENVIRONMENT: 'prod' - IDENTITY_SERVER_CLIENT_ID: '@vegagerdin.is/clients/air-discount-scheme' - IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' - REDIS_URL_NODE_01: 'clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379' SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - XROAD_BASE_PATH: 'http://securityserver.island.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.island.is/r1/IS' - XROAD_CLIENT_ID: 'IS/GOV/5501692829/island-is-client' - XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379"]' - XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS/GOV/6503760649/SKRA-Protected/Einstaklingar-v1' - XROAD_TJODSKRA_API_PATH: '/SKRA-Protected/Einstaklingar-v1' - XROAD_TJODSKRA_MEMBER_CODE: '6503760649' - XROAD_TLS_BASE_PATH: 'https://securityserver.island.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.island.is/r1/IS' - grantNamespaces: - - 'islandis' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 20 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/air-discount-scheme-backend' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'loftbru.island.is' - paths: - - '/api/swagger' - - '/api/public' - initContainer: - containers: - - args: - - 'sequelize-cli' - - 'db:migrate' - command: - - 'npx' - name: 'migrations' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'air_discount_scheme_backend' - DB_REPLICAS_HOST: 'postgres-applications.internal' - DB_USER: 'air_discount_scheme_backend' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - secrets: - DB_PASS: '/k8s/air-discount-scheme-backend/DB_PASSWORD' - namespace: 'air-discount-scheme' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '50m' - memory: '256Mi' secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' DB_PASS: '/k8s/air-discount-scheme-backend/DB_PASSWORD' - ERNIR_API_KEY: '/k8s/air-discount-scheme/backend/ERNIR_API_KEY' - ICELANDAIR_API_KEY: '/k8s/air-discount-scheme/backend/ICELANDAIR_API_KEY' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/air-discount-scheme-backend/VEGAGERDIN_IDS_CLIENTS_ADS_SECRET' - MYFLUG_API_KEY: '/k8s/air-discount-scheme/backend/MYFLUG_API_KEY' - NATIONAL_REGISTRY_PASSWORD: '/k8s/air-discount-scheme/backend/NATIONAL_REGISTRY_PASSWORD' - NATIONAL_REGISTRY_URL: '/k8s/air-discount-scheme/backend/NATIONAL_REGISTRY_URL' - NATIONAL_REGISTRY_USERNAME: '/k8s/air-discount-scheme/backend/NATIONAL_REGISTRY_USERNAME' - NORLANDAIR_API_KEY: '/k8s/air-discount-scheme/backend/NORLANDAIR_API_KEY' - securityContext: - allowPrivilegeEscalation: false - privileged: false +namespace: 'air-discount-scheme' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '50m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/air-discount-scheme-backend/DB_PASSWORD' + ERNIR_API_KEY: '/k8s/air-discount-scheme/backend/ERNIR_API_KEY' + ICELANDAIR_API_KEY: '/k8s/air-discount-scheme/backend/ICELANDAIR_API_KEY' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/air-discount-scheme-backend/VEGAGERDIN_IDS_CLIENTS_ADS_SECRET' + MYFLUG_API_KEY: '/k8s/air-discount-scheme/backend/MYFLUG_API_KEY' + NATIONAL_REGISTRY_PASSWORD: '/k8s/air-discount-scheme/backend/NATIONAL_REGISTRY_PASSWORD' + NATIONAL_REGISTRY_URL: '/k8s/air-discount-scheme/backend/NATIONAL_REGISTRY_URL' + NATIONAL_REGISTRY_USERNAME: '/k8s/air-discount-scheme/backend/NATIONAL_REGISTRY_USERNAME' + NORLANDAIR_API_KEY: '/k8s/air-discount-scheme/backend/NORLANDAIR_API_KEY' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/air-discount-scheme-backend/values.staging.yaml b/charts/services/air-discount-scheme-backend/values.staging.yaml index 315f3705dbdd..2e45fbac3401 100644 --- a/charts/services/air-discount-scheme-backend/values.staging.yaml +++ b/charts/services/air-discount-scheme-backend/values.staging.yaml @@ -5,116 +5,126 @@ # ##################################################################### -service: - name: 'air-discount-scheme-backend' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'air-discount-scheme-backend' +enabled: true +env: + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'air_discount_scheme_backend' + DB_REPLICAS_HOST: 'postgres-applications.internal' + DB_USER: 'air_discount_scheme_backend' + ENVIRONMENT: 'staging' + IDENTITY_SERVER_CLIENT_ID: '@vegagerdin.is/clients/air-discount-scheme' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + REDIS_URL_NODE_01: 'clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379' + SERVERSIDE_FEATURES_ON: '' + XROAD_BASE_PATH: 'http://securityserver.staging01.devland.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.staging01.devland.is/r1/IS-TEST' + XROAD_CLIENT_ID: 'IS-TEST/GOV/5501692829/island-is-client' + XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' + XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS-TEST/GOV/6503760649/SKRA-Protected/Einstaklingar-v1' + XROAD_TJODSKRA_API_PATH: '/SKRA-Protected/Einstaklingar-v1' + XROAD_TJODSKRA_MEMBER_CODE: '6503760649' + XROAD_TLS_BASE_PATH: 'https://securityserver.staging01.devland.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.staging01.devland.is/r1/IS-TEST' +grantNamespaces: + - 'islandis' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 20 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/air-discount-scheme-backend' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/enable-global-auth: 'false' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'loftbru.staging01.devland.is' + paths: + - '/api/swagger' + - '/api/public' + - host: 'loftbru-cf.staging01.devland.is' + paths: + - '/api/swagger' + - '/api/public' +initContainer: + containers: + - args: + - 'sequelize-cli' + - 'db:migrate' + command: + - 'npx' + name: 'migrations' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' env: DB_HOST: 'postgres-applications.internal' DB_NAME: 'air_discount_scheme_backend' DB_REPLICAS_HOST: 'postgres-applications.internal' DB_USER: 'air_discount_scheme_backend' - ENVIRONMENT: 'staging' - IDENTITY_SERVER_CLIENT_ID: '@vegagerdin.is/clients/air-discount-scheme' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' - REDIS_URL_NODE_01: 'clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379' SERVERSIDE_FEATURES_ON: '' - XROAD_BASE_PATH: 'http://securityserver.staging01.devland.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.staging01.devland.is/r1/IS-TEST' - XROAD_CLIENT_ID: 'IS-TEST/GOV/5501692829/island-is-client' - XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' - XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS-TEST/GOV/6503760649/SKRA-Protected/Einstaklingar-v1' - XROAD_TJODSKRA_API_PATH: '/SKRA-Protected/Einstaklingar-v1' - XROAD_TJODSKRA_MEMBER_CODE: '6503760649' - XROAD_TLS_BASE_PATH: 'https://securityserver.staging01.devland.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.staging01.devland.is/r1/IS-TEST' - grantNamespaces: - - 'islandis' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 20 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/air-discount-scheme-backend' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/enable-global-auth: 'false' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'loftbru.staging01.devland.is' - paths: - - '/api/swagger' - - '/api/public' - - host: 'loftbru-cf.staging01.devland.is' - paths: - - '/api/swagger' - - '/api/public' - initContainer: - containers: - - args: - - 'sequelize-cli' - - 'db:migrate' - command: - - 'npx' - name: 'migrations' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'air_discount_scheme_backend' - DB_REPLICAS_HOST: 'postgres-applications.internal' - DB_USER: 'air_discount_scheme_backend' - SERVERSIDE_FEATURES_ON: '' - secrets: - DB_PASS: '/k8s/air-discount-scheme-backend/DB_PASSWORD' - namespace: 'air-discount-scheme' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '50m' - memory: '256Mi' secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' DB_PASS: '/k8s/air-discount-scheme-backend/DB_PASSWORD' - ERNIR_API_KEY: '/k8s/air-discount-scheme/backend/ERNIR_API_KEY' - ICELANDAIR_API_KEY: '/k8s/air-discount-scheme/backend/ICELANDAIR_API_KEY' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/air-discount-scheme-backend/VEGAGERDIN_IDS_CLIENTS_ADS_SECRET' - MYFLUG_API_KEY: '/k8s/air-discount-scheme/backend/MYFLUG_API_KEY' - NATIONAL_REGISTRY_PASSWORD: '/k8s/air-discount-scheme/backend/NATIONAL_REGISTRY_PASSWORD' - NATIONAL_REGISTRY_URL: '/k8s/air-discount-scheme/backend/NATIONAL_REGISTRY_URL' - NATIONAL_REGISTRY_USERNAME: '/k8s/air-discount-scheme/backend/NATIONAL_REGISTRY_USERNAME' - NORLANDAIR_API_KEY: '/k8s/air-discount-scheme/backend/NORLANDAIR_API_KEY' - securityContext: - allowPrivilegeEscalation: false - privileged: false +namespace: 'air-discount-scheme' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '50m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/air-discount-scheme-backend/DB_PASSWORD' + ERNIR_API_KEY: '/k8s/air-discount-scheme/backend/ERNIR_API_KEY' + ICELANDAIR_API_KEY: '/k8s/air-discount-scheme/backend/ICELANDAIR_API_KEY' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/air-discount-scheme-backend/VEGAGERDIN_IDS_CLIENTS_ADS_SECRET' + MYFLUG_API_KEY: '/k8s/air-discount-scheme/backend/MYFLUG_API_KEY' + NATIONAL_REGISTRY_PASSWORD: '/k8s/air-discount-scheme/backend/NATIONAL_REGISTRY_PASSWORD' + NATIONAL_REGISTRY_URL: '/k8s/air-discount-scheme/backend/NATIONAL_REGISTRY_URL' + NATIONAL_REGISTRY_USERNAME: '/k8s/air-discount-scheme/backend/NATIONAL_REGISTRY_USERNAME' + NORLANDAIR_API_KEY: '/k8s/air-discount-scheme/backend/NORLANDAIR_API_KEY' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/air-discount-scheme-web/values.dev.yaml b/charts/services/air-discount-scheme-web/values.dev.yaml index ee6cb2ca81e9..6a5806125909 100644 --- a/charts/services/air-discount-scheme-web/values.dev.yaml +++ b/charts/services/air-discount-scheme-web/values.dev.yaml @@ -5,77 +5,87 @@ # ##################################################################### -service: - name: 'air-discount-scheme-web' - enabled: true +global: env: - API_URL: 'http://web-air-discount-scheme-api' - ENVIRONMENT: 'dev' - IDENTITY_SERVER_ISSUER_DOMAIN: 'identity-server.dev01.devland.is' - LOG_LEVEL: 'info' - NEXTAUTH_URL: 'https://loftbru.dev01.devland.is' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - grantNamespaces: - - 'nginx-ingress-external' - - 'islandis' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/readiness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 20 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/air-discount-scheme-web' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/configuration-snippet: 'rewrite /$ https://beta.dev01.devland.is/loftbru; rewrite /en$ https://beta.dev01.devland.is/en/lower-airfares-for-residents-in-rural-areas;' - nginx.ingress.kubernetes.io/proxy-buffer-size: '16k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/proxy-buffers-number: '4' - nginx.ingress.kubernetes.io/server-snippet: 'client_header_buffer_size 16k; large_client_header_buffers 4 16k;' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'loftbru.dev01.devland.is' - paths: - - '/' - - host: 'loftbru-cf.dev01.devland.is' - paths: - - '/' - namespace: 'air-discount-scheme' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '100m' - memory: '128Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DD_RUM_APPLICATION_ID: '/k8s/DD_RUM_APPLICATION_ID' - DD_RUM_CLIENT_TOKEN: '/k8s/DD_RUM_CLIENT_TOKEN' - IDENTITY_SERVER_SECRET: '/k8s/air-discount-scheme/web/IDENTITY_SERVER_SECRET' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'air-discount-scheme-web' +enabled: true +env: + API_URL: 'http://web-air-discount-scheme-api' + ENVIRONMENT: 'dev' + IDENTITY_SERVER_ISSUER_DOMAIN: 'identity-server.dev01.devland.is' + LOG_LEVEL: 'info' + NEXTAUTH_URL: 'https://loftbru.dev01.devland.is' + NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: + - 'nginx-ingress-external' + - 'islandis' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/readiness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 20 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/air-discount-scheme-web' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/configuration-snippet: 'rewrite /$ https://beta.dev01.devland.is/loftbru; rewrite /en$ https://beta.dev01.devland.is/en/lower-airfares-for-residents-in-rural-areas;' + nginx.ingress.kubernetes.io/proxy-buffer-size: '16k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/proxy-buffers-number: '4' + nginx.ingress.kubernetes.io/server-snippet: 'client_header_buffer_size 16k; large_client_header_buffers 4 16k;' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'loftbru.dev01.devland.is' + paths: + - '/' + - host: 'loftbru-cf.dev01.devland.is' + paths: + - '/' +namespace: 'air-discount-scheme' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '100m' + memory: '128Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DD_RUM_APPLICATION_ID: '/k8s/DD_RUM_APPLICATION_ID' + DD_RUM_CLIENT_TOKEN: '/k8s/DD_RUM_CLIENT_TOKEN' + IDENTITY_SERVER_SECRET: '/k8s/air-discount-scheme/web/IDENTITY_SERVER_SECRET' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/air-discount-scheme-web/values.prod.yaml b/charts/services/air-discount-scheme-web/values.prod.yaml index ba913e97c085..7bde4829dbd8 100644 --- a/charts/services/air-discount-scheme-web/values.prod.yaml +++ b/charts/services/air-discount-scheme-web/values.prod.yaml @@ -5,73 +5,83 @@ # ##################################################################### -service: - name: 'air-discount-scheme-web' - enabled: true +global: env: - API_URL: 'http://web-air-discount-scheme-api' - ENVIRONMENT: 'prod' - IDENTITY_SERVER_ISSUER_DOMAIN: 'innskra.island.is' - LOG_LEVEL: 'info' - NEXTAUTH_URL: 'https://loftbru.island.is' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - grantNamespaces: - - 'nginx-ingress-external' - - 'islandis' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/readiness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 20 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/air-discount-scheme-web' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/configuration-snippet: 'rewrite /$ https://island.is/loftbru; rewrite /en$ https://island.is/en/lower-airfares-for-residents-in-rural-areas;' - nginx.ingress.kubernetes.io/enable-global-auth: 'false' - nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'loftbru.island.is' - paths: - - '/' - namespace: 'air-discount-scheme' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '100m' - memory: '128Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DD_RUM_APPLICATION_ID: '/k8s/DD_RUM_APPLICATION_ID' - DD_RUM_CLIENT_TOKEN: '/k8s/DD_RUM_CLIENT_TOKEN' - IDENTITY_SERVER_SECRET: '/k8s/air-discount-scheme/web/IDENTITY_SERVER_SECRET' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'air-discount-scheme-web' +enabled: true +env: + API_URL: 'http://web-air-discount-scheme-api' + ENVIRONMENT: 'prod' + IDENTITY_SERVER_ISSUER_DOMAIN: 'innskra.island.is' + LOG_LEVEL: 'info' + NEXTAUTH_URL: 'https://loftbru.island.is' + NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' +grantNamespaces: + - 'nginx-ingress-external' + - 'islandis' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/readiness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 20 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/air-discount-scheme-web' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/configuration-snippet: 'rewrite /$ https://island.is/loftbru; rewrite /en$ https://island.is/en/lower-airfares-for-residents-in-rural-areas;' + nginx.ingress.kubernetes.io/enable-global-auth: 'false' + nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'loftbru.island.is' + paths: + - '/' +namespace: 'air-discount-scheme' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '100m' + memory: '128Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DD_RUM_APPLICATION_ID: '/k8s/DD_RUM_APPLICATION_ID' + DD_RUM_CLIENT_TOKEN: '/k8s/DD_RUM_CLIENT_TOKEN' + IDENTITY_SERVER_SECRET: '/k8s/air-discount-scheme/web/IDENTITY_SERVER_SECRET' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/air-discount-scheme-web/values.staging.yaml b/charts/services/air-discount-scheme-web/values.staging.yaml index 4fefae269e5c..d160667b9dd5 100644 --- a/charts/services/air-discount-scheme-web/values.staging.yaml +++ b/charts/services/air-discount-scheme-web/values.staging.yaml @@ -5,77 +5,87 @@ # ##################################################################### -service: - name: 'air-discount-scheme-web' - enabled: true +global: env: - API_URL: 'http://web-air-discount-scheme-api' - ENVIRONMENT: 'staging' - IDENTITY_SERVER_ISSUER_DOMAIN: 'identity-server.staging01.devland.is' - LOG_LEVEL: 'info' - NEXTAUTH_URL: 'https://loftbru.staging01.devland.is' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - grantNamespaces: - - 'nginx-ingress-external' - - 'islandis' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/readiness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 20 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/air-discount-scheme-web' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/configuration-snippet: 'rewrite /$ https://beta.staging01.devland.is/loftbru; rewrite /en$ https://beta.staging01.devland.is/en/lower-airfares-for-residents-in-rural-areas;' - nginx.ingress.kubernetes.io/proxy-buffer-size: '16k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/proxy-buffers-number: '4' - nginx.ingress.kubernetes.io/server-snippet: 'client_header_buffer_size 16k; large_client_header_buffers 4 16k;' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'loftbru.staging01.devland.is' - paths: - - '/' - - host: 'loftbru-cf.staging01.devland.is' - paths: - - '/' - namespace: 'air-discount-scheme' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '100m' - memory: '128Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DD_RUM_APPLICATION_ID: '/k8s/DD_RUM_APPLICATION_ID' - DD_RUM_CLIENT_TOKEN: '/k8s/DD_RUM_CLIENT_TOKEN' - IDENTITY_SERVER_SECRET: '/k8s/air-discount-scheme/web/IDENTITY_SERVER_SECRET' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'air-discount-scheme-web' +enabled: true +env: + API_URL: 'http://web-air-discount-scheme-api' + ENVIRONMENT: 'staging' + IDENTITY_SERVER_ISSUER_DOMAIN: 'identity-server.staging01.devland.is' + LOG_LEVEL: 'info' + NEXTAUTH_URL: 'https://loftbru.staging01.devland.is' + NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: + - 'nginx-ingress-external' + - 'islandis' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/readiness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 20 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/air-discount-scheme-web' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/configuration-snippet: 'rewrite /$ https://beta.staging01.devland.is/loftbru; rewrite /en$ https://beta.staging01.devland.is/en/lower-airfares-for-residents-in-rural-areas;' + nginx.ingress.kubernetes.io/proxy-buffer-size: '16k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/proxy-buffers-number: '4' + nginx.ingress.kubernetes.io/server-snippet: 'client_header_buffer_size 16k; large_client_header_buffers 4 16k;' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'loftbru.staging01.devland.is' + paths: + - '/' + - host: 'loftbru-cf.staging01.devland.is' + paths: + - '/' +namespace: 'air-discount-scheme' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '100m' + memory: '128Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DD_RUM_APPLICATION_ID: '/k8s/DD_RUM_APPLICATION_ID' + DD_RUM_CLIENT_TOKEN: '/k8s/DD_RUM_CLIENT_TOKEN' + IDENTITY_SERVER_SECRET: '/k8s/air-discount-scheme/web/IDENTITY_SERVER_SECRET' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/api/values.dev.yaml b/charts/services/api/values.dev.yaml index 1e67aef791ee..76a8184fd6f2 100644 --- a/charts/services/api/values.dev.yaml +++ b/charts/services/api/values.dev.yaml @@ -5,311 +5,321 @@ # ##################################################################### -service: - name: 'api' - args: - - '--tls-min-v1.0' - - '--no-experimental-fetch' - - 'main.js' - command: - - 'node' - enabled: true +global: env: - AIR_DISCOUNT_SCHEME_BACKEND_URL: 'http://web-air-discount-scheme-backend.air-discount-scheme.svc.cluster.local' - AIR_DISCOUNT_SCHEME_CLIENT_TIMEOUT: '20000' - AIR_DISCOUNT_SCHEME_FRONTEND_HOSTNAME: 'loftbru.dev01.devland.is' - APOLLO_CACHE_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' - APPLICATION_SYSTEM_API_URL: 'http://web-application-system-api.application-system.svc.cluster.local' - AUTH_ADMIN_API_PATH: 'https://identity-server.dev01.devland.is/backend' - AUTH_ADMIN_API_PATHS: '{"development":"https://identity-server.dev01.devland.is/backend"}' - AUTH_DELEGATION_API_URL: 'http://web-services-auth-delegation-api.identity-server-delegation.svc.cluster.local' - AUTH_IDS_API_URL: 'https://identity-server.dev01.devland.is' - AUTH_PUBLIC_API_URL: 'https://identity-server.dev01.devland.is/api' - COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' - COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS-DEV/GOV/10006/Skatturinn/ft-v1' - CONSULTATION_PORTAL_CLIENT_BASE_PATH: 'https://samradapi-test.devland.is' - CONTACT_US_EMAIL: 's@kogk.is' - CONTENTFUL_HOST: 'preview.contentful.com' - DOWNLOAD_SERVICE_BASE_PATH: 'https://api.dev01.devland.is' - ELASTIC_NODE: 'https://vpc-search-njkekqydiegezhr4vqpkfnw5la.eu-west-1.es.amazonaws.com' - ELECTRONIC_REGISTRATION_STATISTICS_API_URL: 'https://api-staging.thinglysing.is/business/tolfraedi' - ENDORSEMENT_SYSTEM_BASE_API_URL: 'http://web-endorsement-system-api.endorsement-system.svc.cluster.local' - FILE_DOWNLOAD_BUCKET: 'island-is-dev-download-cache-api' - FILE_STORAGE_UPLOAD_BUCKET: 'island-is-dev-upload-api' - FINANCIAL_STATEMENTS_INAO_BASE_PATH: 'https://dev-re.crm4.dynamics.com/api/data/v9.1' - FINANCIAL_STATEMENTS_INAO_ISSUER: 'https://login.microsoftonline.com/05a20268-aaea-4bb5-bb78-960b0462185e/v2.0' - FINANCIAL_STATEMENTS_INAO_SCOPE: 'https://dev-re.crm4.dynamics.com/.default' - FINANCIAL_STATEMENTS_INAO_TOKEN_ENDPOINT: 'https://login.microsoftonline.com/05a20268-aaea-4bb5-bb78-960b0462185e/oauth2/v2.0/token' - FISHING_LICENSE_XROAD_PROVIDER_ID: 'IS-DEV/GOV/10012/Fiskistofa-Protected/veidileyfi-v1' - FISKISTOFA_ZENTER_CLIENT_ID: '1114' - FORM_SYSTEM_API_BASE_PATH: 'https://profun.island.is/umsoknarkerfi' - HSN_WEB_FORM_ID: '1dimJFHLFYtnhoYEA3JxRK' - HUNTING_LICENSE_PASS_TEMPLATE_ID: '1da72d52-a93a-4d0f-8463-1933a2bd210b' - ICELANDIC_NAMES_REGISTRY_BACKEND_URL: 'http://web-icelandic-names-registry-backend.icelandic-names-registry.svc.cluster.local' - IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/api' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' - ISLYKILL_CERT: '/etc/config/islyklar.p12' - LICENSE_SERVICE_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' - LOG_LEVEL: 'info' - MUNICIPALITIES_FINANCIAL_AID_BACKEND_URL: 'http://web-financial-aid-backend' - NATIONAL_REGISTRY_B2C_CLIENT_ID: 'b464afdd-056b-406d-b650-6d41733cfeb7' - NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentitydev.b2clogin.com/skraidentitydev.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' - NATIONAL_REGISTRY_B2C_PATH: 'IS-DEV/GOV/10001/SKRA-Cloud-Protected/Midlun-v1' - NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentitydev.onmicrosoft.com/midlun/.default' - NODE_OPTIONS: '--max-old-space-size=2880 -r dd-trace/init' - REGULATIONS_ADMIN_URL: 'http://web-regulations-admin-backend.regulations-admin.svc.cluster.local' - SEND_FROM_EMAIL: 'development@island.is' - SERVERSIDE_FEATURES_ON: '' - SERVICE_DOCUMENTS_BASEPATH: 'http://web-services-documents.services-documents.svc.cluster.local' - SESSIONS_API_URL: 'http://web-services-sessions.services-sessions.svc.cluster.local' - SYSLUMENN_TIMEOUT: '40000' - TELL_US_A_STORY_EMAIL: 's@kogk.is' - UNIVERSITY_GATEWAY_API_URL: 'http://web-services-university-gateway.services-university-gateway.svc.cluster.local' - USER_NOTIFICATION_API_URL: 'http://web-user-notification.user-notification.svc.cluster.local' - USER_PROFILE_CLIENT_URL: 'http://web-service-portal-api.service-portal.svc.cluster.local' - WATSON_ASSISTANT_CHAT_FEEDBACK_DB_NAME: 'island-is-assistant-feedback' - XROAD_ADR_MACHINE_LICENSE_PATH: 'IS-DEV/GOV/10013/Vinnueftirlitid-Protected/rettindi-token-v1' - XROAD_AGRICULTURAL_UNIVERSITY_OF_ICELAND_PATH: 'IS-DEV/EDU/10056/LBHI-Protected/brautskraning-v1' - XROAD_AIRCRAFT_REGISTRY_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Loftfaraskra-V1' - XROAD_BASE_PATH: 'http://securityserver.dev01.devland.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.dev01.devland.is/r1/IS-DEV' - XROAD_BIFROST_UNIVERSITY_PATH: 'IS-DEV/EDU/10057/Bifrost-Protected/brautskraning-v1' - XROAD_CHARGE_FJS_V2_PATH: 'IS-DEV/GOV/10021/FJS-Public/chargeFJS_v2' - XROAD_CHARGE_FJS_V2_TIMEOUT: '20000' - XROAD_CLIENT_ID: 'IS-DEV/GOV/10000/island-is-client' - XROAD_COURT_BANKRUPTCY_CERT_PATH: 'IS-DEV/GOV/10019/Domstolasyslan/JusticePortal-v1' - XROAD_CRIMINAL_RECORD_PATH: 'r1/IS-DEV/GOV/10005/Logreglan-Protected/Sakavottord-PDF-v2' - XROAD_DIGITAL_TACHOGRAPH_DRIVERS_CARD_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Okuritar-V1' - XROAD_DIRECTORATE_OF_IMMIGRATION_PATH: 'IS-DEV/GOV/10011/UTL-Protected/Utl-Umsokn-v1' - XROAD_DISABILITY_LICENSE_PATH: 'IS-DEV/GOV/10008/TR-Protected/oryrki-v1' - XROAD_DISTRICT_COMMISSIONERS_LICENSES_PATH: 'IS-DEV/GOV/10016/Syslumenn-Protected/RettindiIslandis' - XROAD_DISTRICT_COMMISSIONERS_P_CARD_PATH: 'IS-DEV/GOV/10016/Syslumenn-Protected/IslandMinarSidur' - XROAD_DRIVING_LICENSE_BOOK_TIMEOUT: '20000' - XROAD_DRIVING_LICENSE_PATH: 'r1/IS-DEV/GOV/10005/Logreglan-Protected/RafraentOkuskirteini-v1' - XROAD_DRIVING_LICENSE_V2_PATH: 'r1/IS-DEV/GOV/10005/Logreglan-Protected/RafraentOkuskirteini-v2' - XROAD_DRIVING_LICENSE_V4_PATH: 'r1/IS-DEV/GOV/10005/Logreglan-Protected/Okuskirteini-v4' - XROAD_DRIVING_LICENSE_V5_PATH: 'r1/IS-DEV/GOV/10005/Logreglan-Protected/Okuskirteini-v5' - XROAD_ENERGY_FUNDS_PATH: 'IS-DEV/GOV/10021/FJS-Public/ElectricCarSubSidyService_v1' - XROAD_FINANCES_PATH: 'IS-DEV/GOV/10021/FJS-Public/financeIsland' - XROAD_FINANCES_TIMEOUT: '20000' - XROAD_FINANCES_V2_PATH: 'IS-DEV/GOV/10021/FJS-Public/financeServicesFJS_v2' - XROAD_FINANCIAL_AID_BACKEND_PATH: 'IS-DEV/MUN/10023/samband-sveitarfelaga/financial-aid-backend' - XROAD_FIREARM_LICENSE_PATH: 'IS-DEV/GOV/10005/Logreglan-Protected/island-api-v1' - XROAD_HEALTH_DIRECTORATE_ORGAN_DONATION_PATH: 'IS-DEV/GOV/10015/EmbaettiLandlaeknis-Protected/organ-donation-v1' - XROAD_HEALTH_DIRECTORATE_PATH: 'IS-DEV/GOV/10015/EmbaettiLandlaeknis-Protected/landlaeknir' - XROAD_HEALTH_DIRECTORATE_VACCINATION_PATH: 'IS-DEV/GOV/10015/EmbaettiLandlaeknis-Protected/vaccination-v1' - XROAD_HEALTH_INSURANCE_ID: 'IS-DEV/GOV/10007/SJUKRA-Protected' - XROAD_HEALTH_INSURANCE_MY_PAGES_PATH: 'IS-DEV/GOV/10007/SJUKRA-Protected/minarsidur' - XROAD_HEALTH_INSURANCE_WSDLURL: 'https://test-huld.sjukra.is/islandrg?wsdl' - XROAD_HMS_HOUSING_BENEFITS_PATH: 'IS-DEV/GOV/10033/HMS-Protected/husbot-v1' - XROAD_HMS_LOANS_PATH: 'IS-DEV/GOV/10033/HMS-Protected/libra-v1' - XROAD_HOLAR_UNIVERSITY_PATH: 'IS-DEV/EDU/10055/Holar-Protected/brautskraning-v1' - XROAD_HOUSING_BENEFIT_CALCULATOR_PATH: 'IS-DEV/GOV/10033/HMS-Protected/calc-v1' - XROAD_HUNTING_LICENSE_PATH: 'IS-DEV/GOV/10009/Umhverfisstofnun-Protected/api' - XROAD_ICELANDIC_GOVERNMENT_INSTITUTION_VACANCIES_PATH: 'IS-DEV/GOV/10021/FJS-Protected/recruitment-v1' - XROAD_ICELAND_UNIVERSITY_OF_THE_ARTS_PATH: 'IS-DEV/EDU/10049/LHI-Protected/brautskraning-v1' - XROAD_INNA_PATH: 'IS-DEV/GOV/10066/MMS-Protected/inna-v1' - XROAD_INTELLECTUAL_PROPERTIES_PATH: 'IS-DEV/GOV/10030/WebAPI-Public/HUG-webAPI' - XROAD_JUDICIAL_SYSTEM_SP_PATH: 'IS-DEV/GOV/10014/Rettarvorslugatt-Private/judicial-system-mailbox-api' - XROAD_MMS_FRIGG_PATH: 'IS-DEV/GOV/10066/MMS-Protected/frigg-form-service' - XROAD_MMS_GRADE_SERVICE_ID: 'IS-DEV/GOV/10066/MMS-Protected/grade-api-v1' - XROAD_MMS_LICENSE_SERVICE_ID: 'IS-DEV/GOV/10066/MMS-Protected/license-api-v1' - XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' - XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS-DEV/GOV/10001/SKRA-Protected/Einstaklingar-v1' - XROAD_NATIONAL_REGISTRY_TIMEOUT: '20000' - XROAD_OFFICIAL_JOURNAL_APPLICATION_PATH: 'IS-DEV/GOV/10014/DMR-Protected/official-journal-application' - XROAD_OFFICIAL_JOURNAL_PATH: 'IS-DEV/GOV/10014/DMR-Protected/official-journal' - XROAD_PASSPORT_LICENSE_PATH: 'IS-DEV/GOV/10001/SKRA-Cloud-Protected/Forskraning-V1' - XROAD_PAYMENT_ADDITION_CALLBACK_URL: '/' - XROAD_PAYMENT_BASE_CALLBACK_URL: 'XROAD:/IS-DEV/GOV/10000/island-is/application-callback-v2/application-payment/' - XROAD_PAYMENT_PROVIDER_ID: 'IS-DEV/GOV/10021/FJS-Public' - XROAD_PAYMENT_SCHEDULE_PATH: 'IS-DEV/GOV/10021/FJS-Public/paymentSchedule_v1' - XROAD_PROPERTIES_SERVICE_V2_PATH: 'IS-DEV/GOV/10033/HMS-Protected/Fasteignir-v1' - XROAD_PROPERTIES_TIMEOUT: '35000' - XROAD_RSK_PROCURING_PATH: 'IS-DEV/GOV/10006/Skatturinn/relationships-v1' - XROAD_RSK_PROCURING_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' - XROAD_RSK_PROCURING_SCOPE: '["@rsk.is/prokura","@rsk.is/prokura:admin"]' - XROAD_SHIP_REGISTRY_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/skipaskra-V1' - XROAD_SIGNATURE_COLLECTION_PATH: 'IS-DEV/GOV/10001/SKRA-Cloud-Protected/Medmaeli-v1' - XROAD_TJODSKRA_API_PATH: '/SKRA-Protected/Einstaklingar-v1' - XROAD_TJODSKRA_MEMBER_CODE: '10001' - XROAD_TLS_BASE_PATH: 'https://securityserver.dev01.devland.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.dev01.devland.is/r1/IS-DEV' - XROAD_TR_PATH: 'IS-DEV/GOV/10008/TR-Protected/external-v1' - XROAD_UNIVERSITY_OF_AKUREYRI_PATH: 'IS-DEV/EDU/10054/UNAK-Protected/brautskraning-v1' - XROAD_UNIVERSITY_OF_ICELAND_PATH: 'IS-DEV/EDU/10010/HI-Protected/brautskraning-v1' - XROAD_VEHICLES_MILEAGE_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Vehicle-Mileagereading-V1' - XROAD_VEHICLES_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Mitt-Svaedi-V1' - XROAD_VEHICLE_CODETABLES_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Vehicle-Codetables-V1' - XROAD_VEHICLE_INFOLOCKS_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Vehicle-Infolocks-V1' - XROAD_VEHICLE_OPERATORS_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Vehicle-Operators-V3' - XROAD_VEHICLE_OWNER_CHANGE_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Vehicle-Ownerchange-V2' - XROAD_VEHICLE_PLATE_ORDERING_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Vehicle-PlateOrdering-V1' - XROAD_VEHICLE_PLATE_RENEWAL_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Vehicle-PlateOwnership-V1' - XROAD_VEHICLE_PRINTING_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Vehicle-Printing-V1' - XROAD_VEHICLE_SERVICE_FJS_V1_PATH: 'IS-DEV/GOV/10021/FJS-Public/VehicleServiceFJS_v1' - XROAD_VMST_API_PATH: '/VMST-ParentalLeave-Protected/ParentalLeaveApplication-v1' - XROAD_VMST_MEMBER_CODE: '10003' - XROAD_WORK_ACCIDENT_PATH: 'IS-DEV/GOV/10013/Vinnueftirlitid-Protected/slysaskraning-token' - XROAD_WORK_MACHINE_LICENSE_PATH: 'IS-DEV/GOV/10013/Vinnueftirlitid-Protected/vinnuvelar-token' - ZENDESK_CONTACT_FORM_SUBDOMAIN: 'stjanilofts' - files: - - 'islyklar.p12' - grantNamespaces: - - 'nginx-ingress-external' - - 'api-catalogue' - - 'application-system' - - 'consultation-portal' - - 'portals-admin' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/health' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 50 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/api' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'beta.dev01.devland.is' - paths: - - '/api' - - host: 'api-catalogue.dev01.devland.is' - paths: - - '/api' - namespace: 'islandis' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 2 - max: 50 - min: 2 - resources: - limits: - cpu: '1200m' - memory: '3200Mi' - requests: - cpu: '400m' - memory: '896Mi' - secrets: - ADR_LICENSE_FETCH_TIMEOUT: '/k8s/api/ADR_LICENSE_FETCH_TIMEOUT' - ADR_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/ADR_LICENSE_PASS_TEMPLATE_ID' - APOLLO_BYPASS_CACHE_SECRET: '/k8s/api/APOLLO_BYPASS_CACHE_SECRET' - CHART_STATISTIC_CACHE_TTL: '/k8s/api/CHART_STATISTIC_CACHE_TTL' - CHART_STATISTIC_SOURCE_DATA_PATHS: '/k8s/api/CHART_STATISTIC_SOURCE_DATA_PATHS' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - CONTENTFUL_ACCESS_TOKEN: '/k8s/api/CONTENTFUL_ACCESS_TOKEN' - DIRECTORATE_OF_IMMIGRATION_WATSON_ASSISTANT_CHAT_PRIVATE_RSA_KEY: '/k8s/api/DIRECTORATE_OF_IMMIGRATION_WATSON_ASSISTANT_CHAT_PRIVATE_RSA_KEY' - DIRECTORATE_OF_IMMIGRATION_WATSON_ASSISTANT_CHAT_PUBLIC_IBM_KEY: '/k8s/api/DIRECTORATE_OF_IMMIGRATION_WATSON_ASSISTANT_CHAT_PUBLIC_IBM_KEY' - DIRECTORATE_OF_IMMIGRATION_WATSON_ASSISTANT_CHAT_PUBLIC_RSA_KEY: '/k8s/api/DIRECTORATE_OF_IMMIGRATION_WATSON_ASSISTANT_CHAT_PUBLIC_RSA_KEY' - DISABILITY_LICENSE_FETCH_TIMEOUT: '/k8s/api/DISABILITY_LICENSE_FETCH_TIMEOUT' - DISABILITY_LICENSE_PASS_TEMPLATE_ID: '/k8s/DISABILITY_LICENSE_PASS_TEMPLATE_ID' - DOCUMENT_PROVIDER_BASE_PATH: '/k8s/api/DOCUMENT_PROVIDER_BASE_PATH' - DOCUMENT_PROVIDER_BASE_PATH_TEST: '/k8s/api/DOCUMENT_PROVIDER_BASE_PATH_TEST' - DOCUMENT_PROVIDER_CLIENTID: '/k8s/documentprovider/DOCUMENT_PROVIDER_CLIENTID' - DOCUMENT_PROVIDER_CLIENTID_TEST: '/k8s/documentprovider/DOCUMENT_PROVIDER_CLIENTID_TEST' - DOCUMENT_PROVIDER_CLIENT_SECRET: '/k8s/documentprovider/DOCUMENT_PROVIDER_CLIENT_SECRET' - DOCUMENT_PROVIDER_CLIENT_SECRET_TEST: '/k8s/documentprovider/DOCUMENT_PROVIDER_CLIENT_SECRET_TEST' - DOCUMENT_PROVIDER_TOKEN_URL: '/k8s/api/DOCUMENT_PROVIDER_TOKEN_URL' - DOCUMENT_PROVIDER_TOKEN_URL_TEST: '/k8s/api/DOCUMENT_PROVIDER_TOKEN_URL_TEST' - DOMSYSLA_PASSWORD: '/k8s/api/DOMSYSLA_PASSWORD' - DOMSYSLA_USERNAME: '/k8s/api/DOMSYSLA_USERNAME' - DRIVING_LICENSE_BOOK_PASSWORD: '/k8s/api/DRIVING_LICENSE_BOOK_PASSWORD' - DRIVING_LICENSE_BOOK_USERNAME: '/k8s/api/DRIVING_LICENSE_BOOK_USERNAME' - DRIVING_LICENSE_BOOK_XROAD_PATH: '/k8s/api/DRIVING_LICENSE_BOOK_XROAD_PATH' - DRIVING_LICENSE_FETCH_TIMEOUT: '/k8s/api/DRIVING_LICENSE_FETCH_TIMEOUT' - DRIVING_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/DRIVING_LICENSE_PASS_TEMPLATE_ID' - FINANCIAL_STATEMENTS_INAO_CLIENT_ID: '/k8s/api/FINANCIAL_STATEMENTS_INAO_CLIENT_ID' - FINANCIAL_STATEMENTS_INAO_CLIENT_SECRET: '/k8s/api/FINANCIAL_STATEMENTS_INAO_CLIENT_SECRET' - FIREARM_LICENSE_FETCH_TIMEOUT: '/k8s/api/FIREARM_LICENSE_FETCH_TIMEOUT' - FIREARM_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/FIREARM_LICENSE_PASS_TEMPLATE_ID' - FISKISTOFA_API_ACCESS_TOKEN_SERVICE_AUDIENCE: '/k8s/api/FISKISTOFA_API_ACCESS_TOKEN_SERVICE_AUDIENCE' - FISKISTOFA_API_ACCESS_TOKEN_SERVICE_CLIENT_ID: '/k8s/api/FISKISTOFA_API_ACCESS_TOKEN_SERVICE_CLIENT_ID' - FISKISTOFA_API_ACCESS_TOKEN_SERVICE_CLIENT_SECRET: '/k8s/api/FISKISTOFA_API_ACCESS_TOKEN_SERVICE_CLIENT_SECRET' - FISKISTOFA_API_ACCESS_TOKEN_SERVICE_URL: '/k8s/api/FISKISTOFA_API_ACCESS_TOKEN_SERVICE_URL' - FISKISTOFA_API_URL: '/k8s/api/FISKISTOFA_API_URL' - FISKISTOFA_POWERBI_CLIENT_ID: '/k8s/api/FISKISTOFA_POWERBI_CLIENT_ID' - FISKISTOFA_POWERBI_CLIENT_SECRET: '/k8s/api/FISKISTOFA_POWERBI_CLIENT_SECRET' - FISKISTOFA_POWERBI_TENANT_ID: '/k8s/api/FISKISTOFA_POWERBI_TENANT_ID' - FISKISTOFA_ZENTER_CLIENT_PASSWORD: '/k8s/api/FISKISTOFA_ZENTER_CLIENT_PASSWORD' - FISKISTOFA_ZENTER_EMAIL: '/k8s/api/FISKISTOFA_ZENTER_EMAIL' - FISKISTOFA_ZENTER_PASSWORD: '/k8s/api/FISKISTOFA_ZENTER_PASSWORD' - HOUSING_BENEFIT_CALCULATOR_PASSWORD: '/k8s/xroad/client/HOUSING_BENEFIT_CALCULATOR_PASSWORD' - HOUSING_BENEFIT_CALCULATOR_USERNAME: '/k8s/xroad/client/HOUSING_BENEFIT_CALCULATOR_USERNAME' - HSN_WEB_FORM_RESPONSE_SECRET: '/k8s/api/HSN_WEB_FORM_RESPONSE_SECRET' - HSN_WEB_FORM_RESPONSE_URL: '/k8s/api/HSN_WEB_FORM_RESPONSE_URL' - ICELANDIC_GOVERNMENT_INSTITUTION_VACANCIES_PASSWORD: '/k8s/xroad/client/ICELANDIC_GOVERNMENT_INSTITUTION_VACANCIES_PASSWORD' - ICELANDIC_GOVERNMENT_INSTITUTION_VACANCIES_USERNAME: '/k8s/xroad/client/ICELANDIC_GOVERNMENT_INSTITUTION_VACANCIES_USERNAME' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/api/IDENTITY_SERVER_CLIENT_SECRET' - INTELLECTUAL_PROPERTY_API_KEY: '/k8s/api/IP_API_KEY' - ISLYKILL_SERVICE_BASEPATH: '/k8s/api/ISLYKILL_SERVICE_BASEPATH' - ISLYKILL_SERVICE_PASSPHRASE: '/k8s/api/ISLYKILL_SERVICE_PASSPHRASE' - LICENSE_SERVICE_BARCODE_SECRET_KEY: '/k8s/api/LICENSE_SERVICE_BARCODE_SECRET_KEY' - MACHINE_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/MACHINE_LICENSE_PASS_TEMPLATE_ID' - NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/api/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' - PKPASS_API_KEY: '/k8s/api/PKPASS_API_KEY' - PKPASS_API_URL: '/k8s/api/PKPASS_API_URL' - PKPASS_AUTH_RETRIES: '/k8s/api/PKPASS_AUTH_RETRIES' - PKPASS_CACHE_KEY: '/k8s/api/PKPASS_CACHE_KEY' - PKPASS_CACHE_TOKEN_EXPIRY_DELTA: '/k8s/api/PKPASS_CACHE_TOKEN_EXPIRY_DELTA' - PKPASS_SECRET_KEY: '/k8s/api/PKPASS_SECRET_KEY' - POSTHOLF_BASE_PATH: '/k8s/documents/POSTHOLF_BASE_PATH' - POSTHOLF_CLIENTID: '/k8s/documents/POSTHOLF_CLIENTID' - POSTHOLF_CLIENT_SECRET: '/k8s/documents/POSTHOLF_CLIENT_SECRET' - POSTHOLF_TOKEN_URL: '/k8s/documents/POSTHOLF_TOKEN_URL' - REGULATIONS_API_URL: '/k8s/api/REGULATIONS_API_URL' - REGULATIONS_FILE_UPLOAD_KEY_DRAFT: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_DRAFT' - REGULATIONS_FILE_UPLOAD_KEY_PRESIGNED: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_PRESIGNED' - REGULATIONS_FILE_UPLOAD_KEY_PUBLISH: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_PUBLISH' - RLS_PKPASS_API_KEY: '/k8s/api/RLS_PKPASS_API_KEY' - SMART_SOLUTIONS_API_URL: '/k8s/api/SMART_SOLUTIONS_API_URL' - SYSLUMENN_HOST: '/k8s/api/SYSLUMENN_HOST' - SYSLUMENN_PASSWORD: '/k8s/api/SYSLUMENN_PASSWORD' - SYSLUMENN_USERNAME: '/k8s/api/SYSLUMENN_USERNAME' - TR_PKPASS_API_KEY: '/k8s/api/TR_PKPASS_API_KEY' - ULTRAVIOLET_RADIATION_API_KEY: '/k8s/api/ULTRAVIOLET_RADIATION_API_KEY' - UMBODSMADUR_SKULDARA_COST_OF_LIVING_CALCULATOR_API_URL: '/k8s/api/UMBODSMADUR_SKULDARA_COST_OF_LIVING_CALCULATOR_API_URL' - UST_PKPASS_API_KEY: '/k8s/api/UST_PKPASS_API_KEY' - VEHICLES_ALLOW_CO_OWNERS: '/k8s/api/VEHICLES_ALLOW_CO_OWNERS' - VE_PKPASS_API_KEY: '/k8s/api/VE_PKPASS_API_KEY' - VINNUEFTIRLITID_CAMPAIGN_MONITOR_API_KEY: '/k8s/api/VINNUEFTIRLITID_CAMPAIGN_MONITOR_API_KEY' - WATSON_ASSISTANT_CHAT_FEEDBACK_API_KEY: '/k8s/api/WATSON_ASSISTANT_CHAT_FEEDBACK_API_KEY' - WATSON_ASSISTANT_CHAT_FEEDBACK_URL: '/k8s/api/WATSON_ASSISTANT_CHAT_FEEDBACK_URL' - XROAD_DRIVING_LICENSE_SECRET: '/k8s/api/DRIVING_LICENSE_SECRET' - XROAD_HEALTH_INSURANCE_PASSWORD: '/k8s/health-insurance/XROAD-PASSWORD' - XROAD_HEALTH_INSURANCE_USERNAME: '/k8s/health-insurance/XROAD-USER' - XROAD_HEALTH_INSURANCE_V2_XROAD_PASSWORD: '/k8s/api/HEALTH_INSURANCE_V2_XROAD_PASSWORD' - XROAD_HEALTH_INSURANCE_V2_XROAD_USERNAME: '/k8s/api/HEALTH_INSURANCE_V2_XROAD_USERNAME' - XROAD_PAYMENT_PASSWORD: '/k8s/application-system-api/PAYMENT_PASSWORD' - XROAD_PAYMENT_USER: '/k8s/application-system-api/PAYMENT_USER' - XROAD_PROPERTIES_CLIENT_SECRET: '/k8s/xroad/client/NATIONAL-REGISTRY/IDENTITYSERVER_SECRET' - XROAD_VMST_API_KEY: '/k8s/vmst-client/VMST_API_KEY' - ZENDESK_CONTACT_FORM_EMAIL: '/k8s/api/ZENDESK_CONTACT_FORM_EMAIL' - ZENDESK_CONTACT_FORM_TOKEN: '/k8s/api/ZENDESK_CONTACT_FORM_TOKEN' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'api' +args: + - '--tls-min-v1.0' + - '--no-experimental-fetch' + - 'main.js' +command: + - 'node' +enabled: true +env: + AIR_DISCOUNT_SCHEME_BACKEND_URL: 'http://web-air-discount-scheme-backend.air-discount-scheme.svc.cluster.local' + AIR_DISCOUNT_SCHEME_CLIENT_TIMEOUT: '20000' + AIR_DISCOUNT_SCHEME_FRONTEND_HOSTNAME: 'loftbru.dev01.devland.is' + APOLLO_CACHE_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' + APPLICATION_SYSTEM_API_URL: 'http://web-application-system-api.application-system.svc.cluster.local' + AUTH_ADMIN_API_PATH: 'https://identity-server.dev01.devland.is/backend' + AUTH_ADMIN_API_PATHS: '{"development":"https://identity-server.dev01.devland.is/backend"}' + AUTH_DELEGATION_API_URL: 'http://web-services-auth-delegation-api.identity-server-delegation.svc.cluster.local' + AUTH_IDS_API_URL: 'https://identity-server.dev01.devland.is' + AUTH_PUBLIC_API_URL: 'https://identity-server.dev01.devland.is/api' + COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' + COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS-DEV/GOV/10006/Skatturinn/ft-v1' + CONSULTATION_PORTAL_CLIENT_BASE_PATH: 'https://samradapi-test.devland.is' + CONTACT_US_EMAIL: 's@kogk.is' + CONTENTFUL_HOST: 'preview.contentful.com' + DOWNLOAD_SERVICE_BASE_PATH: 'https://api.dev01.devland.is' + ELASTIC_NODE: 'https://vpc-search-njkekqydiegezhr4vqpkfnw5la.eu-west-1.es.amazonaws.com' + ELECTRONIC_REGISTRATION_STATISTICS_API_URL: 'https://api-staging.thinglysing.is/business/tolfraedi' + ENDORSEMENT_SYSTEM_BASE_API_URL: 'http://web-endorsement-system-api.endorsement-system.svc.cluster.local' + FILE_DOWNLOAD_BUCKET: 'island-is-dev-download-cache-api' + FILE_STORAGE_UPLOAD_BUCKET: 'island-is-dev-upload-api' + FINANCIAL_STATEMENTS_INAO_BASE_PATH: 'https://dev-re.crm4.dynamics.com/api/data/v9.1' + FINANCIAL_STATEMENTS_INAO_ISSUER: 'https://login.microsoftonline.com/05a20268-aaea-4bb5-bb78-960b0462185e/v2.0' + FINANCIAL_STATEMENTS_INAO_SCOPE: 'https://dev-re.crm4.dynamics.com/.default' + FINANCIAL_STATEMENTS_INAO_TOKEN_ENDPOINT: 'https://login.microsoftonline.com/05a20268-aaea-4bb5-bb78-960b0462185e/oauth2/v2.0/token' + FISHING_LICENSE_XROAD_PROVIDER_ID: 'IS-DEV/GOV/10012/Fiskistofa-Protected/veidileyfi-v1' + FISKISTOFA_ZENTER_CLIENT_ID: '1114' + FORM_SYSTEM_API_BASE_PATH: 'https://profun.island.is/umsoknarkerfi' + HSN_WEB_FORM_ID: '1dimJFHLFYtnhoYEA3JxRK' + HUNTING_LICENSE_PASS_TEMPLATE_ID: '1da72d52-a93a-4d0f-8463-1933a2bd210b' + ICELANDIC_NAMES_REGISTRY_BACKEND_URL: 'http://web-icelandic-names-registry-backend.icelandic-names-registry.svc.cluster.local' + IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/api' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' + ISLYKILL_CERT: '/etc/config/islyklar.p12' + LICENSE_SERVICE_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' + LOG_LEVEL: 'info' + MUNICIPALITIES_FINANCIAL_AID_BACKEND_URL: 'http://web-financial-aid-backend' + NATIONAL_REGISTRY_B2C_CLIENT_ID: 'b464afdd-056b-406d-b650-6d41733cfeb7' + NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentitydev.b2clogin.com/skraidentitydev.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' + NATIONAL_REGISTRY_B2C_PATH: 'IS-DEV/GOV/10001/SKRA-Cloud-Protected/Midlun-v1' + NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentitydev.onmicrosoft.com/midlun/.default' + NODE_OPTIONS: '--max-old-space-size=2880 -r dd-trace/init' + REGULATIONS_ADMIN_URL: 'http://web-regulations-admin-backend.regulations-admin.svc.cluster.local' + SEND_FROM_EMAIL: 'development@island.is' + SERVERSIDE_FEATURES_ON: '' + SERVICE_DOCUMENTS_BASEPATH: 'http://web-services-documents.services-documents.svc.cluster.local' + SESSIONS_API_URL: 'http://web-services-sessions.services-sessions.svc.cluster.local' + SYSLUMENN_TIMEOUT: '40000' + TELL_US_A_STORY_EMAIL: 's@kogk.is' + UNIVERSITY_GATEWAY_API_URL: 'http://web-services-university-gateway.services-university-gateway.svc.cluster.local' + USER_NOTIFICATION_API_URL: 'http://web-user-notification.user-notification.svc.cluster.local' + USER_PROFILE_CLIENT_URL: 'http://web-service-portal-api.service-portal.svc.cluster.local' + WATSON_ASSISTANT_CHAT_FEEDBACK_DB_NAME: 'island-is-assistant-feedback' + XROAD_ADR_MACHINE_LICENSE_PATH: 'IS-DEV/GOV/10013/Vinnueftirlitid-Protected/rettindi-token-v1' + XROAD_AGRICULTURAL_UNIVERSITY_OF_ICELAND_PATH: 'IS-DEV/EDU/10056/LBHI-Protected/brautskraning-v1' + XROAD_AIRCRAFT_REGISTRY_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Loftfaraskra-V1' + XROAD_BASE_PATH: 'http://securityserver.dev01.devland.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.dev01.devland.is/r1/IS-DEV' + XROAD_BIFROST_UNIVERSITY_PATH: 'IS-DEV/EDU/10057/Bifrost-Protected/brautskraning-v1' + XROAD_CHARGE_FJS_V2_PATH: 'IS-DEV/GOV/10021/FJS-Public/chargeFJS_v2' + XROAD_CHARGE_FJS_V2_TIMEOUT: '20000' + XROAD_CLIENT_ID: 'IS-DEV/GOV/10000/island-is-client' + XROAD_COURT_BANKRUPTCY_CERT_PATH: 'IS-DEV/GOV/10019/Domstolasyslan/JusticePortal-v1' + XROAD_CRIMINAL_RECORD_PATH: 'r1/IS-DEV/GOV/10005/Logreglan-Protected/Sakavottord-PDF-v2' + XROAD_DIGITAL_TACHOGRAPH_DRIVERS_CARD_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Okuritar-V1' + XROAD_DIRECTORATE_OF_IMMIGRATION_PATH: 'IS-DEV/GOV/10011/UTL-Protected/Utl-Umsokn-v1' + XROAD_DISABILITY_LICENSE_PATH: 'IS-DEV/GOV/10008/TR-Protected/oryrki-v1' + XROAD_DISTRICT_COMMISSIONERS_LICENSES_PATH: 'IS-DEV/GOV/10016/Syslumenn-Protected/RettindiIslandis' + XROAD_DISTRICT_COMMISSIONERS_P_CARD_PATH: 'IS-DEV/GOV/10016/Syslumenn-Protected/IslandMinarSidur' + XROAD_DRIVING_LICENSE_BOOK_TIMEOUT: '20000' + XROAD_DRIVING_LICENSE_PATH: 'r1/IS-DEV/GOV/10005/Logreglan-Protected/RafraentOkuskirteini-v1' + XROAD_DRIVING_LICENSE_V2_PATH: 'r1/IS-DEV/GOV/10005/Logreglan-Protected/RafraentOkuskirteini-v2' + XROAD_DRIVING_LICENSE_V4_PATH: 'r1/IS-DEV/GOV/10005/Logreglan-Protected/Okuskirteini-v4' + XROAD_DRIVING_LICENSE_V5_PATH: 'r1/IS-DEV/GOV/10005/Logreglan-Protected/Okuskirteini-v5' + XROAD_ENERGY_FUNDS_PATH: 'IS-DEV/GOV/10021/FJS-Public/ElectricCarSubSidyService_v1' + XROAD_FINANCES_PATH: 'IS-DEV/GOV/10021/FJS-Public/financeIsland' + XROAD_FINANCES_TIMEOUT: '20000' + XROAD_FINANCES_V2_PATH: 'IS-DEV/GOV/10021/FJS-Public/financeServicesFJS_v2' + XROAD_FINANCIAL_AID_BACKEND_PATH: 'IS-DEV/MUN/10023/samband-sveitarfelaga/financial-aid-backend' + XROAD_FIREARM_LICENSE_PATH: 'IS-DEV/GOV/10005/Logreglan-Protected/island-api-v1' + XROAD_HEALTH_DIRECTORATE_ORGAN_DONATION_PATH: 'IS-DEV/GOV/10015/EmbaettiLandlaeknis-Protected/organ-donation-v1' + XROAD_HEALTH_DIRECTORATE_PATH: 'IS-DEV/GOV/10015/EmbaettiLandlaeknis-Protected/landlaeknir' + XROAD_HEALTH_DIRECTORATE_VACCINATION_PATH: 'IS-DEV/GOV/10015/EmbaettiLandlaeknis-Protected/vaccination-v1' + XROAD_HEALTH_INSURANCE_ID: 'IS-DEV/GOV/10007/SJUKRA-Protected' + XROAD_HEALTH_INSURANCE_MY_PAGES_PATH: 'IS-DEV/GOV/10007/SJUKRA-Protected/minarsidur' + XROAD_HEALTH_INSURANCE_WSDLURL: 'https://test-huld.sjukra.is/islandrg?wsdl' + XROAD_HMS_HOUSING_BENEFITS_PATH: 'IS-DEV/GOV/10033/HMS-Protected/husbot-v1' + XROAD_HMS_LOANS_PATH: 'IS-DEV/GOV/10033/HMS-Protected/libra-v1' + XROAD_HOLAR_UNIVERSITY_PATH: 'IS-DEV/EDU/10055/Holar-Protected/brautskraning-v1' + XROAD_HOUSING_BENEFIT_CALCULATOR_PATH: 'IS-DEV/GOV/10033/HMS-Protected/calc-v1' + XROAD_HUNTING_LICENSE_PATH: 'IS-DEV/GOV/10009/Umhverfisstofnun-Protected/api' + XROAD_ICELANDIC_GOVERNMENT_INSTITUTION_VACANCIES_PATH: 'IS-DEV/GOV/10021/FJS-Protected/recruitment-v1' + XROAD_ICELAND_UNIVERSITY_OF_THE_ARTS_PATH: 'IS-DEV/EDU/10049/LHI-Protected/brautskraning-v1' + XROAD_INNA_PATH: 'IS-DEV/GOV/10066/MMS-Protected/inna-v1' + XROAD_INTELLECTUAL_PROPERTIES_PATH: 'IS-DEV/GOV/10030/WebAPI-Public/HUG-webAPI' + XROAD_JUDICIAL_SYSTEM_SP_PATH: 'IS-DEV/GOV/10014/Rettarvorslugatt-Private/judicial-system-mailbox-api' + XROAD_MMS_FRIGG_PATH: 'IS-DEV/GOV/10066/MMS-Protected/frigg-form-service' + XROAD_MMS_GRADE_SERVICE_ID: 'IS-DEV/GOV/10066/MMS-Protected/grade-api-v1' + XROAD_MMS_LICENSE_SERVICE_ID: 'IS-DEV/GOV/10066/MMS-Protected/license-api-v1' + XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' + XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS-DEV/GOV/10001/SKRA-Protected/Einstaklingar-v1' + XROAD_NATIONAL_REGISTRY_TIMEOUT: '20000' + XROAD_OFFICIAL_JOURNAL_APPLICATION_PATH: 'IS-DEV/GOV/10014/DMR-Protected/official-journal-application' + XROAD_OFFICIAL_JOURNAL_PATH: 'IS-DEV/GOV/10014/DMR-Protected/official-journal' + XROAD_PASSPORT_LICENSE_PATH: 'IS-DEV/GOV/10001/SKRA-Cloud-Protected/Forskraning-V1' + XROAD_PAYMENT_ADDITION_CALLBACK_URL: '/' + XROAD_PAYMENT_BASE_CALLBACK_URL: 'XROAD:/IS-DEV/GOV/10000/island-is/application-callback-v2/application-payment/' + XROAD_PAYMENT_PROVIDER_ID: 'IS-DEV/GOV/10021/FJS-Public' + XROAD_PAYMENT_SCHEDULE_PATH: 'IS-DEV/GOV/10021/FJS-Public/paymentSchedule_v1' + XROAD_PROPERTIES_SERVICE_V2_PATH: 'IS-DEV/GOV/10033/HMS-Protected/Fasteignir-v1' + XROAD_PROPERTIES_TIMEOUT: '35000' + XROAD_RSK_PROCURING_PATH: 'IS-DEV/GOV/10006/Skatturinn/relationships-v1' + XROAD_RSK_PROCURING_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' + XROAD_RSK_PROCURING_SCOPE: '["@rsk.is/prokura","@rsk.is/prokura:admin"]' + XROAD_SHIP_REGISTRY_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/skipaskra-V1' + XROAD_SIGNATURE_COLLECTION_PATH: 'IS-DEV/GOV/10001/SKRA-Cloud-Protected/Medmaeli-v1' + XROAD_TJODSKRA_API_PATH: '/SKRA-Protected/Einstaklingar-v1' + XROAD_TJODSKRA_MEMBER_CODE: '10001' + XROAD_TLS_BASE_PATH: 'https://securityserver.dev01.devland.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.dev01.devland.is/r1/IS-DEV' + XROAD_TR_PATH: 'IS-DEV/GOV/10008/TR-Protected/external-v1' + XROAD_UNIVERSITY_OF_AKUREYRI_PATH: 'IS-DEV/EDU/10054/UNAK-Protected/brautskraning-v1' + XROAD_UNIVERSITY_OF_ICELAND_PATH: 'IS-DEV/EDU/10010/HI-Protected/brautskraning-v1' + XROAD_VEHICLES_MILEAGE_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Vehicle-Mileagereading-V1' + XROAD_VEHICLES_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Mitt-Svaedi-V1' + XROAD_VEHICLE_CODETABLES_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Vehicle-Codetables-V1' + XROAD_VEHICLE_INFOLOCKS_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Vehicle-Infolocks-V1' + XROAD_VEHICLE_OPERATORS_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Vehicle-Operators-V3' + XROAD_VEHICLE_OWNER_CHANGE_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Vehicle-Ownerchange-V2' + XROAD_VEHICLE_PLATE_ORDERING_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Vehicle-PlateOrdering-V1' + XROAD_VEHICLE_PLATE_RENEWAL_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Vehicle-PlateOwnership-V1' + XROAD_VEHICLE_PRINTING_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Vehicle-Printing-V1' + XROAD_VEHICLE_SERVICE_FJS_V1_PATH: 'IS-DEV/GOV/10021/FJS-Public/VehicleServiceFJS_v1' + XROAD_VMST_API_PATH: '/VMST-ParentalLeave-Protected/ParentalLeaveApplication-v1' + XROAD_VMST_MEMBER_CODE: '10003' + XROAD_WORK_ACCIDENT_PATH: 'IS-DEV/GOV/10013/Vinnueftirlitid-Protected/slysaskraning-token' + XROAD_WORK_MACHINE_LICENSE_PATH: 'IS-DEV/GOV/10013/Vinnueftirlitid-Protected/vinnuvelar-token' + ZENDESK_CONTACT_FORM_SUBDOMAIN: 'stjanilofts' +files: + - 'islyklar.p12' +grantNamespaces: + - 'nginx-ingress-external' + - 'api-catalogue' + - 'application-system' + - 'consultation-portal' + - 'portals-admin' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/health' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 50 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/api' +ingress: + primary-alb: annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/api' - create: true - name: 'api' + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'beta.dev01.devland.is' + paths: + - '/api' + - host: 'api-catalogue.dev01.devland.is' + paths: + - '/api' +namespace: 'islandis' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 2 + max: 50 + min: 2 +resources: + limits: + cpu: '1200m' + memory: '3200Mi' + requests: + cpu: '400m' + memory: '896Mi' +secrets: + ADR_LICENSE_FETCH_TIMEOUT: '/k8s/api/ADR_LICENSE_FETCH_TIMEOUT' + ADR_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/ADR_LICENSE_PASS_TEMPLATE_ID' + APOLLO_BYPASS_CACHE_SECRET: '/k8s/api/APOLLO_BYPASS_CACHE_SECRET' + CHART_STATISTIC_CACHE_TTL: '/k8s/api/CHART_STATISTIC_CACHE_TTL' + CHART_STATISTIC_SOURCE_DATA_PATHS: '/k8s/api/CHART_STATISTIC_SOURCE_DATA_PATHS' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + CONTENTFUL_ACCESS_TOKEN: '/k8s/api/CONTENTFUL_ACCESS_TOKEN' + DIRECTORATE_OF_IMMIGRATION_WATSON_ASSISTANT_CHAT_PRIVATE_RSA_KEY: '/k8s/api/DIRECTORATE_OF_IMMIGRATION_WATSON_ASSISTANT_CHAT_PRIVATE_RSA_KEY' + DIRECTORATE_OF_IMMIGRATION_WATSON_ASSISTANT_CHAT_PUBLIC_IBM_KEY: '/k8s/api/DIRECTORATE_OF_IMMIGRATION_WATSON_ASSISTANT_CHAT_PUBLIC_IBM_KEY' + DIRECTORATE_OF_IMMIGRATION_WATSON_ASSISTANT_CHAT_PUBLIC_RSA_KEY: '/k8s/api/DIRECTORATE_OF_IMMIGRATION_WATSON_ASSISTANT_CHAT_PUBLIC_RSA_KEY' + DISABILITY_LICENSE_FETCH_TIMEOUT: '/k8s/api/DISABILITY_LICENSE_FETCH_TIMEOUT' + DISABILITY_LICENSE_PASS_TEMPLATE_ID: '/k8s/DISABILITY_LICENSE_PASS_TEMPLATE_ID' + DOCUMENT_PROVIDER_BASE_PATH: '/k8s/api/DOCUMENT_PROVIDER_BASE_PATH' + DOCUMENT_PROVIDER_BASE_PATH_TEST: '/k8s/api/DOCUMENT_PROVIDER_BASE_PATH_TEST' + DOCUMENT_PROVIDER_CLIENTID: '/k8s/documentprovider/DOCUMENT_PROVIDER_CLIENTID' + DOCUMENT_PROVIDER_CLIENTID_TEST: '/k8s/documentprovider/DOCUMENT_PROVIDER_CLIENTID_TEST' + DOCUMENT_PROVIDER_CLIENT_SECRET: '/k8s/documentprovider/DOCUMENT_PROVIDER_CLIENT_SECRET' + DOCUMENT_PROVIDER_CLIENT_SECRET_TEST: '/k8s/documentprovider/DOCUMENT_PROVIDER_CLIENT_SECRET_TEST' + DOCUMENT_PROVIDER_TOKEN_URL: '/k8s/api/DOCUMENT_PROVIDER_TOKEN_URL' + DOCUMENT_PROVIDER_TOKEN_URL_TEST: '/k8s/api/DOCUMENT_PROVIDER_TOKEN_URL_TEST' + DOMSYSLA_PASSWORD: '/k8s/api/DOMSYSLA_PASSWORD' + DOMSYSLA_USERNAME: '/k8s/api/DOMSYSLA_USERNAME' + DRIVING_LICENSE_BOOK_PASSWORD: '/k8s/api/DRIVING_LICENSE_BOOK_PASSWORD' + DRIVING_LICENSE_BOOK_USERNAME: '/k8s/api/DRIVING_LICENSE_BOOK_USERNAME' + DRIVING_LICENSE_BOOK_XROAD_PATH: '/k8s/api/DRIVING_LICENSE_BOOK_XROAD_PATH' + DRIVING_LICENSE_FETCH_TIMEOUT: '/k8s/api/DRIVING_LICENSE_FETCH_TIMEOUT' + DRIVING_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/DRIVING_LICENSE_PASS_TEMPLATE_ID' + FINANCIAL_STATEMENTS_INAO_CLIENT_ID: '/k8s/api/FINANCIAL_STATEMENTS_INAO_CLIENT_ID' + FINANCIAL_STATEMENTS_INAO_CLIENT_SECRET: '/k8s/api/FINANCIAL_STATEMENTS_INAO_CLIENT_SECRET' + FIREARM_LICENSE_FETCH_TIMEOUT: '/k8s/api/FIREARM_LICENSE_FETCH_TIMEOUT' + FIREARM_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/FIREARM_LICENSE_PASS_TEMPLATE_ID' + FISKISTOFA_API_ACCESS_TOKEN_SERVICE_AUDIENCE: '/k8s/api/FISKISTOFA_API_ACCESS_TOKEN_SERVICE_AUDIENCE' + FISKISTOFA_API_ACCESS_TOKEN_SERVICE_CLIENT_ID: '/k8s/api/FISKISTOFA_API_ACCESS_TOKEN_SERVICE_CLIENT_ID' + FISKISTOFA_API_ACCESS_TOKEN_SERVICE_CLIENT_SECRET: '/k8s/api/FISKISTOFA_API_ACCESS_TOKEN_SERVICE_CLIENT_SECRET' + FISKISTOFA_API_ACCESS_TOKEN_SERVICE_URL: '/k8s/api/FISKISTOFA_API_ACCESS_TOKEN_SERVICE_URL' + FISKISTOFA_API_URL: '/k8s/api/FISKISTOFA_API_URL' + FISKISTOFA_POWERBI_CLIENT_ID: '/k8s/api/FISKISTOFA_POWERBI_CLIENT_ID' + FISKISTOFA_POWERBI_CLIENT_SECRET: '/k8s/api/FISKISTOFA_POWERBI_CLIENT_SECRET' + FISKISTOFA_POWERBI_TENANT_ID: '/k8s/api/FISKISTOFA_POWERBI_TENANT_ID' + FISKISTOFA_ZENTER_CLIENT_PASSWORD: '/k8s/api/FISKISTOFA_ZENTER_CLIENT_PASSWORD' + FISKISTOFA_ZENTER_EMAIL: '/k8s/api/FISKISTOFA_ZENTER_EMAIL' + FISKISTOFA_ZENTER_PASSWORD: '/k8s/api/FISKISTOFA_ZENTER_PASSWORD' + HOUSING_BENEFIT_CALCULATOR_PASSWORD: '/k8s/xroad/client/HOUSING_BENEFIT_CALCULATOR_PASSWORD' + HOUSING_BENEFIT_CALCULATOR_USERNAME: '/k8s/xroad/client/HOUSING_BENEFIT_CALCULATOR_USERNAME' + HSN_WEB_FORM_RESPONSE_SECRET: '/k8s/api/HSN_WEB_FORM_RESPONSE_SECRET' + HSN_WEB_FORM_RESPONSE_URL: '/k8s/api/HSN_WEB_FORM_RESPONSE_URL' + ICELANDIC_GOVERNMENT_INSTITUTION_VACANCIES_PASSWORD: '/k8s/xroad/client/ICELANDIC_GOVERNMENT_INSTITUTION_VACANCIES_PASSWORD' + ICELANDIC_GOVERNMENT_INSTITUTION_VACANCIES_USERNAME: '/k8s/xroad/client/ICELANDIC_GOVERNMENT_INSTITUTION_VACANCIES_USERNAME' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/api/IDENTITY_SERVER_CLIENT_SECRET' + INTELLECTUAL_PROPERTY_API_KEY: '/k8s/api/IP_API_KEY' + ISLYKILL_SERVICE_BASEPATH: '/k8s/api/ISLYKILL_SERVICE_BASEPATH' + ISLYKILL_SERVICE_PASSPHRASE: '/k8s/api/ISLYKILL_SERVICE_PASSPHRASE' + LICENSE_SERVICE_BARCODE_SECRET_KEY: '/k8s/api/LICENSE_SERVICE_BARCODE_SECRET_KEY' + MACHINE_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/MACHINE_LICENSE_PASS_TEMPLATE_ID' + NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/api/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' + PKPASS_API_KEY: '/k8s/api/PKPASS_API_KEY' + PKPASS_API_URL: '/k8s/api/PKPASS_API_URL' + PKPASS_AUTH_RETRIES: '/k8s/api/PKPASS_AUTH_RETRIES' + PKPASS_CACHE_KEY: '/k8s/api/PKPASS_CACHE_KEY' + PKPASS_CACHE_TOKEN_EXPIRY_DELTA: '/k8s/api/PKPASS_CACHE_TOKEN_EXPIRY_DELTA' + PKPASS_SECRET_KEY: '/k8s/api/PKPASS_SECRET_KEY' + POSTHOLF_BASE_PATH: '/k8s/documents/POSTHOLF_BASE_PATH' + POSTHOLF_CLIENTID: '/k8s/documents/POSTHOLF_CLIENTID' + POSTHOLF_CLIENT_SECRET: '/k8s/documents/POSTHOLF_CLIENT_SECRET' + POSTHOLF_TOKEN_URL: '/k8s/documents/POSTHOLF_TOKEN_URL' + REGULATIONS_API_URL: '/k8s/api/REGULATIONS_API_URL' + REGULATIONS_FILE_UPLOAD_KEY_DRAFT: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_DRAFT' + REGULATIONS_FILE_UPLOAD_KEY_PRESIGNED: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_PRESIGNED' + REGULATIONS_FILE_UPLOAD_KEY_PUBLISH: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_PUBLISH' + RLS_PKPASS_API_KEY: '/k8s/api/RLS_PKPASS_API_KEY' + SMART_SOLUTIONS_API_URL: '/k8s/api/SMART_SOLUTIONS_API_URL' + SYSLUMENN_HOST: '/k8s/api/SYSLUMENN_HOST' + SYSLUMENN_PASSWORD: '/k8s/api/SYSLUMENN_PASSWORD' + SYSLUMENN_USERNAME: '/k8s/api/SYSLUMENN_USERNAME' + TR_PKPASS_API_KEY: '/k8s/api/TR_PKPASS_API_KEY' + ULTRAVIOLET_RADIATION_API_KEY: '/k8s/api/ULTRAVIOLET_RADIATION_API_KEY' + UMBODSMADUR_SKULDARA_COST_OF_LIVING_CALCULATOR_API_URL: '/k8s/api/UMBODSMADUR_SKULDARA_COST_OF_LIVING_CALCULATOR_API_URL' + UST_PKPASS_API_KEY: '/k8s/api/UST_PKPASS_API_KEY' + VEHICLES_ALLOW_CO_OWNERS: '/k8s/api/VEHICLES_ALLOW_CO_OWNERS' + VE_PKPASS_API_KEY: '/k8s/api/VE_PKPASS_API_KEY' + VINNUEFTIRLITID_CAMPAIGN_MONITOR_API_KEY: '/k8s/api/VINNUEFTIRLITID_CAMPAIGN_MONITOR_API_KEY' + WATSON_ASSISTANT_CHAT_FEEDBACK_API_KEY: '/k8s/api/WATSON_ASSISTANT_CHAT_FEEDBACK_API_KEY' + WATSON_ASSISTANT_CHAT_FEEDBACK_URL: '/k8s/api/WATSON_ASSISTANT_CHAT_FEEDBACK_URL' + XROAD_DRIVING_LICENSE_SECRET: '/k8s/api/DRIVING_LICENSE_SECRET' + XROAD_HEALTH_INSURANCE_PASSWORD: '/k8s/health-insurance/XROAD-PASSWORD' + XROAD_HEALTH_INSURANCE_USERNAME: '/k8s/health-insurance/XROAD-USER' + XROAD_HEALTH_INSURANCE_V2_XROAD_PASSWORD: '/k8s/api/HEALTH_INSURANCE_V2_XROAD_PASSWORD' + XROAD_HEALTH_INSURANCE_V2_XROAD_USERNAME: '/k8s/api/HEALTH_INSURANCE_V2_XROAD_USERNAME' + XROAD_PAYMENT_PASSWORD: '/k8s/application-system-api/PAYMENT_PASSWORD' + XROAD_PAYMENT_USER: '/k8s/application-system-api/PAYMENT_USER' + XROAD_PROPERTIES_CLIENT_SECRET: '/k8s/xroad/client/NATIONAL-REGISTRY/IDENTITYSERVER_SECRET' + XROAD_VMST_API_KEY: '/k8s/vmst-client/VMST_API_KEY' + ZENDESK_CONTACT_FORM_EMAIL: '/k8s/api/ZENDESK_CONTACT_FORM_EMAIL' + ZENDESK_CONTACT_FORM_TOKEN: '/k8s/api/ZENDESK_CONTACT_FORM_TOKEN' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/api' + create: true + name: 'api' diff --git a/charts/services/api/values.prod.yaml b/charts/services/api/values.prod.yaml index b2d0e2e5c7b8..92341f753f38 100644 --- a/charts/services/api/values.prod.yaml +++ b/charts/services/api/values.prod.yaml @@ -5,310 +5,320 @@ # ##################################################################### -service: - name: 'api' - args: - - '--tls-min-v1.0' - - '--no-experimental-fetch' - - 'main.js' - command: - - 'node' - enabled: true +global: env: - AIR_DISCOUNT_SCHEME_BACKEND_URL: 'http://web-air-discount-scheme-backend.air-discount-scheme.svc.cluster.local' - AIR_DISCOUNT_SCHEME_CLIENT_TIMEOUT: '20000' - AIR_DISCOUNT_SCHEME_FRONTEND_HOSTNAME: 'loftbru.island.is' - APOLLO_CACHE_REDIS_NODES: '["clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379"]' - APPLICATION_SYSTEM_API_URL: 'http://web-application-system-api.application-system.svc.cluster.local' - AUTH_ADMIN_API_PATH: 'https://innskra.island.is/backend' - AUTH_ADMIN_API_PATHS: '{"development":"https://identity-server.dev01.devland.is/backend","staging":"https://identity-server.staging01.devland.is/backend","production":"https://innskra.island.is/backend"}' - AUTH_DELEGATION_API_URL: 'https://auth-delegation-api.internal.innskra.island.is' - AUTH_IDS_API_URL: 'https://innskra.island.is' - AUTH_PUBLIC_API_URL: 'https://innskra.island.is/api' - COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379"]' - COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS/GOV/5402696029/Skatturinn/ft-v1' - CONSULTATION_PORTAL_CLIENT_BASE_PATH: 'https://samradapi.island.is' - CONTACT_US_EMAIL: 'island@island.is' - CONTENTFUL_HOST: 'cdn.contentful.com' - DOWNLOAD_SERVICE_BASE_PATH: 'https://api.island.is' - ELASTIC_NODE: 'https://vpc-search-mw4w5c2m2g5edjrtvwbpzhkw24.eu-west-1.es.amazonaws.com/' - ELECTRONIC_REGISTRATION_STATISTICS_API_URL: 'https://api.thinglysing.is/business/tolfraedi' - ENDORSEMENT_SYSTEM_BASE_API_URL: 'http://web-endorsement-system-api.endorsement-system.svc.cluster.local' - FILE_DOWNLOAD_BUCKET: 'island-is-prod-download-cache-api' - FILE_STORAGE_UPLOAD_BUCKET: 'island-is-prod-upload-api' - FINANCIAL_STATEMENTS_INAO_BASE_PATH: 'https://star-re.crm4.dynamics.com/api/data/v9.1' - FINANCIAL_STATEMENTS_INAO_ISSUER: 'https://login.microsoftonline.com/05a20268-aaea-4bb5-bb78-960b0462185e/v2.0' - FINANCIAL_STATEMENTS_INAO_SCOPE: 'https://star-re.crm4.dynamics.com/.default' - FINANCIAL_STATEMENTS_INAO_TOKEN_ENDPOINT: 'https://login.microsoftonline.com/05a20268-aaea-4bb5-bb78-960b0462185e/oauth2/v2.0/token' - FISHING_LICENSE_XROAD_PROVIDER_ID: 'IS/GOV/6608922069/Fiskistofa-Protected/veidileyfi-v1' - FISKISTOFA_ZENTER_CLIENT_ID: '1114' - HSN_WEB_FORM_ID: '1dimJFHLFYtnhoYEA3JxRK' - HUNTING_LICENSE_PASS_TEMPLATE_ID: '5f42f942-d8d6-40bf-a186-5a9e12619d9f' - ICELANDIC_NAMES_REGISTRY_BACKEND_URL: 'http://web-icelandic-names-registry-backend.icelandic-names-registry.svc.cluster.local' - IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/api' - IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' - ISLYKILL_CERT: '/etc/config/islyklar.p12' - LICENSE_SERVICE_REDIS_NODES: '["clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379"]' - LOG_LEVEL: 'info' - MUNICIPALITIES_FINANCIAL_AID_BACKEND_URL: 'http://web-financial-aid-backend' - NATIONAL_REGISTRY_B2C_CLIENT_ID: '2304d7ca-7ed3-4188-8b6d-e1b7e0e3df7f' - NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentity.b2clogin.com/skraidentity.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' - NATIONAL_REGISTRY_B2C_PATH: 'IS/GOV/6503760649/SKRA-Cloud-Protected/Midlun-v1' - NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentity.onmicrosoft.com/midlun/.default' - NODE_OPTIONS: '--max-old-space-size=2880 -r dd-trace/init' - REGULATIONS_ADMIN_URL: 'http://web-regulations-admin-backend.regulations-admin.svc.cluster.local' - SEND_FROM_EMAIL: 'island@island.is' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - SERVICE_DOCUMENTS_BASEPATH: 'http://web-services-documents.services-documents.svc.cluster.local' - SESSIONS_API_URL: 'http://web-services-sessions.services-sessions.svc.cluster.local' - SYSLUMENN_TIMEOUT: '40000' - TELL_US_A_STORY_EMAIL: 'sogur@island.is' - UNIVERSITY_GATEWAY_API_URL: 'http://web-services-university-gateway.services-university-gateway.svc.cluster.local' - USER_NOTIFICATION_API_URL: 'http://web-user-notification.user-notification.svc.cluster.local' - USER_PROFILE_CLIENT_URL: 'http://web-service-portal-api.service-portal.svc.cluster.local' - WATSON_ASSISTANT_CHAT_FEEDBACK_DB_NAME: 'island-is-assistant-feedback' - XROAD_ADR_MACHINE_LICENSE_PATH: 'IS/GOV/4201810439/Vinnueftirlitid-Protected/rettindi-token-v1' - XROAD_AGRICULTURAL_UNIVERSITY_OF_ICELAND_PATH: 'IS/EDU/4112043590/LBHI-Protected/brautskraning-v1' - XROAD_AIRCRAFT_REGISTRY_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Loftfaraskra-V1' - XROAD_BASE_PATH: 'http://securityserver.island.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.island.is/r1/IS' - XROAD_BIFROST_UNIVERSITY_PATH: 'IS/EDU/5502690239/Bifrost-Protected/brautskraning-v1' - XROAD_CHARGE_FJS_V2_PATH: 'IS/GOV/5402697509/FJS-Public/chargeFJS_v2' - XROAD_CHARGE_FJS_V2_TIMEOUT: '20000' - XROAD_CLIENT_ID: 'IS/GOV/5501692829/island-is-client' - XROAD_COURT_BANKRUPTCY_CERT_PATH: 'IS/GOV/4707171140/Domstolasyslan/JusticePortal-v1' - XROAD_CRIMINAL_RECORD_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Sakaskra-v1' - XROAD_DIGITAL_TACHOGRAPH_DRIVERS_CARD_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Okuritar-V1' - XROAD_DIRECTORATE_OF_IMMIGRATION_PATH: 'IS/GOV/6702696399/UTL-Protected/Utl-Umsokn-v1' - XROAD_DISABILITY_LICENSE_PATH: 'IS/GOV/5012130120/TR-Protected/oryrki-v1' - XROAD_DISTRICT_COMMISSIONERS_LICENSES_PATH: 'IS/GOV/5512201410/Syslumenn-Protected/RettindiIslandis' - XROAD_DISTRICT_COMMISSIONERS_P_CARD_PATH: 'IS/GOV/5512201410/Syslumenn-Protected/IslandMinarSidur' - XROAD_DRIVING_LICENSE_BOOK_TIMEOUT: '20000' - XROAD_DRIVING_LICENSE_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Okuskirteini-v1' - XROAD_DRIVING_LICENSE_V2_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Okuskirteini-v1' - XROAD_DRIVING_LICENSE_V4_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Okuskirteini-v4' - XROAD_DRIVING_LICENSE_V5_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Okuskirteini-v5' - XROAD_ENERGY_FUNDS_PATH: 'IS/GOV/5402697509/FJS-Public/ElectricCarSubSidyService_v1' - XROAD_FINANCES_PATH: 'IS/GOV/5402697509/FJS-Public/financeIsland' - XROAD_FINANCES_TIMEOUT: '20000' - XROAD_FINANCES_V2_PATH: 'IS/GOV/5402697509/FJS-Public/financeServicesFJS_v2' - XROAD_FINANCIAL_AID_BACKEND_PATH: 'IS/MUN/5502694739/samband-sveitarfelaga/financial-aid-backend' - XROAD_FIREARM_LICENSE_PATH: 'IS/GOV/5309672079/Logreglan-Protected/island-api-v1' - XROAD_HEALTH_DIRECTORATE_ORGAN_DONATION_PATH: 'IS/GOV/7101695009/EmbaettiLandlaeknis-Protected/organ-donation-v1' - XROAD_HEALTH_DIRECTORATE_PATH: 'IS/GOV/7101695009/EmbaettiLandlaeknis-Protected/landlaeknir' - XROAD_HEALTH_DIRECTORATE_VACCINATION_PATH: 'IS/GOV/7101695009/EmbaettiLandlaeknis-Protected/vaccination-v1' - XROAD_HEALTH_INSURANCE_ID: 'IS/GOV/4804080550/SJUKRA-Protected' - XROAD_HEALTH_INSURANCE_MY_PAGES_PATH: 'IS/GOV/4804080550/SJUKRA-Protected/minarsidur' - XROAD_HEALTH_INSURANCE_WSDLURL: 'https://huld.sjukra.is/islandrg?wsdl' - XROAD_HMS_HOUSING_BENEFITS_PATH: 'IS/GOV/5812191480/Husnaeds-og-mannvirkjastofnun-Protected/husbot-v1' - XROAD_HMS_LOANS_PATH: 'IS/GOV/5812191480/Husnaeds-og-mannvirkjastofnun-Protected/libra-v1' - XROAD_HOLAR_UNIVERSITY_PATH: 'IS/EDU/5001694359/Holar-Protected/brautskraning-v1' - XROAD_HOUSING_BENEFIT_CALCULATOR_PATH: 'IS/GOV/5812191480/Husnaeds-og-mannvirkjastofnun-Protected/calc-v1' - XROAD_HUNTING_LICENSE_PATH: 'IS/GOV/7010022880/Umhverfisstofnun-Protected/api' - XROAD_ICELANDIC_GOVERNMENT_INSTITUTION_VACANCIES_PATH: 'IS/GOV/5402697509/FJS-Protected/recruitment-v1' - XROAD_ICELAND_UNIVERSITY_OF_THE_ARTS_PATH: 'IS/EDU/4210984099/LHI-Protected/brautskraning-v1' - XROAD_INNA_PATH: 'IS/GOV/6601241280/MMS-Protected/inna-v1' - XROAD_INTELLECTUAL_PROPERTIES_PATH: 'IS/GOV/6501912189/WebAPI-Public/HUG-webAPI' - XROAD_JUDICIAL_SYSTEM_SP_PATH: 'IS/GOV/5804170510/Rettarvorslugatt-Private/judicial-system-mailbox-api' - XROAD_MMS_FRIGG_PATH: 'IS/GOV/10066/MMS-Protected/frigg-form-service' - XROAD_MMS_GRADE_SERVICE_ID: 'IS/GOV/6601241280/MMS-Protected/grade-api-v1' - XROAD_MMS_LICENSE_SERVICE_ID: 'IS/GOV/6601241280/MMS-Protected/license-api-v1' - XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379"]' - XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS/GOV/6503760649/SKRA-Protected/Einstaklingar-v1' - XROAD_NATIONAL_REGISTRY_TIMEOUT: '20000' - XROAD_OFFICIAL_JOURNAL_APPLICATION_PATH: 'IS/GOV/10014/DMR-Protected/official-journal-application' - XROAD_OFFICIAL_JOURNAL_PATH: 'IS/GOV/10014/DMR-Protected/official-journal' - XROAD_PASSPORT_LICENSE_PATH: 'IS/GOV/6503760649/SKRA-Cloud-Protected/Forskraning-V1' - XROAD_PAYMENT_ADDITION_CALLBACK_URL: '/' - XROAD_PAYMENT_BASE_CALLBACK_URL: 'XROAD:/IS/GOV/5501692829/island-is/application-callback-v2/application-payment/' - XROAD_PAYMENT_PROVIDER_ID: 'IS/GOV/5402697509/FJS-Public' - XROAD_PAYMENT_SCHEDULE_PATH: 'IS/GOV/5402697509/FJS-Public/paymentSchedule_v1' - XROAD_PROPERTIES_SERVICE_V2_PATH: 'IS/GOV/5812191480/Husnaeds-og-mannvirkjastofnun-Protected/Fasteignir-v1' - XROAD_PROPERTIES_TIMEOUT: '35000' - XROAD_RSK_PROCURING_PATH: 'IS/GOV/5402696029/Skatturinn/relationships-v1' - XROAD_RSK_PROCURING_REDIS_NODES: '["clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379"]' - XROAD_RSK_PROCURING_SCOPE: '["@rsk.is/prokura","@rsk.is/prokura:admin"]' - XROAD_SHIP_REGISTRY_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/skipaskra-V1' - XROAD_SIGNATURE_COLLECTION_PATH: 'IS/GOV/6503760649/SKRA-Cloud-Protected/Medmaeli-v1' - XROAD_TJODSKRA_API_PATH: '/SKRA-Protected/Einstaklingar-v1' - XROAD_TJODSKRA_MEMBER_CODE: '6503760649' - XROAD_TLS_BASE_PATH: 'https://securityserver.island.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.island.is/r1/IS' - XROAD_TR_PATH: 'IS/GOV/5012130120/TR-Protected/external-v1' - XROAD_UNIVERSITY_OF_AKUREYRI_PATH: 'IS/EDU/5206871229/UNAK-Protected/brautskraning-v1' - XROAD_UNIVERSITY_OF_ICELAND_PATH: 'IS/EDU/6001692039/HI-Protected/brautskraning-v1' - XROAD_VEHICLES_MILEAGE_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Vehicle-Mileagereading-V1' - XROAD_VEHICLES_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Mitt-Svaedi-V1' - XROAD_VEHICLE_CODETABLES_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Vehicle-Codetables-V1' - XROAD_VEHICLE_INFOLOCKS_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Vehicle-Infolocks-V1' - XROAD_VEHICLE_OPERATORS_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Vehicle-Operators-V3' - XROAD_VEHICLE_OWNER_CHANGE_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Vehicle-Ownerchange-V2' - XROAD_VEHICLE_PLATE_ORDERING_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Vehicle-PlateOrdering-V1' - XROAD_VEHICLE_PLATE_RENEWAL_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Vehicle-PlateOwnership-V1' - XROAD_VEHICLE_PRINTING_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Vehicle-Printing-V1' - XROAD_VEHICLE_SERVICE_FJS_V1_PATH: 'IS/GOV/5402697509/FJS-Public/VehicleServiceFJS_v1' - XROAD_VMST_API_PATH: '/VMST-ParentalLeave-Protected/ParentalLeaveApplication-v1' - XROAD_VMST_MEMBER_CODE: '7005942039' - XROAD_WORK_ACCIDENT_PATH: 'IS/GOV/4201810439/Vinnueftirlitid-Protected/slysaskraning-token' - XROAD_WORK_MACHINE_LICENSE_PATH: 'IS/GOV/4201810439/Vinnueftirlitid-Protected/vinnuvelar-token' - ZENDESK_CONTACT_FORM_SUBDOMAIN: 'digitaliceland' - files: - - 'islyklar.p12' - grantNamespaces: - - 'nginx-ingress-external' - - 'api-catalogue' - - 'application-system' - - 'consultation-portal' - - 'portals-admin' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/health' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 50 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/api' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'island.is' - paths: - - '/api' - - host: 'www.island.is' - paths: - - '/api' - namespace: 'islandis' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 2 - max: 50 - min: 2 - resources: - limits: - cpu: '1200m' - memory: '3200Mi' - requests: - cpu: '400m' - memory: '896Mi' - secrets: - ADR_LICENSE_FETCH_TIMEOUT: '/k8s/api/ADR_LICENSE_FETCH_TIMEOUT' - ADR_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/ADR_LICENSE_PASS_TEMPLATE_ID' - APOLLO_BYPASS_CACHE_SECRET: '/k8s/api/APOLLO_BYPASS_CACHE_SECRET' - CHART_STATISTIC_CACHE_TTL: '/k8s/api/CHART_STATISTIC_CACHE_TTL' - CHART_STATISTIC_SOURCE_DATA_PATHS: '/k8s/api/CHART_STATISTIC_SOURCE_DATA_PATHS' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - CONTENTFUL_ACCESS_TOKEN: '/k8s/api/CONTENTFUL_ACCESS_TOKEN' - DIRECTORATE_OF_IMMIGRATION_WATSON_ASSISTANT_CHAT_PRIVATE_RSA_KEY: '/k8s/api/DIRECTORATE_OF_IMMIGRATION_WATSON_ASSISTANT_CHAT_PRIVATE_RSA_KEY' - DIRECTORATE_OF_IMMIGRATION_WATSON_ASSISTANT_CHAT_PUBLIC_IBM_KEY: '/k8s/api/DIRECTORATE_OF_IMMIGRATION_WATSON_ASSISTANT_CHAT_PUBLIC_IBM_KEY' - DIRECTORATE_OF_IMMIGRATION_WATSON_ASSISTANT_CHAT_PUBLIC_RSA_KEY: '/k8s/api/DIRECTORATE_OF_IMMIGRATION_WATSON_ASSISTANT_CHAT_PUBLIC_RSA_KEY' - DISABILITY_LICENSE_FETCH_TIMEOUT: '/k8s/api/DISABILITY_LICENSE_FETCH_TIMEOUT' - DISABILITY_LICENSE_PASS_TEMPLATE_ID: '/k8s/DISABILITY_LICENSE_PASS_TEMPLATE_ID' - DOCUMENT_PROVIDER_BASE_PATH: '/k8s/api/DOCUMENT_PROVIDER_BASE_PATH' - DOCUMENT_PROVIDER_BASE_PATH_TEST: '/k8s/api/DOCUMENT_PROVIDER_BASE_PATH_TEST' - DOCUMENT_PROVIDER_CLIENTID: '/k8s/documentprovider/DOCUMENT_PROVIDER_CLIENTID' - DOCUMENT_PROVIDER_CLIENTID_TEST: '/k8s/documentprovider/DOCUMENT_PROVIDER_CLIENTID_TEST' - DOCUMENT_PROVIDER_CLIENT_SECRET: '/k8s/documentprovider/DOCUMENT_PROVIDER_CLIENT_SECRET' - DOCUMENT_PROVIDER_CLIENT_SECRET_TEST: '/k8s/documentprovider/DOCUMENT_PROVIDER_CLIENT_SECRET_TEST' - DOCUMENT_PROVIDER_TOKEN_URL: '/k8s/api/DOCUMENT_PROVIDER_TOKEN_URL' - DOCUMENT_PROVIDER_TOKEN_URL_TEST: '/k8s/api/DOCUMENT_PROVIDER_TOKEN_URL_TEST' - DOMSYSLA_PASSWORD: '/k8s/api/DOMSYSLA_PASSWORD' - DOMSYSLA_USERNAME: '/k8s/api/DOMSYSLA_USERNAME' - DRIVING_LICENSE_BOOK_PASSWORD: '/k8s/api/DRIVING_LICENSE_BOOK_PASSWORD' - DRIVING_LICENSE_BOOK_USERNAME: '/k8s/api/DRIVING_LICENSE_BOOK_USERNAME' - DRIVING_LICENSE_BOOK_XROAD_PATH: '/k8s/api/DRIVING_LICENSE_BOOK_XROAD_PATH' - DRIVING_LICENSE_FETCH_TIMEOUT: '/k8s/api/DRIVING_LICENSE_FETCH_TIMEOUT' - DRIVING_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/DRIVING_LICENSE_PASS_TEMPLATE_ID' - FINANCIAL_STATEMENTS_INAO_CLIENT_ID: '/k8s/api/FINANCIAL_STATEMENTS_INAO_CLIENT_ID' - FINANCIAL_STATEMENTS_INAO_CLIENT_SECRET: '/k8s/api/FINANCIAL_STATEMENTS_INAO_CLIENT_SECRET' - FIREARM_LICENSE_FETCH_TIMEOUT: '/k8s/api/FIREARM_LICENSE_FETCH_TIMEOUT' - FIREARM_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/FIREARM_LICENSE_PASS_TEMPLATE_ID' - FISKISTOFA_API_ACCESS_TOKEN_SERVICE_AUDIENCE: '/k8s/api/FISKISTOFA_API_ACCESS_TOKEN_SERVICE_AUDIENCE' - FISKISTOFA_API_ACCESS_TOKEN_SERVICE_CLIENT_ID: '/k8s/api/FISKISTOFA_API_ACCESS_TOKEN_SERVICE_CLIENT_ID' - FISKISTOFA_API_ACCESS_TOKEN_SERVICE_CLIENT_SECRET: '/k8s/api/FISKISTOFA_API_ACCESS_TOKEN_SERVICE_CLIENT_SECRET' - FISKISTOFA_API_ACCESS_TOKEN_SERVICE_URL: '/k8s/api/FISKISTOFA_API_ACCESS_TOKEN_SERVICE_URL' - FISKISTOFA_API_URL: '/k8s/api/FISKISTOFA_API_URL' - FISKISTOFA_POWERBI_CLIENT_ID: '/k8s/api/FISKISTOFA_POWERBI_CLIENT_ID' - FISKISTOFA_POWERBI_CLIENT_SECRET: '/k8s/api/FISKISTOFA_POWERBI_CLIENT_SECRET' - FISKISTOFA_POWERBI_TENANT_ID: '/k8s/api/FISKISTOFA_POWERBI_TENANT_ID' - FISKISTOFA_ZENTER_CLIENT_PASSWORD: '/k8s/api/FISKISTOFA_ZENTER_CLIENT_PASSWORD' - FISKISTOFA_ZENTER_EMAIL: '/k8s/api/FISKISTOFA_ZENTER_EMAIL' - FISKISTOFA_ZENTER_PASSWORD: '/k8s/api/FISKISTOFA_ZENTER_PASSWORD' - HOUSING_BENEFIT_CALCULATOR_PASSWORD: '/k8s/xroad/client/HOUSING_BENEFIT_CALCULATOR_PASSWORD' - HOUSING_BENEFIT_CALCULATOR_USERNAME: '/k8s/xroad/client/HOUSING_BENEFIT_CALCULATOR_USERNAME' - HSN_WEB_FORM_RESPONSE_SECRET: '/k8s/api/HSN_WEB_FORM_RESPONSE_SECRET' - HSN_WEB_FORM_RESPONSE_URL: '/k8s/api/HSN_WEB_FORM_RESPONSE_URL' - ICELANDIC_GOVERNMENT_INSTITUTION_VACANCIES_PASSWORD: '/k8s/xroad/client/ICELANDIC_GOVERNMENT_INSTITUTION_VACANCIES_PASSWORD' - ICELANDIC_GOVERNMENT_INSTITUTION_VACANCIES_USERNAME: '/k8s/xroad/client/ICELANDIC_GOVERNMENT_INSTITUTION_VACANCIES_USERNAME' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/api/IDENTITY_SERVER_CLIENT_SECRET' - INTELLECTUAL_PROPERTY_API_KEY: '/k8s/api/IP_API_KEY' - ISLYKILL_SERVICE_BASEPATH: '/k8s/api/ISLYKILL_SERVICE_BASEPATH' - ISLYKILL_SERVICE_PASSPHRASE: '/k8s/api/ISLYKILL_SERVICE_PASSPHRASE' - LICENSE_SERVICE_BARCODE_SECRET_KEY: '/k8s/api/LICENSE_SERVICE_BARCODE_SECRET_KEY' - MACHINE_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/MACHINE_LICENSE_PASS_TEMPLATE_ID' - NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/api/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' - PKPASS_API_KEY: '/k8s/api/PKPASS_API_KEY' - PKPASS_API_URL: '/k8s/api/PKPASS_API_URL' - PKPASS_AUTH_RETRIES: '/k8s/api/PKPASS_AUTH_RETRIES' - PKPASS_CACHE_KEY: '/k8s/api/PKPASS_CACHE_KEY' - PKPASS_CACHE_TOKEN_EXPIRY_DELTA: '/k8s/api/PKPASS_CACHE_TOKEN_EXPIRY_DELTA' - PKPASS_SECRET_KEY: '/k8s/api/PKPASS_SECRET_KEY' - POSTHOLF_BASE_PATH: '/k8s/documents/POSTHOLF_BASE_PATH' - POSTHOLF_CLIENTID: '/k8s/documents/POSTHOLF_CLIENTID' - POSTHOLF_CLIENT_SECRET: '/k8s/documents/POSTHOLF_CLIENT_SECRET' - POSTHOLF_TOKEN_URL: '/k8s/documents/POSTHOLF_TOKEN_URL' - REGULATIONS_API_URL: '/k8s/api/REGULATIONS_API_URL' - REGULATIONS_FILE_UPLOAD_KEY_DRAFT: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_DRAFT' - REGULATIONS_FILE_UPLOAD_KEY_PRESIGNED: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_PRESIGNED' - REGULATIONS_FILE_UPLOAD_KEY_PUBLISH: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_PUBLISH' - RLS_PKPASS_API_KEY: '/k8s/api/RLS_PKPASS_API_KEY' - SMART_SOLUTIONS_API_URL: '/k8s/api/SMART_SOLUTIONS_API_URL' - SYSLUMENN_HOST: '/k8s/api/SYSLUMENN_HOST' - SYSLUMENN_PASSWORD: '/k8s/api/SYSLUMENN_PASSWORD' - SYSLUMENN_USERNAME: '/k8s/api/SYSLUMENN_USERNAME' - TR_PKPASS_API_KEY: '/k8s/api/TR_PKPASS_API_KEY' - ULTRAVIOLET_RADIATION_API_KEY: '/k8s/api/ULTRAVIOLET_RADIATION_API_KEY' - UMBODSMADUR_SKULDARA_COST_OF_LIVING_CALCULATOR_API_URL: '/k8s/api/UMBODSMADUR_SKULDARA_COST_OF_LIVING_CALCULATOR_API_URL' - UST_PKPASS_API_KEY: '/k8s/api/UST_PKPASS_API_KEY' - VEHICLES_ALLOW_CO_OWNERS: '/k8s/api/VEHICLES_ALLOW_CO_OWNERS' - VE_PKPASS_API_KEY: '/k8s/api/VE_PKPASS_API_KEY' - VINNUEFTIRLITID_CAMPAIGN_MONITOR_API_KEY: '/k8s/api/VINNUEFTIRLITID_CAMPAIGN_MONITOR_API_KEY' - WATSON_ASSISTANT_CHAT_FEEDBACK_API_KEY: '/k8s/api/WATSON_ASSISTANT_CHAT_FEEDBACK_API_KEY' - WATSON_ASSISTANT_CHAT_FEEDBACK_URL: '/k8s/api/WATSON_ASSISTANT_CHAT_FEEDBACK_URL' - XROAD_DRIVING_LICENSE_SECRET: '/k8s/api/DRIVING_LICENSE_SECRET' - XROAD_HEALTH_INSURANCE_PASSWORD: '/k8s/health-insurance/XROAD-PASSWORD' - XROAD_HEALTH_INSURANCE_USERNAME: '/k8s/health-insurance/XROAD-USER' - XROAD_HEALTH_INSURANCE_V2_XROAD_PASSWORD: '/k8s/api/HEALTH_INSURANCE_V2_XROAD_PASSWORD' - XROAD_HEALTH_INSURANCE_V2_XROAD_USERNAME: '/k8s/api/HEALTH_INSURANCE_V2_XROAD_USERNAME' - XROAD_PAYMENT_PASSWORD: '/k8s/application-system-api/PAYMENT_PASSWORD' - XROAD_PAYMENT_USER: '/k8s/application-system-api/PAYMENT_USER' - XROAD_PROPERTIES_CLIENT_SECRET: '/k8s/xroad/client/NATIONAL-REGISTRY/IDENTITYSERVER_SECRET' - XROAD_VMST_API_KEY: '/k8s/vmst-client/VMST_API_KEY' - ZENDESK_CONTACT_FORM_EMAIL: '/k8s/api/ZENDESK_CONTACT_FORM_EMAIL' - ZENDESK_CONTACT_FORM_TOKEN: '/k8s/api/ZENDESK_CONTACT_FORM_TOKEN' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'api' +args: + - '--tls-min-v1.0' + - '--no-experimental-fetch' + - 'main.js' +command: + - 'node' +enabled: true +env: + AIR_DISCOUNT_SCHEME_BACKEND_URL: 'http://web-air-discount-scheme-backend.air-discount-scheme.svc.cluster.local' + AIR_DISCOUNT_SCHEME_CLIENT_TIMEOUT: '20000' + AIR_DISCOUNT_SCHEME_FRONTEND_HOSTNAME: 'loftbru.island.is' + APOLLO_CACHE_REDIS_NODES: '["clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379"]' + APPLICATION_SYSTEM_API_URL: 'http://web-application-system-api.application-system.svc.cluster.local' + AUTH_ADMIN_API_PATH: 'https://innskra.island.is/backend' + AUTH_ADMIN_API_PATHS: '{"development":"https://identity-server.dev01.devland.is/backend","staging":"https://identity-server.staging01.devland.is/backend","production":"https://innskra.island.is/backend"}' + AUTH_DELEGATION_API_URL: 'https://auth-delegation-api.internal.innskra.island.is' + AUTH_IDS_API_URL: 'https://innskra.island.is' + AUTH_PUBLIC_API_URL: 'https://innskra.island.is/api' + COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379"]' + COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS/GOV/5402696029/Skatturinn/ft-v1' + CONSULTATION_PORTAL_CLIENT_BASE_PATH: 'https://samradapi.island.is' + CONTACT_US_EMAIL: 'island@island.is' + CONTENTFUL_HOST: 'cdn.contentful.com' + DOWNLOAD_SERVICE_BASE_PATH: 'https://api.island.is' + ELASTIC_NODE: 'https://vpc-search-mw4w5c2m2g5edjrtvwbpzhkw24.eu-west-1.es.amazonaws.com/' + ELECTRONIC_REGISTRATION_STATISTICS_API_URL: 'https://api.thinglysing.is/business/tolfraedi' + ENDORSEMENT_SYSTEM_BASE_API_URL: 'http://web-endorsement-system-api.endorsement-system.svc.cluster.local' + FILE_DOWNLOAD_BUCKET: 'island-is-prod-download-cache-api' + FILE_STORAGE_UPLOAD_BUCKET: 'island-is-prod-upload-api' + FINANCIAL_STATEMENTS_INAO_BASE_PATH: 'https://star-re.crm4.dynamics.com/api/data/v9.1' + FINANCIAL_STATEMENTS_INAO_ISSUER: 'https://login.microsoftonline.com/05a20268-aaea-4bb5-bb78-960b0462185e/v2.0' + FINANCIAL_STATEMENTS_INAO_SCOPE: 'https://star-re.crm4.dynamics.com/.default' + FINANCIAL_STATEMENTS_INAO_TOKEN_ENDPOINT: 'https://login.microsoftonline.com/05a20268-aaea-4bb5-bb78-960b0462185e/oauth2/v2.0/token' + FISHING_LICENSE_XROAD_PROVIDER_ID: 'IS/GOV/6608922069/Fiskistofa-Protected/veidileyfi-v1' + FISKISTOFA_ZENTER_CLIENT_ID: '1114' + HSN_WEB_FORM_ID: '1dimJFHLFYtnhoYEA3JxRK' + HUNTING_LICENSE_PASS_TEMPLATE_ID: '5f42f942-d8d6-40bf-a186-5a9e12619d9f' + ICELANDIC_NAMES_REGISTRY_BACKEND_URL: 'http://web-icelandic-names-registry-backend.icelandic-names-registry.svc.cluster.local' + IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/api' + IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' + ISLYKILL_CERT: '/etc/config/islyklar.p12' + LICENSE_SERVICE_REDIS_NODES: '["clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379"]' + LOG_LEVEL: 'info' + MUNICIPALITIES_FINANCIAL_AID_BACKEND_URL: 'http://web-financial-aid-backend' + NATIONAL_REGISTRY_B2C_CLIENT_ID: '2304d7ca-7ed3-4188-8b6d-e1b7e0e3df7f' + NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentity.b2clogin.com/skraidentity.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' + NATIONAL_REGISTRY_B2C_PATH: 'IS/GOV/6503760649/SKRA-Cloud-Protected/Midlun-v1' + NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentity.onmicrosoft.com/midlun/.default' + NODE_OPTIONS: '--max-old-space-size=2880 -r dd-trace/init' + REGULATIONS_ADMIN_URL: 'http://web-regulations-admin-backend.regulations-admin.svc.cluster.local' + SEND_FROM_EMAIL: 'island@island.is' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' + SERVICE_DOCUMENTS_BASEPATH: 'http://web-services-documents.services-documents.svc.cluster.local' + SESSIONS_API_URL: 'http://web-services-sessions.services-sessions.svc.cluster.local' + SYSLUMENN_TIMEOUT: '40000' + TELL_US_A_STORY_EMAIL: 'sogur@island.is' + UNIVERSITY_GATEWAY_API_URL: 'http://web-services-university-gateway.services-university-gateway.svc.cluster.local' + USER_NOTIFICATION_API_URL: 'http://web-user-notification.user-notification.svc.cluster.local' + USER_PROFILE_CLIENT_URL: 'http://web-service-portal-api.service-portal.svc.cluster.local' + WATSON_ASSISTANT_CHAT_FEEDBACK_DB_NAME: 'island-is-assistant-feedback' + XROAD_ADR_MACHINE_LICENSE_PATH: 'IS/GOV/4201810439/Vinnueftirlitid-Protected/rettindi-token-v1' + XROAD_AGRICULTURAL_UNIVERSITY_OF_ICELAND_PATH: 'IS/EDU/4112043590/LBHI-Protected/brautskraning-v1' + XROAD_AIRCRAFT_REGISTRY_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Loftfaraskra-V1' + XROAD_BASE_PATH: 'http://securityserver.island.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.island.is/r1/IS' + XROAD_BIFROST_UNIVERSITY_PATH: 'IS/EDU/5502690239/Bifrost-Protected/brautskraning-v1' + XROAD_CHARGE_FJS_V2_PATH: 'IS/GOV/5402697509/FJS-Public/chargeFJS_v2' + XROAD_CHARGE_FJS_V2_TIMEOUT: '20000' + XROAD_CLIENT_ID: 'IS/GOV/5501692829/island-is-client' + XROAD_COURT_BANKRUPTCY_CERT_PATH: 'IS/GOV/4707171140/Domstolasyslan/JusticePortal-v1' + XROAD_CRIMINAL_RECORD_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Sakaskra-v1' + XROAD_DIGITAL_TACHOGRAPH_DRIVERS_CARD_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Okuritar-V1' + XROAD_DIRECTORATE_OF_IMMIGRATION_PATH: 'IS/GOV/6702696399/UTL-Protected/Utl-Umsokn-v1' + XROAD_DISABILITY_LICENSE_PATH: 'IS/GOV/5012130120/TR-Protected/oryrki-v1' + XROAD_DISTRICT_COMMISSIONERS_LICENSES_PATH: 'IS/GOV/5512201410/Syslumenn-Protected/RettindiIslandis' + XROAD_DISTRICT_COMMISSIONERS_P_CARD_PATH: 'IS/GOV/5512201410/Syslumenn-Protected/IslandMinarSidur' + XROAD_DRIVING_LICENSE_BOOK_TIMEOUT: '20000' + XROAD_DRIVING_LICENSE_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Okuskirteini-v1' + XROAD_DRIVING_LICENSE_V2_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Okuskirteini-v1' + XROAD_DRIVING_LICENSE_V4_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Okuskirteini-v4' + XROAD_DRIVING_LICENSE_V5_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Okuskirteini-v5' + XROAD_ENERGY_FUNDS_PATH: 'IS/GOV/5402697509/FJS-Public/ElectricCarSubSidyService_v1' + XROAD_FINANCES_PATH: 'IS/GOV/5402697509/FJS-Public/financeIsland' + XROAD_FINANCES_TIMEOUT: '20000' + XROAD_FINANCES_V2_PATH: 'IS/GOV/5402697509/FJS-Public/financeServicesFJS_v2' + XROAD_FINANCIAL_AID_BACKEND_PATH: 'IS/MUN/5502694739/samband-sveitarfelaga/financial-aid-backend' + XROAD_FIREARM_LICENSE_PATH: 'IS/GOV/5309672079/Logreglan-Protected/island-api-v1' + XROAD_HEALTH_DIRECTORATE_ORGAN_DONATION_PATH: 'IS/GOV/7101695009/EmbaettiLandlaeknis-Protected/organ-donation-v1' + XROAD_HEALTH_DIRECTORATE_PATH: 'IS/GOV/7101695009/EmbaettiLandlaeknis-Protected/landlaeknir' + XROAD_HEALTH_DIRECTORATE_VACCINATION_PATH: 'IS/GOV/7101695009/EmbaettiLandlaeknis-Protected/vaccination-v1' + XROAD_HEALTH_INSURANCE_ID: 'IS/GOV/4804080550/SJUKRA-Protected' + XROAD_HEALTH_INSURANCE_MY_PAGES_PATH: 'IS/GOV/4804080550/SJUKRA-Protected/minarsidur' + XROAD_HEALTH_INSURANCE_WSDLURL: 'https://huld.sjukra.is/islandrg?wsdl' + XROAD_HMS_HOUSING_BENEFITS_PATH: 'IS/GOV/5812191480/Husnaeds-og-mannvirkjastofnun-Protected/husbot-v1' + XROAD_HMS_LOANS_PATH: 'IS/GOV/5812191480/Husnaeds-og-mannvirkjastofnun-Protected/libra-v1' + XROAD_HOLAR_UNIVERSITY_PATH: 'IS/EDU/5001694359/Holar-Protected/brautskraning-v1' + XROAD_HOUSING_BENEFIT_CALCULATOR_PATH: 'IS/GOV/5812191480/Husnaeds-og-mannvirkjastofnun-Protected/calc-v1' + XROAD_HUNTING_LICENSE_PATH: 'IS/GOV/7010022880/Umhverfisstofnun-Protected/api' + XROAD_ICELANDIC_GOVERNMENT_INSTITUTION_VACANCIES_PATH: 'IS/GOV/5402697509/FJS-Protected/recruitment-v1' + XROAD_ICELAND_UNIVERSITY_OF_THE_ARTS_PATH: 'IS/EDU/4210984099/LHI-Protected/brautskraning-v1' + XROAD_INNA_PATH: 'IS/GOV/6601241280/MMS-Protected/inna-v1' + XROAD_INTELLECTUAL_PROPERTIES_PATH: 'IS/GOV/6501912189/WebAPI-Public/HUG-webAPI' + XROAD_JUDICIAL_SYSTEM_SP_PATH: 'IS/GOV/5804170510/Rettarvorslugatt-Private/judicial-system-mailbox-api' + XROAD_MMS_FRIGG_PATH: 'IS/GOV/10066/MMS-Protected/frigg-form-service' + XROAD_MMS_GRADE_SERVICE_ID: 'IS/GOV/6601241280/MMS-Protected/grade-api-v1' + XROAD_MMS_LICENSE_SERVICE_ID: 'IS/GOV/6601241280/MMS-Protected/license-api-v1' + XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379"]' + XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS/GOV/6503760649/SKRA-Protected/Einstaklingar-v1' + XROAD_NATIONAL_REGISTRY_TIMEOUT: '20000' + XROAD_OFFICIAL_JOURNAL_APPLICATION_PATH: 'IS/GOV/10014/DMR-Protected/official-journal-application' + XROAD_OFFICIAL_JOURNAL_PATH: 'IS/GOV/10014/DMR-Protected/official-journal' + XROAD_PASSPORT_LICENSE_PATH: 'IS/GOV/6503760649/SKRA-Cloud-Protected/Forskraning-V1' + XROAD_PAYMENT_ADDITION_CALLBACK_URL: '/' + XROAD_PAYMENT_BASE_CALLBACK_URL: 'XROAD:/IS/GOV/5501692829/island-is/application-callback-v2/application-payment/' + XROAD_PAYMENT_PROVIDER_ID: 'IS/GOV/5402697509/FJS-Public' + XROAD_PAYMENT_SCHEDULE_PATH: 'IS/GOV/5402697509/FJS-Public/paymentSchedule_v1' + XROAD_PROPERTIES_SERVICE_V2_PATH: 'IS/GOV/5812191480/Husnaeds-og-mannvirkjastofnun-Protected/Fasteignir-v1' + XROAD_PROPERTIES_TIMEOUT: '35000' + XROAD_RSK_PROCURING_PATH: 'IS/GOV/5402696029/Skatturinn/relationships-v1' + XROAD_RSK_PROCURING_REDIS_NODES: '["clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379"]' + XROAD_RSK_PROCURING_SCOPE: '["@rsk.is/prokura","@rsk.is/prokura:admin"]' + XROAD_SHIP_REGISTRY_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/skipaskra-V1' + XROAD_SIGNATURE_COLLECTION_PATH: 'IS/GOV/6503760649/SKRA-Cloud-Protected/Medmaeli-v1' + XROAD_TJODSKRA_API_PATH: '/SKRA-Protected/Einstaklingar-v1' + XROAD_TJODSKRA_MEMBER_CODE: '6503760649' + XROAD_TLS_BASE_PATH: 'https://securityserver.island.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.island.is/r1/IS' + XROAD_TR_PATH: 'IS/GOV/5012130120/TR-Protected/external-v1' + XROAD_UNIVERSITY_OF_AKUREYRI_PATH: 'IS/EDU/5206871229/UNAK-Protected/brautskraning-v1' + XROAD_UNIVERSITY_OF_ICELAND_PATH: 'IS/EDU/6001692039/HI-Protected/brautskraning-v1' + XROAD_VEHICLES_MILEAGE_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Vehicle-Mileagereading-V1' + XROAD_VEHICLES_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Mitt-Svaedi-V1' + XROAD_VEHICLE_CODETABLES_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Vehicle-Codetables-V1' + XROAD_VEHICLE_INFOLOCKS_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Vehicle-Infolocks-V1' + XROAD_VEHICLE_OPERATORS_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Vehicle-Operators-V3' + XROAD_VEHICLE_OWNER_CHANGE_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Vehicle-Ownerchange-V2' + XROAD_VEHICLE_PLATE_ORDERING_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Vehicle-PlateOrdering-V1' + XROAD_VEHICLE_PLATE_RENEWAL_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Vehicle-PlateOwnership-V1' + XROAD_VEHICLE_PRINTING_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Vehicle-Printing-V1' + XROAD_VEHICLE_SERVICE_FJS_V1_PATH: 'IS/GOV/5402697509/FJS-Public/VehicleServiceFJS_v1' + XROAD_VMST_API_PATH: '/VMST-ParentalLeave-Protected/ParentalLeaveApplication-v1' + XROAD_VMST_MEMBER_CODE: '7005942039' + XROAD_WORK_ACCIDENT_PATH: 'IS/GOV/4201810439/Vinnueftirlitid-Protected/slysaskraning-token' + XROAD_WORK_MACHINE_LICENSE_PATH: 'IS/GOV/4201810439/Vinnueftirlitid-Protected/vinnuvelar-token' + ZENDESK_CONTACT_FORM_SUBDOMAIN: 'digitaliceland' +files: + - 'islyklar.p12' +grantNamespaces: + - 'nginx-ingress-external' + - 'api-catalogue' + - 'application-system' + - 'consultation-portal' + - 'portals-admin' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/health' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 50 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/api' +ingress: + primary-alb: annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/api' - create: true - name: 'api' + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'island.is' + paths: + - '/api' + - host: 'www.island.is' + paths: + - '/api' +namespace: 'islandis' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 2 + max: 50 + min: 2 +resources: + limits: + cpu: '1200m' + memory: '3200Mi' + requests: + cpu: '400m' + memory: '896Mi' +secrets: + ADR_LICENSE_FETCH_TIMEOUT: '/k8s/api/ADR_LICENSE_FETCH_TIMEOUT' + ADR_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/ADR_LICENSE_PASS_TEMPLATE_ID' + APOLLO_BYPASS_CACHE_SECRET: '/k8s/api/APOLLO_BYPASS_CACHE_SECRET' + CHART_STATISTIC_CACHE_TTL: '/k8s/api/CHART_STATISTIC_CACHE_TTL' + CHART_STATISTIC_SOURCE_DATA_PATHS: '/k8s/api/CHART_STATISTIC_SOURCE_DATA_PATHS' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + CONTENTFUL_ACCESS_TOKEN: '/k8s/api/CONTENTFUL_ACCESS_TOKEN' + DIRECTORATE_OF_IMMIGRATION_WATSON_ASSISTANT_CHAT_PRIVATE_RSA_KEY: '/k8s/api/DIRECTORATE_OF_IMMIGRATION_WATSON_ASSISTANT_CHAT_PRIVATE_RSA_KEY' + DIRECTORATE_OF_IMMIGRATION_WATSON_ASSISTANT_CHAT_PUBLIC_IBM_KEY: '/k8s/api/DIRECTORATE_OF_IMMIGRATION_WATSON_ASSISTANT_CHAT_PUBLIC_IBM_KEY' + DIRECTORATE_OF_IMMIGRATION_WATSON_ASSISTANT_CHAT_PUBLIC_RSA_KEY: '/k8s/api/DIRECTORATE_OF_IMMIGRATION_WATSON_ASSISTANT_CHAT_PUBLIC_RSA_KEY' + DISABILITY_LICENSE_FETCH_TIMEOUT: '/k8s/api/DISABILITY_LICENSE_FETCH_TIMEOUT' + DISABILITY_LICENSE_PASS_TEMPLATE_ID: '/k8s/DISABILITY_LICENSE_PASS_TEMPLATE_ID' + DOCUMENT_PROVIDER_BASE_PATH: '/k8s/api/DOCUMENT_PROVIDER_BASE_PATH' + DOCUMENT_PROVIDER_BASE_PATH_TEST: '/k8s/api/DOCUMENT_PROVIDER_BASE_PATH_TEST' + DOCUMENT_PROVIDER_CLIENTID: '/k8s/documentprovider/DOCUMENT_PROVIDER_CLIENTID' + DOCUMENT_PROVIDER_CLIENTID_TEST: '/k8s/documentprovider/DOCUMENT_PROVIDER_CLIENTID_TEST' + DOCUMENT_PROVIDER_CLIENT_SECRET: '/k8s/documentprovider/DOCUMENT_PROVIDER_CLIENT_SECRET' + DOCUMENT_PROVIDER_CLIENT_SECRET_TEST: '/k8s/documentprovider/DOCUMENT_PROVIDER_CLIENT_SECRET_TEST' + DOCUMENT_PROVIDER_TOKEN_URL: '/k8s/api/DOCUMENT_PROVIDER_TOKEN_URL' + DOCUMENT_PROVIDER_TOKEN_URL_TEST: '/k8s/api/DOCUMENT_PROVIDER_TOKEN_URL_TEST' + DOMSYSLA_PASSWORD: '/k8s/api/DOMSYSLA_PASSWORD' + DOMSYSLA_USERNAME: '/k8s/api/DOMSYSLA_USERNAME' + DRIVING_LICENSE_BOOK_PASSWORD: '/k8s/api/DRIVING_LICENSE_BOOK_PASSWORD' + DRIVING_LICENSE_BOOK_USERNAME: '/k8s/api/DRIVING_LICENSE_BOOK_USERNAME' + DRIVING_LICENSE_BOOK_XROAD_PATH: '/k8s/api/DRIVING_LICENSE_BOOK_XROAD_PATH' + DRIVING_LICENSE_FETCH_TIMEOUT: '/k8s/api/DRIVING_LICENSE_FETCH_TIMEOUT' + DRIVING_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/DRIVING_LICENSE_PASS_TEMPLATE_ID' + FINANCIAL_STATEMENTS_INAO_CLIENT_ID: '/k8s/api/FINANCIAL_STATEMENTS_INAO_CLIENT_ID' + FINANCIAL_STATEMENTS_INAO_CLIENT_SECRET: '/k8s/api/FINANCIAL_STATEMENTS_INAO_CLIENT_SECRET' + FIREARM_LICENSE_FETCH_TIMEOUT: '/k8s/api/FIREARM_LICENSE_FETCH_TIMEOUT' + FIREARM_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/FIREARM_LICENSE_PASS_TEMPLATE_ID' + FISKISTOFA_API_ACCESS_TOKEN_SERVICE_AUDIENCE: '/k8s/api/FISKISTOFA_API_ACCESS_TOKEN_SERVICE_AUDIENCE' + FISKISTOFA_API_ACCESS_TOKEN_SERVICE_CLIENT_ID: '/k8s/api/FISKISTOFA_API_ACCESS_TOKEN_SERVICE_CLIENT_ID' + FISKISTOFA_API_ACCESS_TOKEN_SERVICE_CLIENT_SECRET: '/k8s/api/FISKISTOFA_API_ACCESS_TOKEN_SERVICE_CLIENT_SECRET' + FISKISTOFA_API_ACCESS_TOKEN_SERVICE_URL: '/k8s/api/FISKISTOFA_API_ACCESS_TOKEN_SERVICE_URL' + FISKISTOFA_API_URL: '/k8s/api/FISKISTOFA_API_URL' + FISKISTOFA_POWERBI_CLIENT_ID: '/k8s/api/FISKISTOFA_POWERBI_CLIENT_ID' + FISKISTOFA_POWERBI_CLIENT_SECRET: '/k8s/api/FISKISTOFA_POWERBI_CLIENT_SECRET' + FISKISTOFA_POWERBI_TENANT_ID: '/k8s/api/FISKISTOFA_POWERBI_TENANT_ID' + FISKISTOFA_ZENTER_CLIENT_PASSWORD: '/k8s/api/FISKISTOFA_ZENTER_CLIENT_PASSWORD' + FISKISTOFA_ZENTER_EMAIL: '/k8s/api/FISKISTOFA_ZENTER_EMAIL' + FISKISTOFA_ZENTER_PASSWORD: '/k8s/api/FISKISTOFA_ZENTER_PASSWORD' + HOUSING_BENEFIT_CALCULATOR_PASSWORD: '/k8s/xroad/client/HOUSING_BENEFIT_CALCULATOR_PASSWORD' + HOUSING_BENEFIT_CALCULATOR_USERNAME: '/k8s/xroad/client/HOUSING_BENEFIT_CALCULATOR_USERNAME' + HSN_WEB_FORM_RESPONSE_SECRET: '/k8s/api/HSN_WEB_FORM_RESPONSE_SECRET' + HSN_WEB_FORM_RESPONSE_URL: '/k8s/api/HSN_WEB_FORM_RESPONSE_URL' + ICELANDIC_GOVERNMENT_INSTITUTION_VACANCIES_PASSWORD: '/k8s/xroad/client/ICELANDIC_GOVERNMENT_INSTITUTION_VACANCIES_PASSWORD' + ICELANDIC_GOVERNMENT_INSTITUTION_VACANCIES_USERNAME: '/k8s/xroad/client/ICELANDIC_GOVERNMENT_INSTITUTION_VACANCIES_USERNAME' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/api/IDENTITY_SERVER_CLIENT_SECRET' + INTELLECTUAL_PROPERTY_API_KEY: '/k8s/api/IP_API_KEY' + ISLYKILL_SERVICE_BASEPATH: '/k8s/api/ISLYKILL_SERVICE_BASEPATH' + ISLYKILL_SERVICE_PASSPHRASE: '/k8s/api/ISLYKILL_SERVICE_PASSPHRASE' + LICENSE_SERVICE_BARCODE_SECRET_KEY: '/k8s/api/LICENSE_SERVICE_BARCODE_SECRET_KEY' + MACHINE_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/MACHINE_LICENSE_PASS_TEMPLATE_ID' + NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/api/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' + PKPASS_API_KEY: '/k8s/api/PKPASS_API_KEY' + PKPASS_API_URL: '/k8s/api/PKPASS_API_URL' + PKPASS_AUTH_RETRIES: '/k8s/api/PKPASS_AUTH_RETRIES' + PKPASS_CACHE_KEY: '/k8s/api/PKPASS_CACHE_KEY' + PKPASS_CACHE_TOKEN_EXPIRY_DELTA: '/k8s/api/PKPASS_CACHE_TOKEN_EXPIRY_DELTA' + PKPASS_SECRET_KEY: '/k8s/api/PKPASS_SECRET_KEY' + POSTHOLF_BASE_PATH: '/k8s/documents/POSTHOLF_BASE_PATH' + POSTHOLF_CLIENTID: '/k8s/documents/POSTHOLF_CLIENTID' + POSTHOLF_CLIENT_SECRET: '/k8s/documents/POSTHOLF_CLIENT_SECRET' + POSTHOLF_TOKEN_URL: '/k8s/documents/POSTHOLF_TOKEN_URL' + REGULATIONS_API_URL: '/k8s/api/REGULATIONS_API_URL' + REGULATIONS_FILE_UPLOAD_KEY_DRAFT: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_DRAFT' + REGULATIONS_FILE_UPLOAD_KEY_PRESIGNED: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_PRESIGNED' + REGULATIONS_FILE_UPLOAD_KEY_PUBLISH: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_PUBLISH' + RLS_PKPASS_API_KEY: '/k8s/api/RLS_PKPASS_API_KEY' + SMART_SOLUTIONS_API_URL: '/k8s/api/SMART_SOLUTIONS_API_URL' + SYSLUMENN_HOST: '/k8s/api/SYSLUMENN_HOST' + SYSLUMENN_PASSWORD: '/k8s/api/SYSLUMENN_PASSWORD' + SYSLUMENN_USERNAME: '/k8s/api/SYSLUMENN_USERNAME' + TR_PKPASS_API_KEY: '/k8s/api/TR_PKPASS_API_KEY' + ULTRAVIOLET_RADIATION_API_KEY: '/k8s/api/ULTRAVIOLET_RADIATION_API_KEY' + UMBODSMADUR_SKULDARA_COST_OF_LIVING_CALCULATOR_API_URL: '/k8s/api/UMBODSMADUR_SKULDARA_COST_OF_LIVING_CALCULATOR_API_URL' + UST_PKPASS_API_KEY: '/k8s/api/UST_PKPASS_API_KEY' + VEHICLES_ALLOW_CO_OWNERS: '/k8s/api/VEHICLES_ALLOW_CO_OWNERS' + VE_PKPASS_API_KEY: '/k8s/api/VE_PKPASS_API_KEY' + VINNUEFTIRLITID_CAMPAIGN_MONITOR_API_KEY: '/k8s/api/VINNUEFTIRLITID_CAMPAIGN_MONITOR_API_KEY' + WATSON_ASSISTANT_CHAT_FEEDBACK_API_KEY: '/k8s/api/WATSON_ASSISTANT_CHAT_FEEDBACK_API_KEY' + WATSON_ASSISTANT_CHAT_FEEDBACK_URL: '/k8s/api/WATSON_ASSISTANT_CHAT_FEEDBACK_URL' + XROAD_DRIVING_LICENSE_SECRET: '/k8s/api/DRIVING_LICENSE_SECRET' + XROAD_HEALTH_INSURANCE_PASSWORD: '/k8s/health-insurance/XROAD-PASSWORD' + XROAD_HEALTH_INSURANCE_USERNAME: '/k8s/health-insurance/XROAD-USER' + XROAD_HEALTH_INSURANCE_V2_XROAD_PASSWORD: '/k8s/api/HEALTH_INSURANCE_V2_XROAD_PASSWORD' + XROAD_HEALTH_INSURANCE_V2_XROAD_USERNAME: '/k8s/api/HEALTH_INSURANCE_V2_XROAD_USERNAME' + XROAD_PAYMENT_PASSWORD: '/k8s/application-system-api/PAYMENT_PASSWORD' + XROAD_PAYMENT_USER: '/k8s/application-system-api/PAYMENT_USER' + XROAD_PROPERTIES_CLIENT_SECRET: '/k8s/xroad/client/NATIONAL-REGISTRY/IDENTITYSERVER_SECRET' + XROAD_VMST_API_KEY: '/k8s/vmst-client/VMST_API_KEY' + ZENDESK_CONTACT_FORM_EMAIL: '/k8s/api/ZENDESK_CONTACT_FORM_EMAIL' + ZENDESK_CONTACT_FORM_TOKEN: '/k8s/api/ZENDESK_CONTACT_FORM_TOKEN' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/api' + create: true + name: 'api' diff --git a/charts/services/api/values.staging.yaml b/charts/services/api/values.staging.yaml index deeb73bf28f4..5fb2afa022c3 100644 --- a/charts/services/api/values.staging.yaml +++ b/charts/services/api/values.staging.yaml @@ -5,307 +5,317 @@ # ##################################################################### -service: - name: 'api' - args: - - '--tls-min-v1.0' - - '--no-experimental-fetch' - - 'main.js' - command: - - 'node' - enabled: true +global: env: - AIR_DISCOUNT_SCHEME_BACKEND_URL: 'http://web-air-discount-scheme-backend.air-discount-scheme.svc.cluster.local' - AIR_DISCOUNT_SCHEME_CLIENT_TIMEOUT: '20000' - AIR_DISCOUNT_SCHEME_FRONTEND_HOSTNAME: 'loftbru.staging01.devland.is' - APOLLO_CACHE_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' - APPLICATION_SYSTEM_API_URL: 'http://web-application-system-api.application-system.svc.cluster.local' - AUTH_ADMIN_API_PATH: 'https://identity-server.staging01.devland.is/backend' - AUTH_ADMIN_API_PATHS: '{"development":"https://identity-server.dev01.devland.is/backend","staging":"https://identity-server.staging01.devland.is/backend"}' - AUTH_DELEGATION_API_URL: 'http://web-services-auth-delegation-api.identity-server-delegation.svc.cluster.local' - AUTH_IDS_API_URL: 'https://identity-server.staging01.devland.is' - AUTH_PUBLIC_API_URL: 'https://identity-server.staging01.devland.is/api' - COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' - COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS-TEST/GOV/5402696029/Skatturinn/ft-v1' - CONSULTATION_PORTAL_CLIENT_BASE_PATH: 'https://samradapi-test.devland.is' - CONTACT_US_EMAIL: 'island@island.is' - CONTENTFUL_HOST: 'cdn.contentful.com' - DOWNLOAD_SERVICE_BASE_PATH: 'https://api.staging01.devland.is' - ELASTIC_NODE: 'https://vpc-search-q6hdtjcdlhkffyxvrnmzfwphuq.eu-west-1.es.amazonaws.com/' - ELECTRONIC_REGISTRATION_STATISTICS_API_URL: 'https://api-staging.thinglysing.is/business/tolfraedi' - ENDORSEMENT_SYSTEM_BASE_API_URL: 'http://web-endorsement-system-api.endorsement-system.svc.cluster.local' - FILE_DOWNLOAD_BUCKET: 'island-is-staging-download-cache-api' - FILE_STORAGE_UPLOAD_BUCKET: 'island-is-staging-upload-api' - FINANCIAL_STATEMENTS_INAO_BASE_PATH: 'https://dev-re.crm4.dynamics.com/api/data/v9.1' - FINANCIAL_STATEMENTS_INAO_ISSUER: 'https://login.microsoftonline.com/05a20268-aaea-4bb5-bb78-960b0462185e/v2.0' - FINANCIAL_STATEMENTS_INAO_SCOPE: 'https://dev-re.crm4.dynamics.com/.default' - FINANCIAL_STATEMENTS_INAO_TOKEN_ENDPOINT: 'https://login.microsoftonline.com/05a20268-aaea-4bb5-bb78-960b0462185e/oauth2/v2.0/token' - FISHING_LICENSE_XROAD_PROVIDER_ID: 'IS-TEST/GOV/6608922069/Fiskistofa-Protected/veidileyfi-v1' - FISKISTOFA_ZENTER_CLIENT_ID: '1114' - HSN_WEB_FORM_ID: '1dimJFHLFYtnhoYEA3JxRK' - HUNTING_LICENSE_PASS_TEMPLATE_ID: '1da72d52-a93a-4d0f-8463-1933a2bd210b' - ICELANDIC_NAMES_REGISTRY_BACKEND_URL: 'http://web-icelandic-names-registry-backend.icelandic-names-registry.svc.cluster.local' - IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/api' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' - ISLYKILL_CERT: '/etc/config/islyklar.p12' - LICENSE_SERVICE_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' - LOG_LEVEL: 'info' - MUNICIPALITIES_FINANCIAL_AID_BACKEND_URL: 'http://web-financial-aid-backend' - NATIONAL_REGISTRY_B2C_CLIENT_ID: 'ca128c23-b43c-443d-bade-ec5a146a933f' - NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentitydev.b2clogin.com/skraidentitystaging.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' - NATIONAL_REGISTRY_B2C_PATH: 'IS-TEST/GOV/6503760649/SKRA-Cloud-Protected/Midlun-v1' - NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentitystaging.onmicrosoft.com/midlun/.default' - NODE_OPTIONS: '--max-old-space-size=2880 -r dd-trace/init' - REGULATIONS_ADMIN_URL: 'http://web-regulations-admin-backend.regulations-admin.svc.cluster.local' - SEND_FROM_EMAIL: 'development@island.is' - SERVERSIDE_FEATURES_ON: '' - SERVICE_DOCUMENTS_BASEPATH: 'http://web-services-documents.services-documents.svc.cluster.local' - SESSIONS_API_URL: 'http://web-services-sessions.services-sessions.svc.cluster.local' - SYSLUMENN_TIMEOUT: '40000' - TELL_US_A_STORY_EMAIL: 'sogur@island.is' - UNIVERSITY_GATEWAY_API_URL: 'http://web-services-university-gateway.services-university-gateway.svc.cluster.local' - USER_NOTIFICATION_API_URL: 'http://web-user-notification.user-notification.svc.cluster.local' - USER_PROFILE_CLIENT_URL: 'http://web-service-portal-api.service-portal.svc.cluster.local' - WATSON_ASSISTANT_CHAT_FEEDBACK_DB_NAME: 'island-is-assistant-feedback' - XROAD_ADR_MACHINE_LICENSE_PATH: 'IS-TEST/GOV/4201810439/Vinnueftirlitid-Protected/rettindi-token-v1' - XROAD_AGRICULTURAL_UNIVERSITY_OF_ICELAND_PATH: 'IS-TEST/EDU/10056/LBHI-Protected/brautskraning-v1' - XROAD_AIRCRAFT_REGISTRY_PATH: 'IS-TEST/GOV/10017/Samgongustofa-Protected/Loftfaraskra-V1' - XROAD_BASE_PATH: 'http://securityserver.staging01.devland.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.staging01.devland.is/r1/IS-TEST' - XROAD_BIFROST_UNIVERSITY_PATH: 'IS-TEST/EDU/10057/Bifrost-Protected/brautskraning-v1' - XROAD_CHARGE_FJS_V2_PATH: 'IS-TEST/GOV/10021/FJS-Public/chargeFJS_v2' - XROAD_CHARGE_FJS_V2_TIMEOUT: '20000' - XROAD_CLIENT_ID: 'IS-TEST/GOV/5501692829/island-is-client' - XROAD_COURT_BANKRUPTCY_CERT_PATH: 'IS-TEST/GOV/10019/Domstolasyslan/JusticePortal-v1' - XROAD_CRIMINAL_RECORD_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Sakaskra-v1' - XROAD_DIGITAL_TACHOGRAPH_DRIVERS_CARD_PATH: 'IS-TEST/GOV/10017/Samgongustofa-Protected/Okuritar-V1' - XROAD_DIRECTORATE_OF_IMMIGRATION_PATH: 'IS-TEST/GOV/10011/UTL-Protected/Utl-Umsokn-v1' - XROAD_DISABILITY_LICENSE_PATH: 'IS-TEST/GOV/5012130120/TR-Protected/oryrki-v1' - XROAD_DISTRICT_COMMISSIONERS_LICENSES_PATH: 'IS-TEST/GOV/10016/Syslumenn-Protected/RettindiIslandis' - XROAD_DISTRICT_COMMISSIONERS_P_CARD_PATH: 'IS-TEST/GOV/10016/Syslumenn-Protected/IslandMinarSidur' - XROAD_DRIVING_LICENSE_BOOK_TIMEOUT: '20000' - XROAD_DRIVING_LICENSE_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/RafraentOkuskirteini-v1' - XROAD_DRIVING_LICENSE_V2_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/RafraentOkuskirteini-v2' - XROAD_DRIVING_LICENSE_V4_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Okuskirteini-v4' - XROAD_DRIVING_LICENSE_V5_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Okuskirteini-v5' - XROAD_ENERGY_FUNDS_PATH: 'IS-TEST/GOV/10021/FJS-Public/ElectricCarSubSidyService_v1' - XROAD_FINANCES_PATH: 'IS-TEST/GOV/10021/FJS-Public/financeIsland' - XROAD_FINANCES_TIMEOUT: '20000' - XROAD_FINANCES_V2_PATH: 'IS-TEST/GOV/10021/FJS-Public/financeServicesFJS_v2' - XROAD_FINANCIAL_AID_BACKEND_PATH: 'IS-TEST/MUN/5502694739/samband-sveitarfelaga/financial-aid-backend' - XROAD_FIREARM_LICENSE_PATH: 'IS/GOV/5309672079/Logreglan-Protected/island-api-v1' - XROAD_HEALTH_DIRECTORATE_ORGAN_DONATION_PATH: 'IS-TEST/GOV/10015/EmbaettiLandlaeknis-Protected/organ-donation-v1' - XROAD_HEALTH_DIRECTORATE_PATH: 'IS-TEST/GOV/10015/EmbaettiLandlaeknis-Protected/landlaeknir' - XROAD_HEALTH_DIRECTORATE_VACCINATION_PATH: 'IS-TEST/GOV/10015/EmbaettiLandlaeknis-Protected/vaccination-v1' - XROAD_HEALTH_INSURANCE_ID: 'IS-TEST/GOV/4804080550/SJUKRA-Protected' - XROAD_HEALTH_INSURANCE_MY_PAGES_PATH: 'IS-TEST/GOV/4804080550/SJUKRA-Protected/minarsidur' - XROAD_HEALTH_INSURANCE_WSDLURL: 'https://test-huld.sjukra.is/islandrg?wsdl' - XROAD_HMS_HOUSING_BENEFITS_PATH: 'IS-TEST/GOV/5812191480/HMS-Protected/husbot-v1' - XROAD_HMS_LOANS_PATH: 'IS-TEST/GOV/5812191480/HMS-Protected/libra-v1' - XROAD_HOLAR_UNIVERSITY_PATH: 'IS-TEST/EDU/10055/Holar-Protected/brautskraning-v1' - XROAD_HOUSING_BENEFIT_CALCULATOR_PATH: 'IS-TEST/GOV/5812191480/HMS-Protected/calc-v1' - XROAD_HUNTING_LICENSE_PATH: 'IS-TEST/GOV/10009/Umhverfisstofnun-Protected/api' - XROAD_ICELANDIC_GOVERNMENT_INSTITUTION_VACANCIES_PATH: 'IS-TEST/GOV/10021/FJS-Protected/recruitment-v1' - XROAD_ICELAND_UNIVERSITY_OF_THE_ARTS_PATH: 'IS-TEST/EDU/10049/LHI-Protected/brautskraning-v1' - XROAD_INNA_PATH: 'IS-TEST/GOV/6601241280/MMS-Protected/inna-v1' - XROAD_INTELLECTUAL_PROPERTIES_PATH: 'IS-TEST/GOV/6501912189/WebAPI-Public/HUG-webAPI' - XROAD_JUDICIAL_SYSTEM_SP_PATH: 'IS-TEST/GOV/10014/Rettarvorslugatt-Private/judicial-system-mailbox-api' - XROAD_MMS_FRIGG_PATH: 'IS-TEST/GOV/10066/MMS-Protected/frigg-form-service' - XROAD_MMS_GRADE_SERVICE_ID: 'IS-TEST/GOV/6601241280/MMS-Protected/grade-api-v1' - XROAD_MMS_LICENSE_SERVICE_ID: 'IS-TEST/GOV/6601241280/MMS-Protected/license-api-v1' - XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' - XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS-TEST/GOV/6503760649/SKRA-Protected/Einstaklingar-v1' - XROAD_NATIONAL_REGISTRY_TIMEOUT: '20000' - XROAD_OFFICIAL_JOURNAL_APPLICATION_PATH: 'IS-TEST/GOV/10014/DMR-Protected/official-journal-application' - XROAD_OFFICIAL_JOURNAL_PATH: 'IS-TEST/GOV/10014/DMR-Protected/official-journal' - XROAD_PASSPORT_LICENSE_PATH: 'IS-TEST/GOV/6503760649/SKRA-Cloud-Protected/Forskraning-V1' - XROAD_PAYMENT_ADDITION_CALLBACK_URL: '/' - XROAD_PAYMENT_BASE_CALLBACK_URL: 'XROAD:' - XROAD_PAYMENT_PROVIDER_ID: 'IS-TEST/GOV/10021/FJS-DEV-Public' - XROAD_PAYMENT_SCHEDULE_PATH: 'IS-TEST/GOV/10021/FJS-Public/paymentSchedule_v1' - XROAD_PROPERTIES_SERVICE_V2_PATH: 'IS-TEST/GOV/5812191480/HMS-Protected/Fasteignir-v1' - XROAD_PROPERTIES_TIMEOUT: '35000' - XROAD_RSK_PROCURING_PATH: 'IS-TEST/GOV/5402696029/Skatturinn/relationships-v1' - XROAD_RSK_PROCURING_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' - XROAD_RSK_PROCURING_SCOPE: '["@rsk.is/prokura","@rsk.is/prokura:admin"]' - XROAD_SHIP_REGISTRY_PATH: 'IS-TEST/GOV/10017/Samgongustofa-Protected/skipaskra-V1' - XROAD_SIGNATURE_COLLECTION_PATH: 'IS-TEST/GOV/6503760649/SKRA-Cloud-Protected/Medmaeli-v1' - XROAD_TJODSKRA_API_PATH: '/SKRA-Protected/Einstaklingar-v1' - XROAD_TJODSKRA_MEMBER_CODE: '6503760649' - XROAD_TLS_BASE_PATH: 'https://securityserver.staging01.devland.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.staging01.devland.is/r1/IS-TEST' - XROAD_TR_PATH: 'IS-TEST/GOV/5012130120/TR-Protected/external-v1' - XROAD_UNIVERSITY_OF_AKUREYRI_PATH: 'IS-TEST/EDU/10054/UNAK-Protected/brautskraning-v1' - XROAD_UNIVERSITY_OF_ICELAND_PATH: 'IS-TEST/EDU/10010/HI-Protected/brautskraning-v1' - XROAD_VEHICLES_MILEAGE_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Vehicle-Mileagereading-V1' - XROAD_VEHICLES_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Mitt-Svaedi-V1' - XROAD_VEHICLE_CODETABLES_PATH: 'IS-TEST/GOV/10017/Samgongustofa-Protected/Vehicle-Codetables-V1' - XROAD_VEHICLE_INFOLOCKS_PATH: 'IS-TEST/GOV/10017/Samgongustofa-Protected/Vehicle-Infolocks-V1' - XROAD_VEHICLE_OPERATORS_PATH: 'IS-TEST/GOV/10017/Samgongustofa-Protected/Vehicle-Operators-V3' - XROAD_VEHICLE_OWNER_CHANGE_PATH: 'IS-TEST/GOV/10017/Samgongustofa-Protected/Vehicle-Ownerchange-V2' - XROAD_VEHICLE_PLATE_ORDERING_PATH: 'IS-TEST/GOV/10017/Samgongustofa-Protected/Vehicle-PlateOrdering-V1' - XROAD_VEHICLE_PLATE_RENEWAL_PATH: 'IS-TEST/GOV/10017/Samgongustofa-Protected/Vehicle-PlateOwnership-V1' - XROAD_VEHICLE_PRINTING_PATH: 'IS-TEST/GOV/10017/Samgongustofa-Protected/Vehicle-Printing-V1' - XROAD_VEHICLE_SERVICE_FJS_V1_PATH: 'IS-TEST/GOV/10021/FJS-Public/VehicleServiceFJS_v1' - XROAD_VMST_API_PATH: '/VMST-ParentalLeave-Protected/ParentalLeaveApplication-v1' - XROAD_VMST_MEMBER_CODE: '7005942039' - XROAD_WORK_ACCIDENT_PATH: 'IS-TEST/GOV/4201810439/Vinnueftirlitid-Protected/slysaskraning-token' - XROAD_WORK_MACHINE_LICENSE_PATH: 'IS-TEST/GOV/4201810439/Vinnueftirlitid-Protected/vinnuvelar-token' - ZENDESK_CONTACT_FORM_SUBDOMAIN: 'digitaliceland' - files: - - 'islyklar.p12' - grantNamespaces: - - 'nginx-ingress-external' - - 'api-catalogue' - - 'application-system' - - 'consultation-portal' - - 'portals-admin' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/health' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 50 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/api' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'beta.staging01.devland.is' - paths: - - '/api' - namespace: 'islandis' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 2 - max: 50 - min: 2 - resources: - limits: - cpu: '1200m' - memory: '3200Mi' - requests: - cpu: '400m' - memory: '896Mi' - secrets: - ADR_LICENSE_FETCH_TIMEOUT: '/k8s/api/ADR_LICENSE_FETCH_TIMEOUT' - ADR_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/ADR_LICENSE_PASS_TEMPLATE_ID' - APOLLO_BYPASS_CACHE_SECRET: '/k8s/api/APOLLO_BYPASS_CACHE_SECRET' - CHART_STATISTIC_CACHE_TTL: '/k8s/api/CHART_STATISTIC_CACHE_TTL' - CHART_STATISTIC_SOURCE_DATA_PATHS: '/k8s/api/CHART_STATISTIC_SOURCE_DATA_PATHS' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - CONTENTFUL_ACCESS_TOKEN: '/k8s/api/CONTENTFUL_ACCESS_TOKEN' - DIRECTORATE_OF_IMMIGRATION_WATSON_ASSISTANT_CHAT_PRIVATE_RSA_KEY: '/k8s/api/DIRECTORATE_OF_IMMIGRATION_WATSON_ASSISTANT_CHAT_PRIVATE_RSA_KEY' - DIRECTORATE_OF_IMMIGRATION_WATSON_ASSISTANT_CHAT_PUBLIC_IBM_KEY: '/k8s/api/DIRECTORATE_OF_IMMIGRATION_WATSON_ASSISTANT_CHAT_PUBLIC_IBM_KEY' - DIRECTORATE_OF_IMMIGRATION_WATSON_ASSISTANT_CHAT_PUBLIC_RSA_KEY: '/k8s/api/DIRECTORATE_OF_IMMIGRATION_WATSON_ASSISTANT_CHAT_PUBLIC_RSA_KEY' - DISABILITY_LICENSE_FETCH_TIMEOUT: '/k8s/api/DISABILITY_LICENSE_FETCH_TIMEOUT' - DISABILITY_LICENSE_PASS_TEMPLATE_ID: '/k8s/DISABILITY_LICENSE_PASS_TEMPLATE_ID' - DOCUMENT_PROVIDER_BASE_PATH: '/k8s/api/DOCUMENT_PROVIDER_BASE_PATH' - DOCUMENT_PROVIDER_BASE_PATH_TEST: '/k8s/api/DOCUMENT_PROVIDER_BASE_PATH_TEST' - DOCUMENT_PROVIDER_CLIENTID: '/k8s/documentprovider/DOCUMENT_PROVIDER_CLIENTID' - DOCUMENT_PROVIDER_CLIENTID_TEST: '/k8s/documentprovider/DOCUMENT_PROVIDER_CLIENTID_TEST' - DOCUMENT_PROVIDER_CLIENT_SECRET: '/k8s/documentprovider/DOCUMENT_PROVIDER_CLIENT_SECRET' - DOCUMENT_PROVIDER_CLIENT_SECRET_TEST: '/k8s/documentprovider/DOCUMENT_PROVIDER_CLIENT_SECRET_TEST' - DOCUMENT_PROVIDER_TOKEN_URL: '/k8s/api/DOCUMENT_PROVIDER_TOKEN_URL' - DOCUMENT_PROVIDER_TOKEN_URL_TEST: '/k8s/api/DOCUMENT_PROVIDER_TOKEN_URL_TEST' - DOMSYSLA_PASSWORD: '/k8s/api/DOMSYSLA_PASSWORD' - DOMSYSLA_USERNAME: '/k8s/api/DOMSYSLA_USERNAME' - DRIVING_LICENSE_BOOK_PASSWORD: '/k8s/api/DRIVING_LICENSE_BOOK_PASSWORD' - DRIVING_LICENSE_BOOK_USERNAME: '/k8s/api/DRIVING_LICENSE_BOOK_USERNAME' - DRIVING_LICENSE_BOOK_XROAD_PATH: '/k8s/api/DRIVING_LICENSE_BOOK_XROAD_PATH' - DRIVING_LICENSE_FETCH_TIMEOUT: '/k8s/api/DRIVING_LICENSE_FETCH_TIMEOUT' - DRIVING_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/DRIVING_LICENSE_PASS_TEMPLATE_ID' - FINANCIAL_STATEMENTS_INAO_CLIENT_ID: '/k8s/api/FINANCIAL_STATEMENTS_INAO_CLIENT_ID' - FINANCIAL_STATEMENTS_INAO_CLIENT_SECRET: '/k8s/api/FINANCIAL_STATEMENTS_INAO_CLIENT_SECRET' - FIREARM_LICENSE_FETCH_TIMEOUT: '/k8s/api/FIREARM_LICENSE_FETCH_TIMEOUT' - FIREARM_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/FIREARM_LICENSE_PASS_TEMPLATE_ID' - FISKISTOFA_API_ACCESS_TOKEN_SERVICE_AUDIENCE: '/k8s/api/FISKISTOFA_API_ACCESS_TOKEN_SERVICE_AUDIENCE' - FISKISTOFA_API_ACCESS_TOKEN_SERVICE_CLIENT_ID: '/k8s/api/FISKISTOFA_API_ACCESS_TOKEN_SERVICE_CLIENT_ID' - FISKISTOFA_API_ACCESS_TOKEN_SERVICE_CLIENT_SECRET: '/k8s/api/FISKISTOFA_API_ACCESS_TOKEN_SERVICE_CLIENT_SECRET' - FISKISTOFA_API_ACCESS_TOKEN_SERVICE_URL: '/k8s/api/FISKISTOFA_API_ACCESS_TOKEN_SERVICE_URL' - FISKISTOFA_API_URL: '/k8s/api/FISKISTOFA_API_URL' - FISKISTOFA_POWERBI_CLIENT_ID: '/k8s/api/FISKISTOFA_POWERBI_CLIENT_ID' - FISKISTOFA_POWERBI_CLIENT_SECRET: '/k8s/api/FISKISTOFA_POWERBI_CLIENT_SECRET' - FISKISTOFA_POWERBI_TENANT_ID: '/k8s/api/FISKISTOFA_POWERBI_TENANT_ID' - FISKISTOFA_ZENTER_CLIENT_PASSWORD: '/k8s/api/FISKISTOFA_ZENTER_CLIENT_PASSWORD' - FISKISTOFA_ZENTER_EMAIL: '/k8s/api/FISKISTOFA_ZENTER_EMAIL' - FISKISTOFA_ZENTER_PASSWORD: '/k8s/api/FISKISTOFA_ZENTER_PASSWORD' - HOUSING_BENEFIT_CALCULATOR_PASSWORD: '/k8s/xroad/client/HOUSING_BENEFIT_CALCULATOR_PASSWORD' - HOUSING_BENEFIT_CALCULATOR_USERNAME: '/k8s/xroad/client/HOUSING_BENEFIT_CALCULATOR_USERNAME' - HSN_WEB_FORM_RESPONSE_SECRET: '/k8s/api/HSN_WEB_FORM_RESPONSE_SECRET' - HSN_WEB_FORM_RESPONSE_URL: '/k8s/api/HSN_WEB_FORM_RESPONSE_URL' - ICELANDIC_GOVERNMENT_INSTITUTION_VACANCIES_PASSWORD: '/k8s/xroad/client/ICELANDIC_GOVERNMENT_INSTITUTION_VACANCIES_PASSWORD' - ICELANDIC_GOVERNMENT_INSTITUTION_VACANCIES_USERNAME: '/k8s/xroad/client/ICELANDIC_GOVERNMENT_INSTITUTION_VACANCIES_USERNAME' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/api/IDENTITY_SERVER_CLIENT_SECRET' - INTELLECTUAL_PROPERTY_API_KEY: '/k8s/api/IP_API_KEY' - ISLYKILL_SERVICE_BASEPATH: '/k8s/api/ISLYKILL_SERVICE_BASEPATH' - ISLYKILL_SERVICE_PASSPHRASE: '/k8s/api/ISLYKILL_SERVICE_PASSPHRASE' - LICENSE_SERVICE_BARCODE_SECRET_KEY: '/k8s/api/LICENSE_SERVICE_BARCODE_SECRET_KEY' - MACHINE_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/MACHINE_LICENSE_PASS_TEMPLATE_ID' - NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/api/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' - PKPASS_API_KEY: '/k8s/api/PKPASS_API_KEY' - PKPASS_API_URL: '/k8s/api/PKPASS_API_URL' - PKPASS_AUTH_RETRIES: '/k8s/api/PKPASS_AUTH_RETRIES' - PKPASS_CACHE_KEY: '/k8s/api/PKPASS_CACHE_KEY' - PKPASS_CACHE_TOKEN_EXPIRY_DELTA: '/k8s/api/PKPASS_CACHE_TOKEN_EXPIRY_DELTA' - PKPASS_SECRET_KEY: '/k8s/api/PKPASS_SECRET_KEY' - POSTHOLF_BASE_PATH: '/k8s/documents/POSTHOLF_BASE_PATH' - POSTHOLF_CLIENTID: '/k8s/documents/POSTHOLF_CLIENTID' - POSTHOLF_CLIENT_SECRET: '/k8s/documents/POSTHOLF_CLIENT_SECRET' - POSTHOLF_TOKEN_URL: '/k8s/documents/POSTHOLF_TOKEN_URL' - REGULATIONS_API_URL: '/k8s/api/REGULATIONS_API_URL' - REGULATIONS_FILE_UPLOAD_KEY_DRAFT: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_DRAFT' - REGULATIONS_FILE_UPLOAD_KEY_PRESIGNED: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_PRESIGNED' - REGULATIONS_FILE_UPLOAD_KEY_PUBLISH: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_PUBLISH' - RLS_PKPASS_API_KEY: '/k8s/api/RLS_PKPASS_API_KEY' - SMART_SOLUTIONS_API_URL: '/k8s/api/SMART_SOLUTIONS_API_URL' - SYSLUMENN_HOST: '/k8s/api/SYSLUMENN_HOST' - SYSLUMENN_PASSWORD: '/k8s/api/SYSLUMENN_PASSWORD' - SYSLUMENN_USERNAME: '/k8s/api/SYSLUMENN_USERNAME' - TR_PKPASS_API_KEY: '/k8s/api/TR_PKPASS_API_KEY' - ULTRAVIOLET_RADIATION_API_KEY: '/k8s/api/ULTRAVIOLET_RADIATION_API_KEY' - UMBODSMADUR_SKULDARA_COST_OF_LIVING_CALCULATOR_API_URL: '/k8s/api/UMBODSMADUR_SKULDARA_COST_OF_LIVING_CALCULATOR_API_URL' - UST_PKPASS_API_KEY: '/k8s/api/UST_PKPASS_API_KEY' - VEHICLES_ALLOW_CO_OWNERS: '/k8s/api/VEHICLES_ALLOW_CO_OWNERS' - VE_PKPASS_API_KEY: '/k8s/api/VE_PKPASS_API_KEY' - VINNUEFTIRLITID_CAMPAIGN_MONITOR_API_KEY: '/k8s/api/VINNUEFTIRLITID_CAMPAIGN_MONITOR_API_KEY' - WATSON_ASSISTANT_CHAT_FEEDBACK_API_KEY: '/k8s/api/WATSON_ASSISTANT_CHAT_FEEDBACK_API_KEY' - WATSON_ASSISTANT_CHAT_FEEDBACK_URL: '/k8s/api/WATSON_ASSISTANT_CHAT_FEEDBACK_URL' - XROAD_DRIVING_LICENSE_SECRET: '/k8s/api/DRIVING_LICENSE_SECRET' - XROAD_HEALTH_INSURANCE_PASSWORD: '/k8s/health-insurance/XROAD-PASSWORD' - XROAD_HEALTH_INSURANCE_USERNAME: '/k8s/health-insurance/XROAD-USER' - XROAD_HEALTH_INSURANCE_V2_XROAD_PASSWORD: '/k8s/api/HEALTH_INSURANCE_V2_XROAD_PASSWORD' - XROAD_HEALTH_INSURANCE_V2_XROAD_USERNAME: '/k8s/api/HEALTH_INSURANCE_V2_XROAD_USERNAME' - XROAD_PAYMENT_PASSWORD: '/k8s/application-system-api/PAYMENT_PASSWORD' - XROAD_PAYMENT_USER: '/k8s/application-system-api/PAYMENT_USER' - XROAD_PROPERTIES_CLIENT_SECRET: '/k8s/xroad/client/NATIONAL-REGISTRY/IDENTITYSERVER_SECRET' - XROAD_VMST_API_KEY: '/k8s/vmst-client/VMST_API_KEY' - ZENDESK_CONTACT_FORM_EMAIL: '/k8s/api/ZENDESK_CONTACT_FORM_EMAIL' - ZENDESK_CONTACT_FORM_TOKEN: '/k8s/api/ZENDESK_CONTACT_FORM_TOKEN' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'api' +args: + - '--tls-min-v1.0' + - '--no-experimental-fetch' + - 'main.js' +command: + - 'node' +enabled: true +env: + AIR_DISCOUNT_SCHEME_BACKEND_URL: 'http://web-air-discount-scheme-backend.air-discount-scheme.svc.cluster.local' + AIR_DISCOUNT_SCHEME_CLIENT_TIMEOUT: '20000' + AIR_DISCOUNT_SCHEME_FRONTEND_HOSTNAME: 'loftbru.staging01.devland.is' + APOLLO_CACHE_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' + APPLICATION_SYSTEM_API_URL: 'http://web-application-system-api.application-system.svc.cluster.local' + AUTH_ADMIN_API_PATH: 'https://identity-server.staging01.devland.is/backend' + AUTH_ADMIN_API_PATHS: '{"development":"https://identity-server.dev01.devland.is/backend","staging":"https://identity-server.staging01.devland.is/backend"}' + AUTH_DELEGATION_API_URL: 'http://web-services-auth-delegation-api.identity-server-delegation.svc.cluster.local' + AUTH_IDS_API_URL: 'https://identity-server.staging01.devland.is' + AUTH_PUBLIC_API_URL: 'https://identity-server.staging01.devland.is/api' + COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' + COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS-TEST/GOV/5402696029/Skatturinn/ft-v1' + CONSULTATION_PORTAL_CLIENT_BASE_PATH: 'https://samradapi-test.devland.is' + CONTACT_US_EMAIL: 'island@island.is' + CONTENTFUL_HOST: 'cdn.contentful.com' + DOWNLOAD_SERVICE_BASE_PATH: 'https://api.staging01.devland.is' + ELASTIC_NODE: 'https://vpc-search-q6hdtjcdlhkffyxvrnmzfwphuq.eu-west-1.es.amazonaws.com/' + ELECTRONIC_REGISTRATION_STATISTICS_API_URL: 'https://api-staging.thinglysing.is/business/tolfraedi' + ENDORSEMENT_SYSTEM_BASE_API_URL: 'http://web-endorsement-system-api.endorsement-system.svc.cluster.local' + FILE_DOWNLOAD_BUCKET: 'island-is-staging-download-cache-api' + FILE_STORAGE_UPLOAD_BUCKET: 'island-is-staging-upload-api' + FINANCIAL_STATEMENTS_INAO_BASE_PATH: 'https://dev-re.crm4.dynamics.com/api/data/v9.1' + FINANCIAL_STATEMENTS_INAO_ISSUER: 'https://login.microsoftonline.com/05a20268-aaea-4bb5-bb78-960b0462185e/v2.0' + FINANCIAL_STATEMENTS_INAO_SCOPE: 'https://dev-re.crm4.dynamics.com/.default' + FINANCIAL_STATEMENTS_INAO_TOKEN_ENDPOINT: 'https://login.microsoftonline.com/05a20268-aaea-4bb5-bb78-960b0462185e/oauth2/v2.0/token' + FISHING_LICENSE_XROAD_PROVIDER_ID: 'IS-TEST/GOV/6608922069/Fiskistofa-Protected/veidileyfi-v1' + FISKISTOFA_ZENTER_CLIENT_ID: '1114' + HSN_WEB_FORM_ID: '1dimJFHLFYtnhoYEA3JxRK' + HUNTING_LICENSE_PASS_TEMPLATE_ID: '1da72d52-a93a-4d0f-8463-1933a2bd210b' + ICELANDIC_NAMES_REGISTRY_BACKEND_URL: 'http://web-icelandic-names-registry-backend.icelandic-names-registry.svc.cluster.local' + IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/api' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' + ISLYKILL_CERT: '/etc/config/islyklar.p12' + LICENSE_SERVICE_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' + LOG_LEVEL: 'info' + MUNICIPALITIES_FINANCIAL_AID_BACKEND_URL: 'http://web-financial-aid-backend' + NATIONAL_REGISTRY_B2C_CLIENT_ID: 'ca128c23-b43c-443d-bade-ec5a146a933f' + NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentitydev.b2clogin.com/skraidentitystaging.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' + NATIONAL_REGISTRY_B2C_PATH: 'IS-TEST/GOV/6503760649/SKRA-Cloud-Protected/Midlun-v1' + NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentitystaging.onmicrosoft.com/midlun/.default' + NODE_OPTIONS: '--max-old-space-size=2880 -r dd-trace/init' + REGULATIONS_ADMIN_URL: 'http://web-regulations-admin-backend.regulations-admin.svc.cluster.local' + SEND_FROM_EMAIL: 'development@island.is' + SERVERSIDE_FEATURES_ON: '' + SERVICE_DOCUMENTS_BASEPATH: 'http://web-services-documents.services-documents.svc.cluster.local' + SESSIONS_API_URL: 'http://web-services-sessions.services-sessions.svc.cluster.local' + SYSLUMENN_TIMEOUT: '40000' + TELL_US_A_STORY_EMAIL: 'sogur@island.is' + UNIVERSITY_GATEWAY_API_URL: 'http://web-services-university-gateway.services-university-gateway.svc.cluster.local' + USER_NOTIFICATION_API_URL: 'http://web-user-notification.user-notification.svc.cluster.local' + USER_PROFILE_CLIENT_URL: 'http://web-service-portal-api.service-portal.svc.cluster.local' + WATSON_ASSISTANT_CHAT_FEEDBACK_DB_NAME: 'island-is-assistant-feedback' + XROAD_ADR_MACHINE_LICENSE_PATH: 'IS-TEST/GOV/4201810439/Vinnueftirlitid-Protected/rettindi-token-v1' + XROAD_AGRICULTURAL_UNIVERSITY_OF_ICELAND_PATH: 'IS-TEST/EDU/10056/LBHI-Protected/brautskraning-v1' + XROAD_AIRCRAFT_REGISTRY_PATH: 'IS-TEST/GOV/10017/Samgongustofa-Protected/Loftfaraskra-V1' + XROAD_BASE_PATH: 'http://securityserver.staging01.devland.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.staging01.devland.is/r1/IS-TEST' + XROAD_BIFROST_UNIVERSITY_PATH: 'IS-TEST/EDU/10057/Bifrost-Protected/brautskraning-v1' + XROAD_CHARGE_FJS_V2_PATH: 'IS-TEST/GOV/10021/FJS-Public/chargeFJS_v2' + XROAD_CHARGE_FJS_V2_TIMEOUT: '20000' + XROAD_CLIENT_ID: 'IS-TEST/GOV/5501692829/island-is-client' + XROAD_COURT_BANKRUPTCY_CERT_PATH: 'IS-TEST/GOV/10019/Domstolasyslan/JusticePortal-v1' + XROAD_CRIMINAL_RECORD_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Sakaskra-v1' + XROAD_DIGITAL_TACHOGRAPH_DRIVERS_CARD_PATH: 'IS-TEST/GOV/10017/Samgongustofa-Protected/Okuritar-V1' + XROAD_DIRECTORATE_OF_IMMIGRATION_PATH: 'IS-TEST/GOV/10011/UTL-Protected/Utl-Umsokn-v1' + XROAD_DISABILITY_LICENSE_PATH: 'IS-TEST/GOV/5012130120/TR-Protected/oryrki-v1' + XROAD_DISTRICT_COMMISSIONERS_LICENSES_PATH: 'IS-TEST/GOV/10016/Syslumenn-Protected/RettindiIslandis' + XROAD_DISTRICT_COMMISSIONERS_P_CARD_PATH: 'IS-TEST/GOV/10016/Syslumenn-Protected/IslandMinarSidur' + XROAD_DRIVING_LICENSE_BOOK_TIMEOUT: '20000' + XROAD_DRIVING_LICENSE_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/RafraentOkuskirteini-v1' + XROAD_DRIVING_LICENSE_V2_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/RafraentOkuskirteini-v2' + XROAD_DRIVING_LICENSE_V4_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Okuskirteini-v4' + XROAD_DRIVING_LICENSE_V5_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Okuskirteini-v5' + XROAD_ENERGY_FUNDS_PATH: 'IS-TEST/GOV/10021/FJS-Public/ElectricCarSubSidyService_v1' + XROAD_FINANCES_PATH: 'IS-TEST/GOV/10021/FJS-Public/financeIsland' + XROAD_FINANCES_TIMEOUT: '20000' + XROAD_FINANCES_V2_PATH: 'IS-TEST/GOV/10021/FJS-Public/financeServicesFJS_v2' + XROAD_FINANCIAL_AID_BACKEND_PATH: 'IS-TEST/MUN/5502694739/samband-sveitarfelaga/financial-aid-backend' + XROAD_FIREARM_LICENSE_PATH: 'IS/GOV/5309672079/Logreglan-Protected/island-api-v1' + XROAD_HEALTH_DIRECTORATE_ORGAN_DONATION_PATH: 'IS-TEST/GOV/10015/EmbaettiLandlaeknis-Protected/organ-donation-v1' + XROAD_HEALTH_DIRECTORATE_PATH: 'IS-TEST/GOV/10015/EmbaettiLandlaeknis-Protected/landlaeknir' + XROAD_HEALTH_DIRECTORATE_VACCINATION_PATH: 'IS-TEST/GOV/10015/EmbaettiLandlaeknis-Protected/vaccination-v1' + XROAD_HEALTH_INSURANCE_ID: 'IS-TEST/GOV/4804080550/SJUKRA-Protected' + XROAD_HEALTH_INSURANCE_MY_PAGES_PATH: 'IS-TEST/GOV/4804080550/SJUKRA-Protected/minarsidur' + XROAD_HEALTH_INSURANCE_WSDLURL: 'https://test-huld.sjukra.is/islandrg?wsdl' + XROAD_HMS_HOUSING_BENEFITS_PATH: 'IS-TEST/GOV/5812191480/HMS-Protected/husbot-v1' + XROAD_HMS_LOANS_PATH: 'IS-TEST/GOV/5812191480/HMS-Protected/libra-v1' + XROAD_HOLAR_UNIVERSITY_PATH: 'IS-TEST/EDU/10055/Holar-Protected/brautskraning-v1' + XROAD_HOUSING_BENEFIT_CALCULATOR_PATH: 'IS-TEST/GOV/5812191480/HMS-Protected/calc-v1' + XROAD_HUNTING_LICENSE_PATH: 'IS-TEST/GOV/10009/Umhverfisstofnun-Protected/api' + XROAD_ICELANDIC_GOVERNMENT_INSTITUTION_VACANCIES_PATH: 'IS-TEST/GOV/10021/FJS-Protected/recruitment-v1' + XROAD_ICELAND_UNIVERSITY_OF_THE_ARTS_PATH: 'IS-TEST/EDU/10049/LHI-Protected/brautskraning-v1' + XROAD_INNA_PATH: 'IS-TEST/GOV/6601241280/MMS-Protected/inna-v1' + XROAD_INTELLECTUAL_PROPERTIES_PATH: 'IS-TEST/GOV/6501912189/WebAPI-Public/HUG-webAPI' + XROAD_JUDICIAL_SYSTEM_SP_PATH: 'IS-TEST/GOV/10014/Rettarvorslugatt-Private/judicial-system-mailbox-api' + XROAD_MMS_FRIGG_PATH: 'IS-TEST/GOV/10066/MMS-Protected/frigg-form-service' + XROAD_MMS_GRADE_SERVICE_ID: 'IS-TEST/GOV/6601241280/MMS-Protected/grade-api-v1' + XROAD_MMS_LICENSE_SERVICE_ID: 'IS-TEST/GOV/6601241280/MMS-Protected/license-api-v1' + XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' + XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS-TEST/GOV/6503760649/SKRA-Protected/Einstaklingar-v1' + XROAD_NATIONAL_REGISTRY_TIMEOUT: '20000' + XROAD_OFFICIAL_JOURNAL_APPLICATION_PATH: 'IS-TEST/GOV/10014/DMR-Protected/official-journal-application' + XROAD_OFFICIAL_JOURNAL_PATH: 'IS-TEST/GOV/10014/DMR-Protected/official-journal' + XROAD_PASSPORT_LICENSE_PATH: 'IS-TEST/GOV/6503760649/SKRA-Cloud-Protected/Forskraning-V1' + XROAD_PAYMENT_ADDITION_CALLBACK_URL: '/' + XROAD_PAYMENT_BASE_CALLBACK_URL: 'XROAD:' + XROAD_PAYMENT_PROVIDER_ID: 'IS-TEST/GOV/10021/FJS-DEV-Public' + XROAD_PAYMENT_SCHEDULE_PATH: 'IS-TEST/GOV/10021/FJS-Public/paymentSchedule_v1' + XROAD_PROPERTIES_SERVICE_V2_PATH: 'IS-TEST/GOV/5812191480/HMS-Protected/Fasteignir-v1' + XROAD_PROPERTIES_TIMEOUT: '35000' + XROAD_RSK_PROCURING_PATH: 'IS-TEST/GOV/5402696029/Skatturinn/relationships-v1' + XROAD_RSK_PROCURING_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' + XROAD_RSK_PROCURING_SCOPE: '["@rsk.is/prokura","@rsk.is/prokura:admin"]' + XROAD_SHIP_REGISTRY_PATH: 'IS-TEST/GOV/10017/Samgongustofa-Protected/skipaskra-V1' + XROAD_SIGNATURE_COLLECTION_PATH: 'IS-TEST/GOV/6503760649/SKRA-Cloud-Protected/Medmaeli-v1' + XROAD_TJODSKRA_API_PATH: '/SKRA-Protected/Einstaklingar-v1' + XROAD_TJODSKRA_MEMBER_CODE: '6503760649' + XROAD_TLS_BASE_PATH: 'https://securityserver.staging01.devland.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.staging01.devland.is/r1/IS-TEST' + XROAD_TR_PATH: 'IS-TEST/GOV/5012130120/TR-Protected/external-v1' + XROAD_UNIVERSITY_OF_AKUREYRI_PATH: 'IS-TEST/EDU/10054/UNAK-Protected/brautskraning-v1' + XROAD_UNIVERSITY_OF_ICELAND_PATH: 'IS-TEST/EDU/10010/HI-Protected/brautskraning-v1' + XROAD_VEHICLES_MILEAGE_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Vehicle-Mileagereading-V1' + XROAD_VEHICLES_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Mitt-Svaedi-V1' + XROAD_VEHICLE_CODETABLES_PATH: 'IS-TEST/GOV/10017/Samgongustofa-Protected/Vehicle-Codetables-V1' + XROAD_VEHICLE_INFOLOCKS_PATH: 'IS-TEST/GOV/10017/Samgongustofa-Protected/Vehicle-Infolocks-V1' + XROAD_VEHICLE_OPERATORS_PATH: 'IS-TEST/GOV/10017/Samgongustofa-Protected/Vehicle-Operators-V3' + XROAD_VEHICLE_OWNER_CHANGE_PATH: 'IS-TEST/GOV/10017/Samgongustofa-Protected/Vehicle-Ownerchange-V2' + XROAD_VEHICLE_PLATE_ORDERING_PATH: 'IS-TEST/GOV/10017/Samgongustofa-Protected/Vehicle-PlateOrdering-V1' + XROAD_VEHICLE_PLATE_RENEWAL_PATH: 'IS-TEST/GOV/10017/Samgongustofa-Protected/Vehicle-PlateOwnership-V1' + XROAD_VEHICLE_PRINTING_PATH: 'IS-TEST/GOV/10017/Samgongustofa-Protected/Vehicle-Printing-V1' + XROAD_VEHICLE_SERVICE_FJS_V1_PATH: 'IS-TEST/GOV/10021/FJS-Public/VehicleServiceFJS_v1' + XROAD_VMST_API_PATH: '/VMST-ParentalLeave-Protected/ParentalLeaveApplication-v1' + XROAD_VMST_MEMBER_CODE: '7005942039' + XROAD_WORK_ACCIDENT_PATH: 'IS-TEST/GOV/4201810439/Vinnueftirlitid-Protected/slysaskraning-token' + XROAD_WORK_MACHINE_LICENSE_PATH: 'IS-TEST/GOV/4201810439/Vinnueftirlitid-Protected/vinnuvelar-token' + ZENDESK_CONTACT_FORM_SUBDOMAIN: 'digitaliceland' +files: + - 'islyklar.p12' +grantNamespaces: + - 'nginx-ingress-external' + - 'api-catalogue' + - 'application-system' + - 'consultation-portal' + - 'portals-admin' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/health' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 50 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/api' +ingress: + primary-alb: annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/api' - create: true - name: 'api' + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'beta.staging01.devland.is' + paths: + - '/api' +namespace: 'islandis' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 2 + max: 50 + min: 2 +resources: + limits: + cpu: '1200m' + memory: '3200Mi' + requests: + cpu: '400m' + memory: '896Mi' +secrets: + ADR_LICENSE_FETCH_TIMEOUT: '/k8s/api/ADR_LICENSE_FETCH_TIMEOUT' + ADR_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/ADR_LICENSE_PASS_TEMPLATE_ID' + APOLLO_BYPASS_CACHE_SECRET: '/k8s/api/APOLLO_BYPASS_CACHE_SECRET' + CHART_STATISTIC_CACHE_TTL: '/k8s/api/CHART_STATISTIC_CACHE_TTL' + CHART_STATISTIC_SOURCE_DATA_PATHS: '/k8s/api/CHART_STATISTIC_SOURCE_DATA_PATHS' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + CONTENTFUL_ACCESS_TOKEN: '/k8s/api/CONTENTFUL_ACCESS_TOKEN' + DIRECTORATE_OF_IMMIGRATION_WATSON_ASSISTANT_CHAT_PRIVATE_RSA_KEY: '/k8s/api/DIRECTORATE_OF_IMMIGRATION_WATSON_ASSISTANT_CHAT_PRIVATE_RSA_KEY' + DIRECTORATE_OF_IMMIGRATION_WATSON_ASSISTANT_CHAT_PUBLIC_IBM_KEY: '/k8s/api/DIRECTORATE_OF_IMMIGRATION_WATSON_ASSISTANT_CHAT_PUBLIC_IBM_KEY' + DIRECTORATE_OF_IMMIGRATION_WATSON_ASSISTANT_CHAT_PUBLIC_RSA_KEY: '/k8s/api/DIRECTORATE_OF_IMMIGRATION_WATSON_ASSISTANT_CHAT_PUBLIC_RSA_KEY' + DISABILITY_LICENSE_FETCH_TIMEOUT: '/k8s/api/DISABILITY_LICENSE_FETCH_TIMEOUT' + DISABILITY_LICENSE_PASS_TEMPLATE_ID: '/k8s/DISABILITY_LICENSE_PASS_TEMPLATE_ID' + DOCUMENT_PROVIDER_BASE_PATH: '/k8s/api/DOCUMENT_PROVIDER_BASE_PATH' + DOCUMENT_PROVIDER_BASE_PATH_TEST: '/k8s/api/DOCUMENT_PROVIDER_BASE_PATH_TEST' + DOCUMENT_PROVIDER_CLIENTID: '/k8s/documentprovider/DOCUMENT_PROVIDER_CLIENTID' + DOCUMENT_PROVIDER_CLIENTID_TEST: '/k8s/documentprovider/DOCUMENT_PROVIDER_CLIENTID_TEST' + DOCUMENT_PROVIDER_CLIENT_SECRET: '/k8s/documentprovider/DOCUMENT_PROVIDER_CLIENT_SECRET' + DOCUMENT_PROVIDER_CLIENT_SECRET_TEST: '/k8s/documentprovider/DOCUMENT_PROVIDER_CLIENT_SECRET_TEST' + DOCUMENT_PROVIDER_TOKEN_URL: '/k8s/api/DOCUMENT_PROVIDER_TOKEN_URL' + DOCUMENT_PROVIDER_TOKEN_URL_TEST: '/k8s/api/DOCUMENT_PROVIDER_TOKEN_URL_TEST' + DOMSYSLA_PASSWORD: '/k8s/api/DOMSYSLA_PASSWORD' + DOMSYSLA_USERNAME: '/k8s/api/DOMSYSLA_USERNAME' + DRIVING_LICENSE_BOOK_PASSWORD: '/k8s/api/DRIVING_LICENSE_BOOK_PASSWORD' + DRIVING_LICENSE_BOOK_USERNAME: '/k8s/api/DRIVING_LICENSE_BOOK_USERNAME' + DRIVING_LICENSE_BOOK_XROAD_PATH: '/k8s/api/DRIVING_LICENSE_BOOK_XROAD_PATH' + DRIVING_LICENSE_FETCH_TIMEOUT: '/k8s/api/DRIVING_LICENSE_FETCH_TIMEOUT' + DRIVING_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/DRIVING_LICENSE_PASS_TEMPLATE_ID' + FINANCIAL_STATEMENTS_INAO_CLIENT_ID: '/k8s/api/FINANCIAL_STATEMENTS_INAO_CLIENT_ID' + FINANCIAL_STATEMENTS_INAO_CLIENT_SECRET: '/k8s/api/FINANCIAL_STATEMENTS_INAO_CLIENT_SECRET' + FIREARM_LICENSE_FETCH_TIMEOUT: '/k8s/api/FIREARM_LICENSE_FETCH_TIMEOUT' + FIREARM_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/FIREARM_LICENSE_PASS_TEMPLATE_ID' + FISKISTOFA_API_ACCESS_TOKEN_SERVICE_AUDIENCE: '/k8s/api/FISKISTOFA_API_ACCESS_TOKEN_SERVICE_AUDIENCE' + FISKISTOFA_API_ACCESS_TOKEN_SERVICE_CLIENT_ID: '/k8s/api/FISKISTOFA_API_ACCESS_TOKEN_SERVICE_CLIENT_ID' + FISKISTOFA_API_ACCESS_TOKEN_SERVICE_CLIENT_SECRET: '/k8s/api/FISKISTOFA_API_ACCESS_TOKEN_SERVICE_CLIENT_SECRET' + FISKISTOFA_API_ACCESS_TOKEN_SERVICE_URL: '/k8s/api/FISKISTOFA_API_ACCESS_TOKEN_SERVICE_URL' + FISKISTOFA_API_URL: '/k8s/api/FISKISTOFA_API_URL' + FISKISTOFA_POWERBI_CLIENT_ID: '/k8s/api/FISKISTOFA_POWERBI_CLIENT_ID' + FISKISTOFA_POWERBI_CLIENT_SECRET: '/k8s/api/FISKISTOFA_POWERBI_CLIENT_SECRET' + FISKISTOFA_POWERBI_TENANT_ID: '/k8s/api/FISKISTOFA_POWERBI_TENANT_ID' + FISKISTOFA_ZENTER_CLIENT_PASSWORD: '/k8s/api/FISKISTOFA_ZENTER_CLIENT_PASSWORD' + FISKISTOFA_ZENTER_EMAIL: '/k8s/api/FISKISTOFA_ZENTER_EMAIL' + FISKISTOFA_ZENTER_PASSWORD: '/k8s/api/FISKISTOFA_ZENTER_PASSWORD' + HOUSING_BENEFIT_CALCULATOR_PASSWORD: '/k8s/xroad/client/HOUSING_BENEFIT_CALCULATOR_PASSWORD' + HOUSING_BENEFIT_CALCULATOR_USERNAME: '/k8s/xroad/client/HOUSING_BENEFIT_CALCULATOR_USERNAME' + HSN_WEB_FORM_RESPONSE_SECRET: '/k8s/api/HSN_WEB_FORM_RESPONSE_SECRET' + HSN_WEB_FORM_RESPONSE_URL: '/k8s/api/HSN_WEB_FORM_RESPONSE_URL' + ICELANDIC_GOVERNMENT_INSTITUTION_VACANCIES_PASSWORD: '/k8s/xroad/client/ICELANDIC_GOVERNMENT_INSTITUTION_VACANCIES_PASSWORD' + ICELANDIC_GOVERNMENT_INSTITUTION_VACANCIES_USERNAME: '/k8s/xroad/client/ICELANDIC_GOVERNMENT_INSTITUTION_VACANCIES_USERNAME' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/api/IDENTITY_SERVER_CLIENT_SECRET' + INTELLECTUAL_PROPERTY_API_KEY: '/k8s/api/IP_API_KEY' + ISLYKILL_SERVICE_BASEPATH: '/k8s/api/ISLYKILL_SERVICE_BASEPATH' + ISLYKILL_SERVICE_PASSPHRASE: '/k8s/api/ISLYKILL_SERVICE_PASSPHRASE' + LICENSE_SERVICE_BARCODE_SECRET_KEY: '/k8s/api/LICENSE_SERVICE_BARCODE_SECRET_KEY' + MACHINE_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/MACHINE_LICENSE_PASS_TEMPLATE_ID' + NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/api/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' + PKPASS_API_KEY: '/k8s/api/PKPASS_API_KEY' + PKPASS_API_URL: '/k8s/api/PKPASS_API_URL' + PKPASS_AUTH_RETRIES: '/k8s/api/PKPASS_AUTH_RETRIES' + PKPASS_CACHE_KEY: '/k8s/api/PKPASS_CACHE_KEY' + PKPASS_CACHE_TOKEN_EXPIRY_DELTA: '/k8s/api/PKPASS_CACHE_TOKEN_EXPIRY_DELTA' + PKPASS_SECRET_KEY: '/k8s/api/PKPASS_SECRET_KEY' + POSTHOLF_BASE_PATH: '/k8s/documents/POSTHOLF_BASE_PATH' + POSTHOLF_CLIENTID: '/k8s/documents/POSTHOLF_CLIENTID' + POSTHOLF_CLIENT_SECRET: '/k8s/documents/POSTHOLF_CLIENT_SECRET' + POSTHOLF_TOKEN_URL: '/k8s/documents/POSTHOLF_TOKEN_URL' + REGULATIONS_API_URL: '/k8s/api/REGULATIONS_API_URL' + REGULATIONS_FILE_UPLOAD_KEY_DRAFT: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_DRAFT' + REGULATIONS_FILE_UPLOAD_KEY_PRESIGNED: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_PRESIGNED' + REGULATIONS_FILE_UPLOAD_KEY_PUBLISH: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_PUBLISH' + RLS_PKPASS_API_KEY: '/k8s/api/RLS_PKPASS_API_KEY' + SMART_SOLUTIONS_API_URL: '/k8s/api/SMART_SOLUTIONS_API_URL' + SYSLUMENN_HOST: '/k8s/api/SYSLUMENN_HOST' + SYSLUMENN_PASSWORD: '/k8s/api/SYSLUMENN_PASSWORD' + SYSLUMENN_USERNAME: '/k8s/api/SYSLUMENN_USERNAME' + TR_PKPASS_API_KEY: '/k8s/api/TR_PKPASS_API_KEY' + ULTRAVIOLET_RADIATION_API_KEY: '/k8s/api/ULTRAVIOLET_RADIATION_API_KEY' + UMBODSMADUR_SKULDARA_COST_OF_LIVING_CALCULATOR_API_URL: '/k8s/api/UMBODSMADUR_SKULDARA_COST_OF_LIVING_CALCULATOR_API_URL' + UST_PKPASS_API_KEY: '/k8s/api/UST_PKPASS_API_KEY' + VEHICLES_ALLOW_CO_OWNERS: '/k8s/api/VEHICLES_ALLOW_CO_OWNERS' + VE_PKPASS_API_KEY: '/k8s/api/VE_PKPASS_API_KEY' + VINNUEFTIRLITID_CAMPAIGN_MONITOR_API_KEY: '/k8s/api/VINNUEFTIRLITID_CAMPAIGN_MONITOR_API_KEY' + WATSON_ASSISTANT_CHAT_FEEDBACK_API_KEY: '/k8s/api/WATSON_ASSISTANT_CHAT_FEEDBACK_API_KEY' + WATSON_ASSISTANT_CHAT_FEEDBACK_URL: '/k8s/api/WATSON_ASSISTANT_CHAT_FEEDBACK_URL' + XROAD_DRIVING_LICENSE_SECRET: '/k8s/api/DRIVING_LICENSE_SECRET' + XROAD_HEALTH_INSURANCE_PASSWORD: '/k8s/health-insurance/XROAD-PASSWORD' + XROAD_HEALTH_INSURANCE_USERNAME: '/k8s/health-insurance/XROAD-USER' + XROAD_HEALTH_INSURANCE_V2_XROAD_PASSWORD: '/k8s/api/HEALTH_INSURANCE_V2_XROAD_PASSWORD' + XROAD_HEALTH_INSURANCE_V2_XROAD_USERNAME: '/k8s/api/HEALTH_INSURANCE_V2_XROAD_USERNAME' + XROAD_PAYMENT_PASSWORD: '/k8s/application-system-api/PAYMENT_PASSWORD' + XROAD_PAYMENT_USER: '/k8s/application-system-api/PAYMENT_USER' + XROAD_PROPERTIES_CLIENT_SECRET: '/k8s/xroad/client/NATIONAL-REGISTRY/IDENTITYSERVER_SECRET' + XROAD_VMST_API_KEY: '/k8s/vmst-client/VMST_API_KEY' + ZENDESK_CONTACT_FORM_EMAIL: '/k8s/api/ZENDESK_CONTACT_FORM_EMAIL' + ZENDESK_CONTACT_FORM_TOKEN: '/k8s/api/ZENDESK_CONTACT_FORM_TOKEN' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/api' + create: true + name: 'api' diff --git a/charts/services/application-system-api-worker/values.dev.yaml b/charts/services/application-system-api-worker/values.dev.yaml index 38a91f889d37..ff4bd2d0ebb0 100644 --- a/charts/services/application-system-api-worker/values.dev.yaml +++ b/charts/services/application-system-api-worker/values.dev.yaml @@ -5,105 +5,115 @@ # ##################################################################### -service: - name: 'application-system-api-worker' - args: - - 'main.js' - - '--job' - - 'worker' - command: - - 'node' - enabled: true +global: env: - APPLICATION_ATTACHMENT_BUCKET: 'island-is-dev-storage-application-system' - CLIENT_LOCATION_ORIGIN: 'https://beta.dev01.devland.is/umsoknir' - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'application_system_api' - DB_REPLICAS_HOST: 'postgres-applications-reader.internal' - DB_USER: 'application_system_api' - EHIC_XROAD_PROVIDER_ID: 'IS-DEV/GOV/10007/SJUKRA-Protected/ehic' - FILE_SERVICE_PRESIGN_BUCKET: 'island-is-dev-fs-presign-bucket' - FILE_STORAGE_UPLOAD_BUCKET: 'island-is-dev-upload-api' - IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/application-system' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=691 -r dd-trace/init' - REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' - SERVERSIDE_FEATURES_ON: '' - XROAD_BASE_PATH: 'http://securityserver.dev01.devland.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.dev01.devland.is/r1/IS-DEV' - XROAD_CHARGE_FJS_V2_PATH: 'IS-DEV/GOV/10021/FJS-Public/chargeFJS_v2' - XROAD_CLIENT_ID: 'IS-DEV/GOV/10000/island-is-client' - XROAD_INNA_PATH: 'IS-DEV/GOV/10066/MMS-Protected/inna-v1' - XROAD_PAYMENT_ADDITION_CALLBACK_URL: '/' - XROAD_PAYMENT_BASE_CALLBACK_URL: 'XROAD:/IS-DEV/GOV/10000/island-is/application-callback-v2/application-payment/' - XROAD_PAYMENT_PROVIDER_ID: 'IS-DEV/GOV/10021/FJS-Public' - XROAD_TLS_BASE_PATH: 'https://securityserver.dev01.devland.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.dev01.devland.is/r1/IS-DEV' - XROAD_WORK_MACHINE_LICENSE_PATH: 'IS-DEV/GOV/10013/Vinnueftirlitid-Protected/vinnuvelar-token' - grantNamespaces: - - 'nginx-ingress-internal' - - 'islandis' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/application-system-api' - namespace: 'application-system' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '400m' - memory: '768Mi' - requests: - cpu: '150m' - memory: '384Mi' - schedule: '*/30 * * * *' - secrets: - ARK_BASE_URL: '/k8s/application-system-api/ARK_BASE_URL' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DB_PASS: '/k8s/application-system-api/DB_PASSWORD' - DOKOBIT_ACCESS_TOKEN: '/k8s/application-system/api/DOKOBIT_ACCESS_TOKEN' - DOKOBIT_URL: '/k8s/application-system-api/DOKOBIT_URL' - DOMSYSLA_PASSWORD: '/k8s/application-system-api/DOMSYSLA_PASSWORD' - DOMSYSLA_USERNAME: '/k8s/application-system-api/DOMSYSLA_USERNAME' - DRIVING_LICENSE_BOOK_PASSWORD: '/k8s/application-system-api/DRIVING_LICENSE_BOOK_PASSWORD' - DRIVING_LICENSE_BOOK_USERNAME: '/k8s/application-system-api/DRIVING_LICENSE_BOOK_USERNAME' - DRIVING_LICENSE_BOOK_XROAD_PATH: '/k8s/application-system-api/DRIVING_LICENSE_BOOK_XROAD_PATH' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/application-system/api/IDENTITY_SERVER_CLIENT_SECRET' - SYSLUMENN_HOST: '/k8s/application-system-api/SYSLUMENN_HOST' - SYSLUMENN_PASSWORD: '/k8s/application-system/api/SYSLUMENN_PASSWORD' - SYSLUMENN_USERNAME: '/k8s/application-system/api/SYSLUMENN_USERNAME' - XROAD_PAYMENT_PASSWORD: '/k8s/application-system-api/PAYMENT_PASSWORD' - XROAD_PAYMENT_USER: '/k8s/application-system-api/PAYMENT_USER' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/application-system-api-worker' - create: true - name: 'application-system-api-worker' + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'application-system-api-worker' +args: + - 'main.js' + - '--job' + - 'worker' +command: + - 'node' +enabled: true +env: + APPLICATION_ATTACHMENT_BUCKET: 'island-is-dev-storage-application-system' + CLIENT_LOCATION_ORIGIN: 'https://beta.dev01.devland.is/umsoknir' + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'application_system_api' + DB_REPLICAS_HOST: 'postgres-applications-reader.internal' + DB_USER: 'application_system_api' + EHIC_XROAD_PROVIDER_ID: 'IS-DEV/GOV/10007/SJUKRA-Protected/ehic' + FILE_SERVICE_PRESIGN_BUCKET: 'island-is-dev-fs-presign-bucket' + FILE_STORAGE_UPLOAD_BUCKET: 'island-is-dev-upload-api' + IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/application-system' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=691 -r dd-trace/init' + REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' + SERVERSIDE_FEATURES_ON: '' + XROAD_BASE_PATH: 'http://securityserver.dev01.devland.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.dev01.devland.is/r1/IS-DEV' + XROAD_CHARGE_FJS_V2_PATH: 'IS-DEV/GOV/10021/FJS-Public/chargeFJS_v2' + XROAD_CLIENT_ID: 'IS-DEV/GOV/10000/island-is-client' + XROAD_INNA_PATH: 'IS-DEV/GOV/10066/MMS-Protected/inna-v1' + XROAD_PAYMENT_ADDITION_CALLBACK_URL: '/' + XROAD_PAYMENT_BASE_CALLBACK_URL: 'XROAD:/IS-DEV/GOV/10000/island-is/application-callback-v2/application-payment/' + XROAD_PAYMENT_PROVIDER_ID: 'IS-DEV/GOV/10021/FJS-Public' + XROAD_TLS_BASE_PATH: 'https://securityserver.dev01.devland.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.dev01.devland.is/r1/IS-DEV' + XROAD_WORK_MACHINE_LICENSE_PATH: 'IS-DEV/GOV/10013/Vinnueftirlitid-Protected/vinnuvelar-token' +grantNamespaces: + - 'nginx-ingress-internal' + - 'islandis' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/application-system-api' +namespace: 'application-system' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '400m' + memory: '768Mi' + requests: + cpu: '150m' + memory: '384Mi' +schedule: '*/30 * * * *' +secrets: + ARK_BASE_URL: '/k8s/application-system-api/ARK_BASE_URL' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/application-system-api/DB_PASSWORD' + DOKOBIT_ACCESS_TOKEN: '/k8s/application-system/api/DOKOBIT_ACCESS_TOKEN' + DOKOBIT_URL: '/k8s/application-system-api/DOKOBIT_URL' + DOMSYSLA_PASSWORD: '/k8s/application-system-api/DOMSYSLA_PASSWORD' + DOMSYSLA_USERNAME: '/k8s/application-system-api/DOMSYSLA_USERNAME' + DRIVING_LICENSE_BOOK_PASSWORD: '/k8s/application-system-api/DRIVING_LICENSE_BOOK_PASSWORD' + DRIVING_LICENSE_BOOK_USERNAME: '/k8s/application-system-api/DRIVING_LICENSE_BOOK_USERNAME' + DRIVING_LICENSE_BOOK_XROAD_PATH: '/k8s/application-system-api/DRIVING_LICENSE_BOOK_XROAD_PATH' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/application-system/api/IDENTITY_SERVER_CLIENT_SECRET' + SYSLUMENN_HOST: '/k8s/application-system-api/SYSLUMENN_HOST' + SYSLUMENN_PASSWORD: '/k8s/application-system/api/SYSLUMENN_PASSWORD' + SYSLUMENN_USERNAME: '/k8s/application-system/api/SYSLUMENN_USERNAME' + XROAD_PAYMENT_PASSWORD: '/k8s/application-system-api/PAYMENT_PASSWORD' + XROAD_PAYMENT_USER: '/k8s/application-system-api/PAYMENT_USER' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/application-system-api-worker' + create: true + name: 'application-system-api-worker' diff --git a/charts/services/application-system-api-worker/values.prod.yaml b/charts/services/application-system-api-worker/values.prod.yaml index 45c19e3afc3a..c03336214cd1 100644 --- a/charts/services/application-system-api-worker/values.prod.yaml +++ b/charts/services/application-system-api-worker/values.prod.yaml @@ -5,105 +5,115 @@ # ##################################################################### -service: - name: 'application-system-api-worker' - args: - - 'main.js' - - '--job' - - 'worker' - command: - - 'node' - enabled: true +global: env: - APPLICATION_ATTACHMENT_BUCKET: 'island-is-prod-storage-application-system' - CLIENT_LOCATION_ORIGIN: 'https://island.is/umsoknir' - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'application_system_api' - DB_REPLICAS_HOST: 'postgres-applications.internal' - DB_USER: 'application_system_api' - EHIC_XROAD_PROVIDER_ID: 'IS/GOV/4804080550/SJUKRA-Protected/ehic' - FILE_SERVICE_PRESIGN_BUCKET: 'island-is-prod-fs-presign-bucket' - FILE_STORAGE_UPLOAD_BUCKET: 'island-is-prod-upload-api' - IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/application-system' - IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=691 -r dd-trace/init' - REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379"]' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - XROAD_BASE_PATH: 'http://securityserver.island.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.island.is/r1/IS' - XROAD_CHARGE_FJS_V2_PATH: 'IS/GOV/5402697509/FJS-Public/chargeFJS_v2' - XROAD_CLIENT_ID: 'IS/GOV/5501692829/island-is-client' - XROAD_INNA_PATH: 'IS/GOV/6601241280/MMS-Protected/inna-v1' - XROAD_PAYMENT_ADDITION_CALLBACK_URL: '/' - XROAD_PAYMENT_BASE_CALLBACK_URL: 'XROAD:/IS/GOV/5501692829/island-is/application-callback-v2/application-payment/' - XROAD_PAYMENT_PROVIDER_ID: 'IS/GOV/5402697509/FJS-Public' - XROAD_TLS_BASE_PATH: 'https://securityserver.island.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.island.is/r1/IS' - XROAD_WORK_MACHINE_LICENSE_PATH: 'IS/GOV/4201810439/Vinnueftirlitid-Protected/vinnuvelar-token' - grantNamespaces: - - 'nginx-ingress-internal' - - 'islandis' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 3 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/application-system-api' - namespace: 'application-system' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 3 - max: 10 - min: 3 - resources: - limits: - cpu: '400m' - memory: '768Mi' - requests: - cpu: '150m' - memory: '384Mi' - schedule: '*/30 * * * *' - secrets: - ARK_BASE_URL: '/k8s/application-system-api/ARK_BASE_URL' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DB_PASS: '/k8s/application-system-api/DB_PASSWORD' - DOKOBIT_ACCESS_TOKEN: '/k8s/application-system/api/DOKOBIT_ACCESS_TOKEN' - DOKOBIT_URL: '/k8s/application-system-api/DOKOBIT_URL' - DOMSYSLA_PASSWORD: '/k8s/application-system-api/DOMSYSLA_PASSWORD' - DOMSYSLA_USERNAME: '/k8s/application-system-api/DOMSYSLA_USERNAME' - DRIVING_LICENSE_BOOK_PASSWORD: '/k8s/application-system-api/DRIVING_LICENSE_BOOK_PASSWORD' - DRIVING_LICENSE_BOOK_USERNAME: '/k8s/application-system-api/DRIVING_LICENSE_BOOK_USERNAME' - DRIVING_LICENSE_BOOK_XROAD_PATH: '/k8s/application-system-api/DRIVING_LICENSE_BOOK_XROAD_PATH' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/application-system/api/IDENTITY_SERVER_CLIENT_SECRET' - SYSLUMENN_HOST: '/k8s/application-system-api/SYSLUMENN_HOST' - SYSLUMENN_PASSWORD: '/k8s/application-system/api/SYSLUMENN_PASSWORD' - SYSLUMENN_USERNAME: '/k8s/application-system/api/SYSLUMENN_USERNAME' - XROAD_PAYMENT_PASSWORD: '/k8s/application-system-api/PAYMENT_PASSWORD' - XROAD_PAYMENT_USER: '/k8s/application-system-api/PAYMENT_USER' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/application-system-api-worker' - create: true - name: 'application-system-api-worker' + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'application-system-api-worker' +args: + - 'main.js' + - '--job' + - 'worker' +command: + - 'node' +enabled: true +env: + APPLICATION_ATTACHMENT_BUCKET: 'island-is-prod-storage-application-system' + CLIENT_LOCATION_ORIGIN: 'https://island.is/umsoknir' + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'application_system_api' + DB_REPLICAS_HOST: 'postgres-applications.internal' + DB_USER: 'application_system_api' + EHIC_XROAD_PROVIDER_ID: 'IS/GOV/4804080550/SJUKRA-Protected/ehic' + FILE_SERVICE_PRESIGN_BUCKET: 'island-is-prod-fs-presign-bucket' + FILE_STORAGE_UPLOAD_BUCKET: 'island-is-prod-upload-api' + IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/application-system' + IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=691 -r dd-trace/init' + REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379"]' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' + XROAD_BASE_PATH: 'http://securityserver.island.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.island.is/r1/IS' + XROAD_CHARGE_FJS_V2_PATH: 'IS/GOV/5402697509/FJS-Public/chargeFJS_v2' + XROAD_CLIENT_ID: 'IS/GOV/5501692829/island-is-client' + XROAD_INNA_PATH: 'IS/GOV/6601241280/MMS-Protected/inna-v1' + XROAD_PAYMENT_ADDITION_CALLBACK_URL: '/' + XROAD_PAYMENT_BASE_CALLBACK_URL: 'XROAD:/IS/GOV/5501692829/island-is/application-callback-v2/application-payment/' + XROAD_PAYMENT_PROVIDER_ID: 'IS/GOV/5402697509/FJS-Public' + XROAD_TLS_BASE_PATH: 'https://securityserver.island.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.island.is/r1/IS' + XROAD_WORK_MACHINE_LICENSE_PATH: 'IS/GOV/4201810439/Vinnueftirlitid-Protected/vinnuvelar-token' +grantNamespaces: + - 'nginx-ingress-internal' + - 'islandis' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 3 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/application-system-api' +namespace: 'application-system' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 3 + max: 10 + min: 3 +resources: + limits: + cpu: '400m' + memory: '768Mi' + requests: + cpu: '150m' + memory: '384Mi' +schedule: '*/30 * * * *' +secrets: + ARK_BASE_URL: '/k8s/application-system-api/ARK_BASE_URL' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/application-system-api/DB_PASSWORD' + DOKOBIT_ACCESS_TOKEN: '/k8s/application-system/api/DOKOBIT_ACCESS_TOKEN' + DOKOBIT_URL: '/k8s/application-system-api/DOKOBIT_URL' + DOMSYSLA_PASSWORD: '/k8s/application-system-api/DOMSYSLA_PASSWORD' + DOMSYSLA_USERNAME: '/k8s/application-system-api/DOMSYSLA_USERNAME' + DRIVING_LICENSE_BOOK_PASSWORD: '/k8s/application-system-api/DRIVING_LICENSE_BOOK_PASSWORD' + DRIVING_LICENSE_BOOK_USERNAME: '/k8s/application-system-api/DRIVING_LICENSE_BOOK_USERNAME' + DRIVING_LICENSE_BOOK_XROAD_PATH: '/k8s/application-system-api/DRIVING_LICENSE_BOOK_XROAD_PATH' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/application-system/api/IDENTITY_SERVER_CLIENT_SECRET' + SYSLUMENN_HOST: '/k8s/application-system-api/SYSLUMENN_HOST' + SYSLUMENN_PASSWORD: '/k8s/application-system/api/SYSLUMENN_PASSWORD' + SYSLUMENN_USERNAME: '/k8s/application-system/api/SYSLUMENN_USERNAME' + XROAD_PAYMENT_PASSWORD: '/k8s/application-system-api/PAYMENT_PASSWORD' + XROAD_PAYMENT_USER: '/k8s/application-system-api/PAYMENT_USER' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/application-system-api-worker' + create: true + name: 'application-system-api-worker' diff --git a/charts/services/application-system-api-worker/values.staging.yaml b/charts/services/application-system-api-worker/values.staging.yaml index 99b4e6ab9dba..c45d550e4db3 100644 --- a/charts/services/application-system-api-worker/values.staging.yaml +++ b/charts/services/application-system-api-worker/values.staging.yaml @@ -5,105 +5,115 @@ # ##################################################################### -service: - name: 'application-system-api-worker' - args: - - 'main.js' - - '--job' - - 'worker' - command: - - 'node' - enabled: true +global: env: - APPLICATION_ATTACHMENT_BUCKET: 'island-is-staging-storage-application-system' - CLIENT_LOCATION_ORIGIN: 'https://beta.staging01.devland.is/umsoknir' - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'application_system_api' - DB_REPLICAS_HOST: 'postgres-applications.internal' - DB_USER: 'application_system_api' - EHIC_XROAD_PROVIDER_ID: 'IS-TEST/GOV/4804080550/SJUKRA-Protected/ehic' - FILE_SERVICE_PRESIGN_BUCKET: 'island-is-staging-fs-presign-bucket' - FILE_STORAGE_UPLOAD_BUCKET: 'island-is-staging-upload-api' - IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/application-system' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=691 -r dd-trace/init' - REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' - SERVERSIDE_FEATURES_ON: '' - XROAD_BASE_PATH: 'http://securityserver.staging01.devland.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.staging01.devland.is/r1/IS-TEST' - XROAD_CHARGE_FJS_V2_PATH: 'IS-TEST/GOV/10021/FJS-Public/chargeFJS_v2' - XROAD_CLIENT_ID: 'IS-TEST/GOV/5501692829/island-is-client' - XROAD_INNA_PATH: 'IS-TEST/GOV/6601241280/MMS-Protected/inna-v1' - XROAD_PAYMENT_ADDITION_CALLBACK_URL: '/' - XROAD_PAYMENT_BASE_CALLBACK_URL: 'XROAD:' - XROAD_PAYMENT_PROVIDER_ID: 'IS-TEST/GOV/10021/FJS-DEV-Public' - XROAD_TLS_BASE_PATH: 'https://securityserver.staging01.devland.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.staging01.devland.is/r1/IS-TEST' - XROAD_WORK_MACHINE_LICENSE_PATH: 'IS-TEST/GOV/4201810439/Vinnueftirlitid-Protected/vinnuvelar-token' - grantNamespaces: - - 'nginx-ingress-internal' - - 'islandis' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/application-system-api' - namespace: 'application-system' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '400m' - memory: '768Mi' - requests: - cpu: '150m' - memory: '384Mi' - schedule: '*/30 * * * *' - secrets: - ARK_BASE_URL: '/k8s/application-system-api/ARK_BASE_URL' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DB_PASS: '/k8s/application-system-api/DB_PASSWORD' - DOKOBIT_ACCESS_TOKEN: '/k8s/application-system/api/DOKOBIT_ACCESS_TOKEN' - DOKOBIT_URL: '/k8s/application-system-api/DOKOBIT_URL' - DOMSYSLA_PASSWORD: '/k8s/application-system-api/DOMSYSLA_PASSWORD' - DOMSYSLA_USERNAME: '/k8s/application-system-api/DOMSYSLA_USERNAME' - DRIVING_LICENSE_BOOK_PASSWORD: '/k8s/application-system-api/DRIVING_LICENSE_BOOK_PASSWORD' - DRIVING_LICENSE_BOOK_USERNAME: '/k8s/application-system-api/DRIVING_LICENSE_BOOK_USERNAME' - DRIVING_LICENSE_BOOK_XROAD_PATH: '/k8s/application-system-api/DRIVING_LICENSE_BOOK_XROAD_PATH' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/application-system/api/IDENTITY_SERVER_CLIENT_SECRET' - SYSLUMENN_HOST: '/k8s/application-system-api/SYSLUMENN_HOST' - SYSLUMENN_PASSWORD: '/k8s/application-system/api/SYSLUMENN_PASSWORD' - SYSLUMENN_USERNAME: '/k8s/application-system/api/SYSLUMENN_USERNAME' - XROAD_PAYMENT_PASSWORD: '/k8s/application-system-api/PAYMENT_PASSWORD' - XROAD_PAYMENT_USER: '/k8s/application-system-api/PAYMENT_USER' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/application-system-api-worker' - create: true - name: 'application-system-api-worker' + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'application-system-api-worker' +args: + - 'main.js' + - '--job' + - 'worker' +command: + - 'node' +enabled: true +env: + APPLICATION_ATTACHMENT_BUCKET: 'island-is-staging-storage-application-system' + CLIENT_LOCATION_ORIGIN: 'https://beta.staging01.devland.is/umsoknir' + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'application_system_api' + DB_REPLICAS_HOST: 'postgres-applications.internal' + DB_USER: 'application_system_api' + EHIC_XROAD_PROVIDER_ID: 'IS-TEST/GOV/4804080550/SJUKRA-Protected/ehic' + FILE_SERVICE_PRESIGN_BUCKET: 'island-is-staging-fs-presign-bucket' + FILE_STORAGE_UPLOAD_BUCKET: 'island-is-staging-upload-api' + IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/application-system' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=691 -r dd-trace/init' + REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' + SERVERSIDE_FEATURES_ON: '' + XROAD_BASE_PATH: 'http://securityserver.staging01.devland.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.staging01.devland.is/r1/IS-TEST' + XROAD_CHARGE_FJS_V2_PATH: 'IS-TEST/GOV/10021/FJS-Public/chargeFJS_v2' + XROAD_CLIENT_ID: 'IS-TEST/GOV/5501692829/island-is-client' + XROAD_INNA_PATH: 'IS-TEST/GOV/6601241280/MMS-Protected/inna-v1' + XROAD_PAYMENT_ADDITION_CALLBACK_URL: '/' + XROAD_PAYMENT_BASE_CALLBACK_URL: 'XROAD:' + XROAD_PAYMENT_PROVIDER_ID: 'IS-TEST/GOV/10021/FJS-DEV-Public' + XROAD_TLS_BASE_PATH: 'https://securityserver.staging01.devland.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.staging01.devland.is/r1/IS-TEST' + XROAD_WORK_MACHINE_LICENSE_PATH: 'IS-TEST/GOV/4201810439/Vinnueftirlitid-Protected/vinnuvelar-token' +grantNamespaces: + - 'nginx-ingress-internal' + - 'islandis' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/application-system-api' +namespace: 'application-system' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '400m' + memory: '768Mi' + requests: + cpu: '150m' + memory: '384Mi' +schedule: '*/30 * * * *' +secrets: + ARK_BASE_URL: '/k8s/application-system-api/ARK_BASE_URL' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/application-system-api/DB_PASSWORD' + DOKOBIT_ACCESS_TOKEN: '/k8s/application-system/api/DOKOBIT_ACCESS_TOKEN' + DOKOBIT_URL: '/k8s/application-system-api/DOKOBIT_URL' + DOMSYSLA_PASSWORD: '/k8s/application-system-api/DOMSYSLA_PASSWORD' + DOMSYSLA_USERNAME: '/k8s/application-system-api/DOMSYSLA_USERNAME' + DRIVING_LICENSE_BOOK_PASSWORD: '/k8s/application-system-api/DRIVING_LICENSE_BOOK_PASSWORD' + DRIVING_LICENSE_BOOK_USERNAME: '/k8s/application-system-api/DRIVING_LICENSE_BOOK_USERNAME' + DRIVING_LICENSE_BOOK_XROAD_PATH: '/k8s/application-system-api/DRIVING_LICENSE_BOOK_XROAD_PATH' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/application-system/api/IDENTITY_SERVER_CLIENT_SECRET' + SYSLUMENN_HOST: '/k8s/application-system-api/SYSLUMENN_HOST' + SYSLUMENN_PASSWORD: '/k8s/application-system/api/SYSLUMENN_PASSWORD' + SYSLUMENN_USERNAME: '/k8s/application-system/api/SYSLUMENN_USERNAME' + XROAD_PAYMENT_PASSWORD: '/k8s/application-system-api/PAYMENT_PASSWORD' + XROAD_PAYMENT_USER: '/k8s/application-system-api/PAYMENT_USER' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/application-system-api-worker' + create: true + name: 'application-system-api-worker' diff --git a/charts/services/application-system-api/values.dev.yaml b/charts/services/application-system-api/values.dev.yaml index be93a4cdd346..1afae5cc210e 100644 --- a/charts/services/application-system-api/values.dev.yaml +++ b/charts/services/application-system-api/values.dev.yaml @@ -5,254 +5,264 @@ # ##################################################################### -service: - name: 'application-system-api' - args: - - 'main.js' - command: - - 'node' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'application-system-api' +args: + - 'main.js' +command: + - 'node' +enabled: true +env: + APPLICATION_ATTACHMENT_BUCKET: 'island-is-dev-storage-application-system' + AUTH_PUBLIC_API_URL: 'https://identity-server.dev01.devland.is/api' + CLIENT_LOCATION_ORIGIN: 'https://beta.dev01.devland.is/umsoknir' + COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' + COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS-DEV/GOV/10006/Skatturinn/ft-v1' + CONTENTFUL_HOST: 'preview.contentful.com' + DATA_PROTECTION_COMPLAINT_XROAD_PROVIDER_ID: 'IS-DEV/GOV/10026/gopro/kvortun-v1' + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'application_system_api' + DB_REPLICAS_HOST: 'postgres-applications-reader.internal' + DB_USER: 'application_system_api' + EHIC_XROAD_PROVIDER_ID: 'IS-DEV/GOV/10007/SJUKRA-Protected/ehic' + EMAIL_REGION: 'eu-west-1' + ENDORSEMENTS_API_BASE_PATH: 'http://web-endorsement-system-api.endorsement-system.svc.cluster.local' + FILE_SERVICE_PRESIGN_BUCKET: 'island-is-dev-fs-presign-bucket' + FILE_STORAGE_UPLOAD_BUCKET: 'island-is-dev-upload-api' + FINANCIAL_STATEMENTS_INAO_BASE_PATH: 'https://dev-re.crm4.dynamics.com/api/data/v9.1' + FINANCIAL_STATEMENTS_INAO_ISSUER: 'https://login.microsoftonline.com/05a20268-aaea-4bb5-bb78-960b0462185e/v2.0' + FINANCIAL_STATEMENTS_INAO_SCOPE: 'https://dev-re.crm4.dynamics.com/.default' + FINANCIAL_STATEMENTS_INAO_TOKEN_ENDPOINT: 'https://login.microsoftonline.com/05a20268-aaea-4bb5-bb78-960b0462185e/oauth2/v2.0/token' + FISHING_LICENSE_XROAD_PROVIDER_ID: 'IS-DEV/GOV/10012/Fiskistofa-Protected/veidileyfi-v1' + FUNDING_GOVERNMENT_PROJECTS_APPLICATION_RECIPIENT_EMAIL_ADDRESS: 'gunnar.ingi@fjr.is' + FUNDING_GOVERNMENT_PROJECTS_APPLICATION_RECIPIENT_NAME: 'Gunnar Ingi' + GRAPHQL_API_URL: 'http://web-api.islandis.svc.cluster.local' + IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/application-system' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' + INSTITUTION_APPLICATION_RECIPIENT_EMAIL_ADDRESS: 'gunnar.ingi@fjr.is' + INSTITUTION_APPLICATION_RECIPIENT_NAME: 'Gunnar Ingi' + ISLYKILL_CERT: '/etc/config/islyklar.p12' + LOGIN_SERVICE_APPLICATION_RECIPIENT_EMAIL_ADDRESS: 'gunnar.ingi@fjr.is' + LOGIN_SERVICE_APPLICATION_RECIPIENT_NAME: 'Gunnar Ingi' + LOG_LEVEL: 'info' + NATIONAL_REGISTRY_B2C_CLIENT_ID: 'b464afdd-056b-406d-b650-6d41733cfeb7' + NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentitydev.b2clogin.com/skraidentitydev.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' + NATIONAL_REGISTRY_B2C_PATH: 'IS-DEV/GOV/10001/SKRA-Cloud-Protected/Midlun-v1' + NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentitydev.onmicrosoft.com/midlun/.default' + NODE_OPTIONS: '--max-old-space-size=921 -r dd-trace/init' + NOVA_ACCEPT_UNAUTHORIZED: 'true' + NOVA_USERNAME: 'IslandIs_User_Development' + RECYCLING_FUND_GQL_BASE_PATH: 'http://web-skilavottord-ws.skilavottord.svc.cluster.local/app/skilavottord/api/graphql' + REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' + SERVERSIDE_FEATURES_ON: '' + SERVICE_DOCUMENTS_BASEPATH: 'http://web-services-documents.services-documents.svc.cluster.local' + SERVICE_USER_PROFILE_URL: 'http://web-service-portal-api.service-portal.svc.cluster.local' + UNIVERSITY_GATEWAY_API_URL: 'http://web-services-university-gateway.services-university-gateway.svc.cluster.local' + USER_NOTIFICATION_API_URL: 'http://web-user-notification.user-notification.svc.cluster.local' + WORKPOINT_ARBORG_SERVICE_PATH: 'IS-DEV/MUN/10036/Arborg-Protected/tengill-application-v1' + XROAD_AGRICULTURAL_UNIVERSITY_OF_ICELAND_PATH: 'IS-DEV/EDU/10056/LBHI-Protected/brautskraning-v1' + XROAD_ALTHINGI_OMBUDSMAN_SERVICE_PATH: 'IS-DEV/GOV/10047/UA-Protected/kvortun-v1/' + XROAD_BASE_PATH: 'http://securityserver.dev01.devland.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.dev01.devland.is/r1/IS-DEV' + XROAD_BIFROST_UNIVERSITY_PATH: 'IS-DEV/EDU/10057/Bifrost-Protected/brautskraning-v1' + XROAD_CHARGE_FJS_V2_PATH: 'IS-DEV/GOV/10021/FJS-Public/chargeFJS_v2' + XROAD_CHARGE_FJS_V2_TIMEOUT: '20000' + XROAD_CLIENT_ID: 'IS-DEV/GOV/10000/island-is-client' + XROAD_COURT_BANKRUPTCY_CERT_PATH: 'IS-DEV/GOV/10019/Domstolasyslan/JusticePortal-v1' + XROAD_CRIMINAL_RECORD_PATH: 'r1/IS-DEV/GOV/10005/Logreglan-Protected/Sakavottord-PDF-v2' + XROAD_DIGITAL_TACHOGRAPH_DRIVERS_CARD_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Okuritar-V1' + XROAD_DIRECTORATE_OF_IMMIGRATION_PATH: 'IS-DEV/GOV/10011/UTL-Protected/Utl-Umsokn-v1' + XROAD_DRIVING_LICENSE_PATH: 'r1/IS-DEV/GOV/10005/Logreglan-Protected/RafraentOkuskirteini-v1' + XROAD_DRIVING_LICENSE_V2_PATH: 'r1/IS-DEV/GOV/10005/Logreglan-Protected/RafraentOkuskirteini-v2' + XROAD_DRIVING_LICENSE_V4_PATH: 'r1/IS-DEV/GOV/10005/Logreglan-Protected/Okuskirteini-v4' + XROAD_DRIVING_LICENSE_V5_PATH: 'r1/IS-DEV/GOV/10005/Logreglan-Protected/Okuskirteini-v5' + XROAD_ENERGY_FUNDS_PATH: 'IS-DEV/GOV/10021/FJS-Public/ElectricCarSubSidyService_v1' + XROAD_FINANCES_PATH: 'IS-DEV/GOV/10021/FJS-Public/financeIsland' + XROAD_FINANCES_V2_PATH: 'IS-DEV/GOV/10021/FJS-Public/financeServicesFJS_v2' + XROAD_FINANCIAL_AID_BACKEND_PATH: 'IS-DEV/MUN/10023/samband-sveitarfelaga/financial-aid-backend' + XROAD_HEALTH_DIRECTORATE_ORGAN_DONATION_PATH: 'IS-DEV/GOV/10015/EmbaettiLandlaeknis-Protected/organ-donation-v1' + XROAD_HEALTH_DIRECTORATE_PATH: 'IS-DEV/GOV/10015/EmbaettiLandlaeknis-Protected/landlaeknir' + XROAD_HEALTH_DIRECTORATE_VACCINATION_PATH: 'IS-DEV/GOV/10015/EmbaettiLandlaeknis-Protected/vaccination-v1' + XROAD_HEALTH_INSURANCE_ID: 'IS-DEV/GOV/10007/SJUKRA-Protected' + XROAD_HEALTH_INSURANCE_MY_PAGES_PATH: 'IS-DEV/GOV/10007/SJUKRA-Protected/minarsidur' + XROAD_HEALTH_INSURANCE_WSDLURL: 'https://test-huld.sjukra.is/islandrg?wsdl' + XROAD_HMS_HOUSING_BENEFITS_PATH: 'IS-DEV/GOV/10033/HMS-Protected/husbot-v1' + XROAD_HMS_LOANS_PATH: 'IS-DEV/GOV/10033/HMS-Protected/libra-v1' + XROAD_HOLAR_UNIVERSITY_PATH: 'IS-DEV/EDU/10055/Holar-Protected/brautskraning-v1' + XROAD_ICELAND_UNIVERSITY_OF_THE_ARTS_PATH: 'IS-DEV/EDU/10049/LHI-Protected/brautskraning-v1' + XROAD_INNA_PATH: 'IS-DEV/GOV/10066/MMS-Protected/inna-v1' + XROAD_MMS_FRIGG_PATH: 'IS-DEV/GOV/10066/MMS-Protected/frigg-form-service' + XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' + XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS-DEV/GOV/10001/SKRA-Protected/Einstaklingar-v1' + XROAD_OFFICIAL_JOURNAL_APPLICATION_PATH: 'IS-DEV/GOV/10014/DMR-Protected/official-journal-application' + XROAD_OFFICIAL_JOURNAL_PATH: 'IS-DEV/GOV/10014/DMR-Protected/official-journal' + XROAD_PASSPORT_LICENSE_PATH: 'IS-DEV/GOV/10001/SKRA-Cloud-Protected/Forskraning-V1' + XROAD_PAYMENT_ADDITION_CALLBACK_URL: '/' + XROAD_PAYMENT_BASE_CALLBACK_URL: 'XROAD:/IS-DEV/GOV/10000/island-is/application-callback-v2/application-payment/' + XROAD_PAYMENT_PROVIDER_ID: 'IS-DEV/GOV/10021/FJS-Public' + XROAD_PAYMENT_SCHEDULE_PATH: 'IS-DEV/GOV/10021/FJS-Public/paymentSchedule_v1' + XROAD_PROPERTIES_SERVICE_V2_PATH: 'IS-DEV/GOV/10033/HMS-Protected/Fasteignir-v1' + XROAD_SIGNATURE_COLLECTION_PATH: 'IS-DEV/GOV/10001/SKRA-Cloud-Protected/Medmaeli-v1' + XROAD_TJODSKRA_API_PATH: '/SKRA-Protected/Einstaklingar-v1' + XROAD_TJODSKRA_MEMBER_CODE: '10001' + XROAD_TLS_BASE_PATH: 'https://securityserver.dev01.devland.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.dev01.devland.is/r1/IS-DEV' + XROAD_TR_PATH: 'IS-DEV/GOV/10008/TR-Protected/external-v1' + XROAD_UNIVERSITY_OF_AKUREYRI_PATH: 'IS-DEV/EDU/10054/UNAK-Protected/brautskraning-v1' + XROAD_UNIVERSITY_OF_ICELAND_PATH: 'IS-DEV/EDU/10010/HI-Protected/brautskraning-v1' + XROAD_VEHICLES_MILEAGE_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Vehicle-Mileagereading-V1' + XROAD_VEHICLES_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Mitt-Svaedi-V1' + XROAD_VEHICLE_CODETABLES_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Vehicle-Codetables-V1' + XROAD_VEHICLE_INFOLOCKS_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Vehicle-Infolocks-V1' + XROAD_VEHICLE_OPERATORS_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Vehicle-Operators-V3' + XROAD_VEHICLE_OWNER_CHANGE_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Vehicle-Ownerchange-V2' + XROAD_VEHICLE_PLATE_ORDERING_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Vehicle-PlateOrdering-V1' + XROAD_VEHICLE_PLATE_RENEWAL_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Vehicle-PlateOwnership-V1' + XROAD_VEHICLE_PRINTING_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Vehicle-Printing-V1' + XROAD_VEHICLE_SERVICE_FJS_V1_PATH: 'IS-DEV/GOV/10021/FJS-Public/VehicleServiceFJS_v1' + XROAD_VMST_API_PATH: '/VMST-ParentalLeave-Protected/ParentalLeaveApplication-v1' + XROAD_VMST_MEMBER_CODE: '10003' + XROAD_WORK_ACCIDENT_PATH: 'IS-DEV/GOV/10013/Vinnueftirlitid-Protected/slysaskraning-token' + XROAD_WORK_MACHINE_LICENSE_PATH: 'IS-DEV/GOV/10013/Vinnueftirlitid-Protected/vinnuvelar-token' +files: + - 'islyklar.p12' +grantNamespaces: + - 'nginx-ingress-internal' + - 'islandis' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 60 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/application-system-api' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-internal-alb' + nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'application-payment-callback-xrd.internal.dev01.devland.is' + paths: + - '/application-payment' + - '/applications' + - host: 'application-callback-xrd.internal.dev01.devland.is' + paths: + - '/application-payment' + - '/applications' +initContainer: + containers: + - args: + - 'sequelize-cli' + - 'db:migrate' + command: + - 'npx' + name: 'migrations' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' env: - APPLICATION_ATTACHMENT_BUCKET: 'island-is-dev-storage-application-system' - AUTH_PUBLIC_API_URL: 'https://identity-server.dev01.devland.is/api' - CLIENT_LOCATION_ORIGIN: 'https://beta.dev01.devland.is/umsoknir' - COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' - COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS-DEV/GOV/10006/Skatturinn/ft-v1' - CONTENTFUL_HOST: 'preview.contentful.com' - DATA_PROTECTION_COMPLAINT_XROAD_PROVIDER_ID: 'IS-DEV/GOV/10026/gopro/kvortun-v1' DB_HOST: 'postgres-applications.internal' DB_NAME: 'application_system_api' DB_REPLICAS_HOST: 'postgres-applications-reader.internal' DB_USER: 'application_system_api' - EHIC_XROAD_PROVIDER_ID: 'IS-DEV/GOV/10007/SJUKRA-Protected/ehic' - EMAIL_REGION: 'eu-west-1' - ENDORSEMENTS_API_BASE_PATH: 'http://web-endorsement-system-api.endorsement-system.svc.cluster.local' - FILE_SERVICE_PRESIGN_BUCKET: 'island-is-dev-fs-presign-bucket' - FILE_STORAGE_UPLOAD_BUCKET: 'island-is-dev-upload-api' - FINANCIAL_STATEMENTS_INAO_BASE_PATH: 'https://dev-re.crm4.dynamics.com/api/data/v9.1' - FINANCIAL_STATEMENTS_INAO_ISSUER: 'https://login.microsoftonline.com/05a20268-aaea-4bb5-bb78-960b0462185e/v2.0' - FINANCIAL_STATEMENTS_INAO_SCOPE: 'https://dev-re.crm4.dynamics.com/.default' - FINANCIAL_STATEMENTS_INAO_TOKEN_ENDPOINT: 'https://login.microsoftonline.com/05a20268-aaea-4bb5-bb78-960b0462185e/oauth2/v2.0/token' - FISHING_LICENSE_XROAD_PROVIDER_ID: 'IS-DEV/GOV/10012/Fiskistofa-Protected/veidileyfi-v1' - FUNDING_GOVERNMENT_PROJECTS_APPLICATION_RECIPIENT_EMAIL_ADDRESS: 'gunnar.ingi@fjr.is' - FUNDING_GOVERNMENT_PROJECTS_APPLICATION_RECIPIENT_NAME: 'Gunnar Ingi' - GRAPHQL_API_URL: 'http://web-api.islandis.svc.cluster.local' - IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/application-system' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' - INSTITUTION_APPLICATION_RECIPIENT_EMAIL_ADDRESS: 'gunnar.ingi@fjr.is' - INSTITUTION_APPLICATION_RECIPIENT_NAME: 'Gunnar Ingi' - ISLYKILL_CERT: '/etc/config/islyklar.p12' - LOGIN_SERVICE_APPLICATION_RECIPIENT_EMAIL_ADDRESS: 'gunnar.ingi@fjr.is' - LOGIN_SERVICE_APPLICATION_RECIPIENT_NAME: 'Gunnar Ingi' - LOG_LEVEL: 'info' - NATIONAL_REGISTRY_B2C_CLIENT_ID: 'b464afdd-056b-406d-b650-6d41733cfeb7' - NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentitydev.b2clogin.com/skraidentitydev.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' - NATIONAL_REGISTRY_B2C_PATH: 'IS-DEV/GOV/10001/SKRA-Cloud-Protected/Midlun-v1' - NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentitydev.onmicrosoft.com/midlun/.default' - NODE_OPTIONS: '--max-old-space-size=921 -r dd-trace/init' - NOVA_ACCEPT_UNAUTHORIZED: 'true' - NOVA_USERNAME: 'IslandIs_User_Development' - RECYCLING_FUND_GQL_BASE_PATH: 'http://web-skilavottord-ws.skilavottord.svc.cluster.local/app/skilavottord/api/graphql' - REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' SERVERSIDE_FEATURES_ON: '' - SERVICE_DOCUMENTS_BASEPATH: 'http://web-services-documents.services-documents.svc.cluster.local' - SERVICE_USER_PROFILE_URL: 'http://web-service-portal-api.service-portal.svc.cluster.local' - UNIVERSITY_GATEWAY_API_URL: 'http://web-services-university-gateway.services-university-gateway.svc.cluster.local' - USER_NOTIFICATION_API_URL: 'http://web-user-notification.user-notification.svc.cluster.local' - WORKPOINT_ARBORG_SERVICE_PATH: 'IS-DEV/MUN/10036/Arborg-Protected/tengill-application-v1' - XROAD_AGRICULTURAL_UNIVERSITY_OF_ICELAND_PATH: 'IS-DEV/EDU/10056/LBHI-Protected/brautskraning-v1' - XROAD_ALTHINGI_OMBUDSMAN_SERVICE_PATH: 'IS-DEV/GOV/10047/UA-Protected/kvortun-v1/' - XROAD_BASE_PATH: 'http://securityserver.dev01.devland.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.dev01.devland.is/r1/IS-DEV' - XROAD_BIFROST_UNIVERSITY_PATH: 'IS-DEV/EDU/10057/Bifrost-Protected/brautskraning-v1' - XROAD_CHARGE_FJS_V2_PATH: 'IS-DEV/GOV/10021/FJS-Public/chargeFJS_v2' - XROAD_CHARGE_FJS_V2_TIMEOUT: '20000' - XROAD_CLIENT_ID: 'IS-DEV/GOV/10000/island-is-client' - XROAD_COURT_BANKRUPTCY_CERT_PATH: 'IS-DEV/GOV/10019/Domstolasyslan/JusticePortal-v1' - XROAD_CRIMINAL_RECORD_PATH: 'r1/IS-DEV/GOV/10005/Logreglan-Protected/Sakavottord-PDF-v2' - XROAD_DIGITAL_TACHOGRAPH_DRIVERS_CARD_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Okuritar-V1' - XROAD_DIRECTORATE_OF_IMMIGRATION_PATH: 'IS-DEV/GOV/10011/UTL-Protected/Utl-Umsokn-v1' - XROAD_DRIVING_LICENSE_PATH: 'r1/IS-DEV/GOV/10005/Logreglan-Protected/RafraentOkuskirteini-v1' - XROAD_DRIVING_LICENSE_V2_PATH: 'r1/IS-DEV/GOV/10005/Logreglan-Protected/RafraentOkuskirteini-v2' - XROAD_DRIVING_LICENSE_V4_PATH: 'r1/IS-DEV/GOV/10005/Logreglan-Protected/Okuskirteini-v4' - XROAD_DRIVING_LICENSE_V5_PATH: 'r1/IS-DEV/GOV/10005/Logreglan-Protected/Okuskirteini-v5' - XROAD_ENERGY_FUNDS_PATH: 'IS-DEV/GOV/10021/FJS-Public/ElectricCarSubSidyService_v1' - XROAD_FINANCES_PATH: 'IS-DEV/GOV/10021/FJS-Public/financeIsland' - XROAD_FINANCES_V2_PATH: 'IS-DEV/GOV/10021/FJS-Public/financeServicesFJS_v2' - XROAD_FINANCIAL_AID_BACKEND_PATH: 'IS-DEV/MUN/10023/samband-sveitarfelaga/financial-aid-backend' - XROAD_HEALTH_DIRECTORATE_ORGAN_DONATION_PATH: 'IS-DEV/GOV/10015/EmbaettiLandlaeknis-Protected/organ-donation-v1' - XROAD_HEALTH_DIRECTORATE_PATH: 'IS-DEV/GOV/10015/EmbaettiLandlaeknis-Protected/landlaeknir' - XROAD_HEALTH_DIRECTORATE_VACCINATION_PATH: 'IS-DEV/GOV/10015/EmbaettiLandlaeknis-Protected/vaccination-v1' - XROAD_HEALTH_INSURANCE_ID: 'IS-DEV/GOV/10007/SJUKRA-Protected' - XROAD_HEALTH_INSURANCE_MY_PAGES_PATH: 'IS-DEV/GOV/10007/SJUKRA-Protected/minarsidur' - XROAD_HEALTH_INSURANCE_WSDLURL: 'https://test-huld.sjukra.is/islandrg?wsdl' - XROAD_HMS_HOUSING_BENEFITS_PATH: 'IS-DEV/GOV/10033/HMS-Protected/husbot-v1' - XROAD_HMS_LOANS_PATH: 'IS-DEV/GOV/10033/HMS-Protected/libra-v1' - XROAD_HOLAR_UNIVERSITY_PATH: 'IS-DEV/EDU/10055/Holar-Protected/brautskraning-v1' - XROAD_ICELAND_UNIVERSITY_OF_THE_ARTS_PATH: 'IS-DEV/EDU/10049/LHI-Protected/brautskraning-v1' - XROAD_INNA_PATH: 'IS-DEV/GOV/10066/MMS-Protected/inna-v1' - XROAD_MMS_FRIGG_PATH: 'IS-DEV/GOV/10066/MMS-Protected/frigg-form-service' - XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' - XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS-DEV/GOV/10001/SKRA-Protected/Einstaklingar-v1' - XROAD_OFFICIAL_JOURNAL_APPLICATION_PATH: 'IS-DEV/GOV/10014/DMR-Protected/official-journal-application' - XROAD_OFFICIAL_JOURNAL_PATH: 'IS-DEV/GOV/10014/DMR-Protected/official-journal' - XROAD_PASSPORT_LICENSE_PATH: 'IS-DEV/GOV/10001/SKRA-Cloud-Protected/Forskraning-V1' - XROAD_PAYMENT_ADDITION_CALLBACK_URL: '/' - XROAD_PAYMENT_BASE_CALLBACK_URL: 'XROAD:/IS-DEV/GOV/10000/island-is/application-callback-v2/application-payment/' - XROAD_PAYMENT_PROVIDER_ID: 'IS-DEV/GOV/10021/FJS-Public' - XROAD_PAYMENT_SCHEDULE_PATH: 'IS-DEV/GOV/10021/FJS-Public/paymentSchedule_v1' - XROAD_PROPERTIES_SERVICE_V2_PATH: 'IS-DEV/GOV/10033/HMS-Protected/Fasteignir-v1' - XROAD_SIGNATURE_COLLECTION_PATH: 'IS-DEV/GOV/10001/SKRA-Cloud-Protected/Medmaeli-v1' - XROAD_TJODSKRA_API_PATH: '/SKRA-Protected/Einstaklingar-v1' - XROAD_TJODSKRA_MEMBER_CODE: '10001' - XROAD_TLS_BASE_PATH: 'https://securityserver.dev01.devland.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.dev01.devland.is/r1/IS-DEV' - XROAD_TR_PATH: 'IS-DEV/GOV/10008/TR-Protected/external-v1' - XROAD_UNIVERSITY_OF_AKUREYRI_PATH: 'IS-DEV/EDU/10054/UNAK-Protected/brautskraning-v1' - XROAD_UNIVERSITY_OF_ICELAND_PATH: 'IS-DEV/EDU/10010/HI-Protected/brautskraning-v1' - XROAD_VEHICLES_MILEAGE_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Vehicle-Mileagereading-V1' - XROAD_VEHICLES_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Mitt-Svaedi-V1' - XROAD_VEHICLE_CODETABLES_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Vehicle-Codetables-V1' - XROAD_VEHICLE_INFOLOCKS_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Vehicle-Infolocks-V1' - XROAD_VEHICLE_OPERATORS_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Vehicle-Operators-V3' - XROAD_VEHICLE_OWNER_CHANGE_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Vehicle-Ownerchange-V2' - XROAD_VEHICLE_PLATE_ORDERING_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Vehicle-PlateOrdering-V1' - XROAD_VEHICLE_PLATE_RENEWAL_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Vehicle-PlateOwnership-V1' - XROAD_VEHICLE_PRINTING_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Vehicle-Printing-V1' - XROAD_VEHICLE_SERVICE_FJS_V1_PATH: 'IS-DEV/GOV/10021/FJS-Public/VehicleServiceFJS_v1' - XROAD_VMST_API_PATH: '/VMST-ParentalLeave-Protected/ParentalLeaveApplication-v1' - XROAD_VMST_MEMBER_CODE: '10003' - XROAD_WORK_ACCIDENT_PATH: 'IS-DEV/GOV/10013/Vinnueftirlitid-Protected/slysaskraning-token' - XROAD_WORK_MACHINE_LICENSE_PATH: 'IS-DEV/GOV/10013/Vinnueftirlitid-Protected/vinnuvelar-token' - files: - - 'islyklar.p12' - grantNamespaces: - - 'nginx-ingress-internal' - - 'islandis' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 60 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/application-system-api' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-internal-alb' - nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'application-payment-callback-xrd.internal.dev01.devland.is' - paths: - - '/application-payment' - - '/applications' - - host: 'application-callback-xrd.internal.dev01.devland.is' - paths: - - '/application-payment' - - '/applications' - initContainer: - containers: - - args: - - 'sequelize-cli' - - 'db:migrate' - command: - - 'npx' - name: 'migrations' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'application_system_api' - DB_REPLICAS_HOST: 'postgres-applications-reader.internal' - DB_USER: 'application_system_api' - SERVERSIDE_FEATURES_ON: '' - secrets: - DB_PASS: '/k8s/application-system-api/DB_PASSWORD' - namespace: 'application-system' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 2 - max: 60 - min: 2 - resources: - limits: - cpu: '400m' - memory: '1024Mi' - requests: - cpu: '75m' - memory: '512Mi' secrets: - ALTHINGI_OMBUDSMAN_XROAD_PASSWORD: '/k8s/api/ALTHINGI_OMBUDSMAN_XROAD_PASSWORD' - ALTHINGI_OMBUDSMAN_XROAD_USERNAME: '/k8s/api/ALTHINGI_OMBUDSMAN_XROAD_USERNAME' - ARK_BASE_URL: '/k8s/application-system-api/ARK_BASE_URL' - AUTH_JWT_SECRET: '/k8s/application-system/api/AUTH_JWT_SECRET' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - CONTENTFUL_ACCESS_TOKEN: '/k8s/api/CONTENTFUL_ACCESS_TOKEN' - DATA_PROTECTION_COMPLAINT_API_PASSWORD: '/k8s/xroad/client/DATA_PROTECTION_COMPLAINT_API_PASSWORD' - DATA_PROTECTION_COMPLAINT_API_USERNAME: '/k8s/xroad/client/DATA_PROTECTION_COMPLAINT_API_USERNAME' DB_PASS: '/k8s/application-system-api/DB_PASSWORD' - DOCUMENT_PROVIDER_ONBOARDING_REVIEWER: '/k8s/application-system/api/DOCUMENT_PROVIDER_ONBOARDING_REVIEWER' - DOKOBIT_ACCESS_TOKEN: '/k8s/application-system/api/DOKOBIT_ACCESS_TOKEN' - DOKOBIT_URL: '/k8s/application-system-api/DOKOBIT_URL' - DOMSYSLA_PASSWORD: '/k8s/application-system-api/DOMSYSLA_PASSWORD' - DOMSYSLA_USERNAME: '/k8s/application-system-api/DOMSYSLA_USERNAME' - DRIVING_LICENSE_BOOK_PASSWORD: '/k8s/application-system-api/DRIVING_LICENSE_BOOK_PASSWORD' - DRIVING_LICENSE_BOOK_USERNAME: '/k8s/application-system-api/DRIVING_LICENSE_BOOK_USERNAME' - DRIVING_LICENSE_BOOK_XROAD_PATH: '/k8s/application-system-api/DRIVING_LICENSE_BOOK_XROAD_PATH' - EMAIL_FROM: '/k8s/application-system/api/EMAIL_FROM' - EMAIL_FROM_NAME: '/k8s/application-system/api/EMAIL_FROM_NAME' - EMAIL_REPLY_TO: '/k8s/application-system/api/EMAIL_REPLY_TO' - EMAIL_REPLY_TO_NAME: '/k8s/application-system/api/EMAIL_REPLY_TO_NAME' - FINANCIAL_STATEMENTS_INAO_CLIENT_ID: '/k8s/api/FINANCIAL_STATEMENTS_INAO_CLIENT_ID' - FINANCIAL_STATEMENTS_INAO_CLIENT_SECRET: '/k8s/api/FINANCIAL_STATEMENTS_INAO_CLIENT_SECRET' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/application-system/api/IDENTITY_SERVER_CLIENT_SECRET' - ISLYKILL_SERVICE_BASEPATH: '/k8s/api/ISLYKILL_SERVICE_BASEPATH' - ISLYKILL_SERVICE_PASSPHRASE: '/k8s/api/ISLYKILL_SERVICE_PASSPHRASE' - NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/api/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' - NOVA_PASSWORD: '/k8s/application-system/api/NOVA_PASSWORD' - NOVA_URL: '/k8s/application-system-api/NOVA_URL' - SYSLUMENN_HOST: '/k8s/application-system-api/SYSLUMENN_HOST' - SYSLUMENN_PASSWORD: '/k8s/application-system/api/SYSLUMENN_PASSWORD' - SYSLUMENN_USERNAME: '/k8s/application-system/api/SYSLUMENN_USERNAME' - VMST_ID: '/k8s/application-system/VMST_ID' - XROAD_DRIVING_LICENSE_SECRET: '/k8s/api/DRIVING_LICENSE_SECRET' - XROAD_HEALTH_INSURANCE_PASSWORD: '/k8s/health-insurance/XROAD-PASSWORD' - XROAD_HEALTH_INSURANCE_USERNAME: '/k8s/health-insurance/XROAD-USER' - XROAD_HEALTH_INSURANCE_V2_XROAD_PASSWORD: '/k8s/api/HEALTH_INSURANCE_V2_XROAD_PASSWORD' - XROAD_HEALTH_INSURANCE_V2_XROAD_USERNAME: '/k8s/api/HEALTH_INSURANCE_V2_XROAD_USERNAME' - XROAD_PAYMENT_PASSWORD: '/k8s/application-system-api/PAYMENT_PASSWORD' - XROAD_PAYMENT_USER: '/k8s/application-system-api/PAYMENT_USER' - XROAD_PROPERTIES_CLIENT_SECRET: '/k8s/xroad/client/NATIONAL-REGISTRY/IDENTITYSERVER_SECRET' - XROAD_VMST_API_KEY: '/k8s/vmst-client/VMST_API_KEY' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/application-system-api' - create: true - name: 'application-system-api' +namespace: 'application-system' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 2 + max: 60 + min: 2 +resources: + limits: + cpu: '400m' + memory: '1024Mi' + requests: + cpu: '75m' + memory: '512Mi' +secrets: + ALTHINGI_OMBUDSMAN_XROAD_PASSWORD: '/k8s/api/ALTHINGI_OMBUDSMAN_XROAD_PASSWORD' + ALTHINGI_OMBUDSMAN_XROAD_USERNAME: '/k8s/api/ALTHINGI_OMBUDSMAN_XROAD_USERNAME' + ARK_BASE_URL: '/k8s/application-system-api/ARK_BASE_URL' + AUTH_JWT_SECRET: '/k8s/application-system/api/AUTH_JWT_SECRET' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + CONTENTFUL_ACCESS_TOKEN: '/k8s/api/CONTENTFUL_ACCESS_TOKEN' + DATA_PROTECTION_COMPLAINT_API_PASSWORD: '/k8s/xroad/client/DATA_PROTECTION_COMPLAINT_API_PASSWORD' + DATA_PROTECTION_COMPLAINT_API_USERNAME: '/k8s/xroad/client/DATA_PROTECTION_COMPLAINT_API_USERNAME' + DB_PASS: '/k8s/application-system-api/DB_PASSWORD' + DOCUMENT_PROVIDER_ONBOARDING_REVIEWER: '/k8s/application-system/api/DOCUMENT_PROVIDER_ONBOARDING_REVIEWER' + DOKOBIT_ACCESS_TOKEN: '/k8s/application-system/api/DOKOBIT_ACCESS_TOKEN' + DOKOBIT_URL: '/k8s/application-system-api/DOKOBIT_URL' + DOMSYSLA_PASSWORD: '/k8s/application-system-api/DOMSYSLA_PASSWORD' + DOMSYSLA_USERNAME: '/k8s/application-system-api/DOMSYSLA_USERNAME' + DRIVING_LICENSE_BOOK_PASSWORD: '/k8s/application-system-api/DRIVING_LICENSE_BOOK_PASSWORD' + DRIVING_LICENSE_BOOK_USERNAME: '/k8s/application-system-api/DRIVING_LICENSE_BOOK_USERNAME' + DRIVING_LICENSE_BOOK_XROAD_PATH: '/k8s/application-system-api/DRIVING_LICENSE_BOOK_XROAD_PATH' + EMAIL_FROM: '/k8s/application-system/api/EMAIL_FROM' + EMAIL_FROM_NAME: '/k8s/application-system/api/EMAIL_FROM_NAME' + EMAIL_REPLY_TO: '/k8s/application-system/api/EMAIL_REPLY_TO' + EMAIL_REPLY_TO_NAME: '/k8s/application-system/api/EMAIL_REPLY_TO_NAME' + FINANCIAL_STATEMENTS_INAO_CLIENT_ID: '/k8s/api/FINANCIAL_STATEMENTS_INAO_CLIENT_ID' + FINANCIAL_STATEMENTS_INAO_CLIENT_SECRET: '/k8s/api/FINANCIAL_STATEMENTS_INAO_CLIENT_SECRET' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/application-system/api/IDENTITY_SERVER_CLIENT_SECRET' + ISLYKILL_SERVICE_BASEPATH: '/k8s/api/ISLYKILL_SERVICE_BASEPATH' + ISLYKILL_SERVICE_PASSPHRASE: '/k8s/api/ISLYKILL_SERVICE_PASSPHRASE' + NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/api/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' + NOVA_PASSWORD: '/k8s/application-system/api/NOVA_PASSWORD' + NOVA_URL: '/k8s/application-system-api/NOVA_URL' + SYSLUMENN_HOST: '/k8s/application-system-api/SYSLUMENN_HOST' + SYSLUMENN_PASSWORD: '/k8s/application-system/api/SYSLUMENN_PASSWORD' + SYSLUMENN_USERNAME: '/k8s/application-system/api/SYSLUMENN_USERNAME' + VMST_ID: '/k8s/application-system/VMST_ID' + XROAD_DRIVING_LICENSE_SECRET: '/k8s/api/DRIVING_LICENSE_SECRET' + XROAD_HEALTH_INSURANCE_PASSWORD: '/k8s/health-insurance/XROAD-PASSWORD' + XROAD_HEALTH_INSURANCE_USERNAME: '/k8s/health-insurance/XROAD-USER' + XROAD_HEALTH_INSURANCE_V2_XROAD_PASSWORD: '/k8s/api/HEALTH_INSURANCE_V2_XROAD_PASSWORD' + XROAD_HEALTH_INSURANCE_V2_XROAD_USERNAME: '/k8s/api/HEALTH_INSURANCE_V2_XROAD_USERNAME' + XROAD_PAYMENT_PASSWORD: '/k8s/application-system-api/PAYMENT_PASSWORD' + XROAD_PAYMENT_USER: '/k8s/application-system-api/PAYMENT_USER' + XROAD_PROPERTIES_CLIENT_SECRET: '/k8s/xroad/client/NATIONAL-REGISTRY/IDENTITYSERVER_SECRET' + XROAD_VMST_API_KEY: '/k8s/vmst-client/VMST_API_KEY' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/application-system-api' + create: true + name: 'application-system-api' diff --git a/charts/services/application-system-api/values.prod.yaml b/charts/services/application-system-api/values.prod.yaml index 62a265292785..d38991ed8318 100644 --- a/charts/services/application-system-api/values.prod.yaml +++ b/charts/services/application-system-api/values.prod.yaml @@ -5,254 +5,264 @@ # ##################################################################### -service: - name: 'application-system-api' - args: - - 'main.js' - command: - - 'node' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'application-system-api' +args: + - 'main.js' +command: + - 'node' +enabled: true +env: + APPLICATION_ATTACHMENT_BUCKET: 'island-is-prod-storage-application-system' + AUTH_PUBLIC_API_URL: 'https://innskra.island.is/api' + CLIENT_LOCATION_ORIGIN: 'https://island.is/umsoknir' + COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379"]' + COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS/GOV/5402696029/Skatturinn/ft-v1' + CONTENTFUL_HOST: 'cdn.contentful.com' + DATA_PROTECTION_COMPLAINT_XROAD_PROVIDER_ID: 'IS/GOV/5608002820/gopro/kvortun-v1' + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'application_system_api' + DB_REPLICAS_HOST: 'postgres-applications.internal' + DB_USER: 'application_system_api' + EHIC_XROAD_PROVIDER_ID: 'IS/GOV/4804080550/SJUKRA-Protected/ehic' + EMAIL_REGION: 'eu-west-1' + ENDORSEMENTS_API_BASE_PATH: 'http://web-endorsement-system-api.endorsement-system.svc.cluster.local' + FILE_SERVICE_PRESIGN_BUCKET: 'island-is-prod-fs-presign-bucket' + FILE_STORAGE_UPLOAD_BUCKET: 'island-is-prod-upload-api' + FINANCIAL_STATEMENTS_INAO_BASE_PATH: 'https://star-re.crm4.dynamics.com/api/data/v9.1' + FINANCIAL_STATEMENTS_INAO_ISSUER: 'https://login.microsoftonline.com/05a20268-aaea-4bb5-bb78-960b0462185e/v2.0' + FINANCIAL_STATEMENTS_INAO_SCOPE: 'https://star-re.crm4.dynamics.com/.default' + FINANCIAL_STATEMENTS_INAO_TOKEN_ENDPOINT: 'https://login.microsoftonline.com/05a20268-aaea-4bb5-bb78-960b0462185e/oauth2/v2.0/token' + FISHING_LICENSE_XROAD_PROVIDER_ID: 'IS/GOV/6608922069/Fiskistofa-Protected/veidileyfi-v1' + FUNDING_GOVERNMENT_PROJECTS_APPLICATION_RECIPIENT_EMAIL_ADDRESS: 'island@island.is' + FUNDING_GOVERNMENT_PROJECTS_APPLICATION_RECIPIENT_NAME: 'Stafrænt Ísland' + GRAPHQL_API_URL: 'http://web-api.islandis.svc.cluster.local' + IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/application-system' + IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' + INSTITUTION_APPLICATION_RECIPIENT_EMAIL_ADDRESS: 'island@island.is' + INSTITUTION_APPLICATION_RECIPIENT_NAME: 'Stafrænt Ísland' + ISLYKILL_CERT: '/etc/config/islyklar.p12' + LOGIN_SERVICE_APPLICATION_RECIPIENT_EMAIL_ADDRESS: 'island@island.is' + LOGIN_SERVICE_APPLICATION_RECIPIENT_NAME: 'Stafrænt Ísland' + LOG_LEVEL: 'info' + NATIONAL_REGISTRY_B2C_CLIENT_ID: '2304d7ca-7ed3-4188-8b6d-e1b7e0e3df7f' + NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentity.b2clogin.com/skraidentity.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' + NATIONAL_REGISTRY_B2C_PATH: 'IS/GOV/6503760649/SKRA-Cloud-Protected/Midlun-v1' + NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentity.onmicrosoft.com/midlun/.default' + NODE_OPTIONS: '--max-old-space-size=921 -r dd-trace/init' + NOVA_ACCEPT_UNAUTHORIZED: 'false' + NOVA_USERNAME: 'IslandIs_User_Production' + RECYCLING_FUND_GQL_BASE_PATH: 'http://web-skilavottord-ws.skilavottord.svc.cluster.local/app/skilavottord/api/graphql' + REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379"]' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' + SERVICE_DOCUMENTS_BASEPATH: 'http://web-services-documents.services-documents.svc.cluster.local' + SERVICE_USER_PROFILE_URL: 'http://web-service-portal-api.service-portal.svc.cluster.local' + UNIVERSITY_GATEWAY_API_URL: 'http://web-services-university-gateway.services-university-gateway.svc.cluster.local' + USER_NOTIFICATION_API_URL: 'http://web-user-notification.user-notification.svc.cluster.local' + WORKPOINT_ARBORG_SERVICE_PATH: 'IS/MUN/10036/Arborg-Protected/tengill-application-v1' + XROAD_AGRICULTURAL_UNIVERSITY_OF_ICELAND_PATH: 'IS/EDU/4112043590/LBHI-Protected/brautskraning-v1' + XROAD_ALTHINGI_OMBUDSMAN_SERVICE_PATH: 'IS/GOV/5605882089/UA-Protected/kvortun-v1' + XROAD_BASE_PATH: 'http://securityserver.island.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.island.is/r1/IS' + XROAD_BIFROST_UNIVERSITY_PATH: 'IS/EDU/5502690239/Bifrost-Protected/brautskraning-v1' + XROAD_CHARGE_FJS_V2_PATH: 'IS/GOV/5402697509/FJS-Public/chargeFJS_v2' + XROAD_CHARGE_FJS_V2_TIMEOUT: '20000' + XROAD_CLIENT_ID: 'IS/GOV/5501692829/island-is-client' + XROAD_COURT_BANKRUPTCY_CERT_PATH: 'IS/GOV/4707171140/Domstolasyslan/JusticePortal-v1' + XROAD_CRIMINAL_RECORD_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Sakaskra-v1' + XROAD_DIGITAL_TACHOGRAPH_DRIVERS_CARD_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Okuritar-V1' + XROAD_DIRECTORATE_OF_IMMIGRATION_PATH: 'IS/GOV/6702696399/UTL-Protected/Utl-Umsokn-v1' + XROAD_DRIVING_LICENSE_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Okuskirteini-v1' + XROAD_DRIVING_LICENSE_V2_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Okuskirteini-v1' + XROAD_DRIVING_LICENSE_V4_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Okuskirteini-v4' + XROAD_DRIVING_LICENSE_V5_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Okuskirteini-v5' + XROAD_ENERGY_FUNDS_PATH: 'IS/GOV/5402697509/FJS-Public/ElectricCarSubSidyService_v1' + XROAD_FINANCES_PATH: 'IS/GOV/5402697509/FJS-Public/financeIsland' + XROAD_FINANCES_V2_PATH: 'IS/GOV/5402697509/FJS-Public/financeServicesFJS_v2' + XROAD_FINANCIAL_AID_BACKEND_PATH: 'IS/MUN/5502694739/samband-sveitarfelaga/financial-aid-backend' + XROAD_HEALTH_DIRECTORATE_ORGAN_DONATION_PATH: 'IS/GOV/7101695009/EmbaettiLandlaeknis-Protected/organ-donation-v1' + XROAD_HEALTH_DIRECTORATE_PATH: 'IS/GOV/7101695009/EmbaettiLandlaeknis-Protected/landlaeknir' + XROAD_HEALTH_DIRECTORATE_VACCINATION_PATH: 'IS/GOV/7101695009/EmbaettiLandlaeknis-Protected/vaccination-v1' + XROAD_HEALTH_INSURANCE_ID: 'IS/GOV/4804080550/SJUKRA-Protected' + XROAD_HEALTH_INSURANCE_MY_PAGES_PATH: 'IS/GOV/4804080550/SJUKRA-Protected/minarsidur' + XROAD_HEALTH_INSURANCE_WSDLURL: 'https://huld.sjukra.is/islandrg?wsdl' + XROAD_HMS_HOUSING_BENEFITS_PATH: 'IS/GOV/5812191480/Husnaeds-og-mannvirkjastofnun-Protected/husbot-v1' + XROAD_HMS_LOANS_PATH: 'IS/GOV/5812191480/Husnaeds-og-mannvirkjastofnun-Protected/libra-v1' + XROAD_HOLAR_UNIVERSITY_PATH: 'IS/EDU/5001694359/Holar-Protected/brautskraning-v1' + XROAD_ICELAND_UNIVERSITY_OF_THE_ARTS_PATH: 'IS/EDU/4210984099/LHI-Protected/brautskraning-v1' + XROAD_INNA_PATH: 'IS/GOV/6601241280/MMS-Protected/inna-v1' + XROAD_MMS_FRIGG_PATH: 'IS/GOV/10066/MMS-Protected/frigg-form-service' + XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379"]' + XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS/GOV/6503760649/SKRA-Protected/Einstaklingar-v1' + XROAD_OFFICIAL_JOURNAL_APPLICATION_PATH: 'IS/GOV/10014/DMR-Protected/official-journal-application' + XROAD_OFFICIAL_JOURNAL_PATH: 'IS/GOV/10014/DMR-Protected/official-journal' + XROAD_PASSPORT_LICENSE_PATH: 'IS/GOV/6503760649/SKRA-Cloud-Protected/Forskraning-V1' + XROAD_PAYMENT_ADDITION_CALLBACK_URL: '/' + XROAD_PAYMENT_BASE_CALLBACK_URL: 'XROAD:/IS/GOV/5501692829/island-is/application-callback-v2/application-payment/' + XROAD_PAYMENT_PROVIDER_ID: 'IS/GOV/5402697509/FJS-Public' + XROAD_PAYMENT_SCHEDULE_PATH: 'IS/GOV/5402697509/FJS-Public/paymentSchedule_v1' + XROAD_PROPERTIES_SERVICE_V2_PATH: 'IS/GOV/5812191480/Husnaeds-og-mannvirkjastofnun-Protected/Fasteignir-v1' + XROAD_SIGNATURE_COLLECTION_PATH: 'IS/GOV/6503760649/SKRA-Cloud-Protected/Medmaeli-v1' + XROAD_TJODSKRA_API_PATH: '/SKRA-Protected/Einstaklingar-v1' + XROAD_TJODSKRA_MEMBER_CODE: '6503760649' + XROAD_TLS_BASE_PATH: 'https://securityserver.island.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.island.is/r1/IS' + XROAD_TR_PATH: 'IS/GOV/5012130120/TR-Protected/external-v1' + XROAD_UNIVERSITY_OF_AKUREYRI_PATH: 'IS/EDU/5206871229/UNAK-Protected/brautskraning-v1' + XROAD_UNIVERSITY_OF_ICELAND_PATH: 'IS/EDU/6001692039/HI-Protected/brautskraning-v1' + XROAD_VEHICLES_MILEAGE_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Vehicle-Mileagereading-V1' + XROAD_VEHICLES_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Mitt-Svaedi-V1' + XROAD_VEHICLE_CODETABLES_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Vehicle-Codetables-V1' + XROAD_VEHICLE_INFOLOCKS_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Vehicle-Infolocks-V1' + XROAD_VEHICLE_OPERATORS_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Vehicle-Operators-V3' + XROAD_VEHICLE_OWNER_CHANGE_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Vehicle-Ownerchange-V2' + XROAD_VEHICLE_PLATE_ORDERING_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Vehicle-PlateOrdering-V1' + XROAD_VEHICLE_PLATE_RENEWAL_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Vehicle-PlateOwnership-V1' + XROAD_VEHICLE_PRINTING_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Vehicle-Printing-V1' + XROAD_VEHICLE_SERVICE_FJS_V1_PATH: 'IS/GOV/5402697509/FJS-Public/VehicleServiceFJS_v1' + XROAD_VMST_API_PATH: '/VMST-ParentalLeave-Protected/ParentalLeaveApplication-v1' + XROAD_VMST_MEMBER_CODE: '7005942039' + XROAD_WORK_ACCIDENT_PATH: 'IS/GOV/4201810439/Vinnueftirlitid-Protected/slysaskraning-token' + XROAD_WORK_MACHINE_LICENSE_PATH: 'IS/GOV/4201810439/Vinnueftirlitid-Protected/vinnuvelar-token' +files: + - 'islyklar.p12' +grantNamespaces: + - 'nginx-ingress-internal' + - 'islandis' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 60 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/application-system-api' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-internal-alb' + nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'application-payment-callback-xrd.internal.island.is' + paths: + - '/application-payment' + - '/applications' + - host: 'application-callback-xrd.internal.island.is' + paths: + - '/application-payment' + - '/applications' +initContainer: + containers: + - args: + - 'sequelize-cli' + - 'db:migrate' + command: + - 'npx' + name: 'migrations' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' env: - APPLICATION_ATTACHMENT_BUCKET: 'island-is-prod-storage-application-system' - AUTH_PUBLIC_API_URL: 'https://innskra.island.is/api' - CLIENT_LOCATION_ORIGIN: 'https://island.is/umsoknir' - COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379"]' - COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS/GOV/5402696029/Skatturinn/ft-v1' - CONTENTFUL_HOST: 'cdn.contentful.com' - DATA_PROTECTION_COMPLAINT_XROAD_PROVIDER_ID: 'IS/GOV/5608002820/gopro/kvortun-v1' DB_HOST: 'postgres-applications.internal' DB_NAME: 'application_system_api' DB_REPLICAS_HOST: 'postgres-applications.internal' DB_USER: 'application_system_api' - EHIC_XROAD_PROVIDER_ID: 'IS/GOV/4804080550/SJUKRA-Protected/ehic' - EMAIL_REGION: 'eu-west-1' - ENDORSEMENTS_API_BASE_PATH: 'http://web-endorsement-system-api.endorsement-system.svc.cluster.local' - FILE_SERVICE_PRESIGN_BUCKET: 'island-is-prod-fs-presign-bucket' - FILE_STORAGE_UPLOAD_BUCKET: 'island-is-prod-upload-api' - FINANCIAL_STATEMENTS_INAO_BASE_PATH: 'https://star-re.crm4.dynamics.com/api/data/v9.1' - FINANCIAL_STATEMENTS_INAO_ISSUER: 'https://login.microsoftonline.com/05a20268-aaea-4bb5-bb78-960b0462185e/v2.0' - FINANCIAL_STATEMENTS_INAO_SCOPE: 'https://star-re.crm4.dynamics.com/.default' - FINANCIAL_STATEMENTS_INAO_TOKEN_ENDPOINT: 'https://login.microsoftonline.com/05a20268-aaea-4bb5-bb78-960b0462185e/oauth2/v2.0/token' - FISHING_LICENSE_XROAD_PROVIDER_ID: 'IS/GOV/6608922069/Fiskistofa-Protected/veidileyfi-v1' - FUNDING_GOVERNMENT_PROJECTS_APPLICATION_RECIPIENT_EMAIL_ADDRESS: 'island@island.is' - FUNDING_GOVERNMENT_PROJECTS_APPLICATION_RECIPIENT_NAME: 'Stafrænt Ísland' - GRAPHQL_API_URL: 'http://web-api.islandis.svc.cluster.local' - IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/application-system' - IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' - INSTITUTION_APPLICATION_RECIPIENT_EMAIL_ADDRESS: 'island@island.is' - INSTITUTION_APPLICATION_RECIPIENT_NAME: 'Stafrænt Ísland' - ISLYKILL_CERT: '/etc/config/islyklar.p12' - LOGIN_SERVICE_APPLICATION_RECIPIENT_EMAIL_ADDRESS: 'island@island.is' - LOGIN_SERVICE_APPLICATION_RECIPIENT_NAME: 'Stafrænt Ísland' - LOG_LEVEL: 'info' - NATIONAL_REGISTRY_B2C_CLIENT_ID: '2304d7ca-7ed3-4188-8b6d-e1b7e0e3df7f' - NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentity.b2clogin.com/skraidentity.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' - NATIONAL_REGISTRY_B2C_PATH: 'IS/GOV/6503760649/SKRA-Cloud-Protected/Midlun-v1' - NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentity.onmicrosoft.com/midlun/.default' - NODE_OPTIONS: '--max-old-space-size=921 -r dd-trace/init' - NOVA_ACCEPT_UNAUTHORIZED: 'false' - NOVA_USERNAME: 'IslandIs_User_Production' - RECYCLING_FUND_GQL_BASE_PATH: 'http://web-skilavottord-ws.skilavottord.svc.cluster.local/app/skilavottord/api/graphql' - REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379"]' SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - SERVICE_DOCUMENTS_BASEPATH: 'http://web-services-documents.services-documents.svc.cluster.local' - SERVICE_USER_PROFILE_URL: 'http://web-service-portal-api.service-portal.svc.cluster.local' - UNIVERSITY_GATEWAY_API_URL: 'http://web-services-university-gateway.services-university-gateway.svc.cluster.local' - USER_NOTIFICATION_API_URL: 'http://web-user-notification.user-notification.svc.cluster.local' - WORKPOINT_ARBORG_SERVICE_PATH: 'IS/MUN/10036/Arborg-Protected/tengill-application-v1' - XROAD_AGRICULTURAL_UNIVERSITY_OF_ICELAND_PATH: 'IS/EDU/4112043590/LBHI-Protected/brautskraning-v1' - XROAD_ALTHINGI_OMBUDSMAN_SERVICE_PATH: 'IS/GOV/5605882089/UA-Protected/kvortun-v1' - XROAD_BASE_PATH: 'http://securityserver.island.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.island.is/r1/IS' - XROAD_BIFROST_UNIVERSITY_PATH: 'IS/EDU/5502690239/Bifrost-Protected/brautskraning-v1' - XROAD_CHARGE_FJS_V2_PATH: 'IS/GOV/5402697509/FJS-Public/chargeFJS_v2' - XROAD_CHARGE_FJS_V2_TIMEOUT: '20000' - XROAD_CLIENT_ID: 'IS/GOV/5501692829/island-is-client' - XROAD_COURT_BANKRUPTCY_CERT_PATH: 'IS/GOV/4707171140/Domstolasyslan/JusticePortal-v1' - XROAD_CRIMINAL_RECORD_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Sakaskra-v1' - XROAD_DIGITAL_TACHOGRAPH_DRIVERS_CARD_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Okuritar-V1' - XROAD_DIRECTORATE_OF_IMMIGRATION_PATH: 'IS/GOV/6702696399/UTL-Protected/Utl-Umsokn-v1' - XROAD_DRIVING_LICENSE_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Okuskirteini-v1' - XROAD_DRIVING_LICENSE_V2_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Okuskirteini-v1' - XROAD_DRIVING_LICENSE_V4_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Okuskirteini-v4' - XROAD_DRIVING_LICENSE_V5_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Okuskirteini-v5' - XROAD_ENERGY_FUNDS_PATH: 'IS/GOV/5402697509/FJS-Public/ElectricCarSubSidyService_v1' - XROAD_FINANCES_PATH: 'IS/GOV/5402697509/FJS-Public/financeIsland' - XROAD_FINANCES_V2_PATH: 'IS/GOV/5402697509/FJS-Public/financeServicesFJS_v2' - XROAD_FINANCIAL_AID_BACKEND_PATH: 'IS/MUN/5502694739/samband-sveitarfelaga/financial-aid-backend' - XROAD_HEALTH_DIRECTORATE_ORGAN_DONATION_PATH: 'IS/GOV/7101695009/EmbaettiLandlaeknis-Protected/organ-donation-v1' - XROAD_HEALTH_DIRECTORATE_PATH: 'IS/GOV/7101695009/EmbaettiLandlaeknis-Protected/landlaeknir' - XROAD_HEALTH_DIRECTORATE_VACCINATION_PATH: 'IS/GOV/7101695009/EmbaettiLandlaeknis-Protected/vaccination-v1' - XROAD_HEALTH_INSURANCE_ID: 'IS/GOV/4804080550/SJUKRA-Protected' - XROAD_HEALTH_INSURANCE_MY_PAGES_PATH: 'IS/GOV/4804080550/SJUKRA-Protected/minarsidur' - XROAD_HEALTH_INSURANCE_WSDLURL: 'https://huld.sjukra.is/islandrg?wsdl' - XROAD_HMS_HOUSING_BENEFITS_PATH: 'IS/GOV/5812191480/Husnaeds-og-mannvirkjastofnun-Protected/husbot-v1' - XROAD_HMS_LOANS_PATH: 'IS/GOV/5812191480/Husnaeds-og-mannvirkjastofnun-Protected/libra-v1' - XROAD_HOLAR_UNIVERSITY_PATH: 'IS/EDU/5001694359/Holar-Protected/brautskraning-v1' - XROAD_ICELAND_UNIVERSITY_OF_THE_ARTS_PATH: 'IS/EDU/4210984099/LHI-Protected/brautskraning-v1' - XROAD_INNA_PATH: 'IS/GOV/6601241280/MMS-Protected/inna-v1' - XROAD_MMS_FRIGG_PATH: 'IS/GOV/10066/MMS-Protected/frigg-form-service' - XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379"]' - XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS/GOV/6503760649/SKRA-Protected/Einstaklingar-v1' - XROAD_OFFICIAL_JOURNAL_APPLICATION_PATH: 'IS/GOV/10014/DMR-Protected/official-journal-application' - XROAD_OFFICIAL_JOURNAL_PATH: 'IS/GOV/10014/DMR-Protected/official-journal' - XROAD_PASSPORT_LICENSE_PATH: 'IS/GOV/6503760649/SKRA-Cloud-Protected/Forskraning-V1' - XROAD_PAYMENT_ADDITION_CALLBACK_URL: '/' - XROAD_PAYMENT_BASE_CALLBACK_URL: 'XROAD:/IS/GOV/5501692829/island-is/application-callback-v2/application-payment/' - XROAD_PAYMENT_PROVIDER_ID: 'IS/GOV/5402697509/FJS-Public' - XROAD_PAYMENT_SCHEDULE_PATH: 'IS/GOV/5402697509/FJS-Public/paymentSchedule_v1' - XROAD_PROPERTIES_SERVICE_V2_PATH: 'IS/GOV/5812191480/Husnaeds-og-mannvirkjastofnun-Protected/Fasteignir-v1' - XROAD_SIGNATURE_COLLECTION_PATH: 'IS/GOV/6503760649/SKRA-Cloud-Protected/Medmaeli-v1' - XROAD_TJODSKRA_API_PATH: '/SKRA-Protected/Einstaklingar-v1' - XROAD_TJODSKRA_MEMBER_CODE: '6503760649' - XROAD_TLS_BASE_PATH: 'https://securityserver.island.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.island.is/r1/IS' - XROAD_TR_PATH: 'IS/GOV/5012130120/TR-Protected/external-v1' - XROAD_UNIVERSITY_OF_AKUREYRI_PATH: 'IS/EDU/5206871229/UNAK-Protected/brautskraning-v1' - XROAD_UNIVERSITY_OF_ICELAND_PATH: 'IS/EDU/6001692039/HI-Protected/brautskraning-v1' - XROAD_VEHICLES_MILEAGE_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Vehicle-Mileagereading-V1' - XROAD_VEHICLES_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Mitt-Svaedi-V1' - XROAD_VEHICLE_CODETABLES_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Vehicle-Codetables-V1' - XROAD_VEHICLE_INFOLOCKS_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Vehicle-Infolocks-V1' - XROAD_VEHICLE_OPERATORS_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Vehicle-Operators-V3' - XROAD_VEHICLE_OWNER_CHANGE_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Vehicle-Ownerchange-V2' - XROAD_VEHICLE_PLATE_ORDERING_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Vehicle-PlateOrdering-V1' - XROAD_VEHICLE_PLATE_RENEWAL_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Vehicle-PlateOwnership-V1' - XROAD_VEHICLE_PRINTING_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Vehicle-Printing-V1' - XROAD_VEHICLE_SERVICE_FJS_V1_PATH: 'IS/GOV/5402697509/FJS-Public/VehicleServiceFJS_v1' - XROAD_VMST_API_PATH: '/VMST-ParentalLeave-Protected/ParentalLeaveApplication-v1' - XROAD_VMST_MEMBER_CODE: '7005942039' - XROAD_WORK_ACCIDENT_PATH: 'IS/GOV/4201810439/Vinnueftirlitid-Protected/slysaskraning-token' - XROAD_WORK_MACHINE_LICENSE_PATH: 'IS/GOV/4201810439/Vinnueftirlitid-Protected/vinnuvelar-token' - files: - - 'islyklar.p12' - grantNamespaces: - - 'nginx-ingress-internal' - - 'islandis' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 60 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/application-system-api' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-internal-alb' - nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'application-payment-callback-xrd.internal.island.is' - paths: - - '/application-payment' - - '/applications' - - host: 'application-callback-xrd.internal.island.is' - paths: - - '/application-payment' - - '/applications' - initContainer: - containers: - - args: - - 'sequelize-cli' - - 'db:migrate' - command: - - 'npx' - name: 'migrations' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'application_system_api' - DB_REPLICAS_HOST: 'postgres-applications.internal' - DB_USER: 'application_system_api' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - secrets: - DB_PASS: '/k8s/application-system-api/DB_PASSWORD' - namespace: 'application-system' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 2 - max: 60 - min: 2 - resources: - limits: - cpu: '400m' - memory: '1024Mi' - requests: - cpu: '75m' - memory: '512Mi' secrets: - ALTHINGI_OMBUDSMAN_XROAD_PASSWORD: '/k8s/api/ALTHINGI_OMBUDSMAN_XROAD_PASSWORD' - ALTHINGI_OMBUDSMAN_XROAD_USERNAME: '/k8s/api/ALTHINGI_OMBUDSMAN_XROAD_USERNAME' - ARK_BASE_URL: '/k8s/application-system-api/ARK_BASE_URL' - AUTH_JWT_SECRET: '/k8s/application-system/api/AUTH_JWT_SECRET' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - CONTENTFUL_ACCESS_TOKEN: '/k8s/api/CONTENTFUL_ACCESS_TOKEN' - DATA_PROTECTION_COMPLAINT_API_PASSWORD: '/k8s/xroad/client/DATA_PROTECTION_COMPLAINT_API_PASSWORD' - DATA_PROTECTION_COMPLAINT_API_USERNAME: '/k8s/xroad/client/DATA_PROTECTION_COMPLAINT_API_USERNAME' DB_PASS: '/k8s/application-system-api/DB_PASSWORD' - DOCUMENT_PROVIDER_ONBOARDING_REVIEWER: '/k8s/application-system/api/DOCUMENT_PROVIDER_ONBOARDING_REVIEWER' - DOKOBIT_ACCESS_TOKEN: '/k8s/application-system/api/DOKOBIT_ACCESS_TOKEN' - DOKOBIT_URL: '/k8s/application-system-api/DOKOBIT_URL' - DOMSYSLA_PASSWORD: '/k8s/application-system-api/DOMSYSLA_PASSWORD' - DOMSYSLA_USERNAME: '/k8s/application-system-api/DOMSYSLA_USERNAME' - DRIVING_LICENSE_BOOK_PASSWORD: '/k8s/application-system-api/DRIVING_LICENSE_BOOK_PASSWORD' - DRIVING_LICENSE_BOOK_USERNAME: '/k8s/application-system-api/DRIVING_LICENSE_BOOK_USERNAME' - DRIVING_LICENSE_BOOK_XROAD_PATH: '/k8s/application-system-api/DRIVING_LICENSE_BOOK_XROAD_PATH' - EMAIL_FROM: '/k8s/application-system/api/EMAIL_FROM' - EMAIL_FROM_NAME: '/k8s/application-system/api/EMAIL_FROM_NAME' - EMAIL_REPLY_TO: '/k8s/application-system/api/EMAIL_REPLY_TO' - EMAIL_REPLY_TO_NAME: '/k8s/application-system/api/EMAIL_REPLY_TO_NAME' - FINANCIAL_STATEMENTS_INAO_CLIENT_ID: '/k8s/api/FINANCIAL_STATEMENTS_INAO_CLIENT_ID' - FINANCIAL_STATEMENTS_INAO_CLIENT_SECRET: '/k8s/api/FINANCIAL_STATEMENTS_INAO_CLIENT_SECRET' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/application-system/api/IDENTITY_SERVER_CLIENT_SECRET' - ISLYKILL_SERVICE_BASEPATH: '/k8s/api/ISLYKILL_SERVICE_BASEPATH' - ISLYKILL_SERVICE_PASSPHRASE: '/k8s/api/ISLYKILL_SERVICE_PASSPHRASE' - NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/api/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' - NOVA_PASSWORD: '/k8s/application-system/api/NOVA_PASSWORD' - NOVA_URL: '/k8s/application-system-api/NOVA_URL' - SYSLUMENN_HOST: '/k8s/application-system-api/SYSLUMENN_HOST' - SYSLUMENN_PASSWORD: '/k8s/application-system/api/SYSLUMENN_PASSWORD' - SYSLUMENN_USERNAME: '/k8s/application-system/api/SYSLUMENN_USERNAME' - VMST_ID: '/k8s/application-system/VMST_ID' - XROAD_DRIVING_LICENSE_SECRET: '/k8s/api/DRIVING_LICENSE_SECRET' - XROAD_HEALTH_INSURANCE_PASSWORD: '/k8s/health-insurance/XROAD-PASSWORD' - XROAD_HEALTH_INSURANCE_USERNAME: '/k8s/health-insurance/XROAD-USER' - XROAD_HEALTH_INSURANCE_V2_XROAD_PASSWORD: '/k8s/api/HEALTH_INSURANCE_V2_XROAD_PASSWORD' - XROAD_HEALTH_INSURANCE_V2_XROAD_USERNAME: '/k8s/api/HEALTH_INSURANCE_V2_XROAD_USERNAME' - XROAD_PAYMENT_PASSWORD: '/k8s/application-system-api/PAYMENT_PASSWORD' - XROAD_PAYMENT_USER: '/k8s/application-system-api/PAYMENT_USER' - XROAD_PROPERTIES_CLIENT_SECRET: '/k8s/xroad/client/NATIONAL-REGISTRY/IDENTITYSERVER_SECRET' - XROAD_VMST_API_KEY: '/k8s/vmst-client/VMST_API_KEY' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/application-system-api' - create: true - name: 'application-system-api' +namespace: 'application-system' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 2 + max: 60 + min: 2 +resources: + limits: + cpu: '400m' + memory: '1024Mi' + requests: + cpu: '75m' + memory: '512Mi' +secrets: + ALTHINGI_OMBUDSMAN_XROAD_PASSWORD: '/k8s/api/ALTHINGI_OMBUDSMAN_XROAD_PASSWORD' + ALTHINGI_OMBUDSMAN_XROAD_USERNAME: '/k8s/api/ALTHINGI_OMBUDSMAN_XROAD_USERNAME' + ARK_BASE_URL: '/k8s/application-system-api/ARK_BASE_URL' + AUTH_JWT_SECRET: '/k8s/application-system/api/AUTH_JWT_SECRET' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + CONTENTFUL_ACCESS_TOKEN: '/k8s/api/CONTENTFUL_ACCESS_TOKEN' + DATA_PROTECTION_COMPLAINT_API_PASSWORD: '/k8s/xroad/client/DATA_PROTECTION_COMPLAINT_API_PASSWORD' + DATA_PROTECTION_COMPLAINT_API_USERNAME: '/k8s/xroad/client/DATA_PROTECTION_COMPLAINT_API_USERNAME' + DB_PASS: '/k8s/application-system-api/DB_PASSWORD' + DOCUMENT_PROVIDER_ONBOARDING_REVIEWER: '/k8s/application-system/api/DOCUMENT_PROVIDER_ONBOARDING_REVIEWER' + DOKOBIT_ACCESS_TOKEN: '/k8s/application-system/api/DOKOBIT_ACCESS_TOKEN' + DOKOBIT_URL: '/k8s/application-system-api/DOKOBIT_URL' + DOMSYSLA_PASSWORD: '/k8s/application-system-api/DOMSYSLA_PASSWORD' + DOMSYSLA_USERNAME: '/k8s/application-system-api/DOMSYSLA_USERNAME' + DRIVING_LICENSE_BOOK_PASSWORD: '/k8s/application-system-api/DRIVING_LICENSE_BOOK_PASSWORD' + DRIVING_LICENSE_BOOK_USERNAME: '/k8s/application-system-api/DRIVING_LICENSE_BOOK_USERNAME' + DRIVING_LICENSE_BOOK_XROAD_PATH: '/k8s/application-system-api/DRIVING_LICENSE_BOOK_XROAD_PATH' + EMAIL_FROM: '/k8s/application-system/api/EMAIL_FROM' + EMAIL_FROM_NAME: '/k8s/application-system/api/EMAIL_FROM_NAME' + EMAIL_REPLY_TO: '/k8s/application-system/api/EMAIL_REPLY_TO' + EMAIL_REPLY_TO_NAME: '/k8s/application-system/api/EMAIL_REPLY_TO_NAME' + FINANCIAL_STATEMENTS_INAO_CLIENT_ID: '/k8s/api/FINANCIAL_STATEMENTS_INAO_CLIENT_ID' + FINANCIAL_STATEMENTS_INAO_CLIENT_SECRET: '/k8s/api/FINANCIAL_STATEMENTS_INAO_CLIENT_SECRET' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/application-system/api/IDENTITY_SERVER_CLIENT_SECRET' + ISLYKILL_SERVICE_BASEPATH: '/k8s/api/ISLYKILL_SERVICE_BASEPATH' + ISLYKILL_SERVICE_PASSPHRASE: '/k8s/api/ISLYKILL_SERVICE_PASSPHRASE' + NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/api/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' + NOVA_PASSWORD: '/k8s/application-system/api/NOVA_PASSWORD' + NOVA_URL: '/k8s/application-system-api/NOVA_URL' + SYSLUMENN_HOST: '/k8s/application-system-api/SYSLUMENN_HOST' + SYSLUMENN_PASSWORD: '/k8s/application-system/api/SYSLUMENN_PASSWORD' + SYSLUMENN_USERNAME: '/k8s/application-system/api/SYSLUMENN_USERNAME' + VMST_ID: '/k8s/application-system/VMST_ID' + XROAD_DRIVING_LICENSE_SECRET: '/k8s/api/DRIVING_LICENSE_SECRET' + XROAD_HEALTH_INSURANCE_PASSWORD: '/k8s/health-insurance/XROAD-PASSWORD' + XROAD_HEALTH_INSURANCE_USERNAME: '/k8s/health-insurance/XROAD-USER' + XROAD_HEALTH_INSURANCE_V2_XROAD_PASSWORD: '/k8s/api/HEALTH_INSURANCE_V2_XROAD_PASSWORD' + XROAD_HEALTH_INSURANCE_V2_XROAD_USERNAME: '/k8s/api/HEALTH_INSURANCE_V2_XROAD_USERNAME' + XROAD_PAYMENT_PASSWORD: '/k8s/application-system-api/PAYMENT_PASSWORD' + XROAD_PAYMENT_USER: '/k8s/application-system-api/PAYMENT_USER' + XROAD_PROPERTIES_CLIENT_SECRET: '/k8s/xroad/client/NATIONAL-REGISTRY/IDENTITYSERVER_SECRET' + XROAD_VMST_API_KEY: '/k8s/vmst-client/VMST_API_KEY' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/application-system-api' + create: true + name: 'application-system-api' diff --git a/charts/services/application-system-api/values.staging.yaml b/charts/services/application-system-api/values.staging.yaml index 47128a9278b4..c1b6c19b7099 100644 --- a/charts/services/application-system-api/values.staging.yaml +++ b/charts/services/application-system-api/values.staging.yaml @@ -5,254 +5,264 @@ # ##################################################################### -service: - name: 'application-system-api' - args: - - 'main.js' - command: - - 'node' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'application-system-api' +args: + - 'main.js' +command: + - 'node' +enabled: true +env: + APPLICATION_ATTACHMENT_BUCKET: 'island-is-staging-storage-application-system' + AUTH_PUBLIC_API_URL: 'https://identity-server.staging01.devland.is/api' + CLIENT_LOCATION_ORIGIN: 'https://beta.staging01.devland.is/umsoknir' + COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' + COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS-TEST/GOV/5402696029/Skatturinn/ft-v1' + CONTENTFUL_HOST: 'cdn.contentful.com' + DATA_PROTECTION_COMPLAINT_XROAD_PROVIDER_ID: 'IS-TEST/GOV/5608002820/gopro/kvortun-v1' + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'application_system_api' + DB_REPLICAS_HOST: 'postgres-applications.internal' + DB_USER: 'application_system_api' + EHIC_XROAD_PROVIDER_ID: 'IS-TEST/GOV/4804080550/SJUKRA-Protected/ehic' + EMAIL_REGION: 'eu-west-1' + ENDORSEMENTS_API_BASE_PATH: 'http://web-endorsement-system-api.endorsement-system.svc.cluster.local' + FILE_SERVICE_PRESIGN_BUCKET: 'island-is-staging-fs-presign-bucket' + FILE_STORAGE_UPLOAD_BUCKET: 'island-is-staging-upload-api' + FINANCIAL_STATEMENTS_INAO_BASE_PATH: 'https://dev-re.crm4.dynamics.com/api/data/v9.1' + FINANCIAL_STATEMENTS_INAO_ISSUER: 'https://login.microsoftonline.com/05a20268-aaea-4bb5-bb78-960b0462185e/v2.0' + FINANCIAL_STATEMENTS_INAO_SCOPE: 'https://dev-re.crm4.dynamics.com/.default' + FINANCIAL_STATEMENTS_INAO_TOKEN_ENDPOINT: 'https://login.microsoftonline.com/05a20268-aaea-4bb5-bb78-960b0462185e/oauth2/v2.0/token' + FISHING_LICENSE_XROAD_PROVIDER_ID: 'IS-TEST/GOV/6608922069/Fiskistofa-Protected/veidileyfi-v1' + FUNDING_GOVERNMENT_PROJECTS_APPLICATION_RECIPIENT_EMAIL_ADDRESS: 'gunnar.ingi@fjr.is' + FUNDING_GOVERNMENT_PROJECTS_APPLICATION_RECIPIENT_NAME: 'Gunnar Ingi' + GRAPHQL_API_URL: 'http://web-api.islandis.svc.cluster.local' + IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/application-system' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' + INSTITUTION_APPLICATION_RECIPIENT_EMAIL_ADDRESS: 'gunnar.ingi@fjr.is' + INSTITUTION_APPLICATION_RECIPIENT_NAME: 'Gunnar Ingi' + ISLYKILL_CERT: '/etc/config/islyklar.p12' + LOGIN_SERVICE_APPLICATION_RECIPIENT_EMAIL_ADDRESS: 'gunnar.ingi@fjr.is' + LOGIN_SERVICE_APPLICATION_RECIPIENT_NAME: 'Gunnar Ingi' + LOG_LEVEL: 'info' + NATIONAL_REGISTRY_B2C_CLIENT_ID: 'ca128c23-b43c-443d-bade-ec5a146a933f' + NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentitydev.b2clogin.com/skraidentitystaging.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' + NATIONAL_REGISTRY_B2C_PATH: 'IS-TEST/GOV/6503760649/SKRA-Cloud-Protected/Midlun-v1' + NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentitystaging.onmicrosoft.com/midlun/.default' + NODE_OPTIONS: '--max-old-space-size=921 -r dd-trace/init' + NOVA_ACCEPT_UNAUTHORIZED: 'false' + NOVA_USERNAME: 'IslandIs_User_Development' + RECYCLING_FUND_GQL_BASE_PATH: 'http://web-skilavottord-ws.skilavottord.svc.cluster.local/app/skilavottord/api/graphql' + REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' + SERVERSIDE_FEATURES_ON: '' + SERVICE_DOCUMENTS_BASEPATH: 'http://web-services-documents.services-documents.svc.cluster.local' + SERVICE_USER_PROFILE_URL: 'http://web-service-portal-api.service-portal.svc.cluster.local' + UNIVERSITY_GATEWAY_API_URL: 'http://web-services-university-gateway.services-university-gateway.svc.cluster.local' + USER_NOTIFICATION_API_URL: 'http://web-user-notification.user-notification.svc.cluster.local' + WORKPOINT_ARBORG_SERVICE_PATH: 'IS-TEST/MUN/10036/Arborg-Protected/tengill-application-v1' + XROAD_AGRICULTURAL_UNIVERSITY_OF_ICELAND_PATH: 'IS-TEST/EDU/10056/LBHI-Protected/brautskraning-v1' + XROAD_ALTHINGI_OMBUDSMAN_SERVICE_PATH: 'IS-TEST/GOV/10047/UA-Protected/kvortun-v1/' + XROAD_BASE_PATH: 'http://securityserver.staging01.devland.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.staging01.devland.is/r1/IS-TEST' + XROAD_BIFROST_UNIVERSITY_PATH: 'IS-TEST/EDU/10057/Bifrost-Protected/brautskraning-v1' + XROAD_CHARGE_FJS_V2_PATH: 'IS-TEST/GOV/10021/FJS-Public/chargeFJS_v2' + XROAD_CHARGE_FJS_V2_TIMEOUT: '20000' + XROAD_CLIENT_ID: 'IS-TEST/GOV/5501692829/island-is-client' + XROAD_COURT_BANKRUPTCY_CERT_PATH: 'IS-TEST/GOV/10019/Domstolasyslan/JusticePortal-v1' + XROAD_CRIMINAL_RECORD_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Sakaskra-v1' + XROAD_DIGITAL_TACHOGRAPH_DRIVERS_CARD_PATH: 'IS-TEST/GOV/10017/Samgongustofa-Protected/Okuritar-V1' + XROAD_DIRECTORATE_OF_IMMIGRATION_PATH: 'IS-TEST/GOV/10011/UTL-Protected/Utl-Umsokn-v1' + XROAD_DRIVING_LICENSE_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/RafraentOkuskirteini-v1' + XROAD_DRIVING_LICENSE_V2_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/RafraentOkuskirteini-v2' + XROAD_DRIVING_LICENSE_V4_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Okuskirteini-v4' + XROAD_DRIVING_LICENSE_V5_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Okuskirteini-v5' + XROAD_ENERGY_FUNDS_PATH: 'IS-TEST/GOV/10021/FJS-Public/ElectricCarSubSidyService_v1' + XROAD_FINANCES_PATH: 'IS-TEST/GOV/10021/FJS-Public/financeIsland' + XROAD_FINANCES_V2_PATH: 'IS-TEST/GOV/10021/FJS-Public/financeServicesFJS_v2' + XROAD_FINANCIAL_AID_BACKEND_PATH: 'IS-TEST/MUN/5502694739/samband-sveitarfelaga/financial-aid-backend' + XROAD_HEALTH_DIRECTORATE_ORGAN_DONATION_PATH: 'IS-TEST/GOV/10015/EmbaettiLandlaeknis-Protected/organ-donation-v1' + XROAD_HEALTH_DIRECTORATE_PATH: 'IS-TEST/GOV/10015/EmbaettiLandlaeknis-Protected/landlaeknir' + XROAD_HEALTH_DIRECTORATE_VACCINATION_PATH: 'IS-TEST/GOV/10015/EmbaettiLandlaeknis-Protected/vaccination-v1' + XROAD_HEALTH_INSURANCE_ID: 'IS-TEST/GOV/4804080550/SJUKRA-Protected' + XROAD_HEALTH_INSURANCE_MY_PAGES_PATH: 'IS-TEST/GOV/4804080550/SJUKRA-Protected/minarsidur' + XROAD_HEALTH_INSURANCE_WSDLURL: 'https://test-huld.sjukra.is/islandrg?wsdl' + XROAD_HMS_HOUSING_BENEFITS_PATH: 'IS-TEST/GOV/5812191480/HMS-Protected/husbot-v1' + XROAD_HMS_LOANS_PATH: 'IS-TEST/GOV/5812191480/HMS-Protected/libra-v1' + XROAD_HOLAR_UNIVERSITY_PATH: 'IS-TEST/EDU/10055/Holar-Protected/brautskraning-v1' + XROAD_ICELAND_UNIVERSITY_OF_THE_ARTS_PATH: 'IS-TEST/EDU/10049/LHI-Protected/brautskraning-v1' + XROAD_INNA_PATH: 'IS-TEST/GOV/6601241280/MMS-Protected/inna-v1' + XROAD_MMS_FRIGG_PATH: 'IS-TEST/GOV/10066/MMS-Protected/frigg-form-service' + XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' + XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS-TEST/GOV/6503760649/SKRA-Protected/Einstaklingar-v1' + XROAD_OFFICIAL_JOURNAL_APPLICATION_PATH: 'IS-TEST/GOV/10014/DMR-Protected/official-journal-application' + XROAD_OFFICIAL_JOURNAL_PATH: 'IS-TEST/GOV/10014/DMR-Protected/official-journal' + XROAD_PASSPORT_LICENSE_PATH: 'IS-TEST/GOV/6503760649/SKRA-Cloud-Protected/Forskraning-V1' + XROAD_PAYMENT_ADDITION_CALLBACK_URL: '/' + XROAD_PAYMENT_BASE_CALLBACK_URL: 'XROAD:' + XROAD_PAYMENT_PROVIDER_ID: 'IS-TEST/GOV/10021/FJS-DEV-Public' + XROAD_PAYMENT_SCHEDULE_PATH: 'IS-TEST/GOV/10021/FJS-Public/paymentSchedule_v1' + XROAD_PROPERTIES_SERVICE_V2_PATH: 'IS-TEST/GOV/5812191480/HMS-Protected/Fasteignir-v1' + XROAD_SIGNATURE_COLLECTION_PATH: 'IS-TEST/GOV/6503760649/SKRA-Cloud-Protected/Medmaeli-v1' + XROAD_TJODSKRA_API_PATH: '/SKRA-Protected/Einstaklingar-v1' + XROAD_TJODSKRA_MEMBER_CODE: '6503760649' + XROAD_TLS_BASE_PATH: 'https://securityserver.staging01.devland.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.staging01.devland.is/r1/IS-TEST' + XROAD_TR_PATH: 'IS-TEST/GOV/5012130120/TR-Protected/external-v1' + XROAD_UNIVERSITY_OF_AKUREYRI_PATH: 'IS-TEST/EDU/10054/UNAK-Protected/brautskraning-v1' + XROAD_UNIVERSITY_OF_ICELAND_PATH: 'IS-TEST/EDU/10010/HI-Protected/brautskraning-v1' + XROAD_VEHICLES_MILEAGE_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Vehicle-Mileagereading-V1' + XROAD_VEHICLES_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Mitt-Svaedi-V1' + XROAD_VEHICLE_CODETABLES_PATH: 'IS-TEST/GOV/10017/Samgongustofa-Protected/Vehicle-Codetables-V1' + XROAD_VEHICLE_INFOLOCKS_PATH: 'IS-TEST/GOV/10017/Samgongustofa-Protected/Vehicle-Infolocks-V1' + XROAD_VEHICLE_OPERATORS_PATH: 'IS-TEST/GOV/10017/Samgongustofa-Protected/Vehicle-Operators-V3' + XROAD_VEHICLE_OWNER_CHANGE_PATH: 'IS-TEST/GOV/10017/Samgongustofa-Protected/Vehicle-Ownerchange-V2' + XROAD_VEHICLE_PLATE_ORDERING_PATH: 'IS-TEST/GOV/10017/Samgongustofa-Protected/Vehicle-PlateOrdering-V1' + XROAD_VEHICLE_PLATE_RENEWAL_PATH: 'IS-TEST/GOV/10017/Samgongustofa-Protected/Vehicle-PlateOwnership-V1' + XROAD_VEHICLE_PRINTING_PATH: 'IS-TEST/GOV/10017/Samgongustofa-Protected/Vehicle-Printing-V1' + XROAD_VEHICLE_SERVICE_FJS_V1_PATH: 'IS-TEST/GOV/10021/FJS-Public/VehicleServiceFJS_v1' + XROAD_VMST_API_PATH: '/VMST-ParentalLeave-Protected/ParentalLeaveApplication-v1' + XROAD_VMST_MEMBER_CODE: '7005942039' + XROAD_WORK_ACCIDENT_PATH: 'IS-TEST/GOV/4201810439/Vinnueftirlitid-Protected/slysaskraning-token' + XROAD_WORK_MACHINE_LICENSE_PATH: 'IS-TEST/GOV/4201810439/Vinnueftirlitid-Protected/vinnuvelar-token' +files: + - 'islyklar.p12' +grantNamespaces: + - 'nginx-ingress-internal' + - 'islandis' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 60 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/application-system-api' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-internal-alb' + nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'application-payment-callback-xrd.internal.staging01.devland.is' + paths: + - '/application-payment' + - '/applications' + - host: 'application-callback-xrd.internal.staging01.devland.is' + paths: + - '/application-payment' + - '/applications' +initContainer: + containers: + - args: + - 'sequelize-cli' + - 'db:migrate' + command: + - 'npx' + name: 'migrations' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' env: - APPLICATION_ATTACHMENT_BUCKET: 'island-is-staging-storage-application-system' - AUTH_PUBLIC_API_URL: 'https://identity-server.staging01.devland.is/api' - CLIENT_LOCATION_ORIGIN: 'https://beta.staging01.devland.is/umsoknir' - COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' - COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS-TEST/GOV/5402696029/Skatturinn/ft-v1' - CONTENTFUL_HOST: 'cdn.contentful.com' - DATA_PROTECTION_COMPLAINT_XROAD_PROVIDER_ID: 'IS-TEST/GOV/5608002820/gopro/kvortun-v1' DB_HOST: 'postgres-applications.internal' DB_NAME: 'application_system_api' DB_REPLICAS_HOST: 'postgres-applications.internal' DB_USER: 'application_system_api' - EHIC_XROAD_PROVIDER_ID: 'IS-TEST/GOV/4804080550/SJUKRA-Protected/ehic' - EMAIL_REGION: 'eu-west-1' - ENDORSEMENTS_API_BASE_PATH: 'http://web-endorsement-system-api.endorsement-system.svc.cluster.local' - FILE_SERVICE_PRESIGN_BUCKET: 'island-is-staging-fs-presign-bucket' - FILE_STORAGE_UPLOAD_BUCKET: 'island-is-staging-upload-api' - FINANCIAL_STATEMENTS_INAO_BASE_PATH: 'https://dev-re.crm4.dynamics.com/api/data/v9.1' - FINANCIAL_STATEMENTS_INAO_ISSUER: 'https://login.microsoftonline.com/05a20268-aaea-4bb5-bb78-960b0462185e/v2.0' - FINANCIAL_STATEMENTS_INAO_SCOPE: 'https://dev-re.crm4.dynamics.com/.default' - FINANCIAL_STATEMENTS_INAO_TOKEN_ENDPOINT: 'https://login.microsoftonline.com/05a20268-aaea-4bb5-bb78-960b0462185e/oauth2/v2.0/token' - FISHING_LICENSE_XROAD_PROVIDER_ID: 'IS-TEST/GOV/6608922069/Fiskistofa-Protected/veidileyfi-v1' - FUNDING_GOVERNMENT_PROJECTS_APPLICATION_RECIPIENT_EMAIL_ADDRESS: 'gunnar.ingi@fjr.is' - FUNDING_GOVERNMENT_PROJECTS_APPLICATION_RECIPIENT_NAME: 'Gunnar Ingi' - GRAPHQL_API_URL: 'http://web-api.islandis.svc.cluster.local' - IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/application-system' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' - INSTITUTION_APPLICATION_RECIPIENT_EMAIL_ADDRESS: 'gunnar.ingi@fjr.is' - INSTITUTION_APPLICATION_RECIPIENT_NAME: 'Gunnar Ingi' - ISLYKILL_CERT: '/etc/config/islyklar.p12' - LOGIN_SERVICE_APPLICATION_RECIPIENT_EMAIL_ADDRESS: 'gunnar.ingi@fjr.is' - LOGIN_SERVICE_APPLICATION_RECIPIENT_NAME: 'Gunnar Ingi' - LOG_LEVEL: 'info' - NATIONAL_REGISTRY_B2C_CLIENT_ID: 'ca128c23-b43c-443d-bade-ec5a146a933f' - NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentitydev.b2clogin.com/skraidentitystaging.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' - NATIONAL_REGISTRY_B2C_PATH: 'IS-TEST/GOV/6503760649/SKRA-Cloud-Protected/Midlun-v1' - NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentitystaging.onmicrosoft.com/midlun/.default' - NODE_OPTIONS: '--max-old-space-size=921 -r dd-trace/init' - NOVA_ACCEPT_UNAUTHORIZED: 'false' - NOVA_USERNAME: 'IslandIs_User_Development' - RECYCLING_FUND_GQL_BASE_PATH: 'http://web-skilavottord-ws.skilavottord.svc.cluster.local/app/skilavottord/api/graphql' - REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' SERVERSIDE_FEATURES_ON: '' - SERVICE_DOCUMENTS_BASEPATH: 'http://web-services-documents.services-documents.svc.cluster.local' - SERVICE_USER_PROFILE_URL: 'http://web-service-portal-api.service-portal.svc.cluster.local' - UNIVERSITY_GATEWAY_API_URL: 'http://web-services-university-gateway.services-university-gateway.svc.cluster.local' - USER_NOTIFICATION_API_URL: 'http://web-user-notification.user-notification.svc.cluster.local' - WORKPOINT_ARBORG_SERVICE_PATH: 'IS-TEST/MUN/10036/Arborg-Protected/tengill-application-v1' - XROAD_AGRICULTURAL_UNIVERSITY_OF_ICELAND_PATH: 'IS-TEST/EDU/10056/LBHI-Protected/brautskraning-v1' - XROAD_ALTHINGI_OMBUDSMAN_SERVICE_PATH: 'IS-TEST/GOV/10047/UA-Protected/kvortun-v1/' - XROAD_BASE_PATH: 'http://securityserver.staging01.devland.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.staging01.devland.is/r1/IS-TEST' - XROAD_BIFROST_UNIVERSITY_PATH: 'IS-TEST/EDU/10057/Bifrost-Protected/brautskraning-v1' - XROAD_CHARGE_FJS_V2_PATH: 'IS-TEST/GOV/10021/FJS-Public/chargeFJS_v2' - XROAD_CHARGE_FJS_V2_TIMEOUT: '20000' - XROAD_CLIENT_ID: 'IS-TEST/GOV/5501692829/island-is-client' - XROAD_COURT_BANKRUPTCY_CERT_PATH: 'IS-TEST/GOV/10019/Domstolasyslan/JusticePortal-v1' - XROAD_CRIMINAL_RECORD_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Sakaskra-v1' - XROAD_DIGITAL_TACHOGRAPH_DRIVERS_CARD_PATH: 'IS-TEST/GOV/10017/Samgongustofa-Protected/Okuritar-V1' - XROAD_DIRECTORATE_OF_IMMIGRATION_PATH: 'IS-TEST/GOV/10011/UTL-Protected/Utl-Umsokn-v1' - XROAD_DRIVING_LICENSE_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/RafraentOkuskirteini-v1' - XROAD_DRIVING_LICENSE_V2_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/RafraentOkuskirteini-v2' - XROAD_DRIVING_LICENSE_V4_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Okuskirteini-v4' - XROAD_DRIVING_LICENSE_V5_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Okuskirteini-v5' - XROAD_ENERGY_FUNDS_PATH: 'IS-TEST/GOV/10021/FJS-Public/ElectricCarSubSidyService_v1' - XROAD_FINANCES_PATH: 'IS-TEST/GOV/10021/FJS-Public/financeIsland' - XROAD_FINANCES_V2_PATH: 'IS-TEST/GOV/10021/FJS-Public/financeServicesFJS_v2' - XROAD_FINANCIAL_AID_BACKEND_PATH: 'IS-TEST/MUN/5502694739/samband-sveitarfelaga/financial-aid-backend' - XROAD_HEALTH_DIRECTORATE_ORGAN_DONATION_PATH: 'IS-TEST/GOV/10015/EmbaettiLandlaeknis-Protected/organ-donation-v1' - XROAD_HEALTH_DIRECTORATE_PATH: 'IS-TEST/GOV/10015/EmbaettiLandlaeknis-Protected/landlaeknir' - XROAD_HEALTH_DIRECTORATE_VACCINATION_PATH: 'IS-TEST/GOV/10015/EmbaettiLandlaeknis-Protected/vaccination-v1' - XROAD_HEALTH_INSURANCE_ID: 'IS-TEST/GOV/4804080550/SJUKRA-Protected' - XROAD_HEALTH_INSURANCE_MY_PAGES_PATH: 'IS-TEST/GOV/4804080550/SJUKRA-Protected/minarsidur' - XROAD_HEALTH_INSURANCE_WSDLURL: 'https://test-huld.sjukra.is/islandrg?wsdl' - XROAD_HMS_HOUSING_BENEFITS_PATH: 'IS-TEST/GOV/5812191480/HMS-Protected/husbot-v1' - XROAD_HMS_LOANS_PATH: 'IS-TEST/GOV/5812191480/HMS-Protected/libra-v1' - XROAD_HOLAR_UNIVERSITY_PATH: 'IS-TEST/EDU/10055/Holar-Protected/brautskraning-v1' - XROAD_ICELAND_UNIVERSITY_OF_THE_ARTS_PATH: 'IS-TEST/EDU/10049/LHI-Protected/brautskraning-v1' - XROAD_INNA_PATH: 'IS-TEST/GOV/6601241280/MMS-Protected/inna-v1' - XROAD_MMS_FRIGG_PATH: 'IS-TEST/GOV/10066/MMS-Protected/frigg-form-service' - XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' - XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS-TEST/GOV/6503760649/SKRA-Protected/Einstaklingar-v1' - XROAD_OFFICIAL_JOURNAL_APPLICATION_PATH: 'IS-TEST/GOV/10014/DMR-Protected/official-journal-application' - XROAD_OFFICIAL_JOURNAL_PATH: 'IS-TEST/GOV/10014/DMR-Protected/official-journal' - XROAD_PASSPORT_LICENSE_PATH: 'IS-TEST/GOV/6503760649/SKRA-Cloud-Protected/Forskraning-V1' - XROAD_PAYMENT_ADDITION_CALLBACK_URL: '/' - XROAD_PAYMENT_BASE_CALLBACK_URL: 'XROAD:' - XROAD_PAYMENT_PROVIDER_ID: 'IS-TEST/GOV/10021/FJS-DEV-Public' - XROAD_PAYMENT_SCHEDULE_PATH: 'IS-TEST/GOV/10021/FJS-Public/paymentSchedule_v1' - XROAD_PROPERTIES_SERVICE_V2_PATH: 'IS-TEST/GOV/5812191480/HMS-Protected/Fasteignir-v1' - XROAD_SIGNATURE_COLLECTION_PATH: 'IS-TEST/GOV/6503760649/SKRA-Cloud-Protected/Medmaeli-v1' - XROAD_TJODSKRA_API_PATH: '/SKRA-Protected/Einstaklingar-v1' - XROAD_TJODSKRA_MEMBER_CODE: '6503760649' - XROAD_TLS_BASE_PATH: 'https://securityserver.staging01.devland.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.staging01.devland.is/r1/IS-TEST' - XROAD_TR_PATH: 'IS-TEST/GOV/5012130120/TR-Protected/external-v1' - XROAD_UNIVERSITY_OF_AKUREYRI_PATH: 'IS-TEST/EDU/10054/UNAK-Protected/brautskraning-v1' - XROAD_UNIVERSITY_OF_ICELAND_PATH: 'IS-TEST/EDU/10010/HI-Protected/brautskraning-v1' - XROAD_VEHICLES_MILEAGE_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Vehicle-Mileagereading-V1' - XROAD_VEHICLES_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Mitt-Svaedi-V1' - XROAD_VEHICLE_CODETABLES_PATH: 'IS-TEST/GOV/10017/Samgongustofa-Protected/Vehicle-Codetables-V1' - XROAD_VEHICLE_INFOLOCKS_PATH: 'IS-TEST/GOV/10017/Samgongustofa-Protected/Vehicle-Infolocks-V1' - XROAD_VEHICLE_OPERATORS_PATH: 'IS-TEST/GOV/10017/Samgongustofa-Protected/Vehicle-Operators-V3' - XROAD_VEHICLE_OWNER_CHANGE_PATH: 'IS-TEST/GOV/10017/Samgongustofa-Protected/Vehicle-Ownerchange-V2' - XROAD_VEHICLE_PLATE_ORDERING_PATH: 'IS-TEST/GOV/10017/Samgongustofa-Protected/Vehicle-PlateOrdering-V1' - XROAD_VEHICLE_PLATE_RENEWAL_PATH: 'IS-TEST/GOV/10017/Samgongustofa-Protected/Vehicle-PlateOwnership-V1' - XROAD_VEHICLE_PRINTING_PATH: 'IS-TEST/GOV/10017/Samgongustofa-Protected/Vehicle-Printing-V1' - XROAD_VEHICLE_SERVICE_FJS_V1_PATH: 'IS-TEST/GOV/10021/FJS-Public/VehicleServiceFJS_v1' - XROAD_VMST_API_PATH: '/VMST-ParentalLeave-Protected/ParentalLeaveApplication-v1' - XROAD_VMST_MEMBER_CODE: '7005942039' - XROAD_WORK_ACCIDENT_PATH: 'IS-TEST/GOV/4201810439/Vinnueftirlitid-Protected/slysaskraning-token' - XROAD_WORK_MACHINE_LICENSE_PATH: 'IS-TEST/GOV/4201810439/Vinnueftirlitid-Protected/vinnuvelar-token' - files: - - 'islyklar.p12' - grantNamespaces: - - 'nginx-ingress-internal' - - 'islandis' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 60 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/application-system-api' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-internal-alb' - nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'application-payment-callback-xrd.internal.staging01.devland.is' - paths: - - '/application-payment' - - '/applications' - - host: 'application-callback-xrd.internal.staging01.devland.is' - paths: - - '/application-payment' - - '/applications' - initContainer: - containers: - - args: - - 'sequelize-cli' - - 'db:migrate' - command: - - 'npx' - name: 'migrations' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'application_system_api' - DB_REPLICAS_HOST: 'postgres-applications.internal' - DB_USER: 'application_system_api' - SERVERSIDE_FEATURES_ON: '' - secrets: - DB_PASS: '/k8s/application-system-api/DB_PASSWORD' - namespace: 'application-system' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 2 - max: 60 - min: 2 - resources: - limits: - cpu: '400m' - memory: '1024Mi' - requests: - cpu: '75m' - memory: '512Mi' secrets: - ALTHINGI_OMBUDSMAN_XROAD_PASSWORD: '/k8s/api/ALTHINGI_OMBUDSMAN_XROAD_PASSWORD' - ALTHINGI_OMBUDSMAN_XROAD_USERNAME: '/k8s/api/ALTHINGI_OMBUDSMAN_XROAD_USERNAME' - ARK_BASE_URL: '/k8s/application-system-api/ARK_BASE_URL' - AUTH_JWT_SECRET: '/k8s/application-system/api/AUTH_JWT_SECRET' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - CONTENTFUL_ACCESS_TOKEN: '/k8s/api/CONTENTFUL_ACCESS_TOKEN' - DATA_PROTECTION_COMPLAINT_API_PASSWORD: '/k8s/xroad/client/DATA_PROTECTION_COMPLAINT_API_PASSWORD' - DATA_PROTECTION_COMPLAINT_API_USERNAME: '/k8s/xroad/client/DATA_PROTECTION_COMPLAINT_API_USERNAME' DB_PASS: '/k8s/application-system-api/DB_PASSWORD' - DOCUMENT_PROVIDER_ONBOARDING_REVIEWER: '/k8s/application-system/api/DOCUMENT_PROVIDER_ONBOARDING_REVIEWER' - DOKOBIT_ACCESS_TOKEN: '/k8s/application-system/api/DOKOBIT_ACCESS_TOKEN' - DOKOBIT_URL: '/k8s/application-system-api/DOKOBIT_URL' - DOMSYSLA_PASSWORD: '/k8s/application-system-api/DOMSYSLA_PASSWORD' - DOMSYSLA_USERNAME: '/k8s/application-system-api/DOMSYSLA_USERNAME' - DRIVING_LICENSE_BOOK_PASSWORD: '/k8s/application-system-api/DRIVING_LICENSE_BOOK_PASSWORD' - DRIVING_LICENSE_BOOK_USERNAME: '/k8s/application-system-api/DRIVING_LICENSE_BOOK_USERNAME' - DRIVING_LICENSE_BOOK_XROAD_PATH: '/k8s/application-system-api/DRIVING_LICENSE_BOOK_XROAD_PATH' - EMAIL_FROM: '/k8s/application-system/api/EMAIL_FROM' - EMAIL_FROM_NAME: '/k8s/application-system/api/EMAIL_FROM_NAME' - EMAIL_REPLY_TO: '/k8s/application-system/api/EMAIL_REPLY_TO' - EMAIL_REPLY_TO_NAME: '/k8s/application-system/api/EMAIL_REPLY_TO_NAME' - FINANCIAL_STATEMENTS_INAO_CLIENT_ID: '/k8s/api/FINANCIAL_STATEMENTS_INAO_CLIENT_ID' - FINANCIAL_STATEMENTS_INAO_CLIENT_SECRET: '/k8s/api/FINANCIAL_STATEMENTS_INAO_CLIENT_SECRET' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/application-system/api/IDENTITY_SERVER_CLIENT_SECRET' - ISLYKILL_SERVICE_BASEPATH: '/k8s/api/ISLYKILL_SERVICE_BASEPATH' - ISLYKILL_SERVICE_PASSPHRASE: '/k8s/api/ISLYKILL_SERVICE_PASSPHRASE' - NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/api/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' - NOVA_PASSWORD: '/k8s/application-system/api/NOVA_PASSWORD' - NOVA_URL: '/k8s/application-system-api/NOVA_URL' - SYSLUMENN_HOST: '/k8s/application-system-api/SYSLUMENN_HOST' - SYSLUMENN_PASSWORD: '/k8s/application-system/api/SYSLUMENN_PASSWORD' - SYSLUMENN_USERNAME: '/k8s/application-system/api/SYSLUMENN_USERNAME' - VMST_ID: '/k8s/application-system/VMST_ID' - XROAD_DRIVING_LICENSE_SECRET: '/k8s/api/DRIVING_LICENSE_SECRET' - XROAD_HEALTH_INSURANCE_PASSWORD: '/k8s/health-insurance/XROAD-PASSWORD' - XROAD_HEALTH_INSURANCE_USERNAME: '/k8s/health-insurance/XROAD-USER' - XROAD_HEALTH_INSURANCE_V2_XROAD_PASSWORD: '/k8s/api/HEALTH_INSURANCE_V2_XROAD_PASSWORD' - XROAD_HEALTH_INSURANCE_V2_XROAD_USERNAME: '/k8s/api/HEALTH_INSURANCE_V2_XROAD_USERNAME' - XROAD_PAYMENT_PASSWORD: '/k8s/application-system-api/PAYMENT_PASSWORD' - XROAD_PAYMENT_USER: '/k8s/application-system-api/PAYMENT_USER' - XROAD_PROPERTIES_CLIENT_SECRET: '/k8s/xroad/client/NATIONAL-REGISTRY/IDENTITYSERVER_SECRET' - XROAD_VMST_API_KEY: '/k8s/vmst-client/VMST_API_KEY' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/application-system-api' - create: true - name: 'application-system-api' +namespace: 'application-system' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 2 + max: 60 + min: 2 +resources: + limits: + cpu: '400m' + memory: '1024Mi' + requests: + cpu: '75m' + memory: '512Mi' +secrets: + ALTHINGI_OMBUDSMAN_XROAD_PASSWORD: '/k8s/api/ALTHINGI_OMBUDSMAN_XROAD_PASSWORD' + ALTHINGI_OMBUDSMAN_XROAD_USERNAME: '/k8s/api/ALTHINGI_OMBUDSMAN_XROAD_USERNAME' + ARK_BASE_URL: '/k8s/application-system-api/ARK_BASE_URL' + AUTH_JWT_SECRET: '/k8s/application-system/api/AUTH_JWT_SECRET' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + CONTENTFUL_ACCESS_TOKEN: '/k8s/api/CONTENTFUL_ACCESS_TOKEN' + DATA_PROTECTION_COMPLAINT_API_PASSWORD: '/k8s/xroad/client/DATA_PROTECTION_COMPLAINT_API_PASSWORD' + DATA_PROTECTION_COMPLAINT_API_USERNAME: '/k8s/xroad/client/DATA_PROTECTION_COMPLAINT_API_USERNAME' + DB_PASS: '/k8s/application-system-api/DB_PASSWORD' + DOCUMENT_PROVIDER_ONBOARDING_REVIEWER: '/k8s/application-system/api/DOCUMENT_PROVIDER_ONBOARDING_REVIEWER' + DOKOBIT_ACCESS_TOKEN: '/k8s/application-system/api/DOKOBIT_ACCESS_TOKEN' + DOKOBIT_URL: '/k8s/application-system-api/DOKOBIT_URL' + DOMSYSLA_PASSWORD: '/k8s/application-system-api/DOMSYSLA_PASSWORD' + DOMSYSLA_USERNAME: '/k8s/application-system-api/DOMSYSLA_USERNAME' + DRIVING_LICENSE_BOOK_PASSWORD: '/k8s/application-system-api/DRIVING_LICENSE_BOOK_PASSWORD' + DRIVING_LICENSE_BOOK_USERNAME: '/k8s/application-system-api/DRIVING_LICENSE_BOOK_USERNAME' + DRIVING_LICENSE_BOOK_XROAD_PATH: '/k8s/application-system-api/DRIVING_LICENSE_BOOK_XROAD_PATH' + EMAIL_FROM: '/k8s/application-system/api/EMAIL_FROM' + EMAIL_FROM_NAME: '/k8s/application-system/api/EMAIL_FROM_NAME' + EMAIL_REPLY_TO: '/k8s/application-system/api/EMAIL_REPLY_TO' + EMAIL_REPLY_TO_NAME: '/k8s/application-system/api/EMAIL_REPLY_TO_NAME' + FINANCIAL_STATEMENTS_INAO_CLIENT_ID: '/k8s/api/FINANCIAL_STATEMENTS_INAO_CLIENT_ID' + FINANCIAL_STATEMENTS_INAO_CLIENT_SECRET: '/k8s/api/FINANCIAL_STATEMENTS_INAO_CLIENT_SECRET' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/application-system/api/IDENTITY_SERVER_CLIENT_SECRET' + ISLYKILL_SERVICE_BASEPATH: '/k8s/api/ISLYKILL_SERVICE_BASEPATH' + ISLYKILL_SERVICE_PASSPHRASE: '/k8s/api/ISLYKILL_SERVICE_PASSPHRASE' + NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/api/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' + NOVA_PASSWORD: '/k8s/application-system/api/NOVA_PASSWORD' + NOVA_URL: '/k8s/application-system-api/NOVA_URL' + SYSLUMENN_HOST: '/k8s/application-system-api/SYSLUMENN_HOST' + SYSLUMENN_PASSWORD: '/k8s/application-system/api/SYSLUMENN_PASSWORD' + SYSLUMENN_USERNAME: '/k8s/application-system/api/SYSLUMENN_USERNAME' + VMST_ID: '/k8s/application-system/VMST_ID' + XROAD_DRIVING_LICENSE_SECRET: '/k8s/api/DRIVING_LICENSE_SECRET' + XROAD_HEALTH_INSURANCE_PASSWORD: '/k8s/health-insurance/XROAD-PASSWORD' + XROAD_HEALTH_INSURANCE_USERNAME: '/k8s/health-insurance/XROAD-USER' + XROAD_HEALTH_INSURANCE_V2_XROAD_PASSWORD: '/k8s/api/HEALTH_INSURANCE_V2_XROAD_PASSWORD' + XROAD_HEALTH_INSURANCE_V2_XROAD_USERNAME: '/k8s/api/HEALTH_INSURANCE_V2_XROAD_USERNAME' + XROAD_PAYMENT_PASSWORD: '/k8s/application-system-api/PAYMENT_PASSWORD' + XROAD_PAYMENT_USER: '/k8s/application-system-api/PAYMENT_USER' + XROAD_PROPERTIES_CLIENT_SECRET: '/k8s/xroad/client/NATIONAL-REGISTRY/IDENTITYSERVER_SECRET' + XROAD_VMST_API_KEY: '/k8s/vmst-client/VMST_API_KEY' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/application-system-api' + create: true + name: 'application-system-api' diff --git a/charts/services/application-system-form/values.dev.yaml b/charts/services/application-system-form/values.dev.yaml index c6b386d221ed..b95ee8c8a5b2 100644 --- a/charts/services/application-system-form/values.dev.yaml +++ b/charts/services/application-system-form/values.dev.yaml @@ -5,71 +5,81 @@ # ##################################################################### -service: - name: 'application-system-form' - enabled: true +global: env: - BASEPATH: '/umsoknir' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230' - SERVERSIDE_FEATURES_ON: '' - SI_PUBLIC_ENVIRONMENT: 'dev' - SI_PUBLIC_IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' - grantNamespaces: - - 'nginx-ingress-internal' - - 'nginx-ingress-external' - - 'islandis' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/readiness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/application-system-form' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'beta.dev01.devland.is' - paths: - - '/umsoknir' - namespace: 'application-system' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '10m' - memory: '128Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - SI_PUBLIC_CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - SI_PUBLIC_DD_RUM_APPLICATION_ID: '/k8s/DD_RUM_APPLICATION_ID' - SI_PUBLIC_DD_RUM_CLIENT_TOKEN: '/k8s/DD_RUM_CLIENT_TOKEN' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'application-system-form' +enabled: true +env: + BASEPATH: '/umsoknir' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=230' + SERVERSIDE_FEATURES_ON: '' + SI_PUBLIC_ENVIRONMENT: 'dev' + SI_PUBLIC_IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' +grantNamespaces: + - 'nginx-ingress-internal' + - 'nginx-ingress-external' + - 'islandis' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/readiness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/application-system-form' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'beta.dev01.devland.is' + paths: + - '/umsoknir' +namespace: 'application-system' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '10m' + memory: '128Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + SI_PUBLIC_CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + SI_PUBLIC_DD_RUM_APPLICATION_ID: '/k8s/DD_RUM_APPLICATION_ID' + SI_PUBLIC_DD_RUM_CLIENT_TOKEN: '/k8s/DD_RUM_CLIENT_TOKEN' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/application-system-form/values.prod.yaml b/charts/services/application-system-form/values.prod.yaml index 1d7a33c722ca..c51d0191fb64 100644 --- a/charts/services/application-system-form/values.prod.yaml +++ b/charts/services/application-system-form/values.prod.yaml @@ -5,74 +5,84 @@ # ##################################################################### -service: - name: 'application-system-form' - enabled: true +global: env: - BASEPATH: '/umsoknir' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - SI_PUBLIC_ENVIRONMENT: 'prod' - SI_PUBLIC_IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' - grantNamespaces: - - 'nginx-ingress-internal' - - 'nginx-ingress-external' - - 'islandis' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/readiness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 3 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/application-system-form' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'island.is' - paths: - - '/umsoknir' - - host: 'www.island.is' - paths: - - '/umsoknir' - namespace: 'application-system' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 3 - max: 10 - min: 3 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '10m' - memory: '128Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - SI_PUBLIC_CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - SI_PUBLIC_DD_RUM_APPLICATION_ID: '/k8s/DD_RUM_APPLICATION_ID' - SI_PUBLIC_DD_RUM_CLIENT_TOKEN: '/k8s/DD_RUM_CLIENT_TOKEN' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'application-system-form' +enabled: true +env: + BASEPATH: '/umsoknir' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=230' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' + SI_PUBLIC_ENVIRONMENT: 'prod' + SI_PUBLIC_IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' +grantNamespaces: + - 'nginx-ingress-internal' + - 'nginx-ingress-external' + - 'islandis' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/readiness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 3 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/application-system-form' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'island.is' + paths: + - '/umsoknir' + - host: 'www.island.is' + paths: + - '/umsoknir' +namespace: 'application-system' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 3 + max: 10 + min: 3 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '10m' + memory: '128Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + SI_PUBLIC_CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + SI_PUBLIC_DD_RUM_APPLICATION_ID: '/k8s/DD_RUM_APPLICATION_ID' + SI_PUBLIC_DD_RUM_CLIENT_TOKEN: '/k8s/DD_RUM_CLIENT_TOKEN' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/application-system-form/values.staging.yaml b/charts/services/application-system-form/values.staging.yaml index 973a40c31acd..2d99f2954335 100644 --- a/charts/services/application-system-form/values.staging.yaml +++ b/charts/services/application-system-form/values.staging.yaml @@ -5,71 +5,81 @@ # ##################################################################### -service: - name: 'application-system-form' - enabled: true +global: env: - BASEPATH: '/umsoknir' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230' - SERVERSIDE_FEATURES_ON: '' - SI_PUBLIC_ENVIRONMENT: 'staging' - SI_PUBLIC_IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' - grantNamespaces: - - 'nginx-ingress-internal' - - 'nginx-ingress-external' - - 'islandis' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/readiness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/application-system-form' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'beta.staging01.devland.is' - paths: - - '/umsoknir' - namespace: 'application-system' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '10m' - memory: '128Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - SI_PUBLIC_CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - SI_PUBLIC_DD_RUM_APPLICATION_ID: '/k8s/DD_RUM_APPLICATION_ID' - SI_PUBLIC_DD_RUM_CLIENT_TOKEN: '/k8s/DD_RUM_CLIENT_TOKEN' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'application-system-form' +enabled: true +env: + BASEPATH: '/umsoknir' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=230' + SERVERSIDE_FEATURES_ON: '' + SI_PUBLIC_ENVIRONMENT: 'staging' + SI_PUBLIC_IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' +grantNamespaces: + - 'nginx-ingress-internal' + - 'nginx-ingress-external' + - 'islandis' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/readiness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/application-system-form' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'beta.staging01.devland.is' + paths: + - '/umsoknir' +namespace: 'application-system' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '10m' + memory: '128Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + SI_PUBLIC_CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + SI_PUBLIC_DD_RUM_APPLICATION_ID: '/k8s/DD_RUM_APPLICATION_ID' + SI_PUBLIC_DD_RUM_CLIENT_TOKEN: '/k8s/DD_RUM_CLIENT_TOKEN' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/auth-admin-web/values.dev.yaml b/charts/services/auth-admin-web/values.dev.yaml index 51bb8799bbd4..5c3eb4b36803 100644 --- a/charts/services/auth-admin-web/values.dev.yaml +++ b/charts/services/auth-admin-web/values.dev.yaml @@ -5,73 +5,83 @@ # ##################################################################### -service: - name: 'auth-admin-web' - enabled: true +global: env: - BASE_URL: 'https://identity-server.dev01.devland.is/admin' - IDENTITYSERVER_DOMAIN: 'identity-server.dev01.devland.is' - LOG_LEVEL: 'info' - NEXTAUTH_URL: 'https://identity-server.dev01.devland.is/admin/api/auth' - NEXT_PUBLIC_BACKEND_URL: '/backend' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - grantNamespaces: - - 'nginx-ingress-external' - - 'nginx-ingress-internal' - - 'islandis' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/auth-admin-web' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/proxy-buffer-size: '16k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/proxy-buffers-number: '4' - nginx.ingress.kubernetes.io/server-snippet: 'client_header_buffer_size 16k; large_client_header_buffers 4 16k;' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'identity-server.dev01.devland.is' - paths: - - '/admin' - namespace: 'identity-server-admin' - podDisruptionBudget: - maxUnavailable: 1 - progressDeadlineSeconds: 1200 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '400m' - memory: '256Mi' - requests: - cpu: '200m' - memory: '192Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - IDENTITYSERVER_SECRET: '/k8s/auth-admin-web/IDENTITYSERVER_SECRET' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/identity-server/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'auth-admin-web' +enabled: true +env: + BASE_URL: 'https://identity-server.dev01.devland.is/admin' + IDENTITYSERVER_DOMAIN: 'identity-server.dev01.devland.is' + LOG_LEVEL: 'info' + NEXTAUTH_URL: 'https://identity-server.dev01.devland.is/admin/api/auth' + NEXT_PUBLIC_BACKEND_URL: '/backend' + NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: + - 'nginx-ingress-external' + - 'nginx-ingress-internal' + - 'islandis' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/auth-admin-web' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/proxy-buffer-size: '16k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/proxy-buffers-number: '4' + nginx.ingress.kubernetes.io/server-snippet: 'client_header_buffer_size 16k; large_client_header_buffers 4 16k;' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'identity-server.dev01.devland.is' + paths: + - '/admin' +namespace: 'identity-server-admin' +podDisruptionBudget: + maxUnavailable: 1 +progressDeadlineSeconds: 1200 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '400m' + memory: '256Mi' + requests: + cpu: '200m' + memory: '192Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + IDENTITYSERVER_SECRET: '/k8s/auth-admin-web/IDENTITYSERVER_SECRET' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/auth-admin-web/values.prod.yaml b/charts/services/auth-admin-web/values.prod.yaml index e42b3715da61..556bdfda6dc3 100644 --- a/charts/services/auth-admin-web/values.prod.yaml +++ b/charts/services/auth-admin-web/values.prod.yaml @@ -5,71 +5,81 @@ # ##################################################################### -service: - name: 'auth-admin-web' - enabled: true +global: env: - BASE_URL: 'https://innskra.island.is/admin' - IDENTITYSERVER_DOMAIN: 'innskra.island.is' - LOG_LEVEL: 'info' - NEXTAUTH_URL: 'https://innskra.island.is/admin/api/auth' - NEXT_PUBLIC_BACKEND_URL: '/backend' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - grantNamespaces: - - 'nginx-ingress-external' - - 'nginx-ingress-internal' - - 'islandis' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/auth-admin-web' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'innskra.island.is' - paths: - - '/admin' - namespace: 'identity-server-admin' - podDisruptionBudget: - maxUnavailable: 1 - progressDeadlineSeconds: 1200 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '400m' - memory: '256Mi' - requests: - cpu: '200m' - memory: '192Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - IDENTITYSERVER_SECRET: '/k8s/auth-admin-web/IDENTITYSERVER_SECRET' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/identity-server/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'auth-admin-web' +enabled: true +env: + BASE_URL: 'https://innskra.island.is/admin' + IDENTITYSERVER_DOMAIN: 'innskra.island.is' + LOG_LEVEL: 'info' + NEXTAUTH_URL: 'https://innskra.island.is/admin/api/auth' + NEXT_PUBLIC_BACKEND_URL: '/backend' + NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' +grantNamespaces: + - 'nginx-ingress-external' + - 'nginx-ingress-internal' + - 'islandis' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/auth-admin-web' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'innskra.island.is' + paths: + - '/admin' +namespace: 'identity-server-admin' +podDisruptionBudget: + maxUnavailable: 1 +progressDeadlineSeconds: 1200 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '400m' + memory: '256Mi' + requests: + cpu: '200m' + memory: '192Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + IDENTITYSERVER_SECRET: '/k8s/auth-admin-web/IDENTITYSERVER_SECRET' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/auth-admin-web/values.staging.yaml b/charts/services/auth-admin-web/values.staging.yaml index e254d8338bcc..203226a74c77 100644 --- a/charts/services/auth-admin-web/values.staging.yaml +++ b/charts/services/auth-admin-web/values.staging.yaml @@ -5,73 +5,83 @@ # ##################################################################### -service: - name: 'auth-admin-web' - enabled: true +global: env: - BASE_URL: 'https://identity-server.staging01.devland.is/admin' - IDENTITYSERVER_DOMAIN: 'identity-server.staging01.devland.is' - LOG_LEVEL: 'info' - NEXTAUTH_URL: 'https://identity-server.staging01.devland.is/admin/api/auth' - NEXT_PUBLIC_BACKEND_URL: '/backend' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - grantNamespaces: - - 'nginx-ingress-external' - - 'nginx-ingress-internal' - - 'islandis' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/auth-admin-web' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/proxy-buffer-size: '16k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/proxy-buffers-number: '4' - nginx.ingress.kubernetes.io/server-snippet: 'client_header_buffer_size 16k; large_client_header_buffers 4 16k;' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'identity-server.staging01.devland.is' - paths: - - '/admin' - namespace: 'identity-server-admin' - podDisruptionBudget: - maxUnavailable: 1 - progressDeadlineSeconds: 1200 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '400m' - memory: '256Mi' - requests: - cpu: '200m' - memory: '192Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - IDENTITYSERVER_SECRET: '/k8s/auth-admin-web/IDENTITYSERVER_SECRET' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/identity-server/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'auth-admin-web' +enabled: true +env: + BASE_URL: 'https://identity-server.staging01.devland.is/admin' + IDENTITYSERVER_DOMAIN: 'identity-server.staging01.devland.is' + LOG_LEVEL: 'info' + NEXTAUTH_URL: 'https://identity-server.staging01.devland.is/admin/api/auth' + NEXT_PUBLIC_BACKEND_URL: '/backend' + NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: + - 'nginx-ingress-external' + - 'nginx-ingress-internal' + - 'islandis' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/auth-admin-web' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/proxy-buffer-size: '16k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/proxy-buffers-number: '4' + nginx.ingress.kubernetes.io/server-snippet: 'client_header_buffer_size 16k; large_client_header_buffers 4 16k;' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'identity-server.staging01.devland.is' + paths: + - '/admin' +namespace: 'identity-server-admin' +podDisruptionBudget: + maxUnavailable: 1 +progressDeadlineSeconds: 1200 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '400m' + memory: '256Mi' + requests: + cpu: '200m' + memory: '192Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + IDENTITYSERVER_SECRET: '/k8s/auth-admin-web/IDENTITYSERVER_SECRET' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/consultation-portal/values.dev.yaml b/charts/services/consultation-portal/values.dev.yaml index a88cbba1c6df..4a88058fbef2 100644 --- a/charts/services/consultation-portal/values.dev.yaml +++ b/charts/services/consultation-portal/values.dev.yaml @@ -5,71 +5,81 @@ # ##################################################################### -service: - name: 'consultation-portal' - enabled: true +global: env: - API_URL: 'http://web-api.islandis.svc.cluster.local' - BACKEND_DL_URL: 'https://samradapi-test.devland.is/api/Documents/' - BASEPATH: '/consultation-portal' - ENVIRONMENT: 'dev' - IDENTITY_SERVER_ISSUER_DOMAIN: 'identity-server.dev01.devland.is' - LOG_LEVEL: 'info' - NEXTAUTH_URL: 'https://beta.dev01.devland.is/samradsgatt/api/auth' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - grantNamespaces: [] - grantNamespacesEnabled: false - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 30 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/consultation-portal' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'beta.dev01.devland.is' - paths: - - '/samradsgatt' - namespace: 'consultation-portal' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 2 - max: 30 - min: 2 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '200m' - memory: '256Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DD_RUM_APPLICATION_ID: '/k8s/DD_RUM_APPLICATION_ID' - DD_RUM_CLIENT_TOKEN: '/k8s/DD_RUM_CLIENT_TOKEN' - IDENTITY_SERVER_SECRET: '/k8s/consultation-portal/IDENTITY_SERVER_SECRET' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'consultation-portal' +enabled: true +env: + API_URL: 'http://web-api.islandis.svc.cluster.local' + BACKEND_DL_URL: 'https://samradapi-test.devland.is/api/Documents/' + BASEPATH: '/consultation-portal' + ENVIRONMENT: 'dev' + IDENTITY_SERVER_ISSUER_DOMAIN: 'identity-server.dev01.devland.is' + LOG_LEVEL: 'info' + NEXTAUTH_URL: 'https://beta.dev01.devland.is/samradsgatt/api/auth' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: [] +grantNamespacesEnabled: false +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 30 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/consultation-portal' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'beta.dev01.devland.is' + paths: + - '/samradsgatt' +namespace: 'consultation-portal' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 2 + max: 30 + min: 2 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '200m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DD_RUM_APPLICATION_ID: '/k8s/DD_RUM_APPLICATION_ID' + DD_RUM_CLIENT_TOKEN: '/k8s/DD_RUM_CLIENT_TOKEN' + IDENTITY_SERVER_SECRET: '/k8s/consultation-portal/IDENTITY_SERVER_SECRET' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/consultation-portal/values.prod.yaml b/charts/services/consultation-portal/values.prod.yaml index 1ae958b9a1e1..1079e249d7ea 100644 --- a/charts/services/consultation-portal/values.prod.yaml +++ b/charts/services/consultation-portal/values.prod.yaml @@ -5,74 +5,84 @@ # ##################################################################### -service: - name: 'consultation-portal' - enabled: true +global: env: - API_URL: 'http://web-api.islandis.svc.cluster.local' - BACKEND_DL_URL: 'https://samradapi.island.is/api/Documents/' - BASEPATH: '/consultation-portal' - ENVIRONMENT: 'prod' - IDENTITY_SERVER_ISSUER_DOMAIN: 'innskra.island.is' - LOG_LEVEL: 'info' - NEXTAUTH_URL: 'https://island.is/samradsgatt/api/auth' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - grantNamespaces: [] - grantNamespacesEnabled: false - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 30 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/consultation-portal' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'island.is' - paths: - - '/samradsgatt' - - host: 'www.island.is' - paths: - - '/samradsgatt' - namespace: 'consultation-portal' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 2 - max: 30 - min: 2 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '200m' - memory: '256Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DD_RUM_APPLICATION_ID: '/k8s/DD_RUM_APPLICATION_ID' - DD_RUM_CLIENT_TOKEN: '/k8s/DD_RUM_CLIENT_TOKEN' - IDENTITY_SERVER_SECRET: '/k8s/consultation-portal/IDENTITY_SERVER_SECRET' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'consultation-portal' +enabled: true +env: + API_URL: 'http://web-api.islandis.svc.cluster.local' + BACKEND_DL_URL: 'https://samradapi.island.is/api/Documents/' + BASEPATH: '/consultation-portal' + ENVIRONMENT: 'prod' + IDENTITY_SERVER_ISSUER_DOMAIN: 'innskra.island.is' + LOG_LEVEL: 'info' + NEXTAUTH_URL: 'https://island.is/samradsgatt/api/auth' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' +grantNamespaces: [] +grantNamespacesEnabled: false +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 30 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/consultation-portal' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'island.is' + paths: + - '/samradsgatt' + - host: 'www.island.is' + paths: + - '/samradsgatt' +namespace: 'consultation-portal' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 2 + max: 30 + min: 2 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '200m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DD_RUM_APPLICATION_ID: '/k8s/DD_RUM_APPLICATION_ID' + DD_RUM_CLIENT_TOKEN: '/k8s/DD_RUM_CLIENT_TOKEN' + IDENTITY_SERVER_SECRET: '/k8s/consultation-portal/IDENTITY_SERVER_SECRET' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/consultation-portal/values.staging.yaml b/charts/services/consultation-portal/values.staging.yaml index 4fde6ad5a01c..ab669a620d94 100644 --- a/charts/services/consultation-portal/values.staging.yaml +++ b/charts/services/consultation-portal/values.staging.yaml @@ -5,71 +5,81 @@ # ##################################################################### -service: - name: 'consultation-portal' - enabled: true +global: env: - API_URL: 'http://web-api.islandis.svc.cluster.local' - BACKEND_DL_URL: 'https://samradapi-test.devland.is/api/Documents/' - BASEPATH: '/consultation-portal' - ENVIRONMENT: 'staging' - IDENTITY_SERVER_ISSUER_DOMAIN: 'identity-server.staging01.devland.is' - LOG_LEVEL: 'info' - NEXTAUTH_URL: 'https://beta.staging01.devland.is/samradsgatt/api/auth' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - grantNamespaces: [] - grantNamespacesEnabled: false - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 30 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/consultation-portal' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'beta.staging01.devland.is' - paths: - - '/samradsgatt' - namespace: 'consultation-portal' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 2 - max: 30 - min: 2 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '200m' - memory: '256Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DD_RUM_APPLICATION_ID: '/k8s/DD_RUM_APPLICATION_ID' - DD_RUM_CLIENT_TOKEN: '/k8s/DD_RUM_CLIENT_TOKEN' - IDENTITY_SERVER_SECRET: '/k8s/consultation-portal/IDENTITY_SERVER_SECRET' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'consultation-portal' +enabled: true +env: + API_URL: 'http://web-api.islandis.svc.cluster.local' + BACKEND_DL_URL: 'https://samradapi-test.devland.is/api/Documents/' + BASEPATH: '/consultation-portal' + ENVIRONMENT: 'staging' + IDENTITY_SERVER_ISSUER_DOMAIN: 'identity-server.staging01.devland.is' + LOG_LEVEL: 'info' + NEXTAUTH_URL: 'https://beta.staging01.devland.is/samradsgatt/api/auth' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: [] +grantNamespacesEnabled: false +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 30 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/consultation-portal' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'beta.staging01.devland.is' + paths: + - '/samradsgatt' +namespace: 'consultation-portal' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 2 + max: 30 + min: 2 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '200m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DD_RUM_APPLICATION_ID: '/k8s/DD_RUM_APPLICATION_ID' + DD_RUM_CLIENT_TOKEN: '/k8s/DD_RUM_CLIENT_TOKEN' + IDENTITY_SERVER_SECRET: '/k8s/consultation-portal/IDENTITY_SERVER_SECRET' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/contentful-apps/values.dev.yaml b/charts/services/contentful-apps/values.dev.yaml index dbdeb2a5a29e..f0f6a3f51f45 100644 --- a/charts/services/contentful-apps/values.dev.yaml +++ b/charts/services/contentful-apps/values.dev.yaml @@ -5,67 +5,77 @@ # ##################################################################### -service: - name: 'contentful-apps' - enabled: true +global: env: - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - grantNamespaces: [] - grantNamespacesEnabled: false - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/readiness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/contentful-apps' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'contentful-apps.dev01.devland.is' - paths: - - '/' - namespace: 'contentful-apps' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 1 - max: 10 - min: 1 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'contentful-apps' +enabled: true +env: + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: [] +grantNamespacesEnabled: false +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/readiness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/contentful-apps' +ingress: + primary-alb: annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/contentful-apps' - create: true - name: 'contentful-apps' + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'contentful-apps.dev01.devland.is' + paths: + - '/' +namespace: 'contentful-apps' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 1 + max: 10 + min: 1 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/contentful-apps' + create: true + name: 'contentful-apps' diff --git a/charts/services/contentful-apps/values.prod.yaml b/charts/services/contentful-apps/values.prod.yaml index c34dcf99ca9a..54a6d8aa6af3 100644 --- a/charts/services/contentful-apps/values.prod.yaml +++ b/charts/services/contentful-apps/values.prod.yaml @@ -5,67 +5,77 @@ # ##################################################################### -service: - name: 'contentful-apps' - enabled: true +global: env: - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - grantNamespaces: [] - grantNamespacesEnabled: false - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/readiness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/contentful-apps' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'contentful-apps.island.is' - paths: - - '/' - namespace: 'contentful-apps' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 1 - max: 10 - min: 1 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'contentful-apps' +enabled: true +env: + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' +grantNamespaces: [] +grantNamespacesEnabled: false +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/readiness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/contentful-apps' +ingress: + primary-alb: annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/contentful-apps' - create: true - name: 'contentful-apps' + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'contentful-apps.island.is' + paths: + - '/' +namespace: 'contentful-apps' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 1 + max: 10 + min: 1 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/contentful-apps' + create: true + name: 'contentful-apps' diff --git a/charts/services/contentful-entry-tagger-service/values.dev.yaml b/charts/services/contentful-entry-tagger-service/values.dev.yaml index 144559d22525..cab248f7516a 100644 --- a/charts/services/contentful-entry-tagger-service/values.dev.yaml +++ b/charts/services/contentful-entry-tagger-service/values.dev.yaml @@ -5,69 +5,79 @@ # ##################################################################### -service: - name: 'contentful-entry-tagger-service' - enabled: true +global: env: - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - grantNamespaces: [] - grantNamespacesEnabled: false - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/readiness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-contentful-entry-tagger' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'contentful-entry-tagger-service.dev01.devland.is' - paths: - - '/' - namespace: 'contentful-entry-tagger' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '100m' - memory: '128Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - CONTENTFUL_MANAGEMENT_ACCESS_TOKEN: '/k8s/contentful-entry-tagger/CONTENTFUL_MANAGEMENT_ACCESS_TOKEN' - CONTENTFUL_REQUEST_TOKEN: '/k8s/contentful-entry-tagger/CONTENTFUL_REQUEST_TOKEN' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'contentful-entry-tagger-service' +enabled: true +env: + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: [] +grantNamespacesEnabled: false +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/readiness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-contentful-entry-tagger' +ingress: + primary-alb: annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/contentful-entry-tagger' - create: true - name: 'contentful-entry-tagger' + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'contentful-entry-tagger-service.dev01.devland.is' + paths: + - '/' +namespace: 'contentful-entry-tagger' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '100m' + memory: '128Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + CONTENTFUL_MANAGEMENT_ACCESS_TOKEN: '/k8s/contentful-entry-tagger/CONTENTFUL_MANAGEMENT_ACCESS_TOKEN' + CONTENTFUL_REQUEST_TOKEN: '/k8s/contentful-entry-tagger/CONTENTFUL_REQUEST_TOKEN' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/contentful-entry-tagger' + create: true + name: 'contentful-entry-tagger' diff --git a/charts/services/contentful-entry-tagger-service/values.prod.yaml b/charts/services/contentful-entry-tagger-service/values.prod.yaml index 47f903a47951..e8384918cc65 100644 --- a/charts/services/contentful-entry-tagger-service/values.prod.yaml +++ b/charts/services/contentful-entry-tagger-service/values.prod.yaml @@ -5,69 +5,79 @@ # ##################################################################### -service: - name: 'contentful-entry-tagger-service' - enabled: true +global: env: - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - grantNamespaces: [] - grantNamespacesEnabled: false - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/readiness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 3 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-contentful-entry-tagger' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'contentful-entry-tagger-service.devland.is' - paths: - - '/' - namespace: 'contentful-entry-tagger' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 3 - max: 10 - min: 3 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '100m' - memory: '128Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - CONTENTFUL_MANAGEMENT_ACCESS_TOKEN: '/k8s/contentful-entry-tagger/CONTENTFUL_MANAGEMENT_ACCESS_TOKEN' - CONTENTFUL_REQUEST_TOKEN: '/k8s/contentful-entry-tagger/CONTENTFUL_REQUEST_TOKEN' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'contentful-entry-tagger-service' +enabled: true +env: + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' +grantNamespaces: [] +grantNamespacesEnabled: false +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/readiness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 3 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-contentful-entry-tagger' +ingress: + primary-alb: annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/contentful-entry-tagger' - create: true - name: 'contentful-entry-tagger' + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'contentful-entry-tagger-service.devland.is' + paths: + - '/' +namespace: 'contentful-entry-tagger' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 3 + max: 10 + min: 3 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '100m' + memory: '128Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + CONTENTFUL_MANAGEMENT_ACCESS_TOKEN: '/k8s/contentful-entry-tagger/CONTENTFUL_MANAGEMENT_ACCESS_TOKEN' + CONTENTFUL_REQUEST_TOKEN: '/k8s/contentful-entry-tagger/CONTENTFUL_REQUEST_TOKEN' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/contentful-entry-tagger' + create: true + name: 'contentful-entry-tagger' diff --git a/charts/services/download-service/values.dev.yaml b/charts/services/download-service/values.dev.yaml index 214f7ac435b1..ce8a3e572a11 100644 --- a/charts/services/download-service/values.dev.yaml +++ b/charts/services/download-service/values.dev.yaml @@ -5,104 +5,114 @@ # ##################################################################### -service: - name: 'download-service' - enabled: true +global: env: - IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/download-service' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' - REGULATIONS_ADMIN_URL: 'http://web-regulations-admin-backend.regulations-admin.svc.cluster.local' - SERVERSIDE_FEATURES_ON: '' - XROAD_AGRICULTURAL_UNIVERSITY_OF_ICELAND_PATH: 'IS-DEV/EDU/10056/LBHI-Protected/brautskraning-v1' - XROAD_BASE_PATH: 'http://securityserver.dev01.devland.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.dev01.devland.is/r1/IS-DEV' - XROAD_BIFROST_UNIVERSITY_PATH: 'IS-DEV/EDU/10057/Bifrost-Protected/brautskraning-v1' - XROAD_CLIENT_ID: 'IS-DEV/GOV/10000/island-is-client' - XROAD_DISTRICT_COMMISSIONERS_LICENSES_PATH: 'IS-DEV/GOV/10016/Syslumenn-Protected/RettindiIslandis' - XROAD_DISTRICT_COMMISSIONERS_P_CARD_PATH: 'IS-DEV/GOV/10016/Syslumenn-Protected/IslandMinarSidur' - XROAD_FINANCES_PATH: 'IS-DEV/GOV/10021/FJS-Public/financeIsland' - XROAD_FINANCES_V2_PATH: 'IS-DEV/GOV/10021/FJS-Public/financeServicesFJS_v2' - XROAD_HEALTH_INSURANCE_ID: 'IS-DEV/GOV/10007/SJUKRA-Protected' - XROAD_HEALTH_INSURANCE_MY_PAGES_PATH: 'IS-DEV/GOV/10007/SJUKRA-Protected/minarsidur' - XROAD_HEALTH_INSURANCE_WSDLURL: 'https://test-huld.sjukra.is/islandrg?wsdl' - XROAD_HMS_HOUSING_BENEFITS_PATH: 'IS-DEV/GOV/10033/HMS-Protected/husbot-v1' - XROAD_HMS_LOANS_PATH: 'IS-DEV/GOV/10033/HMS-Protected/libra-v1' - XROAD_HOLAR_UNIVERSITY_PATH: 'IS-DEV/EDU/10055/Holar-Protected/brautskraning-v1' - XROAD_ICELAND_UNIVERSITY_OF_THE_ARTS_PATH: 'IS-DEV/EDU/10049/LHI-Protected/brautskraning-v1' - XROAD_MMS_GRADE_SERVICE_ID: 'IS-DEV/GOV/10066/MMS-Protected/grade-api-v1' - XROAD_MMS_LICENSE_SERVICE_ID: 'IS-DEV/GOV/10066/MMS-Protected/license-api-v1' - XROAD_TLS_BASE_PATH: 'https://securityserver.dev01.devland.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.dev01.devland.is/r1/IS-DEV' - XROAD_UNIVERSITY_OF_AKUREYRI_PATH: 'IS-DEV/EDU/10054/UNAK-Protected/brautskraning-v1' - XROAD_UNIVERSITY_OF_ICELAND_PATH: 'IS-DEV/EDU/10010/HI-Protected/brautskraning-v1' - XROAD_VEHICLES_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Mitt-Svaedi-V1' - XROAD_WORK_MACHINE_LICENSE_PATH: 'IS-DEV/GOV/10013/Vinnueftirlitid-Protected/vinnuvelar-token' - grantNamespaces: - - 'islandis' - - 'nginx-ingress-external' - - 'services-bff-portals-admin' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: 'download/v1/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: 'download/v1/readiness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/download-service' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/enable-global-auth: 'false' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'api.dev01.devland.is' - paths: - - '/download' - namespace: 'download-service' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '200m' - memory: '256Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/download-service/IDENTITY_SERVER_CLIENT_SECRET' - POSTHOLF_BASE_PATH: '/k8s/documents/POSTHOLF_BASE_PATH' - POSTHOLF_CLIENTID: '/k8s/documents/POSTHOLF_CLIENTID' - POSTHOLF_CLIENT_SECRET: '/k8s/documents/POSTHOLF_CLIENT_SECRET' - POSTHOLF_TOKEN_URL: '/k8s/documents/POSTHOLF_TOKEN_URL' - REGULATIONS_API_URL: '/k8s/api/REGULATIONS_API_URL' - REGULATIONS_FILE_UPLOAD_KEY_DRAFT: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_DRAFT' - REGULATIONS_FILE_UPLOAD_KEY_PRESIGNED: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_PRESIGNED' - REGULATIONS_FILE_UPLOAD_KEY_PUBLISH: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_PUBLISH' - XROAD_HEALTH_INSURANCE_PASSWORD: '/k8s/health-insurance/XROAD-PASSWORD' - XROAD_HEALTH_INSURANCE_USERNAME: '/k8s/health-insurance/XROAD-USER' - XROAD_HEALTH_INSURANCE_V2_XROAD_PASSWORD: '/k8s/api/HEALTH_INSURANCE_V2_XROAD_PASSWORD' - XROAD_HEALTH_INSURANCE_V2_XROAD_USERNAME: '/k8s/api/HEALTH_INSURANCE_V2_XROAD_USERNAME' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'download-service' +enabled: true +env: + IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/download-service' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + REGULATIONS_ADMIN_URL: 'http://web-regulations-admin-backend.regulations-admin.svc.cluster.local' + SERVERSIDE_FEATURES_ON: '' + XROAD_AGRICULTURAL_UNIVERSITY_OF_ICELAND_PATH: 'IS-DEV/EDU/10056/LBHI-Protected/brautskraning-v1' + XROAD_BASE_PATH: 'http://securityserver.dev01.devland.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.dev01.devland.is/r1/IS-DEV' + XROAD_BIFROST_UNIVERSITY_PATH: 'IS-DEV/EDU/10057/Bifrost-Protected/brautskraning-v1' + XROAD_CLIENT_ID: 'IS-DEV/GOV/10000/island-is-client' + XROAD_DISTRICT_COMMISSIONERS_LICENSES_PATH: 'IS-DEV/GOV/10016/Syslumenn-Protected/RettindiIslandis' + XROAD_DISTRICT_COMMISSIONERS_P_CARD_PATH: 'IS-DEV/GOV/10016/Syslumenn-Protected/IslandMinarSidur' + XROAD_FINANCES_PATH: 'IS-DEV/GOV/10021/FJS-Public/financeIsland' + XROAD_FINANCES_V2_PATH: 'IS-DEV/GOV/10021/FJS-Public/financeServicesFJS_v2' + XROAD_HEALTH_INSURANCE_ID: 'IS-DEV/GOV/10007/SJUKRA-Protected' + XROAD_HEALTH_INSURANCE_MY_PAGES_PATH: 'IS-DEV/GOV/10007/SJUKRA-Protected/minarsidur' + XROAD_HEALTH_INSURANCE_WSDLURL: 'https://test-huld.sjukra.is/islandrg?wsdl' + XROAD_HMS_HOUSING_BENEFITS_PATH: 'IS-DEV/GOV/10033/HMS-Protected/husbot-v1' + XROAD_HMS_LOANS_PATH: 'IS-DEV/GOV/10033/HMS-Protected/libra-v1' + XROAD_HOLAR_UNIVERSITY_PATH: 'IS-DEV/EDU/10055/Holar-Protected/brautskraning-v1' + XROAD_ICELAND_UNIVERSITY_OF_THE_ARTS_PATH: 'IS-DEV/EDU/10049/LHI-Protected/brautskraning-v1' + XROAD_MMS_GRADE_SERVICE_ID: 'IS-DEV/GOV/10066/MMS-Protected/grade-api-v1' + XROAD_MMS_LICENSE_SERVICE_ID: 'IS-DEV/GOV/10066/MMS-Protected/license-api-v1' + XROAD_TLS_BASE_PATH: 'https://securityserver.dev01.devland.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.dev01.devland.is/r1/IS-DEV' + XROAD_UNIVERSITY_OF_AKUREYRI_PATH: 'IS-DEV/EDU/10054/UNAK-Protected/brautskraning-v1' + XROAD_UNIVERSITY_OF_ICELAND_PATH: 'IS-DEV/EDU/10010/HI-Protected/brautskraning-v1' + XROAD_VEHICLES_PATH: 'IS-DEV/GOV/10017/Samgongustofa-Protected/Mitt-Svaedi-V1' + XROAD_WORK_MACHINE_LICENSE_PATH: 'IS-DEV/GOV/10013/Vinnueftirlitid-Protected/vinnuvelar-token' +grantNamespaces: + - 'islandis' + - 'nginx-ingress-external' + - 'services-bff-portals-admin' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: 'download/v1/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: 'download/v1/readiness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/download-service' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/enable-global-auth: 'false' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'api.dev01.devland.is' + paths: + - '/download' +namespace: 'download-service' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '200m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/download-service/IDENTITY_SERVER_CLIENT_SECRET' + POSTHOLF_BASE_PATH: '/k8s/documents/POSTHOLF_BASE_PATH' + POSTHOLF_CLIENTID: '/k8s/documents/POSTHOLF_CLIENTID' + POSTHOLF_CLIENT_SECRET: '/k8s/documents/POSTHOLF_CLIENT_SECRET' + POSTHOLF_TOKEN_URL: '/k8s/documents/POSTHOLF_TOKEN_URL' + REGULATIONS_API_URL: '/k8s/api/REGULATIONS_API_URL' + REGULATIONS_FILE_UPLOAD_KEY_DRAFT: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_DRAFT' + REGULATIONS_FILE_UPLOAD_KEY_PRESIGNED: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_PRESIGNED' + REGULATIONS_FILE_UPLOAD_KEY_PUBLISH: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_PUBLISH' + XROAD_HEALTH_INSURANCE_PASSWORD: '/k8s/health-insurance/XROAD-PASSWORD' + XROAD_HEALTH_INSURANCE_USERNAME: '/k8s/health-insurance/XROAD-USER' + XROAD_HEALTH_INSURANCE_V2_XROAD_PASSWORD: '/k8s/api/HEALTH_INSURANCE_V2_XROAD_PASSWORD' + XROAD_HEALTH_INSURANCE_V2_XROAD_USERNAME: '/k8s/api/HEALTH_INSURANCE_V2_XROAD_USERNAME' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/download-service/values.prod.yaml b/charts/services/download-service/values.prod.yaml index 15a17f936c7d..b403f415868d 100644 --- a/charts/services/download-service/values.prod.yaml +++ b/charts/services/download-service/values.prod.yaml @@ -5,103 +5,113 @@ # ##################################################################### -service: - name: 'download-service' - enabled: true +global: env: - IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/download-service' - IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' - REGULATIONS_ADMIN_URL: 'http://web-regulations-admin-backend.regulations-admin.svc.cluster.local' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - XROAD_AGRICULTURAL_UNIVERSITY_OF_ICELAND_PATH: 'IS/EDU/4112043590/LBHI-Protected/brautskraning-v1' - XROAD_BASE_PATH: 'http://securityserver.island.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.island.is/r1/IS' - XROAD_BIFROST_UNIVERSITY_PATH: 'IS/EDU/5502690239/Bifrost-Protected/brautskraning-v1' - XROAD_CLIENT_ID: 'IS/GOV/5501692829/island-is-client' - XROAD_DISTRICT_COMMISSIONERS_LICENSES_PATH: 'IS/GOV/5512201410/Syslumenn-Protected/RettindiIslandis' - XROAD_DISTRICT_COMMISSIONERS_P_CARD_PATH: 'IS/GOV/5512201410/Syslumenn-Protected/IslandMinarSidur' - XROAD_FINANCES_PATH: 'IS/GOV/5402697509/FJS-Public/financeIsland' - XROAD_FINANCES_V2_PATH: 'IS/GOV/5402697509/FJS-Public/financeServicesFJS_v2' - XROAD_HEALTH_INSURANCE_ID: 'IS/GOV/4804080550/SJUKRA-Protected' - XROAD_HEALTH_INSURANCE_MY_PAGES_PATH: 'IS/GOV/4804080550/SJUKRA-Protected/minarsidur' - XROAD_HEALTH_INSURANCE_WSDLURL: 'https://huld.sjukra.is/islandrg?wsdl' - XROAD_HMS_HOUSING_BENEFITS_PATH: 'IS/GOV/5812191480/Husnaeds-og-mannvirkjastofnun-Protected/husbot-v1' - XROAD_HMS_LOANS_PATH: 'IS/GOV/5812191480/Husnaeds-og-mannvirkjastofnun-Protected/libra-v1' - XROAD_HOLAR_UNIVERSITY_PATH: 'IS/EDU/5001694359/Holar-Protected/brautskraning-v1' - XROAD_ICELAND_UNIVERSITY_OF_THE_ARTS_PATH: 'IS/EDU/4210984099/LHI-Protected/brautskraning-v1' - XROAD_MMS_GRADE_SERVICE_ID: 'IS/GOV/6601241280/MMS-Protected/grade-api-v1' - XROAD_MMS_LICENSE_SERVICE_ID: 'IS/GOV/6601241280/MMS-Protected/license-api-v1' - XROAD_TLS_BASE_PATH: 'https://securityserver.island.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.island.is/r1/IS' - XROAD_UNIVERSITY_OF_AKUREYRI_PATH: 'IS/EDU/5206871229/UNAK-Protected/brautskraning-v1' - XROAD_UNIVERSITY_OF_ICELAND_PATH: 'IS/EDU/6001692039/HI-Protected/brautskraning-v1' - XROAD_VEHICLES_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Mitt-Svaedi-V1' - XROAD_WORK_MACHINE_LICENSE_PATH: 'IS/GOV/4201810439/Vinnueftirlitid-Protected/vinnuvelar-token' - grantNamespaces: - - 'islandis' - - 'nginx-ingress-external' - - 'services-bff-portals-admin' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: 'download/v1/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: 'download/v1/readiness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 3 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/download-service' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'api.island.is' - paths: - - '/download' - namespace: 'download-service' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 3 - max: 10 - min: 3 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '200m' - memory: '256Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/download-service/IDENTITY_SERVER_CLIENT_SECRET' - POSTHOLF_BASE_PATH: '/k8s/documents/POSTHOLF_BASE_PATH' - POSTHOLF_CLIENTID: '/k8s/documents/POSTHOLF_CLIENTID' - POSTHOLF_CLIENT_SECRET: '/k8s/documents/POSTHOLF_CLIENT_SECRET' - POSTHOLF_TOKEN_URL: '/k8s/documents/POSTHOLF_TOKEN_URL' - REGULATIONS_API_URL: '/k8s/api/REGULATIONS_API_URL' - REGULATIONS_FILE_UPLOAD_KEY_DRAFT: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_DRAFT' - REGULATIONS_FILE_UPLOAD_KEY_PRESIGNED: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_PRESIGNED' - REGULATIONS_FILE_UPLOAD_KEY_PUBLISH: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_PUBLISH' - XROAD_HEALTH_INSURANCE_PASSWORD: '/k8s/health-insurance/XROAD-PASSWORD' - XROAD_HEALTH_INSURANCE_USERNAME: '/k8s/health-insurance/XROAD-USER' - XROAD_HEALTH_INSURANCE_V2_XROAD_PASSWORD: '/k8s/api/HEALTH_INSURANCE_V2_XROAD_PASSWORD' - XROAD_HEALTH_INSURANCE_V2_XROAD_USERNAME: '/k8s/api/HEALTH_INSURANCE_V2_XROAD_USERNAME' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'download-service' +enabled: true +env: + IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/download-service' + IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + REGULATIONS_ADMIN_URL: 'http://web-regulations-admin-backend.regulations-admin.svc.cluster.local' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' + XROAD_AGRICULTURAL_UNIVERSITY_OF_ICELAND_PATH: 'IS/EDU/4112043590/LBHI-Protected/brautskraning-v1' + XROAD_BASE_PATH: 'http://securityserver.island.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.island.is/r1/IS' + XROAD_BIFROST_UNIVERSITY_PATH: 'IS/EDU/5502690239/Bifrost-Protected/brautskraning-v1' + XROAD_CLIENT_ID: 'IS/GOV/5501692829/island-is-client' + XROAD_DISTRICT_COMMISSIONERS_LICENSES_PATH: 'IS/GOV/5512201410/Syslumenn-Protected/RettindiIslandis' + XROAD_DISTRICT_COMMISSIONERS_P_CARD_PATH: 'IS/GOV/5512201410/Syslumenn-Protected/IslandMinarSidur' + XROAD_FINANCES_PATH: 'IS/GOV/5402697509/FJS-Public/financeIsland' + XROAD_FINANCES_V2_PATH: 'IS/GOV/5402697509/FJS-Public/financeServicesFJS_v2' + XROAD_HEALTH_INSURANCE_ID: 'IS/GOV/4804080550/SJUKRA-Protected' + XROAD_HEALTH_INSURANCE_MY_PAGES_PATH: 'IS/GOV/4804080550/SJUKRA-Protected/minarsidur' + XROAD_HEALTH_INSURANCE_WSDLURL: 'https://huld.sjukra.is/islandrg?wsdl' + XROAD_HMS_HOUSING_BENEFITS_PATH: 'IS/GOV/5812191480/Husnaeds-og-mannvirkjastofnun-Protected/husbot-v1' + XROAD_HMS_LOANS_PATH: 'IS/GOV/5812191480/Husnaeds-og-mannvirkjastofnun-Protected/libra-v1' + XROAD_HOLAR_UNIVERSITY_PATH: 'IS/EDU/5001694359/Holar-Protected/brautskraning-v1' + XROAD_ICELAND_UNIVERSITY_OF_THE_ARTS_PATH: 'IS/EDU/4210984099/LHI-Protected/brautskraning-v1' + XROAD_MMS_GRADE_SERVICE_ID: 'IS/GOV/6601241280/MMS-Protected/grade-api-v1' + XROAD_MMS_LICENSE_SERVICE_ID: 'IS/GOV/6601241280/MMS-Protected/license-api-v1' + XROAD_TLS_BASE_PATH: 'https://securityserver.island.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.island.is/r1/IS' + XROAD_UNIVERSITY_OF_AKUREYRI_PATH: 'IS/EDU/5206871229/UNAK-Protected/brautskraning-v1' + XROAD_UNIVERSITY_OF_ICELAND_PATH: 'IS/EDU/6001692039/HI-Protected/brautskraning-v1' + XROAD_VEHICLES_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Mitt-Svaedi-V1' + XROAD_WORK_MACHINE_LICENSE_PATH: 'IS/GOV/4201810439/Vinnueftirlitid-Protected/vinnuvelar-token' +grantNamespaces: + - 'islandis' + - 'nginx-ingress-external' + - 'services-bff-portals-admin' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: 'download/v1/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: 'download/v1/readiness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 3 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/download-service' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'api.island.is' + paths: + - '/download' +namespace: 'download-service' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 3 + max: 10 + min: 3 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '200m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/download-service/IDENTITY_SERVER_CLIENT_SECRET' + POSTHOLF_BASE_PATH: '/k8s/documents/POSTHOLF_BASE_PATH' + POSTHOLF_CLIENTID: '/k8s/documents/POSTHOLF_CLIENTID' + POSTHOLF_CLIENT_SECRET: '/k8s/documents/POSTHOLF_CLIENT_SECRET' + POSTHOLF_TOKEN_URL: '/k8s/documents/POSTHOLF_TOKEN_URL' + REGULATIONS_API_URL: '/k8s/api/REGULATIONS_API_URL' + REGULATIONS_FILE_UPLOAD_KEY_DRAFT: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_DRAFT' + REGULATIONS_FILE_UPLOAD_KEY_PRESIGNED: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_PRESIGNED' + REGULATIONS_FILE_UPLOAD_KEY_PUBLISH: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_PUBLISH' + XROAD_HEALTH_INSURANCE_PASSWORD: '/k8s/health-insurance/XROAD-PASSWORD' + XROAD_HEALTH_INSURANCE_USERNAME: '/k8s/health-insurance/XROAD-USER' + XROAD_HEALTH_INSURANCE_V2_XROAD_PASSWORD: '/k8s/api/HEALTH_INSURANCE_V2_XROAD_PASSWORD' + XROAD_HEALTH_INSURANCE_V2_XROAD_USERNAME: '/k8s/api/HEALTH_INSURANCE_V2_XROAD_USERNAME' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/download-service/values.staging.yaml b/charts/services/download-service/values.staging.yaml index df0072bcec48..4d41437ac9bf 100644 --- a/charts/services/download-service/values.staging.yaml +++ b/charts/services/download-service/values.staging.yaml @@ -5,104 +5,114 @@ # ##################################################################### -service: - name: 'download-service' - enabled: true +global: env: - IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/download-service' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' - REGULATIONS_ADMIN_URL: 'http://web-regulations-admin-backend.regulations-admin.svc.cluster.local' - SERVERSIDE_FEATURES_ON: '' - XROAD_AGRICULTURAL_UNIVERSITY_OF_ICELAND_PATH: 'IS-TEST/EDU/10056/LBHI-Protected/brautskraning-v1' - XROAD_BASE_PATH: 'http://securityserver.staging01.devland.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.staging01.devland.is/r1/IS-TEST' - XROAD_BIFROST_UNIVERSITY_PATH: 'IS-TEST/EDU/10057/Bifrost-Protected/brautskraning-v1' - XROAD_CLIENT_ID: 'IS-TEST/GOV/5501692829/island-is-client' - XROAD_DISTRICT_COMMISSIONERS_LICENSES_PATH: 'IS-TEST/GOV/10016/Syslumenn-Protected/RettindiIslandis' - XROAD_DISTRICT_COMMISSIONERS_P_CARD_PATH: 'IS-TEST/GOV/10016/Syslumenn-Protected/IslandMinarSidur' - XROAD_FINANCES_PATH: 'IS-TEST/GOV/10021/FJS-Public/financeIsland' - XROAD_FINANCES_V2_PATH: 'IS-TEST/GOV/10021/FJS-Public/financeServicesFJS_v2' - XROAD_HEALTH_INSURANCE_ID: 'IS-TEST/GOV/4804080550/SJUKRA-Protected' - XROAD_HEALTH_INSURANCE_MY_PAGES_PATH: 'IS-TEST/GOV/4804080550/SJUKRA-Protected/minarsidur' - XROAD_HEALTH_INSURANCE_WSDLURL: 'https://test-huld.sjukra.is/islandrg?wsdl' - XROAD_HMS_HOUSING_BENEFITS_PATH: 'IS-TEST/GOV/5812191480/HMS-Protected/husbot-v1' - XROAD_HMS_LOANS_PATH: 'IS-TEST/GOV/5812191480/HMS-Protected/libra-v1' - XROAD_HOLAR_UNIVERSITY_PATH: 'IS-TEST/EDU/10055/Holar-Protected/brautskraning-v1' - XROAD_ICELAND_UNIVERSITY_OF_THE_ARTS_PATH: 'IS-TEST/EDU/10049/LHI-Protected/brautskraning-v1' - XROAD_MMS_GRADE_SERVICE_ID: 'IS-TEST/GOV/6601241280/MMS-Protected/grade-api-v1' - XROAD_MMS_LICENSE_SERVICE_ID: 'IS-TEST/GOV/6601241280/MMS-Protected/license-api-v1' - XROAD_TLS_BASE_PATH: 'https://securityserver.staging01.devland.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.staging01.devland.is/r1/IS-TEST' - XROAD_UNIVERSITY_OF_AKUREYRI_PATH: 'IS-TEST/EDU/10054/UNAK-Protected/brautskraning-v1' - XROAD_UNIVERSITY_OF_ICELAND_PATH: 'IS-TEST/EDU/10010/HI-Protected/brautskraning-v1' - XROAD_VEHICLES_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Mitt-Svaedi-V1' - XROAD_WORK_MACHINE_LICENSE_PATH: 'IS-TEST/GOV/4201810439/Vinnueftirlitid-Protected/vinnuvelar-token' - grantNamespaces: - - 'islandis' - - 'nginx-ingress-external' - - 'services-bff-portals-admin' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: 'download/v1/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: 'download/v1/readiness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/download-service' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/enable-global-auth: 'false' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'api.staging01.devland.is' - paths: - - '/download' - namespace: 'download-service' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '200m' - memory: '256Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/download-service/IDENTITY_SERVER_CLIENT_SECRET' - POSTHOLF_BASE_PATH: '/k8s/documents/POSTHOLF_BASE_PATH' - POSTHOLF_CLIENTID: '/k8s/documents/POSTHOLF_CLIENTID' - POSTHOLF_CLIENT_SECRET: '/k8s/documents/POSTHOLF_CLIENT_SECRET' - POSTHOLF_TOKEN_URL: '/k8s/documents/POSTHOLF_TOKEN_URL' - REGULATIONS_API_URL: '/k8s/api/REGULATIONS_API_URL' - REGULATIONS_FILE_UPLOAD_KEY_DRAFT: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_DRAFT' - REGULATIONS_FILE_UPLOAD_KEY_PRESIGNED: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_PRESIGNED' - REGULATIONS_FILE_UPLOAD_KEY_PUBLISH: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_PUBLISH' - XROAD_HEALTH_INSURANCE_PASSWORD: '/k8s/health-insurance/XROAD-PASSWORD' - XROAD_HEALTH_INSURANCE_USERNAME: '/k8s/health-insurance/XROAD-USER' - XROAD_HEALTH_INSURANCE_V2_XROAD_PASSWORD: '/k8s/api/HEALTH_INSURANCE_V2_XROAD_PASSWORD' - XROAD_HEALTH_INSURANCE_V2_XROAD_USERNAME: '/k8s/api/HEALTH_INSURANCE_V2_XROAD_USERNAME' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'download-service' +enabled: true +env: + IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/download-service' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + REGULATIONS_ADMIN_URL: 'http://web-regulations-admin-backend.regulations-admin.svc.cluster.local' + SERVERSIDE_FEATURES_ON: '' + XROAD_AGRICULTURAL_UNIVERSITY_OF_ICELAND_PATH: 'IS-TEST/EDU/10056/LBHI-Protected/brautskraning-v1' + XROAD_BASE_PATH: 'http://securityserver.staging01.devland.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.staging01.devland.is/r1/IS-TEST' + XROAD_BIFROST_UNIVERSITY_PATH: 'IS-TEST/EDU/10057/Bifrost-Protected/brautskraning-v1' + XROAD_CLIENT_ID: 'IS-TEST/GOV/5501692829/island-is-client' + XROAD_DISTRICT_COMMISSIONERS_LICENSES_PATH: 'IS-TEST/GOV/10016/Syslumenn-Protected/RettindiIslandis' + XROAD_DISTRICT_COMMISSIONERS_P_CARD_PATH: 'IS-TEST/GOV/10016/Syslumenn-Protected/IslandMinarSidur' + XROAD_FINANCES_PATH: 'IS-TEST/GOV/10021/FJS-Public/financeIsland' + XROAD_FINANCES_V2_PATH: 'IS-TEST/GOV/10021/FJS-Public/financeServicesFJS_v2' + XROAD_HEALTH_INSURANCE_ID: 'IS-TEST/GOV/4804080550/SJUKRA-Protected' + XROAD_HEALTH_INSURANCE_MY_PAGES_PATH: 'IS-TEST/GOV/4804080550/SJUKRA-Protected/minarsidur' + XROAD_HEALTH_INSURANCE_WSDLURL: 'https://test-huld.sjukra.is/islandrg?wsdl' + XROAD_HMS_HOUSING_BENEFITS_PATH: 'IS-TEST/GOV/5812191480/HMS-Protected/husbot-v1' + XROAD_HMS_LOANS_PATH: 'IS-TEST/GOV/5812191480/HMS-Protected/libra-v1' + XROAD_HOLAR_UNIVERSITY_PATH: 'IS-TEST/EDU/10055/Holar-Protected/brautskraning-v1' + XROAD_ICELAND_UNIVERSITY_OF_THE_ARTS_PATH: 'IS-TEST/EDU/10049/LHI-Protected/brautskraning-v1' + XROAD_MMS_GRADE_SERVICE_ID: 'IS-TEST/GOV/6601241280/MMS-Protected/grade-api-v1' + XROAD_MMS_LICENSE_SERVICE_ID: 'IS-TEST/GOV/6601241280/MMS-Protected/license-api-v1' + XROAD_TLS_BASE_PATH: 'https://securityserver.staging01.devland.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.staging01.devland.is/r1/IS-TEST' + XROAD_UNIVERSITY_OF_AKUREYRI_PATH: 'IS-TEST/EDU/10054/UNAK-Protected/brautskraning-v1' + XROAD_UNIVERSITY_OF_ICELAND_PATH: 'IS-TEST/EDU/10010/HI-Protected/brautskraning-v1' + XROAD_VEHICLES_PATH: 'IS/GOV/5405131040/Samgongustofa-Protected/Mitt-Svaedi-V1' + XROAD_WORK_MACHINE_LICENSE_PATH: 'IS-TEST/GOV/4201810439/Vinnueftirlitid-Protected/vinnuvelar-token' +grantNamespaces: + - 'islandis' + - 'nginx-ingress-external' + - 'services-bff-portals-admin' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: 'download/v1/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: 'download/v1/readiness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/download-service' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/enable-global-auth: 'false' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'api.staging01.devland.is' + paths: + - '/download' +namespace: 'download-service' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '200m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/download-service/IDENTITY_SERVER_CLIENT_SECRET' + POSTHOLF_BASE_PATH: '/k8s/documents/POSTHOLF_BASE_PATH' + POSTHOLF_CLIENTID: '/k8s/documents/POSTHOLF_CLIENTID' + POSTHOLF_CLIENT_SECRET: '/k8s/documents/POSTHOLF_CLIENT_SECRET' + POSTHOLF_TOKEN_URL: '/k8s/documents/POSTHOLF_TOKEN_URL' + REGULATIONS_API_URL: '/k8s/api/REGULATIONS_API_URL' + REGULATIONS_FILE_UPLOAD_KEY_DRAFT: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_DRAFT' + REGULATIONS_FILE_UPLOAD_KEY_PRESIGNED: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_PRESIGNED' + REGULATIONS_FILE_UPLOAD_KEY_PUBLISH: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_PUBLISH' + XROAD_HEALTH_INSURANCE_PASSWORD: '/k8s/health-insurance/XROAD-PASSWORD' + XROAD_HEALTH_INSURANCE_USERNAME: '/k8s/health-insurance/XROAD-USER' + XROAD_HEALTH_INSURANCE_V2_XROAD_PASSWORD: '/k8s/api/HEALTH_INSURANCE_V2_XROAD_PASSWORD' + XROAD_HEALTH_INSURANCE_V2_XROAD_USERNAME: '/k8s/api/HEALTH_INSURANCE_V2_XROAD_USERNAME' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/endorsement-system-api/values.dev.yaml b/charts/services/endorsement-system-api/values.dev.yaml index c86d4629ff42..df8da5be9bc2 100644 --- a/charts/services/endorsement-system-api/values.dev.yaml +++ b/charts/services/endorsement-system-api/values.dev.yaml @@ -5,115 +5,125 @@ # ##################################################################### -service: - name: 'endorsement-system-api' - args: - - '--tls-min-v1.0' - - '--no-experimental-fetch' - - 'main.js' - command: - - 'node' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'endorsement-system-api' +args: + - '--tls-min-v1.0' + - '--no-experimental-fetch' + - 'main.js' +command: + - 'node' +enabled: true +env: + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'services_endorsements_api' + DB_REPLICAS_HOST: 'postgres-applications-reader.internal' + DB_USER: 'services_endorsements_api' + EMAIL_FROM_ADDRESS: 'development@island.is' + EMAIL_FROM_NAME: 'devland.is' + EMAIL_REGION: 'eu-west-1' + ENDORSEMENT_SYSTEM_EXPORTS_BUCKET_NAME: 'island-is-dev-exports-endorsement-system' + IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/endorsement' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' + LOG_LEVEL: 'info' + NATIONAL_REGISTRY_B2C_CLIENT_ID: 'b464afdd-056b-406d-b650-6d41733cfeb7' + NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentitydev.b2clogin.com/skraidentitydev.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' + NATIONAL_REGISTRY_B2C_PATH: 'IS-DEV/GOV/10001/SKRA-Cloud-Protected/Midlun-v1' + NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentitydev.onmicrosoft.com/midlun/.default' + NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' + XROAD_BASE_PATH: 'http://securityserver.dev01.devland.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.dev01.devland.is/r1/IS-DEV' + XROAD_CLIENT_ID: 'IS-DEV/GOV/10000/island-is-client' + XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' + XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS-DEV/GOV/10001/SKRA-Protected/Einstaklingar-v1' + XROAD_TJODSKRA_API_PATH: '/SKRA-Protected/Einstaklingar-v1' + XROAD_TJODSKRA_MEMBER_CODE: '10001' + XROAD_TLS_BASE_PATH: 'https://securityserver.dev01.devland.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.dev01.devland.is/r1/IS-DEV' +grantNamespaces: + - 'islandis' + - 'application-system' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-endorsements-api' +initContainer: + containers: + - args: + - 'sequelize-cli' + - 'db:migrate' + command: + - 'npx' + name: 'migrations' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' env: DB_HOST: 'postgres-applications.internal' DB_NAME: 'services_endorsements_api' DB_REPLICAS_HOST: 'postgres-applications-reader.internal' DB_USER: 'services_endorsements_api' - EMAIL_FROM_ADDRESS: 'development@island.is' - EMAIL_FROM_NAME: 'devland.is' - EMAIL_REGION: 'eu-west-1' - ENDORSEMENT_SYSTEM_EXPORTS_BUCKET_NAME: 'island-is-dev-exports-endorsement-system' - IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/endorsement' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' - LOG_LEVEL: 'info' - NATIONAL_REGISTRY_B2C_CLIENT_ID: 'b464afdd-056b-406d-b650-6d41733cfeb7' - NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentitydev.b2clogin.com/skraidentitydev.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' - NATIONAL_REGISTRY_B2C_PATH: 'IS-DEV/GOV/10001/SKRA-Cloud-Protected/Midlun-v1' - NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentitydev.onmicrosoft.com/midlun/.default' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' SERVERSIDE_FEATURES_ON: '' - XROAD_BASE_PATH: 'http://securityserver.dev01.devland.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.dev01.devland.is/r1/IS-DEV' - XROAD_CLIENT_ID: 'IS-DEV/GOV/10000/island-is-client' - XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' - XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS-DEV/GOV/10001/SKRA-Protected/Einstaklingar-v1' - XROAD_TJODSKRA_API_PATH: '/SKRA-Protected/Einstaklingar-v1' - XROAD_TJODSKRA_MEMBER_CODE: '10001' - XROAD_TLS_BASE_PATH: 'https://securityserver.dev01.devland.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.dev01.devland.is/r1/IS-DEV' - grantNamespaces: - - 'islandis' - - 'application-system' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-endorsements-api' - initContainer: - containers: - - args: - - 'sequelize-cli' - - 'db:migrate' - command: - - 'npx' - name: 'migrations' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'services_endorsements_api' - DB_REPLICAS_HOST: 'postgres-applications-reader.internal' - DB_USER: 'services_endorsements_api' - SERVERSIDE_FEATURES_ON: '' - secrets: - DB_PASS: '/k8s/services-endorsements-api/DB_PASSWORD' - namespace: 'endorsement-system' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '100m' - memory: '128Mi' secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' DB_PASS: '/k8s/services-endorsements-api/DB_PASSWORD' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/endorsement-system-api/IDS-shared-secret' - NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/api/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/endorsement-system-api' - create: true - name: 'endorsement-system-api' +namespace: 'endorsement-system' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '100m' + memory: '128Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/services-endorsements-api/DB_PASSWORD' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/endorsement-system-api/IDS-shared-secret' + NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/api/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/endorsement-system-api' + create: true + name: 'endorsement-system-api' diff --git a/charts/services/endorsement-system-api/values.prod.yaml b/charts/services/endorsement-system-api/values.prod.yaml index c464ea45fd05..da5c42fcc716 100644 --- a/charts/services/endorsement-system-api/values.prod.yaml +++ b/charts/services/endorsement-system-api/values.prod.yaml @@ -5,115 +5,125 @@ # ##################################################################### -service: - name: 'endorsement-system-api' - args: - - '--tls-min-v1.0' - - '--no-experimental-fetch' - - 'main.js' - command: - - 'node' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'endorsement-system-api' +args: + - '--tls-min-v1.0' + - '--no-experimental-fetch' + - 'main.js' +command: + - 'node' +enabled: true +env: + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'services_endorsements_api' + DB_REPLICAS_HOST: 'postgres-applications.internal' + DB_USER: 'services_endorsements_api' + EMAIL_FROM_ADDRESS: 'noreply@island.is' + EMAIL_FROM_NAME: 'island.is' + EMAIL_REGION: 'eu-west-1' + ENDORSEMENT_SYSTEM_EXPORTS_BUCKET_NAME: 'island-is-prod-exports-endorsement-system' + IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/endorsement' + IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' + LOG_LEVEL: 'info' + NATIONAL_REGISTRY_B2C_CLIENT_ID: '2304d7ca-7ed3-4188-8b6d-e1b7e0e3df7f' + NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentity.b2clogin.com/skraidentity.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' + NATIONAL_REGISTRY_B2C_PATH: 'IS/GOV/6503760649/SKRA-Cloud-Protected/Midlun-v1' + NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentity.onmicrosoft.com/midlun/.default' + NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' + XROAD_BASE_PATH: 'http://securityserver.island.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.island.is/r1/IS' + XROAD_CLIENT_ID: 'IS/GOV/5501692829/island-is-client' + XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379"]' + XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS/GOV/6503760649/SKRA-Protected/Einstaklingar-v1' + XROAD_TJODSKRA_API_PATH: '/SKRA-Protected/Einstaklingar-v1' + XROAD_TJODSKRA_MEMBER_CODE: '6503760649' + XROAD_TLS_BASE_PATH: 'https://securityserver.island.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.island.is/r1/IS' +grantNamespaces: + - 'islandis' + - 'application-system' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 3 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-endorsements-api' +initContainer: + containers: + - args: + - 'sequelize-cli' + - 'db:migrate' + command: + - 'npx' + name: 'migrations' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' env: DB_HOST: 'postgres-applications.internal' DB_NAME: 'services_endorsements_api' DB_REPLICAS_HOST: 'postgres-applications.internal' DB_USER: 'services_endorsements_api' - EMAIL_FROM_ADDRESS: 'noreply@island.is' - EMAIL_FROM_NAME: 'island.is' - EMAIL_REGION: 'eu-west-1' - ENDORSEMENT_SYSTEM_EXPORTS_BUCKET_NAME: 'island-is-prod-exports-endorsement-system' - IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/endorsement' - IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' - LOG_LEVEL: 'info' - NATIONAL_REGISTRY_B2C_CLIENT_ID: '2304d7ca-7ed3-4188-8b6d-e1b7e0e3df7f' - NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentity.b2clogin.com/skraidentity.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' - NATIONAL_REGISTRY_B2C_PATH: 'IS/GOV/6503760649/SKRA-Cloud-Protected/Midlun-v1' - NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentity.onmicrosoft.com/midlun/.default' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - XROAD_BASE_PATH: 'http://securityserver.island.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.island.is/r1/IS' - XROAD_CLIENT_ID: 'IS/GOV/5501692829/island-is-client' - XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379"]' - XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS/GOV/6503760649/SKRA-Protected/Einstaklingar-v1' - XROAD_TJODSKRA_API_PATH: '/SKRA-Protected/Einstaklingar-v1' - XROAD_TJODSKRA_MEMBER_CODE: '6503760649' - XROAD_TLS_BASE_PATH: 'https://securityserver.island.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.island.is/r1/IS' - grantNamespaces: - - 'islandis' - - 'application-system' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 3 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-endorsements-api' - initContainer: - containers: - - args: - - 'sequelize-cli' - - 'db:migrate' - command: - - 'npx' - name: 'migrations' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'services_endorsements_api' - DB_REPLICAS_HOST: 'postgres-applications.internal' - DB_USER: 'services_endorsements_api' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - secrets: - DB_PASS: '/k8s/services-endorsements-api/DB_PASSWORD' - namespace: 'endorsement-system' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 3 - max: 10 - min: 3 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '100m' - memory: '128Mi' secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' DB_PASS: '/k8s/services-endorsements-api/DB_PASSWORD' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/endorsement-system-api/IDS-shared-secret' - NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/api/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/endorsement-system-api' - create: true - name: 'endorsement-system-api' +namespace: 'endorsement-system' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 3 + max: 10 + min: 3 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '100m' + memory: '128Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/services-endorsements-api/DB_PASSWORD' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/endorsement-system-api/IDS-shared-secret' + NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/api/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/endorsement-system-api' + create: true + name: 'endorsement-system-api' diff --git a/charts/services/endorsement-system-api/values.staging.yaml b/charts/services/endorsement-system-api/values.staging.yaml index b4e50fa90d4c..f4b5b1cc659f 100644 --- a/charts/services/endorsement-system-api/values.staging.yaml +++ b/charts/services/endorsement-system-api/values.staging.yaml @@ -5,115 +5,125 @@ # ##################################################################### -service: - name: 'endorsement-system-api' - args: - - '--tls-min-v1.0' - - '--no-experimental-fetch' - - 'main.js' - command: - - 'node' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'endorsement-system-api' +args: + - '--tls-min-v1.0' + - '--no-experimental-fetch' + - 'main.js' +command: + - 'node' +enabled: true +env: + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'services_endorsements_api' + DB_REPLICAS_HOST: 'postgres-applications.internal' + DB_USER: 'services_endorsements_api' + EMAIL_FROM_ADDRESS: 'development@island.is' + EMAIL_FROM_NAME: 'devland.is' + EMAIL_REGION: 'eu-west-1' + ENDORSEMENT_SYSTEM_EXPORTS_BUCKET_NAME: 'island-is-staging-exports-endorsement-system' + IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/endorsement' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' + LOG_LEVEL: 'info' + NATIONAL_REGISTRY_B2C_CLIENT_ID: 'ca128c23-b43c-443d-bade-ec5a146a933f' + NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentitydev.b2clogin.com/skraidentitystaging.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' + NATIONAL_REGISTRY_B2C_PATH: 'IS-TEST/GOV/6503760649/SKRA-Cloud-Protected/Midlun-v1' + NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentitystaging.onmicrosoft.com/midlun/.default' + NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' + XROAD_BASE_PATH: 'http://securityserver.staging01.devland.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.staging01.devland.is/r1/IS-TEST' + XROAD_CLIENT_ID: 'IS-TEST/GOV/5501692829/island-is-client' + XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' + XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS-TEST/GOV/6503760649/SKRA-Protected/Einstaklingar-v1' + XROAD_TJODSKRA_API_PATH: '/SKRA-Protected/Einstaklingar-v1' + XROAD_TJODSKRA_MEMBER_CODE: '6503760649' + XROAD_TLS_BASE_PATH: 'https://securityserver.staging01.devland.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.staging01.devland.is/r1/IS-TEST' +grantNamespaces: + - 'islandis' + - 'application-system' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-endorsements-api' +initContainer: + containers: + - args: + - 'sequelize-cli' + - 'db:migrate' + command: + - 'npx' + name: 'migrations' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' env: DB_HOST: 'postgres-applications.internal' DB_NAME: 'services_endorsements_api' DB_REPLICAS_HOST: 'postgres-applications.internal' DB_USER: 'services_endorsements_api' - EMAIL_FROM_ADDRESS: 'development@island.is' - EMAIL_FROM_NAME: 'devland.is' - EMAIL_REGION: 'eu-west-1' - ENDORSEMENT_SYSTEM_EXPORTS_BUCKET_NAME: 'island-is-staging-exports-endorsement-system' - IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/endorsement' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' - LOG_LEVEL: 'info' - NATIONAL_REGISTRY_B2C_CLIENT_ID: 'ca128c23-b43c-443d-bade-ec5a146a933f' - NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentitydev.b2clogin.com/skraidentitystaging.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' - NATIONAL_REGISTRY_B2C_PATH: 'IS-TEST/GOV/6503760649/SKRA-Cloud-Protected/Midlun-v1' - NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentitystaging.onmicrosoft.com/midlun/.default' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' SERVERSIDE_FEATURES_ON: '' - XROAD_BASE_PATH: 'http://securityserver.staging01.devland.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.staging01.devland.is/r1/IS-TEST' - XROAD_CLIENT_ID: 'IS-TEST/GOV/5501692829/island-is-client' - XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' - XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS-TEST/GOV/6503760649/SKRA-Protected/Einstaklingar-v1' - XROAD_TJODSKRA_API_PATH: '/SKRA-Protected/Einstaklingar-v1' - XROAD_TJODSKRA_MEMBER_CODE: '6503760649' - XROAD_TLS_BASE_PATH: 'https://securityserver.staging01.devland.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.staging01.devland.is/r1/IS-TEST' - grantNamespaces: - - 'islandis' - - 'application-system' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-endorsements-api' - initContainer: - containers: - - args: - - 'sequelize-cli' - - 'db:migrate' - command: - - 'npx' - name: 'migrations' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'services_endorsements_api' - DB_REPLICAS_HOST: 'postgres-applications.internal' - DB_USER: 'services_endorsements_api' - SERVERSIDE_FEATURES_ON: '' - secrets: - DB_PASS: '/k8s/services-endorsements-api/DB_PASSWORD' - namespace: 'endorsement-system' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '100m' - memory: '128Mi' secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' DB_PASS: '/k8s/services-endorsements-api/DB_PASSWORD' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/endorsement-system-api/IDS-shared-secret' - NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/api/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/endorsement-system-api' - create: true - name: 'endorsement-system-api' +namespace: 'endorsement-system' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '100m' + memory: '128Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/services-endorsements-api/DB_PASSWORD' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/endorsement-system-api/IDS-shared-secret' + NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/api/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/endorsement-system-api' + create: true + name: 'endorsement-system-api' diff --git a/charts/services/external-contracts-tests/values.dev.yaml b/charts/services/external-contracts-tests/values.dev.yaml index e21662c8da75..a15566ac5da0 100644 --- a/charts/services/external-contracts-tests/values.dev.yaml +++ b/charts/services/external-contracts-tests/values.dev.yaml @@ -5,60 +5,70 @@ # ##################################################################### -service: - name: 'external-contracts-tests' - enabled: true +global: env: - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=921 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - XROAD_BASE_PATH: 'http://securityserver.dev01.devland.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.dev01.devland.is/r1/IS-DEV' - XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' - XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS-DEV/GOV/10001/SKRA-Protected/Einstaklingar-v1' - XROAD_TJODSKRA_API_PATH: '/SKRA-Protected/Einstaklingar-v1' - XROAD_TJODSKRA_MEMBER_CODE: '10001' - XROAD_TLS_BASE_PATH: 'https://securityserver.dev01.devland.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.dev01.devland.is/r1/IS-DEV' - grantNamespaces: [] - grantNamespacesEnabled: false - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/external-contracts-tests' - namespace: 'external-contracts-tests' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '1' - memory: '1024Mi' - requests: - cpu: '500m' - memory: '512Mi' - schedule: '0 11 * * *' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'external-contracts-tests' +enabled: true +env: + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=921 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' + XROAD_BASE_PATH: 'http://securityserver.dev01.devland.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.dev01.devland.is/r1/IS-DEV' + XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' + XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS-DEV/GOV/10001/SKRA-Protected/Einstaklingar-v1' + XROAD_TJODSKRA_API_PATH: '/SKRA-Protected/Einstaklingar-v1' + XROAD_TJODSKRA_MEMBER_CODE: '10001' + XROAD_TLS_BASE_PATH: 'https://securityserver.dev01.devland.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.dev01.devland.is/r1/IS-DEV' +grantNamespaces: [] +grantNamespacesEnabled: false +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/external-contracts-tests' +namespace: 'external-contracts-tests' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '1' + memory: '1024Mi' + requests: + cpu: '500m' + memory: '512Mi' +schedule: '0 11 * * *' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/github-actions-cache/values.dev.yaml b/charts/services/github-actions-cache/values.dev.yaml index 86bcc7465281..9df74a78ec73 100644 --- a/charts/services/github-actions-cache/values.dev.yaml +++ b/charts/services/github-actions-cache/values.dev.yaml @@ -5,75 +5,85 @@ # ##################################################################### -service: - name: 'github-actions-cache' - args: - - '--tls-min-v1.0' - - '--no-experimental-fetch' - - 'main.js' - command: - - 'node' - enabled: true +global: env: - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460' - REDIS_NODES: 'clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379' - SERVERSIDE_FEATURES_ON: '' - grantNamespaces: [] - grantNamespacesEnabled: false - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/health' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 8 - min: 3 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/github-actions-cache' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/enable-global-auth: 'false' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'cache.dev01.devland.is' - paths: - - '/' - namespace: 'github-actions-cache' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 5 - max: 8 - min: 3 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '100m' - memory: '256Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'github-actions-cache' +args: + - '--tls-min-v1.0' + - '--no-experimental-fetch' + - 'main.js' +command: + - 'node' +enabled: true +env: + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460' + REDIS_NODES: 'clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: [] +grantNamespacesEnabled: false +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/health' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 8 + min: 3 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/github-actions-cache' +ingress: + primary-alb: annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/github-actions-cache' - create: true - name: 'github-actions-cache' + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/enable-global-auth: 'false' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'cache.dev01.devland.is' + paths: + - '/' +namespace: 'github-actions-cache' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 5 + max: 8 + min: 3 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '100m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/github-actions-cache' + create: true + name: 'github-actions-cache' diff --git a/charts/services/icelandic-names-registry-backend/values.dev.yaml b/charts/services/icelandic-names-registry-backend/values.dev.yaml index 0309a8d6874c..30ab74c44c9b 100644 --- a/charts/services/icelandic-names-registry-backend/values.dev.yaml +++ b/charts/services/icelandic-names-registry-backend/values.dev.yaml @@ -5,94 +5,104 @@ # ##################################################################### -service: - name: 'icelandic-names-registry-backend' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'icelandic-names-registry-backend' +enabled: true +env: + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'icelandic_names_registry_backend' + DB_REPLICAS_HOST: 'postgres-applications-reader.internal' + DB_USER: 'icelandic_names_registry_backend' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: + - 'islandis' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/icelandic-names-registry-backend' +initContainer: + containers: + - args: + - 'sequelize-cli' + - 'db:migrate' + command: + - 'npx' + name: 'migrations' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' + - args: + - 'sequelize-cli' + - 'db:seed:all' + command: + - 'npx' + name: 'seed' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' env: DB_HOST: 'postgres-applications.internal' DB_NAME: 'icelandic_names_registry_backend' DB_REPLICAS_HOST: 'postgres-applications-reader.internal' DB_USER: 'icelandic_names_registry_backend' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' SERVERSIDE_FEATURES_ON: '' - grantNamespaces: - - 'islandis' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/icelandic-names-registry-backend' - initContainer: - containers: - - args: - - 'sequelize-cli' - - 'db:migrate' - command: - - 'npx' - name: 'migrations' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - - args: - - 'sequelize-cli' - - 'db:seed:all' - command: - - 'npx' - name: 'seed' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'icelandic_names_registry_backend' - DB_REPLICAS_HOST: 'postgres-applications-reader.internal' - DB_USER: 'icelandic_names_registry_backend' - SERVERSIDE_FEATURES_ON: '' - secrets: - DB_PASS: '/k8s/icelandic-names-registry-backend/DB_PASSWORD' - namespace: 'icelandic-names-registry' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '100m' - memory: '128Mi' secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' DB_PASS: '/k8s/icelandic-names-registry-backend/DB_PASSWORD' - securityContext: - allowPrivilegeEscalation: false - privileged: false +namespace: 'icelandic-names-registry' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '100m' + memory: '128Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/icelandic-names-registry-backend/DB_PASSWORD' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/icelandic-names-registry-backend/values.prod.yaml b/charts/services/icelandic-names-registry-backend/values.prod.yaml index 2f109550ceec..901da70b33e9 100644 --- a/charts/services/icelandic-names-registry-backend/values.prod.yaml +++ b/charts/services/icelandic-names-registry-backend/values.prod.yaml @@ -5,94 +5,104 @@ # ##################################################################### -service: - name: 'icelandic-names-registry-backend' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'icelandic-names-registry-backend' +enabled: true +env: + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'icelandic_names_registry_backend' + DB_REPLICAS_HOST: 'postgres-applications.internal' + DB_USER: 'icelandic_names_registry_backend' + IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' +grantNamespaces: + - 'islandis' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 3 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/icelandic-names-registry-backend' +initContainer: + containers: + - args: + - 'sequelize-cli' + - 'db:migrate' + command: + - 'npx' + name: 'migrations' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' + - args: + - 'sequelize-cli' + - 'db:seed:all' + command: + - 'npx' + name: 'seed' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' env: DB_HOST: 'postgres-applications.internal' DB_NAME: 'icelandic_names_registry_backend' DB_REPLICAS_HOST: 'postgres-applications.internal' DB_USER: 'icelandic_names_registry_backend' - IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - grantNamespaces: - - 'islandis' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 3 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/icelandic-names-registry-backend' - initContainer: - containers: - - args: - - 'sequelize-cli' - - 'db:migrate' - command: - - 'npx' - name: 'migrations' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - - args: - - 'sequelize-cli' - - 'db:seed:all' - command: - - 'npx' - name: 'seed' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'icelandic_names_registry_backend' - DB_REPLICAS_HOST: 'postgres-applications.internal' - DB_USER: 'icelandic_names_registry_backend' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - secrets: - DB_PASS: '/k8s/icelandic-names-registry-backend/DB_PASSWORD' - namespace: 'icelandic-names-registry' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 3 - max: 10 - min: 3 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '100m' - memory: '128Mi' secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' DB_PASS: '/k8s/icelandic-names-registry-backend/DB_PASSWORD' - securityContext: - allowPrivilegeEscalation: false - privileged: false +namespace: 'icelandic-names-registry' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 3 + max: 10 + min: 3 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '100m' + memory: '128Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/icelandic-names-registry-backend/DB_PASSWORD' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/icelandic-names-registry-backend/values.staging.yaml b/charts/services/icelandic-names-registry-backend/values.staging.yaml index e43ee438fc86..3ccbd946ad06 100644 --- a/charts/services/icelandic-names-registry-backend/values.staging.yaml +++ b/charts/services/icelandic-names-registry-backend/values.staging.yaml @@ -5,94 +5,104 @@ # ##################################################################### -service: - name: 'icelandic-names-registry-backend' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'icelandic-names-registry-backend' +enabled: true +env: + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'icelandic_names_registry_backend' + DB_REPLICAS_HOST: 'postgres-applications.internal' + DB_USER: 'icelandic_names_registry_backend' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: + - 'islandis' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/icelandic-names-registry-backend' +initContainer: + containers: + - args: + - 'sequelize-cli' + - 'db:migrate' + command: + - 'npx' + name: 'migrations' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' + - args: + - 'sequelize-cli' + - 'db:seed:all' + command: + - 'npx' + name: 'seed' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' env: DB_HOST: 'postgres-applications.internal' DB_NAME: 'icelandic_names_registry_backend' DB_REPLICAS_HOST: 'postgres-applications.internal' DB_USER: 'icelandic_names_registry_backend' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' SERVERSIDE_FEATURES_ON: '' - grantNamespaces: - - 'islandis' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/icelandic-names-registry-backend' - initContainer: - containers: - - args: - - 'sequelize-cli' - - 'db:migrate' - command: - - 'npx' - name: 'migrations' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - - args: - - 'sequelize-cli' - - 'db:seed:all' - command: - - 'npx' - name: 'seed' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'icelandic_names_registry_backend' - DB_REPLICAS_HOST: 'postgres-applications.internal' - DB_USER: 'icelandic_names_registry_backend' - SERVERSIDE_FEATURES_ON: '' - secrets: - DB_PASS: '/k8s/icelandic-names-registry-backend/DB_PASSWORD' - namespace: 'icelandic-names-registry' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '100m' - memory: '128Mi' secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' DB_PASS: '/k8s/icelandic-names-registry-backend/DB_PASSWORD' - securityContext: - allowPrivilegeEscalation: false - privileged: false +namespace: 'icelandic-names-registry' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '100m' + memory: '128Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/icelandic-names-registry-backend/DB_PASSWORD' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/identity-server/values.dev.yaml b/charts/services/identity-server/values.dev.yaml index 70311119a643..ea8cd4ed5200 100644 --- a/charts/services/identity-server/values.dev.yaml +++ b/charts/services/identity-server/values.dev.yaml @@ -5,126 +5,136 @@ # ##################################################################### -service: - name: 'identity-server' - annotations: - ad.datadoghq.com/identity-server.check_names: '["openmetrics"]' - ad.datadoghq.com/identity-server.init_configs: '[{}]' - ad.datadoghq.com/identity-server.instances: '[{"prometheus_url": "http://%%host%%:5003/metrics","namespace": "identity-server","metrics":["*"]}]' - ad.datadoghq.com/identity-server.logs: '[{"service": "identity-server", "source": "csharp"}]' - enabled: true +global: env: - ASPNETCORE_URLS: 'http://*:5000' - AWS__CloudWatch__AuditLogGroup: '/identity-server/audit-log' - AWS__SystemsManager__ParameterStore__DataProtectionPrefix: '/k8s/identity-server/DataProtectionSecret' - Application__AllowedRedirectUris: 'https://beta.dev01.devland.is/minarsidur,https://beta.dev01.devland.is/umsoknir,http://localhost:4200/minarsidur,http://localhost:4242/umsoknir' - Application__MinCompletionPortThreads: '10' - AudkenniSettings__Retries: '24' - CORECLR_ENABLE_PROFILING: '1' - CORECLR_PROFILER: '{846F5F1C-F9AE-4B07-969E-05C26BC060D8}' - CORECLR_PROFILER_PATH: '/opt/datadog/Datadog.Trace.ClrProfiler.Native.so' - CacheSettings__Enabled: 'true' - ContentfulSettings__BaseAddress: 'https://preview.contentful.com' - DD_DOTNET_TRACER_HOME: '/opt/datadog' - DD_INTEGRATIONS: '/opt/datadog/integrations.json' - DD_TRACE_DEBUG: 'true' - Datadog__Metrics__Port: '5003' - IdentityServer__ConsentsScope: '@island.is/auth/consents' - IdentityServer__EnableFakeLogin: 'true' - IdentityServer__EnableFeatureDeploymentWildcards: 'true' - IdentityServer__KeyManagement__Enabled: 'true' - IdentityServer__SigningCertificate__Path: '/etc/config/ids-signing.pfx' - LOG_LEVEL: 'info' - MeUserProfileApiSettings__BaseAddress: 'http://web-service-portal-api.service-portal.svc.cluster.local' - NODE_OPTIONS: '--max-old-space-size=1843 -r dd-trace/init' - PersistenceSettings__BaseAddress: 'http://web-services-auth-ids-api' - PersistenceSettings__DelegationsCacheEnabled: 'false' - RedisSettings__Address: 'clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com' - RedisSettings__Port: '6379' - SERVERSIDE_FEATURES_ON: '' - SessionsApiSettings__BaseAddress: 'http://web-services-sessions.services-sessions.svc.cluster.local' - files: - - 'ids-signing.pfx' - grantNamespaces: - - 'nginx-ingress-external' - - 'user-notification' - - 'portals-admin' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - port: 5010 - readiness: - initialDelaySeconds: 3 - path: '/readiness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/identity-server' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/enable-global-auth: 'false' - nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'identity-server.dev01.devland.is' - paths: - - '/' - namespace: 'identity-server' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: - - accessModes: 'ReadWriteMany' - mountPath: '/keys' - name: 'identity-server' - size: '1Gi' - storageClass: 'efs-csi' - useExisting: false - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '4000m' - memory: '2048Mi' - requests: - cpu: '1000m' - memory: '1024Mi' - secrets: - AudkenniSettings__ClientId: '/k8s/identity-server/AudkenniClientId' - AudkenniSettings__ClientSecret: '/k8s/identity-server/AudkenniClientSecret' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - ContentfulSettings__AccessToken: '/k8s/identity-server/CONTENTFUL_ACCESS_TOKEN' - FeatureFlags__ConfigCatSdkKey: '/k8s/configcat/CONFIGCAT_SDK_KEY' - IdentityServer__FakePersons: '/k8s/identity-server/FakePersons' - IdentityServer__LicenseKey: '/k8s/identity-server/LicenseKey' - IdentityServer__SigningCertificate__Passphrase: '/k8s/identity-server/SigningCertificatePassphrase' - PersistenceSettings__AccessTokenManagementSettings__ClientSecret: '/k8s/identity-server/ClientSecret' - Redaction__UserIdentifiers__Key: '/k8s/identity-server/redaction/USER_IDENTIFIERS_KEY' - Redaction__UserIdentifiers__KeyId: '/k8s/identity-server/redaction/USER_IDENTIFIERS_KEY_ID' - Scopes__Admin__RootAccessList: '/k8s/identity-server/AdminRootAccessList' - securityContext: - allowPrivilegeEscalation: false - privileged: false - service: - targetPort: 5000 - serviceAccount: + AUDIT_GROUP_NAME: '/identity-server/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'identity-server' +annotations: + ad.datadoghq.com/identity-server.check_names: '["openmetrics"]' + ad.datadoghq.com/identity-server.init_configs: '[{}]' + ad.datadoghq.com/identity-server.instances: '[{"prometheus_url": "http://%%host%%:5003/metrics","namespace": "identity-server","metrics":["*"]}]' + ad.datadoghq.com/identity-server.logs: '[{"service": "identity-server", "source": "csharp"}]' +enabled: true +env: + ASPNETCORE_URLS: 'http://*:5000' + AWS__CloudWatch__AuditLogGroup: '/identity-server/audit-log' + AWS__SystemsManager__ParameterStore__DataProtectionPrefix: '/k8s/identity-server/DataProtectionSecret' + Application__AllowedRedirectUris: 'https://beta.dev01.devland.is/minarsidur,https://beta.dev01.devland.is/umsoknir,http://localhost:4200/minarsidur,http://localhost:4242/umsoknir' + Application__MinCompletionPortThreads: '10' + AudkenniSettings__Retries: '24' + CORECLR_ENABLE_PROFILING: '1' + CORECLR_PROFILER: '{846F5F1C-F9AE-4B07-969E-05C26BC060D8}' + CORECLR_PROFILER_PATH: '/opt/datadog/Datadog.Trace.ClrProfiler.Native.so' + CacheSettings__Enabled: 'true' + ContentfulSettings__BaseAddress: 'https://preview.contentful.com' + DD_DOTNET_TRACER_HOME: '/opt/datadog' + DD_INTEGRATIONS: '/opt/datadog/integrations.json' + DD_TRACE_DEBUG: 'true' + Datadog__Metrics__Port: '5003' + IdentityServer__ConsentsScope: '@island.is/auth/consents' + IdentityServer__EnableFakeLogin: 'true' + IdentityServer__EnableFeatureDeploymentWildcards: 'true' + IdentityServer__KeyManagement__Enabled: 'true' + IdentityServer__SigningCertificate__Path: '/etc/config/ids-signing.pfx' + LOG_LEVEL: 'info' + MeUserProfileApiSettings__BaseAddress: 'http://web-service-portal-api.service-portal.svc.cluster.local' + NODE_OPTIONS: '--max-old-space-size=1843 -r dd-trace/init' + PersistenceSettings__BaseAddress: 'http://web-services-auth-ids-api' + PersistenceSettings__DelegationsCacheEnabled: 'false' + RedisSettings__Address: 'clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com' + RedisSettings__Port: '6379' + SERVERSIDE_FEATURES_ON: '' + SessionsApiSettings__BaseAddress: 'http://web-services-sessions.services-sessions.svc.cluster.local' +files: + - 'ids-signing.pfx' +grantNamespaces: + - 'nginx-ingress-external' + - 'user-notification' + - 'portals-admin' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + port: 5010 + readiness: + initialDelaySeconds: 3 + path: '/readiness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/identity-server' +ingress: + primary-alb: annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/identity-server' - create: true + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/enable-global-auth: 'false' + nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'identity-server.dev01.devland.is' + paths: + - '/' +namespace: 'identity-server' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: + - accessModes: 'ReadWriteMany' + mountPath: '/keys' name: 'identity-server' + size: '1Gi' + storageClass: 'efs-csi' + useExisting: false +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '4000m' + memory: '2048Mi' + requests: + cpu: '1000m' + memory: '1024Mi' +secrets: + AudkenniSettings__ClientId: '/k8s/identity-server/AudkenniClientId' + AudkenniSettings__ClientSecret: '/k8s/identity-server/AudkenniClientSecret' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + ContentfulSettings__AccessToken: '/k8s/identity-server/CONTENTFUL_ACCESS_TOKEN' + FeatureFlags__ConfigCatSdkKey: '/k8s/configcat/CONFIGCAT_SDK_KEY' + IdentityServer__FakePersons: '/k8s/identity-server/FakePersons' + IdentityServer__LicenseKey: '/k8s/identity-server/LicenseKey' + IdentityServer__SigningCertificate__Passphrase: '/k8s/identity-server/SigningCertificatePassphrase' + PersistenceSettings__AccessTokenManagementSettings__ClientSecret: '/k8s/identity-server/ClientSecret' + Redaction__UserIdentifiers__Key: '/k8s/identity-server/redaction/USER_IDENTIFIERS_KEY' + Redaction__UserIdentifiers__KeyId: '/k8s/identity-server/redaction/USER_IDENTIFIERS_KEY_ID' + Scopes__Admin__RootAccessList: '/k8s/identity-server/AdminRootAccessList' +securityContext: + allowPrivilegeEscalation: false + privileged: false +service: + targetPort: 5000 +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/identity-server' + create: true + name: 'identity-server' diff --git a/charts/services/identity-server/values.prod.yaml b/charts/services/identity-server/values.prod.yaml index f26f3a86b7c0..d086237e7757 100644 --- a/charts/services/identity-server/values.prod.yaml +++ b/charts/services/identity-server/values.prod.yaml @@ -5,125 +5,135 @@ # ##################################################################### -service: - name: 'identity-server' - annotations: - ad.datadoghq.com/identity-server.check_names: '["openmetrics"]' - ad.datadoghq.com/identity-server.init_configs: '[{}]' - ad.datadoghq.com/identity-server.instances: '[{"prometheus_url": "http://%%host%%:5003/metrics","namespace": "identity-server","metrics":["*"]}]' - ad.datadoghq.com/identity-server.logs: '[{"service": "identity-server", "source": "csharp"}]' - enabled: true +global: env: - ASPNETCORE_URLS: 'http://*:5000' - AWS__CloudWatch__AuditLogGroup: '/identity-server/audit-log' - AWS__SystemsManager__ParameterStore__DataProtectionPrefix: '/k8s/identity-server/DataProtectionSecret' - Application__AllowedRedirectUris: 'https://island.is/minarsidur,https://island.is/umsoknir' - Application__MinCompletionPortThreads: '10' - AudkenniSettings__Retries: '24' - CORECLR_ENABLE_PROFILING: '1' - CORECLR_PROFILER: '{846F5F1C-F9AE-4B07-969E-05C26BC060D8}' - CORECLR_PROFILER_PATH: '/opt/datadog/Datadog.Trace.ClrProfiler.Native.so' - CacheSettings__Enabled: 'true' - ContentfulSettings__BaseAddress: 'https://cdn.contentful.com' - DD_DOTNET_TRACER_HOME: '/opt/datadog' - DD_INTEGRATIONS: '/opt/datadog/integrations.json' - DD_TRACE_DEBUG: 'true' - Datadog__Metrics__Port: '5003' - IdentityServer__ConsentsScope: '@island.is/auth/consents' - IdentityServer__EnableFakeLogin: 'true' - IdentityServer__EnableFeatureDeploymentWildcards: 'false' - IdentityServer__KeyManagement__Enabled: 'true' - IdentityServer__SigningCertificate__Path: '/etc/config/ids-signing.pfx' - LOG_LEVEL: 'info' - MeUserProfileApiSettings__BaseAddress: 'https://service-portal-api.internal.island.is' - NODE_OPTIONS: '--max-old-space-size=1843 -r dd-trace/init' - PersistenceSettings__BaseAddress: 'http://web-services-auth-ids-api' - PersistenceSettings__DelegationsCacheEnabled: 'true' - RedisSettings__Address: 'clustercfg.general-redis-cluster-group.dnugi2.euw1.cache.amazonaws.com' - RedisSettings__Port: '6379' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - SessionsApiSettings__BaseAddress: 'https://sessions-api.internal.island.is' - files: - - 'ids-signing.pfx' - grantNamespaces: - - 'nginx-ingress-external' - - 'user-notification' - - 'portals-admin' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - port: 5010 - readiness: - initialDelaySeconds: 3 - path: '/readiness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 3 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/identity-server' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'innskra.island.is' - paths: - - '/' - namespace: 'identity-server' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: - - accessModes: 'ReadWriteMany' - mountPath: '/keys' - name: 'identity-server' - size: '1Gi' - storageClass: 'efs-csi' - useExisting: false - replicaCount: - default: 3 - max: 10 - min: 3 - resources: - limits: - cpu: '4000m' - memory: '2048Mi' - requests: - cpu: '1000m' - memory: '1024Mi' - secrets: - AudkenniSettings__ClientId: '/k8s/identity-server/AudkenniClientId' - AudkenniSettings__ClientSecret: '/k8s/identity-server/AudkenniClientSecret' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - ContentfulSettings__AccessToken: '/k8s/identity-server/CONTENTFUL_ACCESS_TOKEN' - FeatureFlags__ConfigCatSdkKey: '/k8s/configcat/CONFIGCAT_SDK_KEY' - IdentityServer__FakePersons: '/k8s/identity-server/FakePersons' - IdentityServer__LicenseKey: '/k8s/identity-server/LicenseKey' - IdentityServer__SigningCertificate__Passphrase: '/k8s/identity-server/SigningCertificatePassphrase' - PersistenceSettings__AccessTokenManagementSettings__ClientSecret: '/k8s/identity-server/ClientSecret' - Redaction__UserIdentifiers__Key: '/k8s/identity-server/redaction/USER_IDENTIFIERS_KEY' - Redaction__UserIdentifiers__KeyId: '/k8s/identity-server/redaction/USER_IDENTIFIERS_KEY_ID' - Scopes__Admin__RootAccessList: '/k8s/identity-server/AdminRootAccessList' - securityContext: - allowPrivilegeEscalation: false - privileged: false - service: - targetPort: 5000 - serviceAccount: + AUDIT_GROUP_NAME: '/identity-server/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'identity-server' +annotations: + ad.datadoghq.com/identity-server.check_names: '["openmetrics"]' + ad.datadoghq.com/identity-server.init_configs: '[{}]' + ad.datadoghq.com/identity-server.instances: '[{"prometheus_url": "http://%%host%%:5003/metrics","namespace": "identity-server","metrics":["*"]}]' + ad.datadoghq.com/identity-server.logs: '[{"service": "identity-server", "source": "csharp"}]' +enabled: true +env: + ASPNETCORE_URLS: 'http://*:5000' + AWS__CloudWatch__AuditLogGroup: '/identity-server/audit-log' + AWS__SystemsManager__ParameterStore__DataProtectionPrefix: '/k8s/identity-server/DataProtectionSecret' + Application__AllowedRedirectUris: 'https://island.is/minarsidur,https://island.is/umsoknir' + Application__MinCompletionPortThreads: '10' + AudkenniSettings__Retries: '24' + CORECLR_ENABLE_PROFILING: '1' + CORECLR_PROFILER: '{846F5F1C-F9AE-4B07-969E-05C26BC060D8}' + CORECLR_PROFILER_PATH: '/opt/datadog/Datadog.Trace.ClrProfiler.Native.so' + CacheSettings__Enabled: 'true' + ContentfulSettings__BaseAddress: 'https://cdn.contentful.com' + DD_DOTNET_TRACER_HOME: '/opt/datadog' + DD_INTEGRATIONS: '/opt/datadog/integrations.json' + DD_TRACE_DEBUG: 'true' + Datadog__Metrics__Port: '5003' + IdentityServer__ConsentsScope: '@island.is/auth/consents' + IdentityServer__EnableFakeLogin: 'true' + IdentityServer__EnableFeatureDeploymentWildcards: 'false' + IdentityServer__KeyManagement__Enabled: 'true' + IdentityServer__SigningCertificate__Path: '/etc/config/ids-signing.pfx' + LOG_LEVEL: 'info' + MeUserProfileApiSettings__BaseAddress: 'https://service-portal-api.internal.island.is' + NODE_OPTIONS: '--max-old-space-size=1843 -r dd-trace/init' + PersistenceSettings__BaseAddress: 'http://web-services-auth-ids-api' + PersistenceSettings__DelegationsCacheEnabled: 'true' + RedisSettings__Address: 'clustercfg.general-redis-cluster-group.dnugi2.euw1.cache.amazonaws.com' + RedisSettings__Port: '6379' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' + SessionsApiSettings__BaseAddress: 'https://sessions-api.internal.island.is' +files: + - 'ids-signing.pfx' +grantNamespaces: + - 'nginx-ingress-external' + - 'user-notification' + - 'portals-admin' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + port: 5010 + readiness: + initialDelaySeconds: 3 + path: '/readiness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 3 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/identity-server' +ingress: + primary-alb: annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::567113216315:role/identity-server' - create: true + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'innskra.island.is' + paths: + - '/' +namespace: 'identity-server' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: + - accessModes: 'ReadWriteMany' + mountPath: '/keys' name: 'identity-server' + size: '1Gi' + storageClass: 'efs-csi' + useExisting: false +replicaCount: + default: 3 + max: 10 + min: 3 +resources: + limits: + cpu: '4000m' + memory: '2048Mi' + requests: + cpu: '1000m' + memory: '1024Mi' +secrets: + AudkenniSettings__ClientId: '/k8s/identity-server/AudkenniClientId' + AudkenniSettings__ClientSecret: '/k8s/identity-server/AudkenniClientSecret' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + ContentfulSettings__AccessToken: '/k8s/identity-server/CONTENTFUL_ACCESS_TOKEN' + FeatureFlags__ConfigCatSdkKey: '/k8s/configcat/CONFIGCAT_SDK_KEY' + IdentityServer__FakePersons: '/k8s/identity-server/FakePersons' + IdentityServer__LicenseKey: '/k8s/identity-server/LicenseKey' + IdentityServer__SigningCertificate__Passphrase: '/k8s/identity-server/SigningCertificatePassphrase' + PersistenceSettings__AccessTokenManagementSettings__ClientSecret: '/k8s/identity-server/ClientSecret' + Redaction__UserIdentifiers__Key: '/k8s/identity-server/redaction/USER_IDENTIFIERS_KEY' + Redaction__UserIdentifiers__KeyId: '/k8s/identity-server/redaction/USER_IDENTIFIERS_KEY_ID' + Scopes__Admin__RootAccessList: '/k8s/identity-server/AdminRootAccessList' +securityContext: + allowPrivilegeEscalation: false + privileged: false +service: + targetPort: 5000 +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::567113216315:role/identity-server' + create: true + name: 'identity-server' diff --git a/charts/services/identity-server/values.staging.yaml b/charts/services/identity-server/values.staging.yaml index 7854f38db94e..aa4536101391 100644 --- a/charts/services/identity-server/values.staging.yaml +++ b/charts/services/identity-server/values.staging.yaml @@ -5,126 +5,136 @@ # ##################################################################### -service: - name: 'identity-server' - annotations: - ad.datadoghq.com/identity-server.check_names: '["openmetrics"]' - ad.datadoghq.com/identity-server.init_configs: '[{}]' - ad.datadoghq.com/identity-server.instances: '[{"prometheus_url": "http://%%host%%:5003/metrics","namespace": "identity-server","metrics":["*"]}]' - ad.datadoghq.com/identity-server.logs: '[{"service": "identity-server", "source": "csharp"}]' - enabled: true +global: env: - ASPNETCORE_URLS: 'http://*:5000' - AWS__CloudWatch__AuditLogGroup: '/identity-server/audit-log' - AWS__SystemsManager__ParameterStore__DataProtectionPrefix: '/k8s/identity-server/DataProtectionSecret' - Application__AllowedRedirectUris: 'https://beta.staging01.devland.is/minarsidur,https://beta.staging01.devland.is/umsoknir' - Application__MinCompletionPortThreads: '10' - AudkenniSettings__Retries: '24' - CORECLR_ENABLE_PROFILING: '1' - CORECLR_PROFILER: '{846F5F1C-F9AE-4B07-969E-05C26BC060D8}' - CORECLR_PROFILER_PATH: '/opt/datadog/Datadog.Trace.ClrProfiler.Native.so' - CacheSettings__Enabled: 'true' - ContentfulSettings__BaseAddress: 'https://cdn.contentful.com' - DD_DOTNET_TRACER_HOME: '/opt/datadog' - DD_INTEGRATIONS: '/opt/datadog/integrations.json' - DD_TRACE_DEBUG: 'true' - Datadog__Metrics__Port: '5003' - IdentityServer__ConsentsScope: '@island.is/auth/consents' - IdentityServer__EnableFakeLogin: 'true' - IdentityServer__EnableFeatureDeploymentWildcards: 'true' - IdentityServer__KeyManagement__Enabled: 'true' - IdentityServer__SigningCertificate__Path: '/etc/config/ids-signing.pfx' - LOG_LEVEL: 'info' - MeUserProfileApiSettings__BaseAddress: 'http://web-service-portal-api.service-portal.svc.cluster.local' - NODE_OPTIONS: '--max-old-space-size=1843 -r dd-trace/init' - PersistenceSettings__BaseAddress: 'http://web-services-auth-ids-api' - PersistenceSettings__DelegationsCacheEnabled: 'false' - RedisSettings__Address: 'clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com' - RedisSettings__Port: '6379' - SERVERSIDE_FEATURES_ON: '' - SessionsApiSettings__BaseAddress: 'http://web-services-sessions.services-sessions.svc.cluster.local' - files: - - 'ids-signing.pfx' - grantNamespaces: - - 'nginx-ingress-external' - - 'user-notification' - - 'portals-admin' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - port: 5010 - readiness: - initialDelaySeconds: 3 - path: '/readiness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/identity-server' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/enable-global-auth: 'false' - nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'identity-server.staging01.devland.is' - paths: - - '/' - namespace: 'identity-server' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: - - accessModes: 'ReadWriteMany' - mountPath: '/keys' - name: 'identity-server' - size: '1Gi' - storageClass: 'efs-csi' - useExisting: false - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '4000m' - memory: '2048Mi' - requests: - cpu: '1000m' - memory: '1024Mi' - secrets: - AudkenniSettings__ClientId: '/k8s/identity-server/AudkenniClientId' - AudkenniSettings__ClientSecret: '/k8s/identity-server/AudkenniClientSecret' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - ContentfulSettings__AccessToken: '/k8s/identity-server/CONTENTFUL_ACCESS_TOKEN' - FeatureFlags__ConfigCatSdkKey: '/k8s/configcat/CONFIGCAT_SDK_KEY' - IdentityServer__FakePersons: '/k8s/identity-server/FakePersons' - IdentityServer__LicenseKey: '/k8s/identity-server/LicenseKey' - IdentityServer__SigningCertificate__Passphrase: '/k8s/identity-server/SigningCertificatePassphrase' - PersistenceSettings__AccessTokenManagementSettings__ClientSecret: '/k8s/identity-server/ClientSecret' - Redaction__UserIdentifiers__Key: '/k8s/identity-server/redaction/USER_IDENTIFIERS_KEY' - Redaction__UserIdentifiers__KeyId: '/k8s/identity-server/redaction/USER_IDENTIFIERS_KEY_ID' - Scopes__Admin__RootAccessList: '/k8s/identity-server/AdminRootAccessList' - securityContext: - allowPrivilegeEscalation: false - privileged: false - service: - targetPort: 5000 - serviceAccount: + AUDIT_GROUP_NAME: '/identity-server/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'identity-server' +annotations: + ad.datadoghq.com/identity-server.check_names: '["openmetrics"]' + ad.datadoghq.com/identity-server.init_configs: '[{}]' + ad.datadoghq.com/identity-server.instances: '[{"prometheus_url": "http://%%host%%:5003/metrics","namespace": "identity-server","metrics":["*"]}]' + ad.datadoghq.com/identity-server.logs: '[{"service": "identity-server", "source": "csharp"}]' +enabled: true +env: + ASPNETCORE_URLS: 'http://*:5000' + AWS__CloudWatch__AuditLogGroup: '/identity-server/audit-log' + AWS__SystemsManager__ParameterStore__DataProtectionPrefix: '/k8s/identity-server/DataProtectionSecret' + Application__AllowedRedirectUris: 'https://beta.staging01.devland.is/minarsidur,https://beta.staging01.devland.is/umsoknir' + Application__MinCompletionPortThreads: '10' + AudkenniSettings__Retries: '24' + CORECLR_ENABLE_PROFILING: '1' + CORECLR_PROFILER: '{846F5F1C-F9AE-4B07-969E-05C26BC060D8}' + CORECLR_PROFILER_PATH: '/opt/datadog/Datadog.Trace.ClrProfiler.Native.so' + CacheSettings__Enabled: 'true' + ContentfulSettings__BaseAddress: 'https://cdn.contentful.com' + DD_DOTNET_TRACER_HOME: '/opt/datadog' + DD_INTEGRATIONS: '/opt/datadog/integrations.json' + DD_TRACE_DEBUG: 'true' + Datadog__Metrics__Port: '5003' + IdentityServer__ConsentsScope: '@island.is/auth/consents' + IdentityServer__EnableFakeLogin: 'true' + IdentityServer__EnableFeatureDeploymentWildcards: 'true' + IdentityServer__KeyManagement__Enabled: 'true' + IdentityServer__SigningCertificate__Path: '/etc/config/ids-signing.pfx' + LOG_LEVEL: 'info' + MeUserProfileApiSettings__BaseAddress: 'http://web-service-portal-api.service-portal.svc.cluster.local' + NODE_OPTIONS: '--max-old-space-size=1843 -r dd-trace/init' + PersistenceSettings__BaseAddress: 'http://web-services-auth-ids-api' + PersistenceSettings__DelegationsCacheEnabled: 'false' + RedisSettings__Address: 'clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com' + RedisSettings__Port: '6379' + SERVERSIDE_FEATURES_ON: '' + SessionsApiSettings__BaseAddress: 'http://web-services-sessions.services-sessions.svc.cluster.local' +files: + - 'ids-signing.pfx' +grantNamespaces: + - 'nginx-ingress-external' + - 'user-notification' + - 'portals-admin' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + port: 5010 + readiness: + initialDelaySeconds: 3 + path: '/readiness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/identity-server' +ingress: + primary-alb: annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/identity-server' - create: true + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/enable-global-auth: 'false' + nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'identity-server.staging01.devland.is' + paths: + - '/' +namespace: 'identity-server' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: + - accessModes: 'ReadWriteMany' + mountPath: '/keys' name: 'identity-server' + size: '1Gi' + storageClass: 'efs-csi' + useExisting: false +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '4000m' + memory: '2048Mi' + requests: + cpu: '1000m' + memory: '1024Mi' +secrets: + AudkenniSettings__ClientId: '/k8s/identity-server/AudkenniClientId' + AudkenniSettings__ClientSecret: '/k8s/identity-server/AudkenniClientSecret' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + ContentfulSettings__AccessToken: '/k8s/identity-server/CONTENTFUL_ACCESS_TOKEN' + FeatureFlags__ConfigCatSdkKey: '/k8s/configcat/CONFIGCAT_SDK_KEY' + IdentityServer__FakePersons: '/k8s/identity-server/FakePersons' + IdentityServer__LicenseKey: '/k8s/identity-server/LicenseKey' + IdentityServer__SigningCertificate__Passphrase: '/k8s/identity-server/SigningCertificatePassphrase' + PersistenceSettings__AccessTokenManagementSettings__ClientSecret: '/k8s/identity-server/ClientSecret' + Redaction__UserIdentifiers__Key: '/k8s/identity-server/redaction/USER_IDENTIFIERS_KEY' + Redaction__UserIdentifiers__KeyId: '/k8s/identity-server/redaction/USER_IDENTIFIERS_KEY_ID' + Scopes__Admin__RootAccessList: '/k8s/identity-server/AdminRootAccessList' +securityContext: + allowPrivilegeEscalation: false + privileged: false +service: + targetPort: 5000 +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/identity-server' + create: true + name: 'identity-server' diff --git a/charts/services/island-ui-storybook/values.dev.yaml b/charts/services/island-ui-storybook/values.dev.yaml index 008d92091347..56d678d31374 100644 --- a/charts/services/island-ui-storybook/values.dev.yaml +++ b/charts/services/island-ui-storybook/values.dev.yaml @@ -5,61 +5,71 @@ # ##################################################################### -service: - name: 'island-ui-storybook' - enabled: true +global: env: - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230' - SERVERSIDE_FEATURES_ON: '' - grantNamespaces: - - 'nginx-ingress-external' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/readiness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/island-ui-storybook' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'ui.dev01.devland.is' - paths: - - '/' - namespace: 'storybook' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '10m' - memory: '128Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'island-ui-storybook' +enabled: true +env: + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=230' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: + - 'nginx-ingress-external' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/readiness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/island-ui-storybook' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'ui.dev01.devland.is' + paths: + - '/' +namespace: 'storybook' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '10m' + memory: '128Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/island-ui-storybook/values.prod.yaml b/charts/services/island-ui-storybook/values.prod.yaml index 49cc05b33aa3..791becea125c 100644 --- a/charts/services/island-ui-storybook/values.prod.yaml +++ b/charts/services/island-ui-storybook/values.prod.yaml @@ -5,61 +5,71 @@ # ##################################################################### -service: - name: 'island-ui-storybook' - enabled: true +global: env: - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - grantNamespaces: - - 'nginx-ingress-external' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/readiness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 3 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/island-ui-storybook' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'ui.devland.is' - paths: - - '/' - namespace: 'storybook' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 3 - max: 10 - min: 3 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '10m' - memory: '128Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'island-ui-storybook' +enabled: true +env: + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=230' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' +grantNamespaces: + - 'nginx-ingress-external' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/readiness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 3 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/island-ui-storybook' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'ui.devland.is' + paths: + - '/' +namespace: 'storybook' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 3 + max: 10 + min: 3 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '10m' + memory: '128Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/island-ui-storybook/values.staging.yaml b/charts/services/island-ui-storybook/values.staging.yaml index 6415e07e2966..c87574ded2bd 100644 --- a/charts/services/island-ui-storybook/values.staging.yaml +++ b/charts/services/island-ui-storybook/values.staging.yaml @@ -5,61 +5,71 @@ # ##################################################################### -service: - name: 'island-ui-storybook' - enabled: true +global: env: - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230' - SERVERSIDE_FEATURES_ON: '' - grantNamespaces: - - 'nginx-ingress-external' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/readiness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/island-ui-storybook' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'ui.staging01.devland.is' - paths: - - '/' - namespace: 'storybook' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '10m' - memory: '128Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'island-ui-storybook' +enabled: true +env: + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=230' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: + - 'nginx-ingress-external' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/readiness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/island-ui-storybook' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'ui.staging01.devland.is' + paths: + - '/' +namespace: 'storybook' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '10m' + memory: '128Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/judicial-system-api/values.dev.yaml b/charts/services/judicial-system-api/values.dev.yaml index 247138664310..e75e315ee73f 100644 --- a/charts/services/judicial-system-api/values.dev.yaml +++ b/charts/services/judicial-system-api/values.dev.yaml @@ -5,90 +5,100 @@ # ##################################################################### -service: - name: 'judicial-system-api' - enabled: true +global: env: - ALLOW_AUTH_BYPASS: 'true' - AUDIT_TRAIL_GROUP_NAME: 'k8s/judicial-system/audit-log' - AUDIT_TRAIL_REGION: 'eu-west-1' - AUDIT_TRAIL_USE_GENERIC_LOGGER: 'false' - AUTH_IDS_CLIENT_ID: '@rettarvorslugatt.island.is/web' - AUTH_IDS_LOGOUT_REDIRECT_URI: 'https://judicial-system.dev01.devland.is' - AUTH_IDS_REDIRECT_URI: 'https://judicial-system.dev01.devland.is/api/auth/callback/identity-server' - AUTH_IDS_SCOPE: 'openid profile' - BACKEND_URL: 'http://web-judicial-system-backend' - CONTENTFUL_ENVIRONMENT: 'test' - CONTENTFUL_HOST: 'preview.contentful.com' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - grantNamespaces: - - 'nginx-ingress-external' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 8 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-api' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'judicial-system.dev01.devland.is' - paths: - - '/api/graphql' - - '/api/auth' - - '/api/case' - - '/api/feature' - namespace: 'judicial-system' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '350m' - memory: '512Mi' - requests: - cpu: '200m' - memory: '256Mi' - secrets: - AUTH_IDS_SECRET: '/k8s/judicial-system/AUTH_IDS_SECRET' - AUTH_JWT_SECRET: '/k8s/judicial-system/AUTH_JWT_SECRET' - BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - CONTENTFUL_ACCESS_TOKEN: '/k8s/judicial-system/CONTENTFUL_ACCESS_TOKEN' - LAWYERS_ICELAND_API_KEY: '/k8s/judicial-system/LAWYERS_ICELAND_API_KEY' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'judicial-system-api' +enabled: true +env: + ALLOW_AUTH_BYPASS: 'true' + AUDIT_TRAIL_GROUP_NAME: 'k8s/judicial-system/audit-log' + AUDIT_TRAIL_REGION: 'eu-west-1' + AUDIT_TRAIL_USE_GENERIC_LOGGER: 'false' + AUTH_IDS_CLIENT_ID: '@rettarvorslugatt.island.is/web' + AUTH_IDS_LOGOUT_REDIRECT_URI: 'https://judicial-system.dev01.devland.is' + AUTH_IDS_REDIRECT_URI: 'https://judicial-system.dev01.devland.is/api/auth/callback/identity-server' + AUTH_IDS_SCOPE: 'openid profile' + BACKEND_URL: 'http://web-judicial-system-backend' + CONTENTFUL_ENVIRONMENT: 'test' + CONTENTFUL_HOST: 'preview.contentful.com' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: + - 'nginx-ingress-external' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 8 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-api' +ingress: + primary-alb: annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/judicial-system-api' - create: true - name: 'judicial-system-api' + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'judicial-system.dev01.devland.is' + paths: + - '/api/graphql' + - '/api/auth' + - '/api/case' + - '/api/feature' +namespace: 'judicial-system' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '350m' + memory: '512Mi' + requests: + cpu: '200m' + memory: '256Mi' +secrets: + AUTH_IDS_SECRET: '/k8s/judicial-system/AUTH_IDS_SECRET' + AUTH_JWT_SECRET: '/k8s/judicial-system/AUTH_JWT_SECRET' + BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + CONTENTFUL_ACCESS_TOKEN: '/k8s/judicial-system/CONTENTFUL_ACCESS_TOKEN' + LAWYERS_ICELAND_API_KEY: '/k8s/judicial-system/LAWYERS_ICELAND_API_KEY' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/judicial-system-api' + create: true + name: 'judicial-system-api' diff --git a/charts/services/judicial-system-api/values.prod.yaml b/charts/services/judicial-system-api/values.prod.yaml index b1c2f8200a09..ab1715803fe2 100644 --- a/charts/services/judicial-system-api/values.prod.yaml +++ b/charts/services/judicial-system-api/values.prod.yaml @@ -5,90 +5,100 @@ # ##################################################################### -service: - name: 'judicial-system-api' - enabled: true +global: env: - ALLOW_AUTH_BYPASS: 'false' - AUDIT_TRAIL_GROUP_NAME: 'k8s/judicial-system/audit-log' - AUDIT_TRAIL_REGION: 'eu-west-1' - AUDIT_TRAIL_USE_GENERIC_LOGGER: 'false' - AUTH_IDS_CLIENT_ID: '@rettarvorslugatt.island.is/web' - AUTH_IDS_LOGOUT_REDIRECT_URI: 'https://rettarvorslugatt.island.is' - AUTH_IDS_REDIRECT_URI: 'https://rettarvorslugatt.island.is/api/auth/callback/identity-server' - AUTH_IDS_SCOPE: 'openid profile' - BACKEND_URL: 'http://web-judicial-system-backend' - CONTENTFUL_ENVIRONMENT: 'master' - CONTENTFUL_HOST: 'cdn.contentful.com' - IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - grantNamespaces: - - 'nginx-ingress-external' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 8 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-api' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'rettarvorslugatt.island.is' - paths: - - '/api/graphql' - - '/api/auth' - - '/api/case' - - '/api/feature' - namespace: 'judicial-system' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '350m' - memory: '512Mi' - requests: - cpu: '200m' - memory: '256Mi' - secrets: - AUTH_IDS_SECRET: '/k8s/judicial-system/AUTH_IDS_SECRET' - AUTH_JWT_SECRET: '/k8s/judicial-system/AUTH_JWT_SECRET' - BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - CONTENTFUL_ACCESS_TOKEN: '/k8s/judicial-system/CONTENTFUL_ACCESS_TOKEN' - LAWYERS_ICELAND_API_KEY: '/k8s/judicial-system/LAWYERS_ICELAND_API_KEY' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'judicial-system-api' +enabled: true +env: + ALLOW_AUTH_BYPASS: 'false' + AUDIT_TRAIL_GROUP_NAME: 'k8s/judicial-system/audit-log' + AUDIT_TRAIL_REGION: 'eu-west-1' + AUDIT_TRAIL_USE_GENERIC_LOGGER: 'false' + AUTH_IDS_CLIENT_ID: '@rettarvorslugatt.island.is/web' + AUTH_IDS_LOGOUT_REDIRECT_URI: 'https://rettarvorslugatt.island.is' + AUTH_IDS_REDIRECT_URI: 'https://rettarvorslugatt.island.is/api/auth/callback/identity-server' + AUTH_IDS_SCOPE: 'openid profile' + BACKEND_URL: 'http://web-judicial-system-backend' + CONTENTFUL_ENVIRONMENT: 'master' + CONTENTFUL_HOST: 'cdn.contentful.com' + IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' +grantNamespaces: + - 'nginx-ingress-external' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 8 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-api' +ingress: + primary-alb: annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/judicial-system-api' - create: true - name: 'judicial-system-api' + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'rettarvorslugatt.island.is' + paths: + - '/api/graphql' + - '/api/auth' + - '/api/case' + - '/api/feature' +namespace: 'judicial-system' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '350m' + memory: '512Mi' + requests: + cpu: '200m' + memory: '256Mi' +secrets: + AUTH_IDS_SECRET: '/k8s/judicial-system/AUTH_IDS_SECRET' + AUTH_JWT_SECRET: '/k8s/judicial-system/AUTH_JWT_SECRET' + BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + CONTENTFUL_ACCESS_TOKEN: '/k8s/judicial-system/CONTENTFUL_ACCESS_TOKEN' + LAWYERS_ICELAND_API_KEY: '/k8s/judicial-system/LAWYERS_ICELAND_API_KEY' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/judicial-system-api' + create: true + name: 'judicial-system-api' diff --git a/charts/services/judicial-system-api/values.staging.yaml b/charts/services/judicial-system-api/values.staging.yaml index 16fda6b774fd..a583ab3662e8 100644 --- a/charts/services/judicial-system-api/values.staging.yaml +++ b/charts/services/judicial-system-api/values.staging.yaml @@ -5,90 +5,100 @@ # ##################################################################### -service: - name: 'judicial-system-api' - enabled: true +global: env: - ALLOW_AUTH_BYPASS: 'true' - AUDIT_TRAIL_GROUP_NAME: 'k8s/judicial-system/audit-log' - AUDIT_TRAIL_REGION: 'eu-west-1' - AUDIT_TRAIL_USE_GENERIC_LOGGER: 'false' - AUTH_IDS_CLIENT_ID: '@rettarvorslugatt.island.is/web' - AUTH_IDS_LOGOUT_REDIRECT_URI: 'https://judicial-system.staging01.devland.is' - AUTH_IDS_REDIRECT_URI: 'https://judicial-system.staging01.devland.is/api/auth/callback/identity-server' - AUTH_IDS_SCOPE: 'openid profile' - BACKEND_URL: 'http://web-judicial-system-backend' - CONTENTFUL_ENVIRONMENT: 'test' - CONTENTFUL_HOST: 'cdn.contentful.com' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - grantNamespaces: - - 'nginx-ingress-external' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 8 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-api' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'judicial-system.staging01.devland.is' - paths: - - '/api/graphql' - - '/api/auth' - - '/api/case' - - '/api/feature' - namespace: 'judicial-system' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '350m' - memory: '512Mi' - requests: - cpu: '200m' - memory: '256Mi' - secrets: - AUTH_IDS_SECRET: '/k8s/judicial-system/AUTH_IDS_SECRET' - AUTH_JWT_SECRET: '/k8s/judicial-system/AUTH_JWT_SECRET' - BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - CONTENTFUL_ACCESS_TOKEN: '/k8s/judicial-system/CONTENTFUL_ACCESS_TOKEN' - LAWYERS_ICELAND_API_KEY: '/k8s/judicial-system/LAWYERS_ICELAND_API_KEY' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'judicial-system-api' +enabled: true +env: + ALLOW_AUTH_BYPASS: 'true' + AUDIT_TRAIL_GROUP_NAME: 'k8s/judicial-system/audit-log' + AUDIT_TRAIL_REGION: 'eu-west-1' + AUDIT_TRAIL_USE_GENERIC_LOGGER: 'false' + AUTH_IDS_CLIENT_ID: '@rettarvorslugatt.island.is/web' + AUTH_IDS_LOGOUT_REDIRECT_URI: 'https://judicial-system.staging01.devland.is' + AUTH_IDS_REDIRECT_URI: 'https://judicial-system.staging01.devland.is/api/auth/callback/identity-server' + AUTH_IDS_SCOPE: 'openid profile' + BACKEND_URL: 'http://web-judicial-system-backend' + CONTENTFUL_ENVIRONMENT: 'test' + CONTENTFUL_HOST: 'cdn.contentful.com' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: + - 'nginx-ingress-external' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 8 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-api' +ingress: + primary-alb: annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/judicial-system-api' - create: true - name: 'judicial-system-api' + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'judicial-system.staging01.devland.is' + paths: + - '/api/graphql' + - '/api/auth' + - '/api/case' + - '/api/feature' +namespace: 'judicial-system' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '350m' + memory: '512Mi' + requests: + cpu: '200m' + memory: '256Mi' +secrets: + AUTH_IDS_SECRET: '/k8s/judicial-system/AUTH_IDS_SECRET' + AUTH_JWT_SECRET: '/k8s/judicial-system/AUTH_JWT_SECRET' + BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + CONTENTFUL_ACCESS_TOKEN: '/k8s/judicial-system/CONTENTFUL_ACCESS_TOKEN' + LAWYERS_ICELAND_API_KEY: '/k8s/judicial-system/LAWYERS_ICELAND_API_KEY' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/judicial-system-api' + create: true + name: 'judicial-system-api' diff --git a/charts/services/judicial-system-backend/values.dev.yaml b/charts/services/judicial-system-backend/values.dev.yaml index d655530e832d..a465bbe63300 100644 --- a/charts/services/judicial-system-backend/values.dev.yaml +++ b/charts/services/judicial-system-backend/values.dev.yaml @@ -5,140 +5,150 @@ # ##################################################################### -service: - name: 'judicial-system-backend' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'judicial-system-backend' +enabled: true +env: + CLIENT_URL: 'https://judicial-system.dev01.devland.is' + CONTENTFUL_ENVIRONMENT: 'test' + CONTENTFUL_HOST: 'preview.contentful.com' + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'judicial_system' + DB_REPLICAS_HOST: 'postgres-applications-reader.internal' + DB_USER: 'judicial_system' + DOKOBIT_URL: 'https://developers.dokobit.com' + EMAIL_REGION: 'eu-west-1' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=921 -r dd-trace/init' + NOVA_ACCEPT_UNAUTHORIZED: 'true' + S3_BUCKET: 'island-is-dev-upload-judicial-system' + S3_REGION: 'eu-west-1' + S3_TIME_TO_LIVE_GET: '5' + S3_TIME_TO_LIVE_POST: '15' + SERVERSIDE_FEATURES_ON: '' + SQS_DEAD_LETTER_QUEUE_NAME: 'sqs-judicial-system-dlq' + SQS_QUEUE_NAME: 'sqs-judicial-system' + SQS_REGION: 'eu-west-1' + USE_MICROSOFT_GRAPH_API_FOR_COURT_ROBOT: 'false' + XROAD_BASE_PATH: 'http://securityserver.dev01.devland.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.dev01.devland.is/r1/IS-DEV' + XROAD_CLIENT_ID: 'IS-DEV/GOV/10014/Rettarvorslugatt-Client' + XROAD_COURT_API_PATH: '/Domstolasyslan/JusticePortal-v1' + XROAD_COURT_MEMBER_CODE: '10019' + XROAD_POLICE_API_PATH: '/Logreglan-Private/rettarvarsla-v1' + XROAD_POLICE_MEMBER_CODE: '10005' + XROAD_TLS_BASE_PATH: 'https://securityserver.dev01.devland.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.dev01.devland.is/r1/IS-DEV' +grantNamespaces: + - 'nginx-ingress-external' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-backend' +initContainer: + containers: + - args: + - 'sequelize-cli' + - 'db:migrate' + command: + - 'npx' + name: 'migrations' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' env: - CLIENT_URL: 'https://judicial-system.dev01.devland.is' - CONTENTFUL_ENVIRONMENT: 'test' - CONTENTFUL_HOST: 'preview.contentful.com' DB_HOST: 'postgres-applications.internal' DB_NAME: 'judicial_system' DB_REPLICAS_HOST: 'postgres-applications-reader.internal' DB_USER: 'judicial_system' - DOKOBIT_URL: 'https://developers.dokobit.com' - EMAIL_REGION: 'eu-west-1' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=921 -r dd-trace/init' - NOVA_ACCEPT_UNAUTHORIZED: 'true' - S3_BUCKET: 'island-is-dev-upload-judicial-system' - S3_REGION: 'eu-west-1' - S3_TIME_TO_LIVE_GET: '5' - S3_TIME_TO_LIVE_POST: '15' SERVERSIDE_FEATURES_ON: '' - SQS_DEAD_LETTER_QUEUE_NAME: 'sqs-judicial-system-dlq' - SQS_QUEUE_NAME: 'sqs-judicial-system' - SQS_REGION: 'eu-west-1' - USE_MICROSOFT_GRAPH_API_FOR_COURT_ROBOT: 'false' - XROAD_BASE_PATH: 'http://securityserver.dev01.devland.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.dev01.devland.is/r1/IS-DEV' - XROAD_CLIENT_ID: 'IS-DEV/GOV/10014/Rettarvorslugatt-Client' - XROAD_COURT_API_PATH: '/Domstolasyslan/JusticePortal-v1' - XROAD_COURT_MEMBER_CODE: '10019' - XROAD_POLICE_API_PATH: '/Logreglan-Private/rettarvarsla-v1' - XROAD_POLICE_MEMBER_CODE: '10005' - XROAD_TLS_BASE_PATH: 'https://securityserver.dev01.devland.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.dev01.devland.is/r1/IS-DEV' - grantNamespaces: - - 'nginx-ingress-external' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-backend' - initContainer: - containers: - - args: - - 'sequelize-cli' - - 'db:migrate' - command: - - 'npx' - name: 'migrations' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'judicial_system' - DB_REPLICAS_HOST: 'postgres-applications-reader.internal' - DB_USER: 'judicial_system' - SERVERSIDE_FEATURES_ON: '' - secrets: - DB_PASS: '/k8s/judicial-system/DB_PASSWORD' - namespace: 'judicial-system' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '400m' - memory: '1024Mi' - requests: - cpu: '100m' - memory: '512Mi' secrets: - ADMIN_USERS: '/k8s/judicial-system/ADMIN_USERS' - ARCHIVE_ENCRYPTION_KEY: '/k8s/judicial-system/ARCHIVE_ENCRYPTION_KEY' - AUTH_JWT_SECRET: '/k8s/judicial-system/AUTH_JWT_SECRET' - BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - CONTENTFUL_ACCESS_TOKEN: '/k8s/judicial-system/CONTENTFUL_ACCESS_TOKEN' - COURTS_ASSISTANT_MOBILE_NUMBERS: '/k8s/judicial-system/COURTS_ASSISTANT_MOBILE_NUMBERS' - COURTS_EMAILS: '/k8s/judicial-system/COURTS_EMAILS' - COURTS_MOBILE_NUMBERS: '/k8s/judicial-system/COURTS_MOBILE_NUMBERS' - COURT_ROBOT_CLIENT_ID: '/k8s/judicial-system/COURT_ROBOT_CLIENT_ID' - COURT_ROBOT_CLIENT_SECRET: '/k8s/judicial-system/COURT_ROBOT_CLIENT_SECRET' - COURT_ROBOT_EMAIL: '/k8s/judicial-system/COURT_ROBOT_EMAIL' - COURT_ROBOT_TENANT_ID: '/k8s/judicial-system/COURT_ROBOT_TENANT_ID' - COURT_ROBOT_USER: '/k8s/judicial-system/COURT_ROBOT_USER' DB_PASS: '/k8s/judicial-system/DB_PASSWORD' - DOKOBIT_ACCESS_TOKEN: '/k8s/judicial-system/DOKOBIT_ACCESS_TOKEN' - EMAIL_FROM: '/k8s/judicial-system/EMAIL_FROM' - EMAIL_FROM_NAME: '/k8s/judicial-system/EMAIL_FROM_NAME' - EMAIL_REPLY_TO: '/k8s/judicial-system/EMAIL_REPLY_TO' - EMAIL_REPLY_TO_NAME: '/k8s/judicial-system/EMAIL_REPLY_TO_NAME' - ERROR_EVENT_URL: '/k8s/judicial-system/ERROR_EVENT_URL' - EVENT_URL: '/k8s/judicial-system/EVENT_URL' - NOVA_PASSWORD: '/k8s/judicial-system/NOVA_PASSWORD' - NOVA_URL: '/k8s/judicial-system/NOVA_URL' - NOVA_USERNAME: '/k8s/judicial-system/NOVA_USERNAME' - PRISON_ADMIN_EMAIL: '/k8s/judicial-system/PRISON_ADMIN_EMAIL' - PRISON_EMAIL: '/k8s/judicial-system/PRISON_EMAIL' - XROAD_CLIENT_CERT: '/k8s/judicial-system/XROAD_CLIENT_CERT' - XROAD_CLIENT_KEY: '/k8s/judicial-system/XROAD_CLIENT_KEY' - XROAD_CLIENT_PEM: '/k8s/judicial-system/XROAD_CLIENT_PEM' - XROAD_COURTS_CREDENTIALS: '/k8s/judicial-system/COURTS_CREDENTIALS' - XROAD_POLICE_API_KEY: '/k8s/judicial-system/XROAD_POLICE_API_KEY' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/judicial-system-backend' - create: true - name: 'judicial-system-backend' +namespace: 'judicial-system' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '400m' + memory: '1024Mi' + requests: + cpu: '100m' + memory: '512Mi' +secrets: + ADMIN_USERS: '/k8s/judicial-system/ADMIN_USERS' + ARCHIVE_ENCRYPTION_KEY: '/k8s/judicial-system/ARCHIVE_ENCRYPTION_KEY' + AUTH_JWT_SECRET: '/k8s/judicial-system/AUTH_JWT_SECRET' + BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + CONTENTFUL_ACCESS_TOKEN: '/k8s/judicial-system/CONTENTFUL_ACCESS_TOKEN' + COURTS_ASSISTANT_MOBILE_NUMBERS: '/k8s/judicial-system/COURTS_ASSISTANT_MOBILE_NUMBERS' + COURTS_EMAILS: '/k8s/judicial-system/COURTS_EMAILS' + COURTS_MOBILE_NUMBERS: '/k8s/judicial-system/COURTS_MOBILE_NUMBERS' + COURT_ROBOT_CLIENT_ID: '/k8s/judicial-system/COURT_ROBOT_CLIENT_ID' + COURT_ROBOT_CLIENT_SECRET: '/k8s/judicial-system/COURT_ROBOT_CLIENT_SECRET' + COURT_ROBOT_EMAIL: '/k8s/judicial-system/COURT_ROBOT_EMAIL' + COURT_ROBOT_TENANT_ID: '/k8s/judicial-system/COURT_ROBOT_TENANT_ID' + COURT_ROBOT_USER: '/k8s/judicial-system/COURT_ROBOT_USER' + DB_PASS: '/k8s/judicial-system/DB_PASSWORD' + DOKOBIT_ACCESS_TOKEN: '/k8s/judicial-system/DOKOBIT_ACCESS_TOKEN' + EMAIL_FROM: '/k8s/judicial-system/EMAIL_FROM' + EMAIL_FROM_NAME: '/k8s/judicial-system/EMAIL_FROM_NAME' + EMAIL_REPLY_TO: '/k8s/judicial-system/EMAIL_REPLY_TO' + EMAIL_REPLY_TO_NAME: '/k8s/judicial-system/EMAIL_REPLY_TO_NAME' + ERROR_EVENT_URL: '/k8s/judicial-system/ERROR_EVENT_URL' + EVENT_URL: '/k8s/judicial-system/EVENT_URL' + NOVA_PASSWORD: '/k8s/judicial-system/NOVA_PASSWORD' + NOVA_URL: '/k8s/judicial-system/NOVA_URL' + NOVA_USERNAME: '/k8s/judicial-system/NOVA_USERNAME' + PRISON_ADMIN_EMAIL: '/k8s/judicial-system/PRISON_ADMIN_EMAIL' + PRISON_EMAIL: '/k8s/judicial-system/PRISON_EMAIL' + XROAD_CLIENT_CERT: '/k8s/judicial-system/XROAD_CLIENT_CERT' + XROAD_CLIENT_KEY: '/k8s/judicial-system/XROAD_CLIENT_KEY' + XROAD_CLIENT_PEM: '/k8s/judicial-system/XROAD_CLIENT_PEM' + XROAD_COURTS_CREDENTIALS: '/k8s/judicial-system/COURTS_CREDENTIALS' + XROAD_POLICE_API_KEY: '/k8s/judicial-system/XROAD_POLICE_API_KEY' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/judicial-system-backend' + create: true + name: 'judicial-system-backend' diff --git a/charts/services/judicial-system-backend/values.prod.yaml b/charts/services/judicial-system-backend/values.prod.yaml index 6c8344cf116f..e3d753ba6d81 100644 --- a/charts/services/judicial-system-backend/values.prod.yaml +++ b/charts/services/judicial-system-backend/values.prod.yaml @@ -5,140 +5,150 @@ # ##################################################################### -service: - name: 'judicial-system-backend' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'judicial-system-backend' +enabled: true +env: + CLIENT_URL: 'https://rettarvorslugatt.island.is' + CONTENTFUL_ENVIRONMENT: 'master' + CONTENTFUL_HOST: 'cdn.contentful.com' + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'judicial_system' + DB_REPLICAS_HOST: 'postgres-applications.internal' + DB_USER: 'judicial_system' + DOKOBIT_URL: 'https://ws.dokobit.com' + EMAIL_REGION: 'eu-west-1' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=921 -r dd-trace/init' + NOVA_ACCEPT_UNAUTHORIZED: 'false' + S3_BUCKET: 'island-is-prod-upload-judicial-system' + S3_REGION: 'eu-west-1' + S3_TIME_TO_LIVE_GET: '5' + S3_TIME_TO_LIVE_POST: '15' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' + SQS_DEAD_LETTER_QUEUE_NAME: 'sqs-judicial-system-dlq' + SQS_QUEUE_NAME: 'sqs-judicial-system' + SQS_REGION: 'eu-west-1' + USE_MICROSOFT_GRAPH_API_FOR_COURT_ROBOT: 'true' + XROAD_BASE_PATH: 'http://securityserver.island.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.island.is/r1/IS' + XROAD_CLIENT_ID: 'IS/GOV/5804170510/Rettarvorslugatt-Client' + XROAD_COURT_API_PATH: '/Domstolasyslan/JusticePortal-v1' + XROAD_COURT_MEMBER_CODE: '4707171140' + XROAD_POLICE_API_PATH: '/Logreglan-Private/rettarvarsla-v1' + XROAD_POLICE_MEMBER_CODE: '5309672079' + XROAD_TLS_BASE_PATH: 'https://securityserver.island.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.island.is/r1/IS' +grantNamespaces: + - 'nginx-ingress-external' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-backend' +initContainer: + containers: + - args: + - 'sequelize-cli' + - 'db:migrate' + command: + - 'npx' + name: 'migrations' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' env: - CLIENT_URL: 'https://rettarvorslugatt.island.is' - CONTENTFUL_ENVIRONMENT: 'master' - CONTENTFUL_HOST: 'cdn.contentful.com' DB_HOST: 'postgres-applications.internal' DB_NAME: 'judicial_system' DB_REPLICAS_HOST: 'postgres-applications.internal' DB_USER: 'judicial_system' - DOKOBIT_URL: 'https://ws.dokobit.com' - EMAIL_REGION: 'eu-west-1' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=921 -r dd-trace/init' - NOVA_ACCEPT_UNAUTHORIZED: 'false' - S3_BUCKET: 'island-is-prod-upload-judicial-system' - S3_REGION: 'eu-west-1' - S3_TIME_TO_LIVE_GET: '5' - S3_TIME_TO_LIVE_POST: '15' SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - SQS_DEAD_LETTER_QUEUE_NAME: 'sqs-judicial-system-dlq' - SQS_QUEUE_NAME: 'sqs-judicial-system' - SQS_REGION: 'eu-west-1' - USE_MICROSOFT_GRAPH_API_FOR_COURT_ROBOT: 'true' - XROAD_BASE_PATH: 'http://securityserver.island.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.island.is/r1/IS' - XROAD_CLIENT_ID: 'IS/GOV/5804170510/Rettarvorslugatt-Client' - XROAD_COURT_API_PATH: '/Domstolasyslan/JusticePortal-v1' - XROAD_COURT_MEMBER_CODE: '4707171140' - XROAD_POLICE_API_PATH: '/Logreglan-Private/rettarvarsla-v1' - XROAD_POLICE_MEMBER_CODE: '5309672079' - XROAD_TLS_BASE_PATH: 'https://securityserver.island.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.island.is/r1/IS' - grantNamespaces: - - 'nginx-ingress-external' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-backend' - initContainer: - containers: - - args: - - 'sequelize-cli' - - 'db:migrate' - command: - - 'npx' - name: 'migrations' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'judicial_system' - DB_REPLICAS_HOST: 'postgres-applications.internal' - DB_USER: 'judicial_system' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - secrets: - DB_PASS: '/k8s/judicial-system/DB_PASSWORD' - namespace: 'judicial-system' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '400m' - memory: '1024Mi' - requests: - cpu: '100m' - memory: '512Mi' secrets: - ADMIN_USERS: '/k8s/judicial-system/ADMIN_USERS' - ARCHIVE_ENCRYPTION_KEY: '/k8s/judicial-system/ARCHIVE_ENCRYPTION_KEY' - AUTH_JWT_SECRET: '/k8s/judicial-system/AUTH_JWT_SECRET' - BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - CONTENTFUL_ACCESS_TOKEN: '/k8s/judicial-system/CONTENTFUL_ACCESS_TOKEN' - COURTS_ASSISTANT_MOBILE_NUMBERS: '/k8s/judicial-system/COURTS_ASSISTANT_MOBILE_NUMBERS' - COURTS_EMAILS: '/k8s/judicial-system/COURTS_EMAILS' - COURTS_MOBILE_NUMBERS: '/k8s/judicial-system/COURTS_MOBILE_NUMBERS' - COURT_ROBOT_CLIENT_ID: '/k8s/judicial-system/COURT_ROBOT_CLIENT_ID' - COURT_ROBOT_CLIENT_SECRET: '/k8s/judicial-system/COURT_ROBOT_CLIENT_SECRET' - COURT_ROBOT_EMAIL: '/k8s/judicial-system/COURT_ROBOT_EMAIL' - COURT_ROBOT_TENANT_ID: '/k8s/judicial-system/COURT_ROBOT_TENANT_ID' - COURT_ROBOT_USER: '/k8s/judicial-system/COURT_ROBOT_USER' DB_PASS: '/k8s/judicial-system/DB_PASSWORD' - DOKOBIT_ACCESS_TOKEN: '/k8s/judicial-system/DOKOBIT_ACCESS_TOKEN' - EMAIL_FROM: '/k8s/judicial-system/EMAIL_FROM' - EMAIL_FROM_NAME: '/k8s/judicial-system/EMAIL_FROM_NAME' - EMAIL_REPLY_TO: '/k8s/judicial-system/EMAIL_REPLY_TO' - EMAIL_REPLY_TO_NAME: '/k8s/judicial-system/EMAIL_REPLY_TO_NAME' - ERROR_EVENT_URL: '/k8s/judicial-system/ERROR_EVENT_URL' - EVENT_URL: '/k8s/judicial-system/EVENT_URL' - NOVA_PASSWORD: '/k8s/judicial-system/NOVA_PASSWORD' - NOVA_URL: '/k8s/judicial-system/NOVA_URL' - NOVA_USERNAME: '/k8s/judicial-system/NOVA_USERNAME' - PRISON_ADMIN_EMAIL: '/k8s/judicial-system/PRISON_ADMIN_EMAIL' - PRISON_EMAIL: '/k8s/judicial-system/PRISON_EMAIL' - XROAD_CLIENT_CERT: '/k8s/judicial-system/XROAD_CLIENT_CERT' - XROAD_CLIENT_KEY: '/k8s/judicial-system/XROAD_CLIENT_KEY' - XROAD_CLIENT_PEM: '/k8s/judicial-system/XROAD_CLIENT_PEM' - XROAD_COURTS_CREDENTIALS: '/k8s/judicial-system/COURTS_CREDENTIALS' - XROAD_POLICE_API_KEY: '/k8s/judicial-system/XROAD_POLICE_API_KEY' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/judicial-system-backend' - create: true - name: 'judicial-system-backend' +namespace: 'judicial-system' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '400m' + memory: '1024Mi' + requests: + cpu: '100m' + memory: '512Mi' +secrets: + ADMIN_USERS: '/k8s/judicial-system/ADMIN_USERS' + ARCHIVE_ENCRYPTION_KEY: '/k8s/judicial-system/ARCHIVE_ENCRYPTION_KEY' + AUTH_JWT_SECRET: '/k8s/judicial-system/AUTH_JWT_SECRET' + BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + CONTENTFUL_ACCESS_TOKEN: '/k8s/judicial-system/CONTENTFUL_ACCESS_TOKEN' + COURTS_ASSISTANT_MOBILE_NUMBERS: '/k8s/judicial-system/COURTS_ASSISTANT_MOBILE_NUMBERS' + COURTS_EMAILS: '/k8s/judicial-system/COURTS_EMAILS' + COURTS_MOBILE_NUMBERS: '/k8s/judicial-system/COURTS_MOBILE_NUMBERS' + COURT_ROBOT_CLIENT_ID: '/k8s/judicial-system/COURT_ROBOT_CLIENT_ID' + COURT_ROBOT_CLIENT_SECRET: '/k8s/judicial-system/COURT_ROBOT_CLIENT_SECRET' + COURT_ROBOT_EMAIL: '/k8s/judicial-system/COURT_ROBOT_EMAIL' + COURT_ROBOT_TENANT_ID: '/k8s/judicial-system/COURT_ROBOT_TENANT_ID' + COURT_ROBOT_USER: '/k8s/judicial-system/COURT_ROBOT_USER' + DB_PASS: '/k8s/judicial-system/DB_PASSWORD' + DOKOBIT_ACCESS_TOKEN: '/k8s/judicial-system/DOKOBIT_ACCESS_TOKEN' + EMAIL_FROM: '/k8s/judicial-system/EMAIL_FROM' + EMAIL_FROM_NAME: '/k8s/judicial-system/EMAIL_FROM_NAME' + EMAIL_REPLY_TO: '/k8s/judicial-system/EMAIL_REPLY_TO' + EMAIL_REPLY_TO_NAME: '/k8s/judicial-system/EMAIL_REPLY_TO_NAME' + ERROR_EVENT_URL: '/k8s/judicial-system/ERROR_EVENT_URL' + EVENT_URL: '/k8s/judicial-system/EVENT_URL' + NOVA_PASSWORD: '/k8s/judicial-system/NOVA_PASSWORD' + NOVA_URL: '/k8s/judicial-system/NOVA_URL' + NOVA_USERNAME: '/k8s/judicial-system/NOVA_USERNAME' + PRISON_ADMIN_EMAIL: '/k8s/judicial-system/PRISON_ADMIN_EMAIL' + PRISON_EMAIL: '/k8s/judicial-system/PRISON_EMAIL' + XROAD_CLIENT_CERT: '/k8s/judicial-system/XROAD_CLIENT_CERT' + XROAD_CLIENT_KEY: '/k8s/judicial-system/XROAD_CLIENT_KEY' + XROAD_CLIENT_PEM: '/k8s/judicial-system/XROAD_CLIENT_PEM' + XROAD_COURTS_CREDENTIALS: '/k8s/judicial-system/COURTS_CREDENTIALS' + XROAD_POLICE_API_KEY: '/k8s/judicial-system/XROAD_POLICE_API_KEY' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/judicial-system-backend' + create: true + name: 'judicial-system-backend' diff --git a/charts/services/judicial-system-backend/values.staging.yaml b/charts/services/judicial-system-backend/values.staging.yaml index 408a7caac2d0..57039508f4ca 100644 --- a/charts/services/judicial-system-backend/values.staging.yaml +++ b/charts/services/judicial-system-backend/values.staging.yaml @@ -5,141 +5,151 @@ # ##################################################################### -service: - name: 'judicial-system-backend' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'judicial-system-backend' +enabled: true +env: + BLOCKED_API_INTEGRATION: 'COURT,POLICE_CASE' + CLIENT_URL: 'https://judicial-system.staging01.devland.is' + CONTENTFUL_ENVIRONMENT: 'test' + CONTENTFUL_HOST: 'cdn.contentful.com' + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'judicial_system' + DB_REPLICAS_HOST: 'postgres-applications.internal' + DB_USER: 'judicial_system' + DOKOBIT_URL: 'https://developers.dokobit.com' + EMAIL_REGION: 'eu-west-1' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=921 -r dd-trace/init' + NOVA_ACCEPT_UNAUTHORIZED: 'false' + S3_BUCKET: 'island-is-staging-upload-judicial-system' + S3_REGION: 'eu-west-1' + S3_TIME_TO_LIVE_GET: '5' + S3_TIME_TO_LIVE_POST: '15' + SERVERSIDE_FEATURES_ON: '' + SQS_DEAD_LETTER_QUEUE_NAME: 'sqs-judicial-system-dlq' + SQS_QUEUE_NAME: 'sqs-judicial-system' + SQS_REGION: 'eu-west-1' + USE_MICROSOFT_GRAPH_API_FOR_COURT_ROBOT: 'true' + XROAD_BASE_PATH: 'http://securityserver.staging01.devland.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.staging01.devland.is/r1/IS-TEST' + XROAD_CLIENT_ID: 'IS-TEST/GOV/5804170510/Rettarvorslugatt-Client' + XROAD_COURT_API_PATH: '/Domstolasyslan/JusticePortal-v1' + XROAD_COURT_MEMBER_CODE: '4707171140' + XROAD_POLICE_API_PATH: '/Logreglan-Private/rettarvarsla-v1' + XROAD_POLICE_MEMBER_CODE: '5309672079' + XROAD_TLS_BASE_PATH: 'https://securityserver.staging01.devland.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.staging01.devland.is/r1/IS-TEST' +grantNamespaces: + - 'nginx-ingress-external' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-backend' +initContainer: + containers: + - args: + - 'sequelize-cli' + - 'db:migrate' + command: + - 'npx' + name: 'migrations' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' env: - BLOCKED_API_INTEGRATION: 'COURT,POLICE_CASE' - CLIENT_URL: 'https://judicial-system.staging01.devland.is' - CONTENTFUL_ENVIRONMENT: 'test' - CONTENTFUL_HOST: 'cdn.contentful.com' DB_HOST: 'postgres-applications.internal' DB_NAME: 'judicial_system' DB_REPLICAS_HOST: 'postgres-applications.internal' DB_USER: 'judicial_system' - DOKOBIT_URL: 'https://developers.dokobit.com' - EMAIL_REGION: 'eu-west-1' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=921 -r dd-trace/init' - NOVA_ACCEPT_UNAUTHORIZED: 'false' - S3_BUCKET: 'island-is-staging-upload-judicial-system' - S3_REGION: 'eu-west-1' - S3_TIME_TO_LIVE_GET: '5' - S3_TIME_TO_LIVE_POST: '15' SERVERSIDE_FEATURES_ON: '' - SQS_DEAD_LETTER_QUEUE_NAME: 'sqs-judicial-system-dlq' - SQS_QUEUE_NAME: 'sqs-judicial-system' - SQS_REGION: 'eu-west-1' - USE_MICROSOFT_GRAPH_API_FOR_COURT_ROBOT: 'true' - XROAD_BASE_PATH: 'http://securityserver.staging01.devland.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.staging01.devland.is/r1/IS-TEST' - XROAD_CLIENT_ID: 'IS-TEST/GOV/5804170510/Rettarvorslugatt-Client' - XROAD_COURT_API_PATH: '/Domstolasyslan/JusticePortal-v1' - XROAD_COURT_MEMBER_CODE: '4707171140' - XROAD_POLICE_API_PATH: '/Logreglan-Private/rettarvarsla-v1' - XROAD_POLICE_MEMBER_CODE: '5309672079' - XROAD_TLS_BASE_PATH: 'https://securityserver.staging01.devland.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.staging01.devland.is/r1/IS-TEST' - grantNamespaces: - - 'nginx-ingress-external' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-backend' - initContainer: - containers: - - args: - - 'sequelize-cli' - - 'db:migrate' - command: - - 'npx' - name: 'migrations' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'judicial_system' - DB_REPLICAS_HOST: 'postgres-applications.internal' - DB_USER: 'judicial_system' - SERVERSIDE_FEATURES_ON: '' - secrets: - DB_PASS: '/k8s/judicial-system/DB_PASSWORD' - namespace: 'judicial-system' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '400m' - memory: '1024Mi' - requests: - cpu: '100m' - memory: '512Mi' secrets: - ADMIN_USERS: '/k8s/judicial-system/ADMIN_USERS' - ARCHIVE_ENCRYPTION_KEY: '/k8s/judicial-system/ARCHIVE_ENCRYPTION_KEY' - AUTH_JWT_SECRET: '/k8s/judicial-system/AUTH_JWT_SECRET' - BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - CONTENTFUL_ACCESS_TOKEN: '/k8s/judicial-system/CONTENTFUL_ACCESS_TOKEN' - COURTS_ASSISTANT_MOBILE_NUMBERS: '/k8s/judicial-system/COURTS_ASSISTANT_MOBILE_NUMBERS' - COURTS_EMAILS: '/k8s/judicial-system/COURTS_EMAILS' - COURTS_MOBILE_NUMBERS: '/k8s/judicial-system/COURTS_MOBILE_NUMBERS' - COURT_ROBOT_CLIENT_ID: '/k8s/judicial-system/COURT_ROBOT_CLIENT_ID' - COURT_ROBOT_CLIENT_SECRET: '/k8s/judicial-system/COURT_ROBOT_CLIENT_SECRET' - COURT_ROBOT_EMAIL: '/k8s/judicial-system/COURT_ROBOT_EMAIL' - COURT_ROBOT_TENANT_ID: '/k8s/judicial-system/COURT_ROBOT_TENANT_ID' - COURT_ROBOT_USER: '/k8s/judicial-system/COURT_ROBOT_USER' DB_PASS: '/k8s/judicial-system/DB_PASSWORD' - DOKOBIT_ACCESS_TOKEN: '/k8s/judicial-system/DOKOBIT_ACCESS_TOKEN' - EMAIL_FROM: '/k8s/judicial-system/EMAIL_FROM' - EMAIL_FROM_NAME: '/k8s/judicial-system/EMAIL_FROM_NAME' - EMAIL_REPLY_TO: '/k8s/judicial-system/EMAIL_REPLY_TO' - EMAIL_REPLY_TO_NAME: '/k8s/judicial-system/EMAIL_REPLY_TO_NAME' - ERROR_EVENT_URL: '/k8s/judicial-system/ERROR_EVENT_URL' - EVENT_URL: '/k8s/judicial-system/EVENT_URL' - NOVA_PASSWORD: '/k8s/judicial-system/NOVA_PASSWORD' - NOVA_URL: '/k8s/judicial-system/NOVA_URL' - NOVA_USERNAME: '/k8s/judicial-system/NOVA_USERNAME' - PRISON_ADMIN_EMAIL: '/k8s/judicial-system/PRISON_ADMIN_EMAIL' - PRISON_EMAIL: '/k8s/judicial-system/PRISON_EMAIL' - XROAD_CLIENT_CERT: '/k8s/judicial-system/XROAD_CLIENT_CERT' - XROAD_CLIENT_KEY: '/k8s/judicial-system/XROAD_CLIENT_KEY' - XROAD_CLIENT_PEM: '/k8s/judicial-system/XROAD_CLIENT_PEM' - XROAD_COURTS_CREDENTIALS: '/k8s/judicial-system/COURTS_CREDENTIALS' - XROAD_POLICE_API_KEY: '/k8s/judicial-system/XROAD_POLICE_API_KEY' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/judicial-system-backend' - create: true - name: 'judicial-system-backend' +namespace: 'judicial-system' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '400m' + memory: '1024Mi' + requests: + cpu: '100m' + memory: '512Mi' +secrets: + ADMIN_USERS: '/k8s/judicial-system/ADMIN_USERS' + ARCHIVE_ENCRYPTION_KEY: '/k8s/judicial-system/ARCHIVE_ENCRYPTION_KEY' + AUTH_JWT_SECRET: '/k8s/judicial-system/AUTH_JWT_SECRET' + BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + CONTENTFUL_ACCESS_TOKEN: '/k8s/judicial-system/CONTENTFUL_ACCESS_TOKEN' + COURTS_ASSISTANT_MOBILE_NUMBERS: '/k8s/judicial-system/COURTS_ASSISTANT_MOBILE_NUMBERS' + COURTS_EMAILS: '/k8s/judicial-system/COURTS_EMAILS' + COURTS_MOBILE_NUMBERS: '/k8s/judicial-system/COURTS_MOBILE_NUMBERS' + COURT_ROBOT_CLIENT_ID: '/k8s/judicial-system/COURT_ROBOT_CLIENT_ID' + COURT_ROBOT_CLIENT_SECRET: '/k8s/judicial-system/COURT_ROBOT_CLIENT_SECRET' + COURT_ROBOT_EMAIL: '/k8s/judicial-system/COURT_ROBOT_EMAIL' + COURT_ROBOT_TENANT_ID: '/k8s/judicial-system/COURT_ROBOT_TENANT_ID' + COURT_ROBOT_USER: '/k8s/judicial-system/COURT_ROBOT_USER' + DB_PASS: '/k8s/judicial-system/DB_PASSWORD' + DOKOBIT_ACCESS_TOKEN: '/k8s/judicial-system/DOKOBIT_ACCESS_TOKEN' + EMAIL_FROM: '/k8s/judicial-system/EMAIL_FROM' + EMAIL_FROM_NAME: '/k8s/judicial-system/EMAIL_FROM_NAME' + EMAIL_REPLY_TO: '/k8s/judicial-system/EMAIL_REPLY_TO' + EMAIL_REPLY_TO_NAME: '/k8s/judicial-system/EMAIL_REPLY_TO_NAME' + ERROR_EVENT_URL: '/k8s/judicial-system/ERROR_EVENT_URL' + EVENT_URL: '/k8s/judicial-system/EVENT_URL' + NOVA_PASSWORD: '/k8s/judicial-system/NOVA_PASSWORD' + NOVA_URL: '/k8s/judicial-system/NOVA_URL' + NOVA_USERNAME: '/k8s/judicial-system/NOVA_USERNAME' + PRISON_ADMIN_EMAIL: '/k8s/judicial-system/PRISON_ADMIN_EMAIL' + PRISON_EMAIL: '/k8s/judicial-system/PRISON_EMAIL' + XROAD_CLIENT_CERT: '/k8s/judicial-system/XROAD_CLIENT_CERT' + XROAD_CLIENT_KEY: '/k8s/judicial-system/XROAD_CLIENT_KEY' + XROAD_CLIENT_PEM: '/k8s/judicial-system/XROAD_CLIENT_PEM' + XROAD_COURTS_CREDENTIALS: '/k8s/judicial-system/COURTS_CREDENTIALS' + XROAD_POLICE_API_KEY: '/k8s/judicial-system/XROAD_POLICE_API_KEY' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/judicial-system-backend' + create: true + name: 'judicial-system-backend' diff --git a/charts/services/judicial-system-digital-mailbox-api/values.dev.yaml b/charts/services/judicial-system-digital-mailbox-api/values.dev.yaml index 33d8167d5b57..ba3d31c98e71 100644 --- a/charts/services/judicial-system-digital-mailbox-api/values.dev.yaml +++ b/charts/services/judicial-system-digital-mailbox-api/values.dev.yaml @@ -5,76 +5,86 @@ # ##################################################################### -service: - name: 'judicial-system-digital-mailbox-api' - enabled: true +global: env: - AUDIT_TRAIL_GROUP_NAME: 'k8s/judicial-system/audit-log' - AUDIT_TRAIL_REGION: 'eu-west-1' - AUDIT_TRAIL_USE_GENERIC_LOGGER: 'false' - BACKEND_URL: 'http://web-judicial-system-backend' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - grantNamespaces: - - 'nginx-ingress-internal' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-digital-mailbox-api' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-internal-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'judicial-system-digital-mailbox-api-xrd.internal.dev01.devland.is' - paths: - - '/' - namespace: 'judicial-system' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '100m' - memory: '128Mi' - secrets: - BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - ERROR_EVENT_URL: '/k8s/judicial-system/ERROR_EVENT_URL' - LAWYERS_ICELAND_API_KEY: '/k8s/judicial-system/LAWYERS_ICELAND_API_KEY' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'judicial-system-digital-mailbox-api' +enabled: true +env: + AUDIT_TRAIL_GROUP_NAME: 'k8s/judicial-system/audit-log' + AUDIT_TRAIL_REGION: 'eu-west-1' + AUDIT_TRAIL_USE_GENERIC_LOGGER: 'false' + BACKEND_URL: 'http://web-judicial-system-backend' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: + - 'nginx-ingress-internal' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-digital-mailbox-api' +ingress: + primary-alb: annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/judicial-system-digital-mailbox-api' - create: true - name: 'judicial-system-digital-mailbox-api' + kubernetes.io/ingress.class: 'nginx-internal-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'judicial-system-digital-mailbox-api-xrd.internal.dev01.devland.is' + paths: + - '/' +namespace: 'judicial-system' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '100m' + memory: '128Mi' +secrets: + BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + ERROR_EVENT_URL: '/k8s/judicial-system/ERROR_EVENT_URL' + LAWYERS_ICELAND_API_KEY: '/k8s/judicial-system/LAWYERS_ICELAND_API_KEY' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/judicial-system-digital-mailbox-api' + create: true + name: 'judicial-system-digital-mailbox-api' diff --git a/charts/services/judicial-system-digital-mailbox-api/values.prod.yaml b/charts/services/judicial-system-digital-mailbox-api/values.prod.yaml index 5621658fa829..f51841f8686b 100644 --- a/charts/services/judicial-system-digital-mailbox-api/values.prod.yaml +++ b/charts/services/judicial-system-digital-mailbox-api/values.prod.yaml @@ -5,76 +5,86 @@ # ##################################################################### -service: - name: 'judicial-system-digital-mailbox-api' - enabled: true +global: env: - AUDIT_TRAIL_GROUP_NAME: 'k8s/judicial-system/audit-log' - AUDIT_TRAIL_REGION: 'eu-west-1' - AUDIT_TRAIL_USE_GENERIC_LOGGER: 'false' - BACKEND_URL: 'http://web-judicial-system-backend' - IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - grantNamespaces: - - 'nginx-ingress-internal' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 3 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-digital-mailbox-api' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-internal-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'judicial-system-digital-mailbox-api-xrd.internal.island.is' - paths: - - '/' - namespace: 'judicial-system' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 3 - max: 10 - min: 3 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '100m' - memory: '128Mi' - secrets: - BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - ERROR_EVENT_URL: '/k8s/judicial-system/ERROR_EVENT_URL' - LAWYERS_ICELAND_API_KEY: '/k8s/judicial-system/LAWYERS_ICELAND_API_KEY' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'judicial-system-digital-mailbox-api' +enabled: true +env: + AUDIT_TRAIL_GROUP_NAME: 'k8s/judicial-system/audit-log' + AUDIT_TRAIL_REGION: 'eu-west-1' + AUDIT_TRAIL_USE_GENERIC_LOGGER: 'false' + BACKEND_URL: 'http://web-judicial-system-backend' + IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' +grantNamespaces: + - 'nginx-ingress-internal' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 3 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-digital-mailbox-api' +ingress: + primary-alb: annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/judicial-system-digital-mailbox-api' - create: true - name: 'judicial-system-digital-mailbox-api' + kubernetes.io/ingress.class: 'nginx-internal-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'judicial-system-digital-mailbox-api-xrd.internal.island.is' + paths: + - '/' +namespace: 'judicial-system' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 3 + max: 10 + min: 3 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '100m' + memory: '128Mi' +secrets: + BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + ERROR_EVENT_URL: '/k8s/judicial-system/ERROR_EVENT_URL' + LAWYERS_ICELAND_API_KEY: '/k8s/judicial-system/LAWYERS_ICELAND_API_KEY' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/judicial-system-digital-mailbox-api' + create: true + name: 'judicial-system-digital-mailbox-api' diff --git a/charts/services/judicial-system-digital-mailbox-api/values.staging.yaml b/charts/services/judicial-system-digital-mailbox-api/values.staging.yaml index bd3726572d29..15b571c01c4f 100644 --- a/charts/services/judicial-system-digital-mailbox-api/values.staging.yaml +++ b/charts/services/judicial-system-digital-mailbox-api/values.staging.yaml @@ -5,76 +5,86 @@ # ##################################################################### -service: - name: 'judicial-system-digital-mailbox-api' - enabled: true +global: env: - AUDIT_TRAIL_GROUP_NAME: 'k8s/judicial-system/audit-log' - AUDIT_TRAIL_REGION: 'eu-west-1' - AUDIT_TRAIL_USE_GENERIC_LOGGER: 'false' - BACKEND_URL: 'http://web-judicial-system-backend' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - grantNamespaces: - - 'nginx-ingress-internal' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-digital-mailbox-api' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-internal-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'judicial-system-digital-mailbox-api-xrd.internal.staging01.devland.is' - paths: - - '/' - namespace: 'judicial-system' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '100m' - memory: '128Mi' - secrets: - BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - ERROR_EVENT_URL: '/k8s/judicial-system/ERROR_EVENT_URL' - LAWYERS_ICELAND_API_KEY: '/k8s/judicial-system/LAWYERS_ICELAND_API_KEY' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'judicial-system-digital-mailbox-api' +enabled: true +env: + AUDIT_TRAIL_GROUP_NAME: 'k8s/judicial-system/audit-log' + AUDIT_TRAIL_REGION: 'eu-west-1' + AUDIT_TRAIL_USE_GENERIC_LOGGER: 'false' + BACKEND_URL: 'http://web-judicial-system-backend' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: + - 'nginx-ingress-internal' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-digital-mailbox-api' +ingress: + primary-alb: annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/judicial-system-digital-mailbox-api' - create: true - name: 'judicial-system-digital-mailbox-api' + kubernetes.io/ingress.class: 'nginx-internal-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'judicial-system-digital-mailbox-api-xrd.internal.staging01.devland.is' + paths: + - '/' +namespace: 'judicial-system' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '100m' + memory: '128Mi' +secrets: + BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + ERROR_EVENT_URL: '/k8s/judicial-system/ERROR_EVENT_URL' + LAWYERS_ICELAND_API_KEY: '/k8s/judicial-system/LAWYERS_ICELAND_API_KEY' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/judicial-system-digital-mailbox-api' + create: true + name: 'judicial-system-digital-mailbox-api' diff --git a/charts/services/judicial-system-message-handler/values.dev.yaml b/charts/services/judicial-system-message-handler/values.dev.yaml index ef0196592951..3362bf7c5e13 100644 --- a/charts/services/judicial-system-message-handler/values.dev.yaml +++ b/charts/services/judicial-system-message-handler/values.dev.yaml @@ -5,69 +5,79 @@ # ##################################################################### -service: - name: 'judicial-system-message-handler' - args: - - '--no-experimental-fetch' - - 'main.js' - command: - - 'node' - enabled: true +global: env: - BACKEND_URL: 'http://web-judicial-system-backend' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - SQS_DEAD_LETTER_QUEUE_NAME: 'sqs-judicial-system-dlq' - SQS_QUEUE_NAME: 'sqs-judicial-system' - SQS_REGION: 'eu-west-1' - grantNamespaces: - - 'nginx-ingress-external' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-message-handler' - namespace: 'judicial-system' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '100m' - memory: '128Mi' - secrets: - BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/judicial-system-message-handler' - create: true - name: 'judicial-system-message-handler' + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'judicial-system-message-handler' +args: + - '--no-experimental-fetch' + - 'main.js' +command: + - 'node' +enabled: true +env: + BACKEND_URL: 'http://web-judicial-system-backend' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' + SQS_DEAD_LETTER_QUEUE_NAME: 'sqs-judicial-system-dlq' + SQS_QUEUE_NAME: 'sqs-judicial-system' + SQS_REGION: 'eu-west-1' +grantNamespaces: + - 'nginx-ingress-external' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-message-handler' +namespace: 'judicial-system' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '100m' + memory: '128Mi' +secrets: + BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/judicial-system-message-handler' + create: true + name: 'judicial-system-message-handler' diff --git a/charts/services/judicial-system-message-handler/values.prod.yaml b/charts/services/judicial-system-message-handler/values.prod.yaml index ebd1ae5b9625..15a7ef653b0b 100644 --- a/charts/services/judicial-system-message-handler/values.prod.yaml +++ b/charts/services/judicial-system-message-handler/values.prod.yaml @@ -5,69 +5,79 @@ # ##################################################################### -service: - name: 'judicial-system-message-handler' - args: - - '--no-experimental-fetch' - - 'main.js' - command: - - 'node' - enabled: true +global: env: - BACKEND_URL: 'http://web-judicial-system-backend' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - SQS_DEAD_LETTER_QUEUE_NAME: 'sqs-judicial-system-dlq' - SQS_QUEUE_NAME: 'sqs-judicial-system' - SQS_REGION: 'eu-west-1' - grantNamespaces: - - 'nginx-ingress-external' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 3 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-message-handler' - namespace: 'judicial-system' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 3 - max: 10 - min: 3 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '100m' - memory: '128Mi' - secrets: - BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/judicial-system-message-handler' - create: true - name: 'judicial-system-message-handler' + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'judicial-system-message-handler' +args: + - '--no-experimental-fetch' + - 'main.js' +command: + - 'node' +enabled: true +env: + BACKEND_URL: 'http://web-judicial-system-backend' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' + SQS_DEAD_LETTER_QUEUE_NAME: 'sqs-judicial-system-dlq' + SQS_QUEUE_NAME: 'sqs-judicial-system' + SQS_REGION: 'eu-west-1' +grantNamespaces: + - 'nginx-ingress-external' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 3 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-message-handler' +namespace: 'judicial-system' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 3 + max: 10 + min: 3 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '100m' + memory: '128Mi' +secrets: + BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/judicial-system-message-handler' + create: true + name: 'judicial-system-message-handler' diff --git a/charts/services/judicial-system-message-handler/values.staging.yaml b/charts/services/judicial-system-message-handler/values.staging.yaml index afc6f4877ba8..05e2968e1c94 100644 --- a/charts/services/judicial-system-message-handler/values.staging.yaml +++ b/charts/services/judicial-system-message-handler/values.staging.yaml @@ -5,69 +5,79 @@ # ##################################################################### -service: - name: 'judicial-system-message-handler' - args: - - '--no-experimental-fetch' - - 'main.js' - command: - - 'node' - enabled: true +global: env: - BACKEND_URL: 'http://web-judicial-system-backend' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - SQS_DEAD_LETTER_QUEUE_NAME: 'sqs-judicial-system-dlq' - SQS_QUEUE_NAME: 'sqs-judicial-system' - SQS_REGION: 'eu-west-1' - grantNamespaces: - - 'nginx-ingress-external' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-message-handler' - namespace: 'judicial-system' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '100m' - memory: '128Mi' - secrets: - BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/judicial-system-message-handler' - create: true - name: 'judicial-system-message-handler' + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'judicial-system-message-handler' +args: + - '--no-experimental-fetch' + - 'main.js' +command: + - 'node' +enabled: true +env: + BACKEND_URL: 'http://web-judicial-system-backend' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' + SQS_DEAD_LETTER_QUEUE_NAME: 'sqs-judicial-system-dlq' + SQS_QUEUE_NAME: 'sqs-judicial-system' + SQS_REGION: 'eu-west-1' +grantNamespaces: + - 'nginx-ingress-external' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-message-handler' +namespace: 'judicial-system' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '100m' + memory: '128Mi' +secrets: + BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/judicial-system-message-handler' + create: true + name: 'judicial-system-message-handler' diff --git a/charts/services/judicial-system-robot-api/values.dev.yaml b/charts/services/judicial-system-robot-api/values.dev.yaml index 4750bf74ff44..9ba024a384cd 100644 --- a/charts/services/judicial-system-robot-api/values.dev.yaml +++ b/charts/services/judicial-system-robot-api/values.dev.yaml @@ -5,74 +5,84 @@ # ##################################################################### -service: - name: 'judicial-system-robot-api' - enabled: true +global: env: - AUDIT_TRAIL_GROUP_NAME: 'k8s/judicial-system/audit-log' - AUDIT_TRAIL_REGION: 'eu-west-1' - AUDIT_TRAIL_USE_GENERIC_LOGGER: 'false' - BACKEND_URL: 'http://web-judicial-system-backend' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - grantNamespaces: - - 'nginx-ingress-internal' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-robot-api' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-internal-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'judicial-system-robot-api-xrd.internal.dev01.devland.is' - paths: - - '/' - namespace: 'judicial-system' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '100m' - memory: '128Mi' - secrets: - BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - ERROR_EVENT_URL: '/k8s/judicial-system/ERROR_EVENT_URL' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'judicial-system-robot-api' +enabled: true +env: + AUDIT_TRAIL_GROUP_NAME: 'k8s/judicial-system/audit-log' + AUDIT_TRAIL_REGION: 'eu-west-1' + AUDIT_TRAIL_USE_GENERIC_LOGGER: 'false' + BACKEND_URL: 'http://web-judicial-system-backend' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: + - 'nginx-ingress-internal' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-robot-api' +ingress: + primary-alb: annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/judicial-system-robot-api' - create: true - name: 'judicial-system-robot-api' + kubernetes.io/ingress.class: 'nginx-internal-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'judicial-system-robot-api-xrd.internal.dev01.devland.is' + paths: + - '/' +namespace: 'judicial-system' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '100m' + memory: '128Mi' +secrets: + BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + ERROR_EVENT_URL: '/k8s/judicial-system/ERROR_EVENT_URL' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/judicial-system-robot-api' + create: true + name: 'judicial-system-robot-api' diff --git a/charts/services/judicial-system-robot-api/values.prod.yaml b/charts/services/judicial-system-robot-api/values.prod.yaml index 2f177abcf6e2..41e9e020df36 100644 --- a/charts/services/judicial-system-robot-api/values.prod.yaml +++ b/charts/services/judicial-system-robot-api/values.prod.yaml @@ -5,74 +5,84 @@ # ##################################################################### -service: - name: 'judicial-system-robot-api' - enabled: true +global: env: - AUDIT_TRAIL_GROUP_NAME: 'k8s/judicial-system/audit-log' - AUDIT_TRAIL_REGION: 'eu-west-1' - AUDIT_TRAIL_USE_GENERIC_LOGGER: 'false' - BACKEND_URL: 'http://web-judicial-system-backend' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - grantNamespaces: - - 'nginx-ingress-internal' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 3 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-robot-api' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-internal-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'judicial-system-robot-api-xrd.internal.island.is' - paths: - - '/' - namespace: 'judicial-system' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 3 - max: 10 - min: 3 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '100m' - memory: '128Mi' - secrets: - BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - ERROR_EVENT_URL: '/k8s/judicial-system/ERROR_EVENT_URL' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'judicial-system-robot-api' +enabled: true +env: + AUDIT_TRAIL_GROUP_NAME: 'k8s/judicial-system/audit-log' + AUDIT_TRAIL_REGION: 'eu-west-1' + AUDIT_TRAIL_USE_GENERIC_LOGGER: 'false' + BACKEND_URL: 'http://web-judicial-system-backend' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' +grantNamespaces: + - 'nginx-ingress-internal' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 3 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-robot-api' +ingress: + primary-alb: annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/judicial-system-robot-api' - create: true - name: 'judicial-system-robot-api' + kubernetes.io/ingress.class: 'nginx-internal-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'judicial-system-robot-api-xrd.internal.island.is' + paths: + - '/' +namespace: 'judicial-system' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 3 + max: 10 + min: 3 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '100m' + memory: '128Mi' +secrets: + BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + ERROR_EVENT_URL: '/k8s/judicial-system/ERROR_EVENT_URL' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/judicial-system-robot-api' + create: true + name: 'judicial-system-robot-api' diff --git a/charts/services/judicial-system-robot-api/values.staging.yaml b/charts/services/judicial-system-robot-api/values.staging.yaml index 444a59ee9eea..08f7b9314a61 100644 --- a/charts/services/judicial-system-robot-api/values.staging.yaml +++ b/charts/services/judicial-system-robot-api/values.staging.yaml @@ -5,74 +5,84 @@ # ##################################################################### -service: - name: 'judicial-system-robot-api' - enabled: true +global: env: - AUDIT_TRAIL_GROUP_NAME: 'k8s/judicial-system/audit-log' - AUDIT_TRAIL_REGION: 'eu-west-1' - AUDIT_TRAIL_USE_GENERIC_LOGGER: 'false' - BACKEND_URL: 'http://web-judicial-system-backend' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - grantNamespaces: - - 'nginx-ingress-internal' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-robot-api' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-internal-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'judicial-system-robot-api-xrd.internal.staging01.devland.is' - paths: - - '/' - namespace: 'judicial-system' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '100m' - memory: '128Mi' - secrets: - BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - ERROR_EVENT_URL: '/k8s/judicial-system/ERROR_EVENT_URL' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'judicial-system-robot-api' +enabled: true +env: + AUDIT_TRAIL_GROUP_NAME: 'k8s/judicial-system/audit-log' + AUDIT_TRAIL_REGION: 'eu-west-1' + AUDIT_TRAIL_USE_GENERIC_LOGGER: 'false' + BACKEND_URL: 'http://web-judicial-system-backend' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: + - 'nginx-ingress-internal' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-robot-api' +ingress: + primary-alb: annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/judicial-system-robot-api' - create: true - name: 'judicial-system-robot-api' + kubernetes.io/ingress.class: 'nginx-internal-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'judicial-system-robot-api-xrd.internal.staging01.devland.is' + paths: + - '/' +namespace: 'judicial-system' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '100m' + memory: '128Mi' +secrets: + BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + ERROR_EVENT_URL: '/k8s/judicial-system/ERROR_EVENT_URL' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/judicial-system-robot-api' + create: true + name: 'judicial-system-robot-api' diff --git a/charts/services/judicial-system-scheduler/values.dev.yaml b/charts/services/judicial-system-scheduler/values.dev.yaml index f5c20f8f5dbb..26165e7ee776 100644 --- a/charts/services/judicial-system-scheduler/values.dev.yaml +++ b/charts/services/judicial-system-scheduler/values.dev.yaml @@ -5,71 +5,81 @@ # ##################################################################### -service: - name: 'judicial-system-scheduler' - args: - - '--no-experimental-fetch' - - 'main.js' - command: - - 'node' - enabled: true +global: env: - BACKEND_URL: 'http://web-judicial-system-backend' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - SQS_DEAD_LETTER_QUEUE_NAME: 'sqs-judicial-system-dlq' - SQS_QUEUE_NAME: 'sqs-judicial-system' - SQS_REGION: 'eu-west-1' - TIME_TO_LIVE_MINUTES: '30' - grantNamespaces: - - 'nginx-ingress-external' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 1 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-scheduler' - namespace: 'judicial-system' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 1 - max: 1 - min: 1 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '100m' - memory: '128Mi' - schedule: '0 2 * * *' - secrets: - BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/judicial-system-scheduler' - create: true - name: 'judicial-system-scheduler' + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'judicial-system-scheduler' +args: + - '--no-experimental-fetch' + - 'main.js' +command: + - 'node' +enabled: true +env: + BACKEND_URL: 'http://web-judicial-system-backend' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' + SQS_DEAD_LETTER_QUEUE_NAME: 'sqs-judicial-system-dlq' + SQS_QUEUE_NAME: 'sqs-judicial-system' + SQS_REGION: 'eu-west-1' + TIME_TO_LIVE_MINUTES: '30' +grantNamespaces: + - 'nginx-ingress-external' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 1 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-scheduler' +namespace: 'judicial-system' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 1 + max: 1 + min: 1 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '100m' + memory: '128Mi' +schedule: '0 2 * * *' +secrets: + BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/judicial-system-scheduler' + create: true + name: 'judicial-system-scheduler' diff --git a/charts/services/judicial-system-scheduler/values.prod.yaml b/charts/services/judicial-system-scheduler/values.prod.yaml index d028b565e247..c215df3352a0 100644 --- a/charts/services/judicial-system-scheduler/values.prod.yaml +++ b/charts/services/judicial-system-scheduler/values.prod.yaml @@ -5,71 +5,81 @@ # ##################################################################### -service: - name: 'judicial-system-scheduler' - args: - - '--no-experimental-fetch' - - 'main.js' - command: - - 'node' - enabled: true +global: env: - BACKEND_URL: 'http://web-judicial-system-backend' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - SQS_DEAD_LETTER_QUEUE_NAME: 'sqs-judicial-system-dlq' - SQS_QUEUE_NAME: 'sqs-judicial-system' - SQS_REGION: 'eu-west-1' - TIME_TO_LIVE_MINUTES: '30' - grantNamespaces: - - 'nginx-ingress-external' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 1 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-scheduler' - namespace: 'judicial-system' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 1 - max: 1 - min: 1 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '100m' - memory: '128Mi' - schedule: '0 2 * * *' - secrets: - BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/judicial-system-scheduler' - create: true - name: 'judicial-system-scheduler' + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'judicial-system-scheduler' +args: + - '--no-experimental-fetch' + - 'main.js' +command: + - 'node' +enabled: true +env: + BACKEND_URL: 'http://web-judicial-system-backend' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' + SQS_DEAD_LETTER_QUEUE_NAME: 'sqs-judicial-system-dlq' + SQS_QUEUE_NAME: 'sqs-judicial-system' + SQS_REGION: 'eu-west-1' + TIME_TO_LIVE_MINUTES: '30' +grantNamespaces: + - 'nginx-ingress-external' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 1 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-scheduler' +namespace: 'judicial-system' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 1 + max: 1 + min: 1 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '100m' + memory: '128Mi' +schedule: '0 2 * * *' +secrets: + BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/judicial-system-scheduler' + create: true + name: 'judicial-system-scheduler' diff --git a/charts/services/judicial-system-scheduler/values.staging.yaml b/charts/services/judicial-system-scheduler/values.staging.yaml index 5ac7b3b823a7..b62035e69488 100644 --- a/charts/services/judicial-system-scheduler/values.staging.yaml +++ b/charts/services/judicial-system-scheduler/values.staging.yaml @@ -5,71 +5,81 @@ # ##################################################################### -service: - name: 'judicial-system-scheduler' - args: - - '--no-experimental-fetch' - - 'main.js' - command: - - 'node' - enabled: true +global: env: - BACKEND_URL: 'http://web-judicial-system-backend' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - SQS_DEAD_LETTER_QUEUE_NAME: 'sqs-judicial-system-dlq' - SQS_QUEUE_NAME: 'sqs-judicial-system' - SQS_REGION: 'eu-west-1' - TIME_TO_LIVE_MINUTES: '30' - grantNamespaces: - - 'nginx-ingress-external' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 1 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-scheduler' - namespace: 'judicial-system' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 1 - max: 1 - min: 1 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '100m' - memory: '128Mi' - schedule: '0 2 * * *' - secrets: - BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/judicial-system-scheduler' - create: true - name: 'judicial-system-scheduler' + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'judicial-system-scheduler' +args: + - '--no-experimental-fetch' + - 'main.js' +command: + - 'node' +enabled: true +env: + BACKEND_URL: 'http://web-judicial-system-backend' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' + SQS_DEAD_LETTER_QUEUE_NAME: 'sqs-judicial-system-dlq' + SQS_QUEUE_NAME: 'sqs-judicial-system' + SQS_REGION: 'eu-west-1' + TIME_TO_LIVE_MINUTES: '30' +grantNamespaces: + - 'nginx-ingress-external' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 1 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-scheduler' +namespace: 'judicial-system' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 1 + max: 1 + min: 1 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '100m' + memory: '128Mi' +schedule: '0 2 * * *' +secrets: + BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/judicial-system-scheduler' + create: true + name: 'judicial-system-scheduler' diff --git a/charts/services/judicial-system-web/values.dev.yaml b/charts/services/judicial-system-web/values.dev.yaml index 41691d00362b..65f320857fb0 100644 --- a/charts/services/judicial-system-web/values.dev.yaml +++ b/charts/services/judicial-system-web/values.dev.yaml @@ -5,68 +5,78 @@ # ##################################################################### -service: - name: 'judicial-system-web' - enabled: true +global: env: - API_URL: 'https://judicial-system.dev01.devland.is' - INTERNAL_API_URL: 'http://web-judicial-system-api' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - grantNamespaces: - - 'nginx-ingress-external' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/readiness' - timeoutSeconds: 10 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-web' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'judicial-system.dev01.devland.is' - paths: - - '/' - namespace: 'judicial-system' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '15m' - memory: '128Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - LAWYERS_ICELAND_API_KEY: '/k8s/judicial-system/LAWYERS_ICELAND_API_KEY' - NATIONAL_REGISTRY_API_KEY: '/k8s/judicial-system/NATIONAL_REGISTRY_API_KEY' - SUPPORT_EMAIL: '/k8s/judicial-system/SUPPORT_EMAIL' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'judicial-system-web' +enabled: true +env: + API_URL: 'https://judicial-system.dev01.devland.is' + INTERNAL_API_URL: 'http://web-judicial-system-api' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: + - 'nginx-ingress-external' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/readiness' + timeoutSeconds: 10 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-web' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'judicial-system.dev01.devland.is' + paths: + - '/' +namespace: 'judicial-system' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '15m' + memory: '128Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + LAWYERS_ICELAND_API_KEY: '/k8s/judicial-system/LAWYERS_ICELAND_API_KEY' + NATIONAL_REGISTRY_API_KEY: '/k8s/judicial-system/NATIONAL_REGISTRY_API_KEY' + SUPPORT_EMAIL: '/k8s/judicial-system/SUPPORT_EMAIL' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/judicial-system-web/values.prod.yaml b/charts/services/judicial-system-web/values.prod.yaml index 9a6b14bbbcaf..15fea4372540 100644 --- a/charts/services/judicial-system-web/values.prod.yaml +++ b/charts/services/judicial-system-web/values.prod.yaml @@ -5,68 +5,78 @@ # ##################################################################### -service: - name: 'judicial-system-web' - enabled: true +global: env: - API_URL: 'https://rettarvorslugatt.island.is' - INTERNAL_API_URL: 'http://web-judicial-system-api' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - grantNamespaces: - - 'nginx-ingress-external' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/readiness' - timeoutSeconds: 10 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 3 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-web' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'rettarvorslugatt.island.is' - paths: - - '/' - namespace: 'judicial-system' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 3 - max: 10 - min: 3 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '15m' - memory: '128Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - LAWYERS_ICELAND_API_KEY: '/k8s/judicial-system/LAWYERS_ICELAND_API_KEY' - NATIONAL_REGISTRY_API_KEY: '/k8s/judicial-system/NATIONAL_REGISTRY_API_KEY' - SUPPORT_EMAIL: '/k8s/judicial-system/SUPPORT_EMAIL' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'judicial-system-web' +enabled: true +env: + API_URL: 'https://rettarvorslugatt.island.is' + INTERNAL_API_URL: 'http://web-judicial-system-api' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' +grantNamespaces: + - 'nginx-ingress-external' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/readiness' + timeoutSeconds: 10 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 3 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-web' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'rettarvorslugatt.island.is' + paths: + - '/' +namespace: 'judicial-system' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 3 + max: 10 + min: 3 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '15m' + memory: '128Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + LAWYERS_ICELAND_API_KEY: '/k8s/judicial-system/LAWYERS_ICELAND_API_KEY' + NATIONAL_REGISTRY_API_KEY: '/k8s/judicial-system/NATIONAL_REGISTRY_API_KEY' + SUPPORT_EMAIL: '/k8s/judicial-system/SUPPORT_EMAIL' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/judicial-system-web/values.staging.yaml b/charts/services/judicial-system-web/values.staging.yaml index 0a429df2ee49..c88dc0b5bc0d 100644 --- a/charts/services/judicial-system-web/values.staging.yaml +++ b/charts/services/judicial-system-web/values.staging.yaml @@ -5,68 +5,78 @@ # ##################################################################### -service: - name: 'judicial-system-web' - enabled: true +global: env: - API_URL: 'https://judicial-system.staging01.devland.is' - INTERNAL_API_URL: 'http://web-judicial-system-api' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - grantNamespaces: - - 'nginx-ingress-external' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/readiness' - timeoutSeconds: 10 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-web' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'judicial-system.staging01.devland.is' - paths: - - '/' - namespace: 'judicial-system' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '15m' - memory: '128Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - LAWYERS_ICELAND_API_KEY: '/k8s/judicial-system/LAWYERS_ICELAND_API_KEY' - NATIONAL_REGISTRY_API_KEY: '/k8s/judicial-system/NATIONAL_REGISTRY_API_KEY' - SUPPORT_EMAIL: '/k8s/judicial-system/SUPPORT_EMAIL' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'judicial-system-web' +enabled: true +env: + API_URL: 'https://judicial-system.staging01.devland.is' + INTERNAL_API_URL: 'http://web-judicial-system-api' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: + - 'nginx-ingress-external' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/readiness' + timeoutSeconds: 10 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-web' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'judicial-system.staging01.devland.is' + paths: + - '/' +namespace: 'judicial-system' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '15m' + memory: '128Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + LAWYERS_ICELAND_API_KEY: '/k8s/judicial-system/LAWYERS_ICELAND_API_KEY' + NATIONAL_REGISTRY_API_KEY: '/k8s/judicial-system/NATIONAL_REGISTRY_API_KEY' + SUPPORT_EMAIL: '/k8s/judicial-system/SUPPORT_EMAIL' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/judicial-system-xrd-api/values.dev.yaml b/charts/services/judicial-system-xrd-api/values.dev.yaml index e5b48dd1f60c..f37c818403a0 100644 --- a/charts/services/judicial-system-xrd-api/values.dev.yaml +++ b/charts/services/judicial-system-xrd-api/values.dev.yaml @@ -5,75 +5,85 @@ # ##################################################################### -service: - name: 'judicial-system-xrd-api' - enabled: true +global: env: - AUDIT_TRAIL_GROUP_NAME: 'k8s/judicial-system/audit-log' - AUDIT_TRAIL_REGION: 'eu-west-1' - AUDIT_TRAIL_USE_GENERIC_LOGGER: 'false' - BACKEND_URL: 'http://web-judicial-system-backend' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - grantNamespaces: - - 'nginx-ingress-internal' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-xrd-api' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-internal-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'judicial-system-xrd-api.internal.dev01.devland.is' - paths: - - '/' - namespace: 'judicial-system' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '100m' - memory: '128Mi' - secrets: - BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - ERROR_EVENT_URL: '/k8s/judicial-system/ERROR_EVENT_URL' - LAWYERS_ICELAND_API_KEY: '/k8s/judicial-system/LAWYERS_ICELAND_API_KEY' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'judicial-system-xrd-api' +enabled: true +env: + AUDIT_TRAIL_GROUP_NAME: 'k8s/judicial-system/audit-log' + AUDIT_TRAIL_REGION: 'eu-west-1' + AUDIT_TRAIL_USE_GENERIC_LOGGER: 'false' + BACKEND_URL: 'http://web-judicial-system-backend' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: + - 'nginx-ingress-internal' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-xrd-api' +ingress: + primary-alb: annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/judicial-system-xrd-api' - create: true - name: 'judicial-system-xrd-api' + kubernetes.io/ingress.class: 'nginx-internal-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'judicial-system-xrd-api.internal.dev01.devland.is' + paths: + - '/' +namespace: 'judicial-system' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '100m' + memory: '128Mi' +secrets: + BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + ERROR_EVENT_URL: '/k8s/judicial-system/ERROR_EVENT_URL' + LAWYERS_ICELAND_API_KEY: '/k8s/judicial-system/LAWYERS_ICELAND_API_KEY' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/judicial-system-xrd-api' + create: true + name: 'judicial-system-xrd-api' diff --git a/charts/services/judicial-system-xrd-api/values.prod.yaml b/charts/services/judicial-system-xrd-api/values.prod.yaml index b70e8678dfcf..ad7c66f5f846 100644 --- a/charts/services/judicial-system-xrd-api/values.prod.yaml +++ b/charts/services/judicial-system-xrd-api/values.prod.yaml @@ -5,75 +5,85 @@ # ##################################################################### -service: - name: 'judicial-system-xrd-api' - enabled: true +global: env: - AUDIT_TRAIL_GROUP_NAME: 'k8s/judicial-system/audit-log' - AUDIT_TRAIL_REGION: 'eu-west-1' - AUDIT_TRAIL_USE_GENERIC_LOGGER: 'false' - BACKEND_URL: 'http://web-judicial-system-backend' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - grantNamespaces: - - 'nginx-ingress-internal' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 3 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-xrd-api' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-internal-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'judicial-system-xrd-api.internal.island.is' - paths: - - '/' - namespace: 'judicial-system' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 3 - max: 10 - min: 3 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '100m' - memory: '128Mi' - secrets: - BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - ERROR_EVENT_URL: '/k8s/judicial-system/ERROR_EVENT_URL' - LAWYERS_ICELAND_API_KEY: '/k8s/judicial-system/LAWYERS_ICELAND_API_KEY' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'judicial-system-xrd-api' +enabled: true +env: + AUDIT_TRAIL_GROUP_NAME: 'k8s/judicial-system/audit-log' + AUDIT_TRAIL_REGION: 'eu-west-1' + AUDIT_TRAIL_USE_GENERIC_LOGGER: 'false' + BACKEND_URL: 'http://web-judicial-system-backend' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' +grantNamespaces: + - 'nginx-ingress-internal' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 3 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-xrd-api' +ingress: + primary-alb: annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/judicial-system-xrd-api' - create: true - name: 'judicial-system-xrd-api' + kubernetes.io/ingress.class: 'nginx-internal-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'judicial-system-xrd-api.internal.island.is' + paths: + - '/' +namespace: 'judicial-system' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 3 + max: 10 + min: 3 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '100m' + memory: '128Mi' +secrets: + BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + ERROR_EVENT_URL: '/k8s/judicial-system/ERROR_EVENT_URL' + LAWYERS_ICELAND_API_KEY: '/k8s/judicial-system/LAWYERS_ICELAND_API_KEY' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/judicial-system-xrd-api' + create: true + name: 'judicial-system-xrd-api' diff --git a/charts/services/judicial-system-xrd-api/values.staging.yaml b/charts/services/judicial-system-xrd-api/values.staging.yaml index e29ca8b3356a..0b759861409b 100644 --- a/charts/services/judicial-system-xrd-api/values.staging.yaml +++ b/charts/services/judicial-system-xrd-api/values.staging.yaml @@ -5,75 +5,85 @@ # ##################################################################### -service: - name: 'judicial-system-xrd-api' - enabled: true +global: env: - AUDIT_TRAIL_GROUP_NAME: 'k8s/judicial-system/audit-log' - AUDIT_TRAIL_REGION: 'eu-west-1' - AUDIT_TRAIL_USE_GENERIC_LOGGER: 'false' - BACKEND_URL: 'http://web-judicial-system-backend' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - grantNamespaces: - - 'nginx-ingress-internal' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-xrd-api' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-internal-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'judicial-system-xrd-api.internal.staging01.devland.is' - paths: - - '/' - namespace: 'judicial-system' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '100m' - memory: '128Mi' - secrets: - BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - ERROR_EVENT_URL: '/k8s/judicial-system/ERROR_EVENT_URL' - LAWYERS_ICELAND_API_KEY: '/k8s/judicial-system/LAWYERS_ICELAND_API_KEY' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'judicial-system-xrd-api' +enabled: true +env: + AUDIT_TRAIL_GROUP_NAME: 'k8s/judicial-system/audit-log' + AUDIT_TRAIL_REGION: 'eu-west-1' + AUDIT_TRAIL_USE_GENERIC_LOGGER: 'false' + BACKEND_URL: 'http://web-judicial-system-backend' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: + - 'nginx-ingress-internal' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-xrd-api' +ingress: + primary-alb: annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/judicial-system-xrd-api' - create: true - name: 'judicial-system-xrd-api' + kubernetes.io/ingress.class: 'nginx-internal-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'judicial-system-xrd-api.internal.staging01.devland.is' + paths: + - '/' +namespace: 'judicial-system' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '100m' + memory: '128Mi' +secrets: + BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + ERROR_EVENT_URL: '/k8s/judicial-system/ERROR_EVENT_URL' + LAWYERS_ICELAND_API_KEY: '/k8s/judicial-system/LAWYERS_ICELAND_API_KEY' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/judicial-system-xrd-api' + create: true + name: 'judicial-system-xrd-api' diff --git a/charts/services/license-api/values.dev.yaml b/charts/services/license-api/values.dev.yaml index 7b9401982efe..525b0341c608 100644 --- a/charts/services/license-api/values.dev.yaml +++ b/charts/services/license-api/values.dev.yaml @@ -5,98 +5,108 @@ # ##################################################################### -service: - name: 'license-api' - enabled: true +global: env: - HUNTING_LICENSE_PASS_TEMPLATE_ID: '1da72d52-a93a-4d0f-8463-1933a2bd210b' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' - LICENSE_SERVICE_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - XROAD_BASE_PATH: 'http://securityserver.dev01.devland.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.dev01.devland.is/r1/IS-DEV' - XROAD_CLIENT_ID: 'IS-DEV/GOV/10000/island-is-client' - XROAD_DISABILITY_LICENSE_PATH: 'IS-DEV/GOV/10008/TR-Protected/oryrki-v1' - XROAD_DRIVING_LICENSE_PATH: 'r1/IS-DEV/GOV/10005/Logreglan-Protected/RafraentOkuskirteini-v1' - XROAD_DRIVING_LICENSE_V2_PATH: 'r1/IS-DEV/GOV/10005/Logreglan-Protected/RafraentOkuskirteini-v2' - XROAD_DRIVING_LICENSE_V4_PATH: 'r1/IS-DEV/GOV/10005/Logreglan-Protected/Okuskirteini-v4' - XROAD_DRIVING_LICENSE_V5_PATH: 'r1/IS-DEV/GOV/10005/Logreglan-Protected/Okuskirteini-v5' - XROAD_FIREARM_LICENSE_PATH: 'IS-DEV/GOV/10005/Logreglan-Protected/island-api-v1' - XROAD_HUNTING_LICENSE_PATH: 'IS-DEV/GOV/10009/Umhverfisstofnun-Protected/api' - XROAD_TLS_BASE_PATH: 'https://securityserver.dev01.devland.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.dev01.devland.is/r1/IS-DEV' - grantNamespaces: - - 'nginx-ingress-internal' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/license-api' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-internal-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'license-api-xrd.internal.dev01.devland.is' - paths: - - '/' - namespace: 'license-api' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '50m' - memory: '256Mi' - secrets: - ADR_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/ADR_LICENSE_PASS_TEMPLATE_ID' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DISABILITY_LICENSE_FETCH_TIMEOUT: '/k8s/api/DISABILITY_LICENSE_FETCH_TIMEOUT' - DISABILITY_LICENSE_PASS_TEMPLATE_ID: '/k8s/DISABILITY_LICENSE_PASS_TEMPLATE_ID' - DRIVING_LICENSE_FETCH_TIMEOUT: '/k8s/api/DRIVING_LICENSE_FETCH_TIMEOUT' - DRIVING_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/DRIVING_LICENSE_PASS_TEMPLATE_ID' - FIREARM_LICENSE_FETCH_TIMEOUT: '/k8s/api/FIREARM_LICENSE_FETCH_TIMEOUT' - FIREARM_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/FIREARM_LICENSE_PASS_TEMPLATE_ID' - LICENSE_SERVICE_BARCODE_SECRET_KEY: '/k8s/api/LICENSE_SERVICE_BARCODE_SECRET_KEY' - MACHINE_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/MACHINE_LICENSE_PASS_TEMPLATE_ID' - PKPASS_API_KEY: '/k8s/api/PKPASS_API_KEY' - PKPASS_API_URL: '/k8s/api/PKPASS_API_URL' - PKPASS_AUTH_RETRIES: '/k8s/api/PKPASS_AUTH_RETRIES' - PKPASS_CACHE_KEY: '/k8s/api/PKPASS_CACHE_KEY' - PKPASS_CACHE_TOKEN_EXPIRY_DELTA: '/k8s/api/PKPASS_CACHE_TOKEN_EXPIRY_DELTA' - PKPASS_SECRET_KEY: '/k8s/api/PKPASS_SECRET_KEY' - RLS_OPEN_LOOKUP_API_KEY: '/k8s/api/RLS_OPEN_LOOKUP_API_KEY' - RLS_PKPASS_API_KEY: '/k8s/api/RLS_PKPASS_API_KEY' - SMART_SOLUTIONS_API_URL: '/k8s/api/SMART_SOLUTIONS_API_URL' - TR_PKPASS_API_KEY: '/k8s/api/TR_PKPASS_API_KEY' - UST_PKPASS_API_KEY: '/k8s/api/UST_PKPASS_API_KEY' - VE_PKPASS_API_KEY: '/k8s/api/VE_PKPASS_API_KEY' - XROAD_DRIVING_LICENSE_SECRET: '/k8s/api/DRIVING_LICENSE_SECRET' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'license-api' +enabled: true +env: + HUNTING_LICENSE_PASS_TEMPLATE_ID: '1da72d52-a93a-4d0f-8463-1933a2bd210b' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' + LICENSE_SERVICE_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' + XROAD_BASE_PATH: 'http://securityserver.dev01.devland.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.dev01.devland.is/r1/IS-DEV' + XROAD_CLIENT_ID: 'IS-DEV/GOV/10000/island-is-client' + XROAD_DISABILITY_LICENSE_PATH: 'IS-DEV/GOV/10008/TR-Protected/oryrki-v1' + XROAD_DRIVING_LICENSE_PATH: 'r1/IS-DEV/GOV/10005/Logreglan-Protected/RafraentOkuskirteini-v1' + XROAD_DRIVING_LICENSE_V2_PATH: 'r1/IS-DEV/GOV/10005/Logreglan-Protected/RafraentOkuskirteini-v2' + XROAD_DRIVING_LICENSE_V4_PATH: 'r1/IS-DEV/GOV/10005/Logreglan-Protected/Okuskirteini-v4' + XROAD_DRIVING_LICENSE_V5_PATH: 'r1/IS-DEV/GOV/10005/Logreglan-Protected/Okuskirteini-v5' + XROAD_FIREARM_LICENSE_PATH: 'IS-DEV/GOV/10005/Logreglan-Protected/island-api-v1' + XROAD_HUNTING_LICENSE_PATH: 'IS-DEV/GOV/10009/Umhverfisstofnun-Protected/api' + XROAD_TLS_BASE_PATH: 'https://securityserver.dev01.devland.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.dev01.devland.is/r1/IS-DEV' +grantNamespaces: + - 'nginx-ingress-internal' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/license-api' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-internal-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'license-api-xrd.internal.dev01.devland.is' + paths: + - '/' +namespace: 'license-api' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '50m' + memory: '256Mi' +secrets: + ADR_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/ADR_LICENSE_PASS_TEMPLATE_ID' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DISABILITY_LICENSE_FETCH_TIMEOUT: '/k8s/api/DISABILITY_LICENSE_FETCH_TIMEOUT' + DISABILITY_LICENSE_PASS_TEMPLATE_ID: '/k8s/DISABILITY_LICENSE_PASS_TEMPLATE_ID' + DRIVING_LICENSE_FETCH_TIMEOUT: '/k8s/api/DRIVING_LICENSE_FETCH_TIMEOUT' + DRIVING_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/DRIVING_LICENSE_PASS_TEMPLATE_ID' + FIREARM_LICENSE_FETCH_TIMEOUT: '/k8s/api/FIREARM_LICENSE_FETCH_TIMEOUT' + FIREARM_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/FIREARM_LICENSE_PASS_TEMPLATE_ID' + LICENSE_SERVICE_BARCODE_SECRET_KEY: '/k8s/api/LICENSE_SERVICE_BARCODE_SECRET_KEY' + MACHINE_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/MACHINE_LICENSE_PASS_TEMPLATE_ID' + PKPASS_API_KEY: '/k8s/api/PKPASS_API_KEY' + PKPASS_API_URL: '/k8s/api/PKPASS_API_URL' + PKPASS_AUTH_RETRIES: '/k8s/api/PKPASS_AUTH_RETRIES' + PKPASS_CACHE_KEY: '/k8s/api/PKPASS_CACHE_KEY' + PKPASS_CACHE_TOKEN_EXPIRY_DELTA: '/k8s/api/PKPASS_CACHE_TOKEN_EXPIRY_DELTA' + PKPASS_SECRET_KEY: '/k8s/api/PKPASS_SECRET_KEY' + RLS_OPEN_LOOKUP_API_KEY: '/k8s/api/RLS_OPEN_LOOKUP_API_KEY' + RLS_PKPASS_API_KEY: '/k8s/api/RLS_PKPASS_API_KEY' + SMART_SOLUTIONS_API_URL: '/k8s/api/SMART_SOLUTIONS_API_URL' + TR_PKPASS_API_KEY: '/k8s/api/TR_PKPASS_API_KEY' + UST_PKPASS_API_KEY: '/k8s/api/UST_PKPASS_API_KEY' + VE_PKPASS_API_KEY: '/k8s/api/VE_PKPASS_API_KEY' + XROAD_DRIVING_LICENSE_SECRET: '/k8s/api/DRIVING_LICENSE_SECRET' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/license-api/values.prod.yaml b/charts/services/license-api/values.prod.yaml index eca45cf8dbfa..2f003504d184 100644 --- a/charts/services/license-api/values.prod.yaml +++ b/charts/services/license-api/values.prod.yaml @@ -5,98 +5,108 @@ # ##################################################################### -service: - name: 'license-api' - enabled: true +global: env: - HUNTING_LICENSE_PASS_TEMPLATE_ID: 'd4ecf781-3764-4063-a4e1-9c3e17cebfba' - IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' - LICENSE_SERVICE_REDIS_NODES: '["clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379"]' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - XROAD_BASE_PATH: 'http://securityserver.island.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.island.is/r1/IS' - XROAD_CLIENT_ID: 'IS/GOV/5501692829/island-is-client' - XROAD_DISABILITY_LICENSE_PATH: 'IS/GOV/5012130120/TR-Protected/oryrki-v1' - XROAD_DRIVING_LICENSE_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Okuskirteini-v1' - XROAD_DRIVING_LICENSE_V2_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Okuskirteini-v1' - XROAD_DRIVING_LICENSE_V4_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Okuskirteini-v4' - XROAD_DRIVING_LICENSE_V5_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Okuskirteini-v5' - XROAD_FIREARM_LICENSE_PATH: 'IS/GOV/5309672079/Logreglan-Protected/island-api-v1' - XROAD_HUNTING_LICENSE_PATH: 'IS/GOV/7010022880/Umhverfisstofnun-Protected/api' - XROAD_TLS_BASE_PATH: 'https://securityserver.island.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.island.is/r1/IS' - grantNamespaces: - - 'nginx-ingress-internal' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/license-api' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-internal-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'license-api-xrd.internal.island.is' - paths: - - '/' - namespace: 'license-api' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '50m' - memory: '256Mi' - secrets: - ADR_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/ADR_LICENSE_PASS_TEMPLATE_ID' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DISABILITY_LICENSE_FETCH_TIMEOUT: '/k8s/api/DISABILITY_LICENSE_FETCH_TIMEOUT' - DISABILITY_LICENSE_PASS_TEMPLATE_ID: '/k8s/DISABILITY_LICENSE_PASS_TEMPLATE_ID' - DRIVING_LICENSE_FETCH_TIMEOUT: '/k8s/api/DRIVING_LICENSE_FETCH_TIMEOUT' - DRIVING_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/DRIVING_LICENSE_PASS_TEMPLATE_ID' - FIREARM_LICENSE_FETCH_TIMEOUT: '/k8s/api/FIREARM_LICENSE_FETCH_TIMEOUT' - FIREARM_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/FIREARM_LICENSE_PASS_TEMPLATE_ID' - LICENSE_SERVICE_BARCODE_SECRET_KEY: '/k8s/api/LICENSE_SERVICE_BARCODE_SECRET_KEY' - MACHINE_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/MACHINE_LICENSE_PASS_TEMPLATE_ID' - PKPASS_API_KEY: '/k8s/api/PKPASS_API_KEY' - PKPASS_API_URL: '/k8s/api/PKPASS_API_URL' - PKPASS_AUTH_RETRIES: '/k8s/api/PKPASS_AUTH_RETRIES' - PKPASS_CACHE_KEY: '/k8s/api/PKPASS_CACHE_KEY' - PKPASS_CACHE_TOKEN_EXPIRY_DELTA: '/k8s/api/PKPASS_CACHE_TOKEN_EXPIRY_DELTA' - PKPASS_SECRET_KEY: '/k8s/api/PKPASS_SECRET_KEY' - RLS_OPEN_LOOKUP_API_KEY: '/k8s/api/RLS_OPEN_LOOKUP_API_KEY' - RLS_PKPASS_API_KEY: '/k8s/api/RLS_PKPASS_API_KEY' - SMART_SOLUTIONS_API_URL: '/k8s/api/SMART_SOLUTIONS_API_URL' - TR_PKPASS_API_KEY: '/k8s/api/TR_PKPASS_API_KEY' - UST_PKPASS_API_KEY: '/k8s/api/UST_PKPASS_API_KEY' - VE_PKPASS_API_KEY: '/k8s/api/VE_PKPASS_API_KEY' - XROAD_DRIVING_LICENSE_SECRET: '/k8s/api/DRIVING_LICENSE_SECRET' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'license-api' +enabled: true +env: + HUNTING_LICENSE_PASS_TEMPLATE_ID: 'd4ecf781-3764-4063-a4e1-9c3e17cebfba' + IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' + LICENSE_SERVICE_REDIS_NODES: '["clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379"]' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' + XROAD_BASE_PATH: 'http://securityserver.island.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.island.is/r1/IS' + XROAD_CLIENT_ID: 'IS/GOV/5501692829/island-is-client' + XROAD_DISABILITY_LICENSE_PATH: 'IS/GOV/5012130120/TR-Protected/oryrki-v1' + XROAD_DRIVING_LICENSE_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Okuskirteini-v1' + XROAD_DRIVING_LICENSE_V2_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Okuskirteini-v1' + XROAD_DRIVING_LICENSE_V4_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Okuskirteini-v4' + XROAD_DRIVING_LICENSE_V5_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Okuskirteini-v5' + XROAD_FIREARM_LICENSE_PATH: 'IS/GOV/5309672079/Logreglan-Protected/island-api-v1' + XROAD_HUNTING_LICENSE_PATH: 'IS/GOV/7010022880/Umhverfisstofnun-Protected/api' + XROAD_TLS_BASE_PATH: 'https://securityserver.island.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.island.is/r1/IS' +grantNamespaces: + - 'nginx-ingress-internal' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/license-api' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-internal-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'license-api-xrd.internal.island.is' + paths: + - '/' +namespace: 'license-api' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '50m' + memory: '256Mi' +secrets: + ADR_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/ADR_LICENSE_PASS_TEMPLATE_ID' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DISABILITY_LICENSE_FETCH_TIMEOUT: '/k8s/api/DISABILITY_LICENSE_FETCH_TIMEOUT' + DISABILITY_LICENSE_PASS_TEMPLATE_ID: '/k8s/DISABILITY_LICENSE_PASS_TEMPLATE_ID' + DRIVING_LICENSE_FETCH_TIMEOUT: '/k8s/api/DRIVING_LICENSE_FETCH_TIMEOUT' + DRIVING_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/DRIVING_LICENSE_PASS_TEMPLATE_ID' + FIREARM_LICENSE_FETCH_TIMEOUT: '/k8s/api/FIREARM_LICENSE_FETCH_TIMEOUT' + FIREARM_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/FIREARM_LICENSE_PASS_TEMPLATE_ID' + LICENSE_SERVICE_BARCODE_SECRET_KEY: '/k8s/api/LICENSE_SERVICE_BARCODE_SECRET_KEY' + MACHINE_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/MACHINE_LICENSE_PASS_TEMPLATE_ID' + PKPASS_API_KEY: '/k8s/api/PKPASS_API_KEY' + PKPASS_API_URL: '/k8s/api/PKPASS_API_URL' + PKPASS_AUTH_RETRIES: '/k8s/api/PKPASS_AUTH_RETRIES' + PKPASS_CACHE_KEY: '/k8s/api/PKPASS_CACHE_KEY' + PKPASS_CACHE_TOKEN_EXPIRY_DELTA: '/k8s/api/PKPASS_CACHE_TOKEN_EXPIRY_DELTA' + PKPASS_SECRET_KEY: '/k8s/api/PKPASS_SECRET_KEY' + RLS_OPEN_LOOKUP_API_KEY: '/k8s/api/RLS_OPEN_LOOKUP_API_KEY' + RLS_PKPASS_API_KEY: '/k8s/api/RLS_PKPASS_API_KEY' + SMART_SOLUTIONS_API_URL: '/k8s/api/SMART_SOLUTIONS_API_URL' + TR_PKPASS_API_KEY: '/k8s/api/TR_PKPASS_API_KEY' + UST_PKPASS_API_KEY: '/k8s/api/UST_PKPASS_API_KEY' + VE_PKPASS_API_KEY: '/k8s/api/VE_PKPASS_API_KEY' + XROAD_DRIVING_LICENSE_SECRET: '/k8s/api/DRIVING_LICENSE_SECRET' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/license-api/values.staging.yaml b/charts/services/license-api/values.staging.yaml index dbd5dad1fa18..d85276d6d82b 100644 --- a/charts/services/license-api/values.staging.yaml +++ b/charts/services/license-api/values.staging.yaml @@ -5,98 +5,108 @@ # ##################################################################### -service: - name: 'license-api' - enabled: true +global: env: - HUNTING_LICENSE_PASS_TEMPLATE_ID: '1da72d52-a93a-4d0f-8463-1933a2bd210b' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' - LICENSE_SERVICE_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - XROAD_BASE_PATH: 'http://securityserver.staging01.devland.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.staging01.devland.is/r1/IS-TEST' - XROAD_CLIENT_ID: 'IS-TEST/GOV/5501692829/island-is-client' - XROAD_DISABILITY_LICENSE_PATH: 'IS-TEST/GOV/5012130120/TR-Protected/oryrki-v1' - XROAD_DRIVING_LICENSE_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/RafraentOkuskirteini-v1' - XROAD_DRIVING_LICENSE_V2_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/RafraentOkuskirteini-v2' - XROAD_DRIVING_LICENSE_V4_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Okuskirteini-v4' - XROAD_DRIVING_LICENSE_V5_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Okuskirteini-v5' - XROAD_FIREARM_LICENSE_PATH: 'IS/GOV/5309672079/Logreglan-Protected/island-api-v1' - XROAD_HUNTING_LICENSE_PATH: 'IS-TEST/GOV/10009/Umhverfisstofnun-Protected/api' - XROAD_TLS_BASE_PATH: 'https://securityserver.staging01.devland.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.staging01.devland.is/r1/IS-TEST' - grantNamespaces: - - 'nginx-ingress-internal' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/license-api' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-internal-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'license-api-xrd.internal.staging01.devland.is' - paths: - - '/' - namespace: 'license-api' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '50m' - memory: '256Mi' - secrets: - ADR_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/ADR_LICENSE_PASS_TEMPLATE_ID' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DISABILITY_LICENSE_FETCH_TIMEOUT: '/k8s/api/DISABILITY_LICENSE_FETCH_TIMEOUT' - DISABILITY_LICENSE_PASS_TEMPLATE_ID: '/k8s/DISABILITY_LICENSE_PASS_TEMPLATE_ID' - DRIVING_LICENSE_FETCH_TIMEOUT: '/k8s/api/DRIVING_LICENSE_FETCH_TIMEOUT' - DRIVING_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/DRIVING_LICENSE_PASS_TEMPLATE_ID' - FIREARM_LICENSE_FETCH_TIMEOUT: '/k8s/api/FIREARM_LICENSE_FETCH_TIMEOUT' - FIREARM_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/FIREARM_LICENSE_PASS_TEMPLATE_ID' - LICENSE_SERVICE_BARCODE_SECRET_KEY: '/k8s/api/LICENSE_SERVICE_BARCODE_SECRET_KEY' - MACHINE_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/MACHINE_LICENSE_PASS_TEMPLATE_ID' - PKPASS_API_KEY: '/k8s/api/PKPASS_API_KEY' - PKPASS_API_URL: '/k8s/api/PKPASS_API_URL' - PKPASS_AUTH_RETRIES: '/k8s/api/PKPASS_AUTH_RETRIES' - PKPASS_CACHE_KEY: '/k8s/api/PKPASS_CACHE_KEY' - PKPASS_CACHE_TOKEN_EXPIRY_DELTA: '/k8s/api/PKPASS_CACHE_TOKEN_EXPIRY_DELTA' - PKPASS_SECRET_KEY: '/k8s/api/PKPASS_SECRET_KEY' - RLS_OPEN_LOOKUP_API_KEY: '/k8s/api/RLS_OPEN_LOOKUP_API_KEY' - RLS_PKPASS_API_KEY: '/k8s/api/RLS_PKPASS_API_KEY' - SMART_SOLUTIONS_API_URL: '/k8s/api/SMART_SOLUTIONS_API_URL' - TR_PKPASS_API_KEY: '/k8s/api/TR_PKPASS_API_KEY' - UST_PKPASS_API_KEY: '/k8s/api/UST_PKPASS_API_KEY' - VE_PKPASS_API_KEY: '/k8s/api/VE_PKPASS_API_KEY' - XROAD_DRIVING_LICENSE_SECRET: '/k8s/api/DRIVING_LICENSE_SECRET' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'license-api' +enabled: true +env: + HUNTING_LICENSE_PASS_TEMPLATE_ID: '1da72d52-a93a-4d0f-8463-1933a2bd210b' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' + LICENSE_SERVICE_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' + XROAD_BASE_PATH: 'http://securityserver.staging01.devland.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.staging01.devland.is/r1/IS-TEST' + XROAD_CLIENT_ID: 'IS-TEST/GOV/5501692829/island-is-client' + XROAD_DISABILITY_LICENSE_PATH: 'IS-TEST/GOV/5012130120/TR-Protected/oryrki-v1' + XROAD_DRIVING_LICENSE_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/RafraentOkuskirteini-v1' + XROAD_DRIVING_LICENSE_V2_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/RafraentOkuskirteini-v2' + XROAD_DRIVING_LICENSE_V4_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Okuskirteini-v4' + XROAD_DRIVING_LICENSE_V5_PATH: 'r1/IS/GOV/5309672079/Logreglan-Protected/Okuskirteini-v5' + XROAD_FIREARM_LICENSE_PATH: 'IS/GOV/5309672079/Logreglan-Protected/island-api-v1' + XROAD_HUNTING_LICENSE_PATH: 'IS-TEST/GOV/10009/Umhverfisstofnun-Protected/api' + XROAD_TLS_BASE_PATH: 'https://securityserver.staging01.devland.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.staging01.devland.is/r1/IS-TEST' +grantNamespaces: + - 'nginx-ingress-internal' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/license-api' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-internal-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'license-api-xrd.internal.staging01.devland.is' + paths: + - '/' +namespace: 'license-api' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '50m' + memory: '256Mi' +secrets: + ADR_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/ADR_LICENSE_PASS_TEMPLATE_ID' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DISABILITY_LICENSE_FETCH_TIMEOUT: '/k8s/api/DISABILITY_LICENSE_FETCH_TIMEOUT' + DISABILITY_LICENSE_PASS_TEMPLATE_ID: '/k8s/DISABILITY_LICENSE_PASS_TEMPLATE_ID' + DRIVING_LICENSE_FETCH_TIMEOUT: '/k8s/api/DRIVING_LICENSE_FETCH_TIMEOUT' + DRIVING_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/DRIVING_LICENSE_PASS_TEMPLATE_ID' + FIREARM_LICENSE_FETCH_TIMEOUT: '/k8s/api/FIREARM_LICENSE_FETCH_TIMEOUT' + FIREARM_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/FIREARM_LICENSE_PASS_TEMPLATE_ID' + LICENSE_SERVICE_BARCODE_SECRET_KEY: '/k8s/api/LICENSE_SERVICE_BARCODE_SECRET_KEY' + MACHINE_LICENSE_PASS_TEMPLATE_ID: '/k8s/api/MACHINE_LICENSE_PASS_TEMPLATE_ID' + PKPASS_API_KEY: '/k8s/api/PKPASS_API_KEY' + PKPASS_API_URL: '/k8s/api/PKPASS_API_URL' + PKPASS_AUTH_RETRIES: '/k8s/api/PKPASS_AUTH_RETRIES' + PKPASS_CACHE_KEY: '/k8s/api/PKPASS_CACHE_KEY' + PKPASS_CACHE_TOKEN_EXPIRY_DELTA: '/k8s/api/PKPASS_CACHE_TOKEN_EXPIRY_DELTA' + PKPASS_SECRET_KEY: '/k8s/api/PKPASS_SECRET_KEY' + RLS_OPEN_LOOKUP_API_KEY: '/k8s/api/RLS_OPEN_LOOKUP_API_KEY' + RLS_PKPASS_API_KEY: '/k8s/api/RLS_PKPASS_API_KEY' + SMART_SOLUTIONS_API_URL: '/k8s/api/SMART_SOLUTIONS_API_URL' + TR_PKPASS_API_KEY: '/k8s/api/TR_PKPASS_API_KEY' + UST_PKPASS_API_KEY: '/k8s/api/UST_PKPASS_API_KEY' + VE_PKPASS_API_KEY: '/k8s/api/VE_PKPASS_API_KEY' + XROAD_DRIVING_LICENSE_SECRET: '/k8s/api/DRIVING_LICENSE_SECRET' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/portals-admin/values.dev.yaml b/charts/services/portals-admin/values.dev.yaml index 2d42430f5d75..faa53d46dd89 100644 --- a/charts/services/portals-admin/values.dev.yaml +++ b/charts/services/portals-admin/values.dev.yaml @@ -5,70 +5,80 @@ # ##################################################################### -service: - name: 'portals-admin' - enabled: true +global: env: - BASEPATH: '/stjornbord' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460' - SERVERSIDE_FEATURES_ON: '' - SI_PUBLIC_ENVIRONMENT: 'dev' - SI_PUBLIC_IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' - grantNamespaces: - - 'nginx-ingress-external' - - 'identity-server' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/readiness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 8 - replicas: - max: 30 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/portals-admin' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'beta.dev01.devland.is' - paths: - - '/stjornbord' - namespace: 'portals-admin' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 2 - max: 30 - min: 2 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '25m' - memory: '256Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - SI_PUBLIC_CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - SI_PUBLIC_DD_RUM_APPLICATION_ID: '/k8s/DD_RUM_APPLICATION_ID' - SI_PUBLIC_DD_RUM_CLIENT_TOKEN: '/k8s/DD_RUM_CLIENT_TOKEN' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'portals-admin' +enabled: true +env: + BASEPATH: '/stjornbord' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460' + SERVERSIDE_FEATURES_ON: '' + SI_PUBLIC_ENVIRONMENT: 'dev' + SI_PUBLIC_IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' +grantNamespaces: + - 'nginx-ingress-external' + - 'identity-server' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/readiness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 8 + replicas: + max: 30 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/portals-admin' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'beta.dev01.devland.is' + paths: + - '/stjornbord' +namespace: 'portals-admin' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 2 + max: 30 + min: 2 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '25m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + SI_PUBLIC_CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + SI_PUBLIC_DD_RUM_APPLICATION_ID: '/k8s/DD_RUM_APPLICATION_ID' + SI_PUBLIC_DD_RUM_CLIENT_TOKEN: '/k8s/DD_RUM_CLIENT_TOKEN' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/portals-admin/values.prod.yaml b/charts/services/portals-admin/values.prod.yaml index a35a54cf7a4f..192966e8f623 100644 --- a/charts/services/portals-admin/values.prod.yaml +++ b/charts/services/portals-admin/values.prod.yaml @@ -5,73 +5,83 @@ # ##################################################################### -service: - name: 'portals-admin' - enabled: true +global: env: - BASEPATH: '/stjornbord' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - SI_PUBLIC_ENVIRONMENT: 'prod' - SI_PUBLIC_IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' - grantNamespaces: - - 'nginx-ingress-external' - - 'identity-server' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/readiness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 8 - replicas: - max: 30 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/portals-admin' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'island.is' - paths: - - '/stjornbord' - - host: 'www.island.is' - paths: - - '/stjornbord' - namespace: 'portals-admin' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 2 - max: 30 - min: 2 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '25m' - memory: '256Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - SI_PUBLIC_CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - SI_PUBLIC_DD_RUM_APPLICATION_ID: '/k8s/DD_RUM_APPLICATION_ID' - SI_PUBLIC_DD_RUM_CLIENT_TOKEN: '/k8s/DD_RUM_CLIENT_TOKEN' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'portals-admin' +enabled: true +env: + BASEPATH: '/stjornbord' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' + SI_PUBLIC_ENVIRONMENT: 'prod' + SI_PUBLIC_IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' +grantNamespaces: + - 'nginx-ingress-external' + - 'identity-server' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/readiness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 8 + replicas: + max: 30 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/portals-admin' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'island.is' + paths: + - '/stjornbord' + - host: 'www.island.is' + paths: + - '/stjornbord' +namespace: 'portals-admin' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 2 + max: 30 + min: 2 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '25m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + SI_PUBLIC_CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + SI_PUBLIC_DD_RUM_APPLICATION_ID: '/k8s/DD_RUM_APPLICATION_ID' + SI_PUBLIC_DD_RUM_CLIENT_TOKEN: '/k8s/DD_RUM_CLIENT_TOKEN' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/portals-admin/values.staging.yaml b/charts/services/portals-admin/values.staging.yaml index 1e16d3a5d2a3..1f527f1c28a0 100644 --- a/charts/services/portals-admin/values.staging.yaml +++ b/charts/services/portals-admin/values.staging.yaml @@ -5,70 +5,80 @@ # ##################################################################### -service: - name: 'portals-admin' - enabled: true +global: env: - BASEPATH: '/stjornbord' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460' - SERVERSIDE_FEATURES_ON: '' - SI_PUBLIC_ENVIRONMENT: 'staging' - SI_PUBLIC_IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' - grantNamespaces: - - 'nginx-ingress-external' - - 'identity-server' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/readiness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 8 - replicas: - max: 30 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/portals-admin' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'beta.staging01.devland.is' - paths: - - '/stjornbord' - namespace: 'portals-admin' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 2 - max: 30 - min: 2 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '25m' - memory: '256Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - SI_PUBLIC_CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - SI_PUBLIC_DD_RUM_APPLICATION_ID: '/k8s/DD_RUM_APPLICATION_ID' - SI_PUBLIC_DD_RUM_CLIENT_TOKEN: '/k8s/DD_RUM_CLIENT_TOKEN' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'portals-admin' +enabled: true +env: + BASEPATH: '/stjornbord' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460' + SERVERSIDE_FEATURES_ON: '' + SI_PUBLIC_ENVIRONMENT: 'staging' + SI_PUBLIC_IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' +grantNamespaces: + - 'nginx-ingress-external' + - 'identity-server' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/readiness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 8 + replicas: + max: 30 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/portals-admin' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'beta.staging01.devland.is' + paths: + - '/stjornbord' +namespace: 'portals-admin' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 2 + max: 30 + min: 2 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '25m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + SI_PUBLIC_CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + SI_PUBLIC_DD_RUM_APPLICATION_ID: '/k8s/DD_RUM_APPLICATION_ID' + SI_PUBLIC_DD_RUM_CLIENT_TOKEN: '/k8s/DD_RUM_CLIENT_TOKEN' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/regulations-admin-backend/values.dev.yaml b/charts/services/regulations-admin-backend/values.dev.yaml index 2fd79c6e02bf..d0fb60d1bca9 100644 --- a/charts/services/regulations-admin-backend/values.dev.yaml +++ b/charts/services/regulations-admin-backend/values.dev.yaml @@ -5,98 +5,108 @@ # ##################################################################### -service: - name: 'regulations-admin-backend' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'regulations-admin-backend' +enabled: true +env: + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'regulations_admin_backend' + DB_REPLICAS_HOST: 'postgres-applications-reader.internal' + DB_USER: 'regulations_admin_backend' + IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/regulations-admin-api' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' + LOG_LEVEL: 'info' + NATIONAL_REGISTRY_B2C_CLIENT_ID: 'b464afdd-056b-406d-b650-6d41733cfeb7' + NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentitydev.b2clogin.com/skraidentitydev.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' + NATIONAL_REGISTRY_B2C_PATH: 'IS-DEV/GOV/10001/SKRA-Cloud-Protected/Midlun-v1' + NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentitydev.onmicrosoft.com/midlun/.default' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' + XROAD_BASE_PATH: 'http://securityserver.dev01.devland.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.dev01.devland.is/r1/IS-DEV' + XROAD_CLIENT_ID: 'IS-DEV/GOV/10000/island-is-client' + XROAD_TLS_BASE_PATH: 'https://securityserver.dev01.devland.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.dev01.devland.is/r1/IS-DEV' +grantNamespaces: + - 'islandis' + - 'download-service' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/regulations-admin-backend' +initContainer: + containers: + - args: + - 'sequelize-cli' + - 'db:migrate' + command: + - 'npx' + name: 'migrations' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' env: DB_HOST: 'postgres-applications.internal' DB_NAME: 'regulations_admin_backend' DB_REPLICAS_HOST: 'postgres-applications-reader.internal' DB_USER: 'regulations_admin_backend' - IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/regulations-admin-api' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' - LOG_LEVEL: 'info' - NATIONAL_REGISTRY_B2C_CLIENT_ID: 'b464afdd-056b-406d-b650-6d41733cfeb7' - NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentitydev.b2clogin.com/skraidentitydev.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' - NATIONAL_REGISTRY_B2C_PATH: 'IS-DEV/GOV/10001/SKRA-Cloud-Protected/Midlun-v1' - NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentitydev.onmicrosoft.com/midlun/.default' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' SERVERSIDE_FEATURES_ON: '' - XROAD_BASE_PATH: 'http://securityserver.dev01.devland.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.dev01.devland.is/r1/IS-DEV' - XROAD_CLIENT_ID: 'IS-DEV/GOV/10000/island-is-client' - XROAD_TLS_BASE_PATH: 'https://securityserver.dev01.devland.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.dev01.devland.is/r1/IS-DEV' - grantNamespaces: - - 'islandis' - - 'download-service' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/regulations-admin-backend' - initContainer: - containers: - - args: - - 'sequelize-cli' - - 'db:migrate' - command: - - 'npx' - name: 'migrations' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'regulations_admin_backend' - DB_REPLICAS_HOST: 'postgres-applications-reader.internal' - DB_USER: 'regulations_admin_backend' - SERVERSIDE_FEATURES_ON: '' - secrets: - DB_PASS: '/k8s/regulations-admin-backend/DB_PASSWORD' - namespace: 'regulations-admin' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '100m' - memory: '256Mi' secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' DB_PASS: '/k8s/regulations-admin-backend/DB_PASSWORD' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-regulations-admin/IDENTITY_SERVER_CLIENT_SECRET' - NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/api/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' - REGULATIONS_API_URL: '/k8s/api/REGULATIONS_API_URL' - REGULATIONS_FILE_UPLOAD_KEY_DRAFT: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_DRAFT' - REGULATIONS_FILE_UPLOAD_KEY_PRESIGNED: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_PRESIGNED' - REGULATIONS_FILE_UPLOAD_KEY_PUBLISH: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_PUBLISH' - securityContext: - allowPrivilegeEscalation: false - privileged: false +namespace: 'regulations-admin' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '100m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/regulations-admin-backend/DB_PASSWORD' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-regulations-admin/IDENTITY_SERVER_CLIENT_SECRET' + NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/api/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' + REGULATIONS_API_URL: '/k8s/api/REGULATIONS_API_URL' + REGULATIONS_FILE_UPLOAD_KEY_DRAFT: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_DRAFT' + REGULATIONS_FILE_UPLOAD_KEY_PRESIGNED: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_PRESIGNED' + REGULATIONS_FILE_UPLOAD_KEY_PUBLISH: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_PUBLISH' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/regulations-admin-backend/values.prod.yaml b/charts/services/regulations-admin-backend/values.prod.yaml index e3773df46c1e..1a1eb25213a8 100644 --- a/charts/services/regulations-admin-backend/values.prod.yaml +++ b/charts/services/regulations-admin-backend/values.prod.yaml @@ -5,98 +5,108 @@ # ##################################################################### -service: - name: 'regulations-admin-backend' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'regulations-admin-backend' +enabled: true +env: + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'regulations_admin_backend' + DB_REPLICAS_HOST: 'postgres-applications.internal' + DB_USER: 'regulations_admin_backend' + IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/regulations-admin-api' + IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' + LOG_LEVEL: 'info' + NATIONAL_REGISTRY_B2C_CLIENT_ID: '2304d7ca-7ed3-4188-8b6d-e1b7e0e3df7f' + NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentity.b2clogin.com/skraidentity.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' + NATIONAL_REGISTRY_B2C_PATH: 'IS/GOV/6503760649/SKRA-Cloud-Protected/Midlun-v1' + NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentity.onmicrosoft.com/midlun/.default' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' + XROAD_BASE_PATH: 'http://securityserver.island.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.island.is/r1/IS' + XROAD_CLIENT_ID: 'IS/GOV/5501692829/island-is-client' + XROAD_TLS_BASE_PATH: 'https://securityserver.island.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.island.is/r1/IS' +grantNamespaces: + - 'islandis' + - 'download-service' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 3 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/regulations-admin-backend' +initContainer: + containers: + - args: + - 'sequelize-cli' + - 'db:migrate' + command: + - 'npx' + name: 'migrations' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' env: DB_HOST: 'postgres-applications.internal' DB_NAME: 'regulations_admin_backend' DB_REPLICAS_HOST: 'postgres-applications.internal' DB_USER: 'regulations_admin_backend' - IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/regulations-admin-api' - IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' - LOG_LEVEL: 'info' - NATIONAL_REGISTRY_B2C_CLIENT_ID: '2304d7ca-7ed3-4188-8b6d-e1b7e0e3df7f' - NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentity.b2clogin.com/skraidentity.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' - NATIONAL_REGISTRY_B2C_PATH: 'IS/GOV/6503760649/SKRA-Cloud-Protected/Midlun-v1' - NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentity.onmicrosoft.com/midlun/.default' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - XROAD_BASE_PATH: 'http://securityserver.island.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.island.is/r1/IS' - XROAD_CLIENT_ID: 'IS/GOV/5501692829/island-is-client' - XROAD_TLS_BASE_PATH: 'https://securityserver.island.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.island.is/r1/IS' - grantNamespaces: - - 'islandis' - - 'download-service' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 3 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/regulations-admin-backend' - initContainer: - containers: - - args: - - 'sequelize-cli' - - 'db:migrate' - command: - - 'npx' - name: 'migrations' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'regulations_admin_backend' - DB_REPLICAS_HOST: 'postgres-applications.internal' - DB_USER: 'regulations_admin_backend' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - secrets: - DB_PASS: '/k8s/regulations-admin-backend/DB_PASSWORD' - namespace: 'regulations-admin' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 3 - max: 10 - min: 3 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '100m' - memory: '256Mi' secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' DB_PASS: '/k8s/regulations-admin-backend/DB_PASSWORD' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-regulations-admin/IDENTITY_SERVER_CLIENT_SECRET' - NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/api/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' - REGULATIONS_API_URL: '/k8s/api/REGULATIONS_API_URL' - REGULATIONS_FILE_UPLOAD_KEY_DRAFT: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_DRAFT' - REGULATIONS_FILE_UPLOAD_KEY_PRESIGNED: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_PRESIGNED' - REGULATIONS_FILE_UPLOAD_KEY_PUBLISH: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_PUBLISH' - securityContext: - allowPrivilegeEscalation: false - privileged: false +namespace: 'regulations-admin' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 3 + max: 10 + min: 3 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '100m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/regulations-admin-backend/DB_PASSWORD' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-regulations-admin/IDENTITY_SERVER_CLIENT_SECRET' + NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/api/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' + REGULATIONS_API_URL: '/k8s/api/REGULATIONS_API_URL' + REGULATIONS_FILE_UPLOAD_KEY_DRAFT: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_DRAFT' + REGULATIONS_FILE_UPLOAD_KEY_PRESIGNED: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_PRESIGNED' + REGULATIONS_FILE_UPLOAD_KEY_PUBLISH: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_PUBLISH' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/regulations-admin-backend/values.staging.yaml b/charts/services/regulations-admin-backend/values.staging.yaml index 26c8cbf559c9..af8acd3ba0f4 100644 --- a/charts/services/regulations-admin-backend/values.staging.yaml +++ b/charts/services/regulations-admin-backend/values.staging.yaml @@ -5,98 +5,108 @@ # ##################################################################### -service: - name: 'regulations-admin-backend' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'regulations-admin-backend' +enabled: true +env: + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'regulations_admin_backend' + DB_REPLICAS_HOST: 'postgres-applications.internal' + DB_USER: 'regulations_admin_backend' + IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/regulations-admin-api' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' + LOG_LEVEL: 'info' + NATIONAL_REGISTRY_B2C_CLIENT_ID: 'ca128c23-b43c-443d-bade-ec5a146a933f' + NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentitydev.b2clogin.com/skraidentitystaging.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' + NATIONAL_REGISTRY_B2C_PATH: 'IS-TEST/GOV/6503760649/SKRA-Cloud-Protected/Midlun-v1' + NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentitystaging.onmicrosoft.com/midlun/.default' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' + XROAD_BASE_PATH: 'http://securityserver.staging01.devland.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.staging01.devland.is/r1/IS-TEST' + XROAD_CLIENT_ID: 'IS-TEST/GOV/5501692829/island-is-client' + XROAD_TLS_BASE_PATH: 'https://securityserver.staging01.devland.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.staging01.devland.is/r1/IS-TEST' +grantNamespaces: + - 'islandis' + - 'download-service' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/regulations-admin-backend' +initContainer: + containers: + - args: + - 'sequelize-cli' + - 'db:migrate' + command: + - 'npx' + name: 'migrations' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' env: DB_HOST: 'postgres-applications.internal' DB_NAME: 'regulations_admin_backend' DB_REPLICAS_HOST: 'postgres-applications.internal' DB_USER: 'regulations_admin_backend' - IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/regulations-admin-api' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' - LOG_LEVEL: 'info' - NATIONAL_REGISTRY_B2C_CLIENT_ID: 'ca128c23-b43c-443d-bade-ec5a146a933f' - NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentitydev.b2clogin.com/skraidentitystaging.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' - NATIONAL_REGISTRY_B2C_PATH: 'IS-TEST/GOV/6503760649/SKRA-Cloud-Protected/Midlun-v1' - NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentitystaging.onmicrosoft.com/midlun/.default' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' SERVERSIDE_FEATURES_ON: '' - XROAD_BASE_PATH: 'http://securityserver.staging01.devland.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.staging01.devland.is/r1/IS-TEST' - XROAD_CLIENT_ID: 'IS-TEST/GOV/5501692829/island-is-client' - XROAD_TLS_BASE_PATH: 'https://securityserver.staging01.devland.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.staging01.devland.is/r1/IS-TEST' - grantNamespaces: - - 'islandis' - - 'download-service' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/regulations-admin-backend' - initContainer: - containers: - - args: - - 'sequelize-cli' - - 'db:migrate' - command: - - 'npx' - name: 'migrations' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'regulations_admin_backend' - DB_REPLICAS_HOST: 'postgres-applications.internal' - DB_USER: 'regulations_admin_backend' - SERVERSIDE_FEATURES_ON: '' - secrets: - DB_PASS: '/k8s/regulations-admin-backend/DB_PASSWORD' - namespace: 'regulations-admin' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '100m' - memory: '256Mi' secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' DB_PASS: '/k8s/regulations-admin-backend/DB_PASSWORD' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-regulations-admin/IDENTITY_SERVER_CLIENT_SECRET' - NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/api/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' - REGULATIONS_API_URL: '/k8s/api/REGULATIONS_API_URL' - REGULATIONS_FILE_UPLOAD_KEY_DRAFT: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_DRAFT' - REGULATIONS_FILE_UPLOAD_KEY_PRESIGNED: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_PRESIGNED' - REGULATIONS_FILE_UPLOAD_KEY_PUBLISH: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_PUBLISH' - securityContext: - allowPrivilegeEscalation: false - privileged: false +namespace: 'regulations-admin' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '100m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/regulations-admin-backend/DB_PASSWORD' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-regulations-admin/IDENTITY_SERVER_CLIENT_SECRET' + NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/api/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' + REGULATIONS_API_URL: '/k8s/api/REGULATIONS_API_URL' + REGULATIONS_FILE_UPLOAD_KEY_DRAFT: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_DRAFT' + REGULATIONS_FILE_UPLOAD_KEY_PRESIGNED: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_PRESIGNED' + REGULATIONS_FILE_UPLOAD_KEY_PUBLISH: '/k8s/api/REGULATIONS_FILE_UPLOAD_KEY_PUBLISH' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/search-indexer-service/values.dev.yaml b/charts/services/search-indexer-service/values.dev.yaml index a4a7c37b147e..6ecb31864bdf 100644 --- a/charts/services/search-indexer-service/values.dev.yaml +++ b/charts/services/search-indexer-service/values.dev.yaml @@ -5,9 +5,101 @@ # ##################################################################### -service: - name: 'search-indexer-service' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'search-indexer-service' +enabled: true +env: + AIR_DISCOUNT_SCHEME_FRONTEND_HOSTNAME: 'loftbru.dev01.devland.is' + APPLICATION_URL: 'http://search-indexer-service' + CONTENTFUL_ENTRY_FETCH_CHUNK_SIZE: '40' + CONTENTFUL_ENVIRONMENT: 'master' + CONTENTFUL_HOST: 'preview.contentful.com' + CONTENTFUL_SPACE: '8k0h54kbe6bj' + ELASTIC_INDEX: 'island-is' + ELASTIC_NODE: 'https://vpc-search-njkekqydiegezhr4vqpkfnw5la.eu-west-1.es.amazonaws.com' + ENVIRONMENT: 'dev' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=3686 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: [] +grantNamespacesEnabled: false +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 1 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-search-indexer' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/enable-global-auth: 'false' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'search-indexer-service.dev01.devland.is' + paths: + - '/' +initContainer: + containers: + - args: + - '/webapp/migrateAws.js' + command: + - '/usr/local/bin/node' + name: 'migrate-aws' + resources: + limits: + cpu: '400m' + memory: '2048Mi' + requests: + cpu: '100m' + memory: '512Mi' + - args: + - '/webapp/migrateElastic.js' + command: + - '/usr/local/bin/node' + name: 'migrate-elastic' + resources: + limits: + cpu: '700m' + memory: '4096Mi' + requests: + cpu: '300m' + memory: '3072Mi' + - args: + - '/webapp/migrateKibana.js' + command: + - '/usr/local/bin/node' + name: 'migrate-kibana' + resources: + limits: + cpu: '400m' + memory: '2048Mi' + requests: + cpu: '100m' + memory: '512Mi' env: AIR_DISCOUNT_SCHEME_FRONTEND_HOSTNAME: 'loftbru.dev01.devland.is' APPLICATION_URL: 'http://search-indexer-service' @@ -15,127 +107,45 @@ service: CONTENTFUL_ENVIRONMENT: 'master' CONTENTFUL_HOST: 'preview.contentful.com' CONTENTFUL_SPACE: '8k0h54kbe6bj' + ELASTIC_DOMAIN: 'search' ELASTIC_INDEX: 'island-is' ELASTIC_NODE: 'https://vpc-search-njkekqydiegezhr4vqpkfnw5la.eu-west-1.es.amazonaws.com' ENVIRONMENT: 'dev' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=3686 -r dd-trace/init' + NODE_OPTIONS: '--max-old-space-size=2048' + S3_BUCKET: 'dev-es-custom-packages' SERVERSIDE_FEATURES_ON: '' - grantNamespaces: [] - grantNamespacesEnabled: false - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 1 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-search-indexer' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/enable-global-auth: 'false' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'search-indexer-service.dev01.devland.is' - paths: - - '/' - initContainer: - containers: - - args: - - '/webapp/migrateAws.js' - command: - - '/usr/local/bin/node' - name: 'migrate-aws' - resources: - limits: - cpu: '400m' - memory: '2048Mi' - requests: - cpu: '100m' - memory: '512Mi' - - args: - - '/webapp/migrateElastic.js' - command: - - '/usr/local/bin/node' - name: 'migrate-elastic' - resources: - limits: - cpu: '700m' - memory: '4096Mi' - requests: - cpu: '300m' - memory: '3072Mi' - - args: - - '/webapp/migrateKibana.js' - command: - - '/usr/local/bin/node' - name: 'migrate-kibana' - resources: - limits: - cpu: '400m' - memory: '2048Mi' - requests: - cpu: '100m' - memory: '512Mi' - env: - AIR_DISCOUNT_SCHEME_FRONTEND_HOSTNAME: 'loftbru.dev01.devland.is' - APPLICATION_URL: 'http://search-indexer-service' - CONTENTFUL_ENTRY_FETCH_CHUNK_SIZE: '40' - CONTENTFUL_ENVIRONMENT: 'master' - CONTENTFUL_HOST: 'preview.contentful.com' - CONTENTFUL_SPACE: '8k0h54kbe6bj' - ELASTIC_DOMAIN: 'search' - ELASTIC_INDEX: 'island-is' - ELASTIC_NODE: 'https://vpc-search-njkekqydiegezhr4vqpkfnw5la.eu-west-1.es.amazonaws.com' - ENVIRONMENT: 'dev' - NODE_OPTIONS: '--max-old-space-size=2048' - S3_BUCKET: 'dev-es-custom-packages' - SERVERSIDE_FEATURES_ON: '' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - CONTENTFUL_ACCESS_TOKEN: '/k8s/search-indexer/CONTENTFUL_ACCESS_TOKEN' - namespace: 'search-indexer' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - progressDeadlineSeconds: 1500 - pvcs: [] - replicaCount: - default: 1 - max: 1 - min: 1 - resources: - limits: - cpu: '800m' - memory: '4096Mi' - requests: - cpu: '400m' - memory: '3072Mi' secrets: - API_CMS_DELETION_TOKEN: '/k8s/search-indexer/API_CMS_DELETION_TOKEN' - API_CMS_SYNC_TOKEN: '/k8s/search-indexer/API_CMS_SYNC_TOKEN' - APOLLO_BYPASS_CACHE_SECRET: '/k8s/api/APOLLO_BYPASS_CACHE_SECRET' CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' CONTENTFUL_ACCESS_TOKEN: '/k8s/search-indexer/CONTENTFUL_ACCESS_TOKEN' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/search-indexer' - create: true - name: 'search-indexer' +namespace: 'search-indexer' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +progressDeadlineSeconds: 1500 +pvcs: [] +replicaCount: + default: 1 + max: 1 + min: 1 +resources: + limits: + cpu: '800m' + memory: '4096Mi' + requests: + cpu: '400m' + memory: '3072Mi' +secrets: + API_CMS_DELETION_TOKEN: '/k8s/search-indexer/API_CMS_DELETION_TOKEN' + API_CMS_SYNC_TOKEN: '/k8s/search-indexer/API_CMS_SYNC_TOKEN' + APOLLO_BYPASS_CACHE_SECRET: '/k8s/api/APOLLO_BYPASS_CACHE_SECRET' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + CONTENTFUL_ACCESS_TOKEN: '/k8s/search-indexer/CONTENTFUL_ACCESS_TOKEN' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/search-indexer' + create: true + name: 'search-indexer' diff --git a/charts/services/search-indexer-service/values.prod.yaml b/charts/services/search-indexer-service/values.prod.yaml index c0645c745b14..1b1d10f0dfb4 100644 --- a/charts/services/search-indexer-service/values.prod.yaml +++ b/charts/services/search-indexer-service/values.prod.yaml @@ -5,9 +5,100 @@ # ##################################################################### -service: - name: 'search-indexer-service' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'search-indexer-service' +enabled: true +env: + AIR_DISCOUNT_SCHEME_FRONTEND_HOSTNAME: 'loftbru.island.is' + APPLICATION_URL: 'http://search-indexer-service' + CONTENTFUL_ENTRY_FETCH_CHUNK_SIZE: '40' + CONTENTFUL_ENVIRONMENT: 'master' + CONTENTFUL_HOST: 'cdn.contentful.com' + CONTENTFUL_SPACE: '8k0h54kbe6bj' + ELASTIC_INDEX: 'island-is' + ELASTIC_NODE: 'https://vpc-search-mw4w5c2m2g5edjrtvwbpzhkw24.eu-west-1.es.amazonaws.com' + ENVIRONMENT: 'prod' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=3686 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' +grantNamespaces: [] +grantNamespacesEnabled: false +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 1 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-search-indexer' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'search-indexer-service.devland.is' + paths: + - '/' +initContainer: + containers: + - args: + - '/webapp/migrateAws.js' + command: + - '/usr/local/bin/node' + name: 'migrate-aws' + resources: + limits: + cpu: '400m' + memory: '2048Mi' + requests: + cpu: '100m' + memory: '512Mi' + - args: + - '/webapp/migrateElastic.js' + command: + - '/usr/local/bin/node' + name: 'migrate-elastic' + resources: + limits: + cpu: '700m' + memory: '4096Mi' + requests: + cpu: '300m' + memory: '3072Mi' + - args: + - '/webapp/migrateKibana.js' + command: + - '/usr/local/bin/node' + name: 'migrate-kibana' + resources: + limits: + cpu: '400m' + memory: '2048Mi' + requests: + cpu: '100m' + memory: '512Mi' env: AIR_DISCOUNT_SCHEME_FRONTEND_HOSTNAME: 'loftbru.island.is' APPLICATION_URL: 'http://search-indexer-service' @@ -15,126 +106,45 @@ service: CONTENTFUL_ENVIRONMENT: 'master' CONTENTFUL_HOST: 'cdn.contentful.com' CONTENTFUL_SPACE: '8k0h54kbe6bj' + ELASTIC_DOMAIN: 'search' ELASTIC_INDEX: 'island-is' ELASTIC_NODE: 'https://vpc-search-mw4w5c2m2g5edjrtvwbpzhkw24.eu-west-1.es.amazonaws.com' ENVIRONMENT: 'prod' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=3686 -r dd-trace/init' + NODE_OPTIONS: '--max-old-space-size=2048' + S3_BUCKET: 'prod-es-custom-packages' SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - grantNamespaces: [] - grantNamespacesEnabled: false - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 1 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-search-indexer' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'search-indexer-service.devland.is' - paths: - - '/' - initContainer: - containers: - - args: - - '/webapp/migrateAws.js' - command: - - '/usr/local/bin/node' - name: 'migrate-aws' - resources: - limits: - cpu: '400m' - memory: '2048Mi' - requests: - cpu: '100m' - memory: '512Mi' - - args: - - '/webapp/migrateElastic.js' - command: - - '/usr/local/bin/node' - name: 'migrate-elastic' - resources: - limits: - cpu: '700m' - memory: '4096Mi' - requests: - cpu: '300m' - memory: '3072Mi' - - args: - - '/webapp/migrateKibana.js' - command: - - '/usr/local/bin/node' - name: 'migrate-kibana' - resources: - limits: - cpu: '400m' - memory: '2048Mi' - requests: - cpu: '100m' - memory: '512Mi' - env: - AIR_DISCOUNT_SCHEME_FRONTEND_HOSTNAME: 'loftbru.island.is' - APPLICATION_URL: 'http://search-indexer-service' - CONTENTFUL_ENTRY_FETCH_CHUNK_SIZE: '40' - CONTENTFUL_ENVIRONMENT: 'master' - CONTENTFUL_HOST: 'cdn.contentful.com' - CONTENTFUL_SPACE: '8k0h54kbe6bj' - ELASTIC_DOMAIN: 'search' - ELASTIC_INDEX: 'island-is' - ELASTIC_NODE: 'https://vpc-search-mw4w5c2m2g5edjrtvwbpzhkw24.eu-west-1.es.amazonaws.com' - ENVIRONMENT: 'prod' - NODE_OPTIONS: '--max-old-space-size=2048' - S3_BUCKET: 'prod-es-custom-packages' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - CONTENTFUL_ACCESS_TOKEN: '/k8s/search-indexer/CONTENTFUL_ACCESS_TOKEN' - namespace: 'search-indexer' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - progressDeadlineSeconds: 1500 - pvcs: [] - replicaCount: - default: 1 - max: 1 - min: 1 - resources: - limits: - cpu: '800m' - memory: '4096Mi' - requests: - cpu: '400m' - memory: '3072Mi' secrets: - API_CMS_DELETION_TOKEN: '/k8s/search-indexer/API_CMS_DELETION_TOKEN' - API_CMS_SYNC_TOKEN: '/k8s/search-indexer/API_CMS_SYNC_TOKEN' - APOLLO_BYPASS_CACHE_SECRET: '/k8s/api/APOLLO_BYPASS_CACHE_SECRET' CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' CONTENTFUL_ACCESS_TOKEN: '/k8s/search-indexer/CONTENTFUL_ACCESS_TOKEN' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/search-indexer' - create: true - name: 'search-indexer' +namespace: 'search-indexer' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +progressDeadlineSeconds: 1500 +pvcs: [] +replicaCount: + default: 1 + max: 1 + min: 1 +resources: + limits: + cpu: '800m' + memory: '4096Mi' + requests: + cpu: '400m' + memory: '3072Mi' +secrets: + API_CMS_DELETION_TOKEN: '/k8s/search-indexer/API_CMS_DELETION_TOKEN' + API_CMS_SYNC_TOKEN: '/k8s/search-indexer/API_CMS_SYNC_TOKEN' + APOLLO_BYPASS_CACHE_SECRET: '/k8s/api/APOLLO_BYPASS_CACHE_SECRET' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + CONTENTFUL_ACCESS_TOKEN: '/k8s/search-indexer/CONTENTFUL_ACCESS_TOKEN' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/search-indexer' + create: true + name: 'search-indexer' diff --git a/charts/services/search-indexer-service/values.staging.yaml b/charts/services/search-indexer-service/values.staging.yaml index 448f36861a36..e7f407cf667b 100644 --- a/charts/services/search-indexer-service/values.staging.yaml +++ b/charts/services/search-indexer-service/values.staging.yaml @@ -5,9 +5,101 @@ # ##################################################################### -service: - name: 'search-indexer-service' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'search-indexer-service' +enabled: true +env: + AIR_DISCOUNT_SCHEME_FRONTEND_HOSTNAME: 'loftbru.staging01.devland.is' + APPLICATION_URL: 'http://search-indexer-service' + CONTENTFUL_ENTRY_FETCH_CHUNK_SIZE: '40' + CONTENTFUL_ENVIRONMENT: 'master' + CONTENTFUL_HOST: 'cdn.contentful.com' + CONTENTFUL_SPACE: '8k0h54kbe6bj' + ELASTIC_INDEX: 'island-is' + ELASTIC_NODE: 'https://vpc-search-q6hdtjcdlhkffyxvrnmzfwphuq.eu-west-1.es.amazonaws.com' + ENVIRONMENT: 'staging' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=3686 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: [] +grantNamespacesEnabled: false +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 1 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-search-indexer' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/enable-global-auth: 'false' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'search-indexer-service.staging01.devland.is' + paths: + - '/' +initContainer: + containers: + - args: + - '/webapp/migrateAws.js' + command: + - '/usr/local/bin/node' + name: 'migrate-aws' + resources: + limits: + cpu: '400m' + memory: '2048Mi' + requests: + cpu: '100m' + memory: '512Mi' + - args: + - '/webapp/migrateElastic.js' + command: + - '/usr/local/bin/node' + name: 'migrate-elastic' + resources: + limits: + cpu: '700m' + memory: '4096Mi' + requests: + cpu: '300m' + memory: '3072Mi' + - args: + - '/webapp/migrateKibana.js' + command: + - '/usr/local/bin/node' + name: 'migrate-kibana' + resources: + limits: + cpu: '400m' + memory: '2048Mi' + requests: + cpu: '100m' + memory: '512Mi' env: AIR_DISCOUNT_SCHEME_FRONTEND_HOSTNAME: 'loftbru.staging01.devland.is' APPLICATION_URL: 'http://search-indexer-service' @@ -15,127 +107,45 @@ service: CONTENTFUL_ENVIRONMENT: 'master' CONTENTFUL_HOST: 'cdn.contentful.com' CONTENTFUL_SPACE: '8k0h54kbe6bj' + ELASTIC_DOMAIN: 'search' ELASTIC_INDEX: 'island-is' ELASTIC_NODE: 'https://vpc-search-q6hdtjcdlhkffyxvrnmzfwphuq.eu-west-1.es.amazonaws.com' ENVIRONMENT: 'staging' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=3686 -r dd-trace/init' + NODE_OPTIONS: '--max-old-space-size=2048' + S3_BUCKET: 'staging-es-custom-packages' SERVERSIDE_FEATURES_ON: '' - grantNamespaces: [] - grantNamespacesEnabled: false - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 1 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-search-indexer' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/enable-global-auth: 'false' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'search-indexer-service.staging01.devland.is' - paths: - - '/' - initContainer: - containers: - - args: - - '/webapp/migrateAws.js' - command: - - '/usr/local/bin/node' - name: 'migrate-aws' - resources: - limits: - cpu: '400m' - memory: '2048Mi' - requests: - cpu: '100m' - memory: '512Mi' - - args: - - '/webapp/migrateElastic.js' - command: - - '/usr/local/bin/node' - name: 'migrate-elastic' - resources: - limits: - cpu: '700m' - memory: '4096Mi' - requests: - cpu: '300m' - memory: '3072Mi' - - args: - - '/webapp/migrateKibana.js' - command: - - '/usr/local/bin/node' - name: 'migrate-kibana' - resources: - limits: - cpu: '400m' - memory: '2048Mi' - requests: - cpu: '100m' - memory: '512Mi' - env: - AIR_DISCOUNT_SCHEME_FRONTEND_HOSTNAME: 'loftbru.staging01.devland.is' - APPLICATION_URL: 'http://search-indexer-service' - CONTENTFUL_ENTRY_FETCH_CHUNK_SIZE: '40' - CONTENTFUL_ENVIRONMENT: 'master' - CONTENTFUL_HOST: 'cdn.contentful.com' - CONTENTFUL_SPACE: '8k0h54kbe6bj' - ELASTIC_DOMAIN: 'search' - ELASTIC_INDEX: 'island-is' - ELASTIC_NODE: 'https://vpc-search-q6hdtjcdlhkffyxvrnmzfwphuq.eu-west-1.es.amazonaws.com' - ENVIRONMENT: 'staging' - NODE_OPTIONS: '--max-old-space-size=2048' - S3_BUCKET: 'staging-es-custom-packages' - SERVERSIDE_FEATURES_ON: '' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - CONTENTFUL_ACCESS_TOKEN: '/k8s/search-indexer/CONTENTFUL_ACCESS_TOKEN' - namespace: 'search-indexer' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - progressDeadlineSeconds: 1500 - pvcs: [] - replicaCount: - default: 1 - max: 1 - min: 1 - resources: - limits: - cpu: '800m' - memory: '4096Mi' - requests: - cpu: '400m' - memory: '3072Mi' secrets: - API_CMS_DELETION_TOKEN: '/k8s/search-indexer/API_CMS_DELETION_TOKEN' - API_CMS_SYNC_TOKEN: '/k8s/search-indexer/API_CMS_SYNC_TOKEN' - APOLLO_BYPASS_CACHE_SECRET: '/k8s/api/APOLLO_BYPASS_CACHE_SECRET' CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' CONTENTFUL_ACCESS_TOKEN: '/k8s/search-indexer/CONTENTFUL_ACCESS_TOKEN' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/search-indexer' - create: true - name: 'search-indexer' +namespace: 'search-indexer' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +progressDeadlineSeconds: 1500 +pvcs: [] +replicaCount: + default: 1 + max: 1 + min: 1 +resources: + limits: + cpu: '800m' + memory: '4096Mi' + requests: + cpu: '400m' + memory: '3072Mi' +secrets: + API_CMS_DELETION_TOKEN: '/k8s/search-indexer/API_CMS_DELETION_TOKEN' + API_CMS_SYNC_TOKEN: '/k8s/search-indexer/API_CMS_SYNC_TOKEN' + APOLLO_BYPASS_CACHE_SECRET: '/k8s/api/APOLLO_BYPASS_CACHE_SECRET' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + CONTENTFUL_ACCESS_TOKEN: '/k8s/search-indexer/CONTENTFUL_ACCESS_TOKEN' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/search-indexer' + create: true + name: 'search-indexer' diff --git a/charts/services/service-portal-api/values.dev.yaml b/charts/services/service-portal-api/values.dev.yaml index 7d68fe98df26..dd764effdcae 100644 --- a/charts/services/service-portal-api/values.dev.yaml +++ b/charts/services/service-portal-api/values.dev.yaml @@ -5,130 +5,140 @@ # ##################################################################### -service: - name: 'service-portal-api' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'service-portal-api' +enabled: true +env: + AUTH_DELEGATION_API_URL: 'http://web-services-auth-delegation-api.identity-server-delegation.svc.cluster.local' + AUTH_DELEGATION_MACHINE_CLIENT_SCOPE: '["@island.is/auth/delegations/index:system"]' + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'service_portal_api' + DB_REPLICAS_HOST: 'postgres-applications-reader.internal' + DB_USER: 'service_portal_api' + EMAIL_REGION: 'eu-west-1' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' + ISLYKILL_CERT: '/etc/config/islyklar.p12' + LOG_LEVEL: 'info' + NATIONAL_REGISTRY_B2C_CLIENT_ID: 'b464afdd-056b-406d-b650-6d41733cfeb7' + NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentitydev.b2clogin.com/skraidentitydev.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' + NATIONAL_REGISTRY_B2C_PATH: 'IS-DEV/GOV/10001/SKRA-Cloud-Protected/Midlun-v1' + NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentitydev.onmicrosoft.com/midlun/.default' + NODE_OPTIONS: '--max-old-space-size=921 -r dd-trace/init' + NOVA_ACCEPT_UNAUTHORIZED: 'true' + SERVERSIDE_FEATURES_ON: '' + SERVICE_PORTAL_BASE_URL: 'https://beta.dev01.devland.is/minarsidur' + XROAD_BASE_PATH: 'http://securityserver.dev01.devland.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.dev01.devland.is/r1/IS-DEV' + XROAD_CLIENT_ID: 'IS-DEV/GOV/10000/island-is-client' + XROAD_TLS_BASE_PATH: 'https://securityserver.dev01.devland.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.dev01.devland.is/r1/IS-DEV' +files: + - 'islyklar.p12' +grantNamespaces: + - 'nginx-ingress-internal' + - 'islandis' + - 'user-notification' + - 'identity-server' + - 'application-system' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/readiness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 30 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-user-profile' +ingress: + internal-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-internal-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'service-portal-api.internal.dev01.devland.is' + paths: + - '/' +initContainer: + containers: + - args: + - 'sequelize-cli' + - 'db:migrate' + command: + - 'npx' + name: 'migrations' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' env: - AUTH_DELEGATION_API_URL: 'http://web-services-auth-delegation-api.identity-server-delegation.svc.cluster.local' - AUTH_DELEGATION_MACHINE_CLIENT_SCOPE: '["@island.is/auth/delegations/index:system"]' DB_HOST: 'postgres-applications.internal' DB_NAME: 'service_portal_api' DB_REPLICAS_HOST: 'postgres-applications-reader.internal' DB_USER: 'service_portal_api' - EMAIL_REGION: 'eu-west-1' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' - ISLYKILL_CERT: '/etc/config/islyklar.p12' - LOG_LEVEL: 'info' - NATIONAL_REGISTRY_B2C_CLIENT_ID: 'b464afdd-056b-406d-b650-6d41733cfeb7' - NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentitydev.b2clogin.com/skraidentitydev.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' - NATIONAL_REGISTRY_B2C_PATH: 'IS-DEV/GOV/10001/SKRA-Cloud-Protected/Midlun-v1' - NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentitydev.onmicrosoft.com/midlun/.default' - NODE_OPTIONS: '--max-old-space-size=921 -r dd-trace/init' - NOVA_ACCEPT_UNAUTHORIZED: 'true' SERVERSIDE_FEATURES_ON: '' - SERVICE_PORTAL_BASE_URL: 'https://beta.dev01.devland.is/minarsidur' - XROAD_BASE_PATH: 'http://securityserver.dev01.devland.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.dev01.devland.is/r1/IS-DEV' - XROAD_CLIENT_ID: 'IS-DEV/GOV/10000/island-is-client' - XROAD_TLS_BASE_PATH: 'https://securityserver.dev01.devland.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.dev01.devland.is/r1/IS-DEV' - files: - - 'islyklar.p12' - grantNamespaces: - - 'nginx-ingress-internal' - - 'islandis' - - 'user-notification' - - 'identity-server' - - 'application-system' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/readiness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 30 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-user-profile' - ingress: - internal-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-internal-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'service-portal-api.internal.dev01.devland.is' - paths: - - '/' - initContainer: - containers: - - args: - - 'sequelize-cli' - - 'db:migrate' - command: - - 'npx' - name: 'migrations' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'service_portal_api' - DB_REPLICAS_HOST: 'postgres-applications-reader.internal' - DB_USER: 'service_portal_api' - SERVERSIDE_FEATURES_ON: '' - secrets: - DB_PASS: '/k8s/service-portal-api/DB_PASSWORD' - namespace: 'service-portal' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 2 - max: 30 - min: 2 - resources: - limits: - cpu: '800m' - memory: '1024Mi' - requests: - cpu: '100m' - memory: '512Mi' secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' DB_PASS: '/k8s/service-portal-api/DB_PASSWORD' - EMAIL_FROM: '/k8s/service-portal/api/EMAIL_FROM' - EMAIL_FROM_NAME: '/k8s/service-portal/api/EMAIL_FROM_NAME' - EMAIL_REPLY_TO: '/k8s/service-portal/api/EMAIL_REPLY_TO' - EMAIL_REPLY_TO_NAME: '/k8s/service-portal/api/EMAIL_REPLY_TO_NAME' - IDENTITY_SERVER_CLIENT_ID: '/k8s/service-portal/api/SERVICE_PORTAL_API_CLIENT_ID' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/service-portal/api/SERVICE_PORTAL_API_CLIENT_SECRET' - ISLYKILL_SERVICE_BASEPATH: '/k8s/api/ISLYKILL_SERVICE_BASEPATH' - ISLYKILL_SERVICE_PASSPHRASE: '/k8s/api/ISLYKILL_SERVICE_PASSPHRASE' - NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/api/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' - NOVA_PASSWORD: '/k8s/gjafakort/NOVA_PASSWORD' - NOVA_URL: '/k8s/service-portal-api/NOVA_URL' - NOVA_USERNAME: '/k8s/gjafakort/NOVA_USERNAME' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/service-portal-api' - create: true - name: 'service-portal-api' +namespace: 'service-portal' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 2 + max: 30 + min: 2 +resources: + limits: + cpu: '800m' + memory: '1024Mi' + requests: + cpu: '100m' + memory: '512Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/service-portal-api/DB_PASSWORD' + EMAIL_FROM: '/k8s/service-portal/api/EMAIL_FROM' + EMAIL_FROM_NAME: '/k8s/service-portal/api/EMAIL_FROM_NAME' + EMAIL_REPLY_TO: '/k8s/service-portal/api/EMAIL_REPLY_TO' + EMAIL_REPLY_TO_NAME: '/k8s/service-portal/api/EMAIL_REPLY_TO_NAME' + IDENTITY_SERVER_CLIENT_ID: '/k8s/service-portal/api/SERVICE_PORTAL_API_CLIENT_ID' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/service-portal/api/SERVICE_PORTAL_API_CLIENT_SECRET' + ISLYKILL_SERVICE_BASEPATH: '/k8s/api/ISLYKILL_SERVICE_BASEPATH' + ISLYKILL_SERVICE_PASSPHRASE: '/k8s/api/ISLYKILL_SERVICE_PASSPHRASE' + NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/api/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' + NOVA_PASSWORD: '/k8s/gjafakort/NOVA_PASSWORD' + NOVA_URL: '/k8s/service-portal-api/NOVA_URL' + NOVA_USERNAME: '/k8s/gjafakort/NOVA_USERNAME' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/service-portal-api' + create: true + name: 'service-portal-api' diff --git a/charts/services/service-portal-api/values.prod.yaml b/charts/services/service-portal-api/values.prod.yaml index adcc365a51d3..1ec1f781fb66 100644 --- a/charts/services/service-portal-api/values.prod.yaml +++ b/charts/services/service-portal-api/values.prod.yaml @@ -5,130 +5,140 @@ # ##################################################################### -service: - name: 'service-portal-api' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'service-portal-api' +enabled: true +env: + AUTH_DELEGATION_API_URL: 'https://auth-delegation-api.internal.innskra.island.is' + AUTH_DELEGATION_MACHINE_CLIENT_SCOPE: '["@island.is/auth/delegations/index:system"]' + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'service_portal_api' + DB_REPLICAS_HOST: 'postgres-applications.internal' + DB_USER: 'service_portal_api' + EMAIL_REGION: 'eu-west-1' + IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' + ISLYKILL_CERT: '/etc/config/islyklar.p12' + LOG_LEVEL: 'info' + NATIONAL_REGISTRY_B2C_CLIENT_ID: '2304d7ca-7ed3-4188-8b6d-e1b7e0e3df7f' + NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentity.b2clogin.com/skraidentity.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' + NATIONAL_REGISTRY_B2C_PATH: 'IS/GOV/6503760649/SKRA-Cloud-Protected/Midlun-v1' + NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentity.onmicrosoft.com/midlun/.default' + NODE_OPTIONS: '--max-old-space-size=921 -r dd-trace/init' + NOVA_ACCEPT_UNAUTHORIZED: 'false' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' + SERVICE_PORTAL_BASE_URL: 'https://island.is/minarsidur' + XROAD_BASE_PATH: 'http://securityserver.island.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.island.is/r1/IS' + XROAD_CLIENT_ID: 'IS/GOV/5501692829/island-is-client' + XROAD_TLS_BASE_PATH: 'https://securityserver.island.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.island.is/r1/IS' +files: + - 'islyklar.p12' +grantNamespaces: + - 'nginx-ingress-internal' + - 'islandis' + - 'user-notification' + - 'identity-server' + - 'application-system' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/readiness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 30 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-user-profile' +ingress: + internal-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-internal-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'service-portal-api.internal.island.is' + paths: + - '/' +initContainer: + containers: + - args: + - 'sequelize-cli' + - 'db:migrate' + command: + - 'npx' + name: 'migrations' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' env: - AUTH_DELEGATION_API_URL: 'https://auth-delegation-api.internal.innskra.island.is' - AUTH_DELEGATION_MACHINE_CLIENT_SCOPE: '["@island.is/auth/delegations/index:system"]' DB_HOST: 'postgres-applications.internal' DB_NAME: 'service_portal_api' DB_REPLICAS_HOST: 'postgres-applications.internal' DB_USER: 'service_portal_api' - EMAIL_REGION: 'eu-west-1' - IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' - ISLYKILL_CERT: '/etc/config/islyklar.p12' - LOG_LEVEL: 'info' - NATIONAL_REGISTRY_B2C_CLIENT_ID: '2304d7ca-7ed3-4188-8b6d-e1b7e0e3df7f' - NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentity.b2clogin.com/skraidentity.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' - NATIONAL_REGISTRY_B2C_PATH: 'IS/GOV/6503760649/SKRA-Cloud-Protected/Midlun-v1' - NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentity.onmicrosoft.com/midlun/.default' - NODE_OPTIONS: '--max-old-space-size=921 -r dd-trace/init' - NOVA_ACCEPT_UNAUTHORIZED: 'false' SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - SERVICE_PORTAL_BASE_URL: 'https://island.is/minarsidur' - XROAD_BASE_PATH: 'http://securityserver.island.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.island.is/r1/IS' - XROAD_CLIENT_ID: 'IS/GOV/5501692829/island-is-client' - XROAD_TLS_BASE_PATH: 'https://securityserver.island.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.island.is/r1/IS' - files: - - 'islyklar.p12' - grantNamespaces: - - 'nginx-ingress-internal' - - 'islandis' - - 'user-notification' - - 'identity-server' - - 'application-system' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/readiness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 30 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-user-profile' - ingress: - internal-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-internal-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'service-portal-api.internal.island.is' - paths: - - '/' - initContainer: - containers: - - args: - - 'sequelize-cli' - - 'db:migrate' - command: - - 'npx' - name: 'migrations' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'service_portal_api' - DB_REPLICAS_HOST: 'postgres-applications.internal' - DB_USER: 'service_portal_api' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - secrets: - DB_PASS: '/k8s/service-portal-api/DB_PASSWORD' - namespace: 'service-portal' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 2 - max: 30 - min: 2 - resources: - limits: - cpu: '800m' - memory: '1024Mi' - requests: - cpu: '100m' - memory: '512Mi' secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' DB_PASS: '/k8s/service-portal-api/DB_PASSWORD' - EMAIL_FROM: '/k8s/service-portal/api/EMAIL_FROM' - EMAIL_FROM_NAME: '/k8s/service-portal/api/EMAIL_FROM_NAME' - EMAIL_REPLY_TO: '/k8s/service-portal/api/EMAIL_REPLY_TO' - EMAIL_REPLY_TO_NAME: '/k8s/service-portal/api/EMAIL_REPLY_TO_NAME' - IDENTITY_SERVER_CLIENT_ID: '/k8s/service-portal/api/SERVICE_PORTAL_API_CLIENT_ID' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/service-portal/api/SERVICE_PORTAL_API_CLIENT_SECRET' - ISLYKILL_SERVICE_BASEPATH: '/k8s/api/ISLYKILL_SERVICE_BASEPATH' - ISLYKILL_SERVICE_PASSPHRASE: '/k8s/api/ISLYKILL_SERVICE_PASSPHRASE' - NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/api/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' - NOVA_PASSWORD: '/k8s/gjafakort/NOVA_PASSWORD' - NOVA_URL: '/k8s/service-portal-api/NOVA_URL' - NOVA_USERNAME: '/k8s/gjafakort/NOVA_USERNAME' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/service-portal-api' - create: true - name: 'service-portal-api' +namespace: 'service-portal' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 2 + max: 30 + min: 2 +resources: + limits: + cpu: '800m' + memory: '1024Mi' + requests: + cpu: '100m' + memory: '512Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/service-portal-api/DB_PASSWORD' + EMAIL_FROM: '/k8s/service-portal/api/EMAIL_FROM' + EMAIL_FROM_NAME: '/k8s/service-portal/api/EMAIL_FROM_NAME' + EMAIL_REPLY_TO: '/k8s/service-portal/api/EMAIL_REPLY_TO' + EMAIL_REPLY_TO_NAME: '/k8s/service-portal/api/EMAIL_REPLY_TO_NAME' + IDENTITY_SERVER_CLIENT_ID: '/k8s/service-portal/api/SERVICE_PORTAL_API_CLIENT_ID' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/service-portal/api/SERVICE_PORTAL_API_CLIENT_SECRET' + ISLYKILL_SERVICE_BASEPATH: '/k8s/api/ISLYKILL_SERVICE_BASEPATH' + ISLYKILL_SERVICE_PASSPHRASE: '/k8s/api/ISLYKILL_SERVICE_PASSPHRASE' + NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/api/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' + NOVA_PASSWORD: '/k8s/gjafakort/NOVA_PASSWORD' + NOVA_URL: '/k8s/service-portal-api/NOVA_URL' + NOVA_USERNAME: '/k8s/gjafakort/NOVA_USERNAME' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/service-portal-api' + create: true + name: 'service-portal-api' diff --git a/charts/services/service-portal-api/values.staging.yaml b/charts/services/service-portal-api/values.staging.yaml index 801cfbf8ad2a..a6c91b5bc4df 100644 --- a/charts/services/service-portal-api/values.staging.yaml +++ b/charts/services/service-portal-api/values.staging.yaml @@ -5,130 +5,140 @@ # ##################################################################### -service: - name: 'service-portal-api' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'service-portal-api' +enabled: true +env: + AUTH_DELEGATION_API_URL: 'http://web-services-auth-delegation-api.identity-server-delegation.svc.cluster.local' + AUTH_DELEGATION_MACHINE_CLIENT_SCOPE: '["@island.is/auth/delegations/index:system"]' + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'service_portal_api' + DB_REPLICAS_HOST: 'postgres-applications.internal' + DB_USER: 'service_portal_api' + EMAIL_REGION: 'eu-west-1' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' + ISLYKILL_CERT: '/etc/config/islyklar.p12' + LOG_LEVEL: 'info' + NATIONAL_REGISTRY_B2C_CLIENT_ID: 'ca128c23-b43c-443d-bade-ec5a146a933f' + NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentitydev.b2clogin.com/skraidentitystaging.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' + NATIONAL_REGISTRY_B2C_PATH: 'IS-TEST/GOV/6503760649/SKRA-Cloud-Protected/Midlun-v1' + NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentitystaging.onmicrosoft.com/midlun/.default' + NODE_OPTIONS: '--max-old-space-size=921 -r dd-trace/init' + NOVA_ACCEPT_UNAUTHORIZED: 'false' + SERVERSIDE_FEATURES_ON: '' + SERVICE_PORTAL_BASE_URL: 'https://beta.staging01.devland.is/minarsidur' + XROAD_BASE_PATH: 'http://securityserver.staging01.devland.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.staging01.devland.is/r1/IS-TEST' + XROAD_CLIENT_ID: 'IS-TEST/GOV/5501692829/island-is-client' + XROAD_TLS_BASE_PATH: 'https://securityserver.staging01.devland.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.staging01.devland.is/r1/IS-TEST' +files: + - 'islyklar.p12' +grantNamespaces: + - 'nginx-ingress-internal' + - 'islandis' + - 'user-notification' + - 'identity-server' + - 'application-system' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/readiness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 30 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-user-profile' +ingress: + internal-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-internal-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'service-portal-api.internal.staging01.devland.is' + paths: + - '/' +initContainer: + containers: + - args: + - 'sequelize-cli' + - 'db:migrate' + command: + - 'npx' + name: 'migrations' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' env: - AUTH_DELEGATION_API_URL: 'http://web-services-auth-delegation-api.identity-server-delegation.svc.cluster.local' - AUTH_DELEGATION_MACHINE_CLIENT_SCOPE: '["@island.is/auth/delegations/index:system"]' DB_HOST: 'postgres-applications.internal' DB_NAME: 'service_portal_api' DB_REPLICAS_HOST: 'postgres-applications.internal' DB_USER: 'service_portal_api' - EMAIL_REGION: 'eu-west-1' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' - ISLYKILL_CERT: '/etc/config/islyklar.p12' - LOG_LEVEL: 'info' - NATIONAL_REGISTRY_B2C_CLIENT_ID: 'ca128c23-b43c-443d-bade-ec5a146a933f' - NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentitydev.b2clogin.com/skraidentitystaging.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' - NATIONAL_REGISTRY_B2C_PATH: 'IS-TEST/GOV/6503760649/SKRA-Cloud-Protected/Midlun-v1' - NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentitystaging.onmicrosoft.com/midlun/.default' - NODE_OPTIONS: '--max-old-space-size=921 -r dd-trace/init' - NOVA_ACCEPT_UNAUTHORIZED: 'false' SERVERSIDE_FEATURES_ON: '' - SERVICE_PORTAL_BASE_URL: 'https://beta.staging01.devland.is/minarsidur' - XROAD_BASE_PATH: 'http://securityserver.staging01.devland.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.staging01.devland.is/r1/IS-TEST' - XROAD_CLIENT_ID: 'IS-TEST/GOV/5501692829/island-is-client' - XROAD_TLS_BASE_PATH: 'https://securityserver.staging01.devland.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.staging01.devland.is/r1/IS-TEST' - files: - - 'islyklar.p12' - grantNamespaces: - - 'nginx-ingress-internal' - - 'islandis' - - 'user-notification' - - 'identity-server' - - 'application-system' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/readiness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 30 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-user-profile' - ingress: - internal-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-internal-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'service-portal-api.internal.staging01.devland.is' - paths: - - '/' - initContainer: - containers: - - args: - - 'sequelize-cli' - - 'db:migrate' - command: - - 'npx' - name: 'migrations' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'service_portal_api' - DB_REPLICAS_HOST: 'postgres-applications.internal' - DB_USER: 'service_portal_api' - SERVERSIDE_FEATURES_ON: '' - secrets: - DB_PASS: '/k8s/service-portal-api/DB_PASSWORD' - namespace: 'service-portal' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 2 - max: 30 - min: 2 - resources: - limits: - cpu: '800m' - memory: '1024Mi' - requests: - cpu: '100m' - memory: '512Mi' secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' DB_PASS: '/k8s/service-portal-api/DB_PASSWORD' - EMAIL_FROM: '/k8s/service-portal/api/EMAIL_FROM' - EMAIL_FROM_NAME: '/k8s/service-portal/api/EMAIL_FROM_NAME' - EMAIL_REPLY_TO: '/k8s/service-portal/api/EMAIL_REPLY_TO' - EMAIL_REPLY_TO_NAME: '/k8s/service-portal/api/EMAIL_REPLY_TO_NAME' - IDENTITY_SERVER_CLIENT_ID: '/k8s/service-portal/api/SERVICE_PORTAL_API_CLIENT_ID' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/service-portal/api/SERVICE_PORTAL_API_CLIENT_SECRET' - ISLYKILL_SERVICE_BASEPATH: '/k8s/api/ISLYKILL_SERVICE_BASEPATH' - ISLYKILL_SERVICE_PASSPHRASE: '/k8s/api/ISLYKILL_SERVICE_PASSPHRASE' - NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/api/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' - NOVA_PASSWORD: '/k8s/gjafakort/NOVA_PASSWORD' - NOVA_URL: '/k8s/service-portal-api/NOVA_URL' - NOVA_USERNAME: '/k8s/gjafakort/NOVA_USERNAME' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/service-portal-api' - create: true - name: 'service-portal-api' +namespace: 'service-portal' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 2 + max: 30 + min: 2 +resources: + limits: + cpu: '800m' + memory: '1024Mi' + requests: + cpu: '100m' + memory: '512Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/service-portal-api/DB_PASSWORD' + EMAIL_FROM: '/k8s/service-portal/api/EMAIL_FROM' + EMAIL_FROM_NAME: '/k8s/service-portal/api/EMAIL_FROM_NAME' + EMAIL_REPLY_TO: '/k8s/service-portal/api/EMAIL_REPLY_TO' + EMAIL_REPLY_TO_NAME: '/k8s/service-portal/api/EMAIL_REPLY_TO_NAME' + IDENTITY_SERVER_CLIENT_ID: '/k8s/service-portal/api/SERVICE_PORTAL_API_CLIENT_ID' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/service-portal/api/SERVICE_PORTAL_API_CLIENT_SECRET' + ISLYKILL_SERVICE_BASEPATH: '/k8s/api/ISLYKILL_SERVICE_BASEPATH' + ISLYKILL_SERVICE_PASSPHRASE: '/k8s/api/ISLYKILL_SERVICE_PASSPHRASE' + NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/api/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' + NOVA_PASSWORD: '/k8s/gjafakort/NOVA_PASSWORD' + NOVA_URL: '/k8s/service-portal-api/NOVA_URL' + NOVA_USERNAME: '/k8s/gjafakort/NOVA_USERNAME' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/service-portal-api' + create: true + name: 'service-portal-api' diff --git a/charts/services/service-portal/values.dev.yaml b/charts/services/service-portal/values.dev.yaml index d622b34eb836..d6286ea74f53 100644 --- a/charts/services/service-portal/values.dev.yaml +++ b/charts/services/service-portal/values.dev.yaml @@ -5,74 +5,84 @@ # ##################################################################### -service: - name: 'service-portal' - enabled: true +global: env: - BASEPATH: '/minarsidur' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230' - SERVERSIDE_FEATURES_ON: '' - SI_PUBLIC_ENVIRONMENT: 'dev' - SI_PUBLIC_GRAPHQL_API: '/api/graphql' - SI_PUBLIC_IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' - grantNamespaces: - - 'nginx-ingress-internal' - - 'nginx-ingress-external' - - 'islandis' - - 'user-notification' - - 'identity-server' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/readiness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 30 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/service-portal' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'beta.dev01.devland.is' - paths: - - '/minarsidur' - namespace: 'service-portal' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 2 - max: 30 - min: 2 - resources: - limits: - cpu: '300m' - memory: '256Mi' - requests: - cpu: '5m' - memory: '32Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - SI_PUBLIC_CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - SI_PUBLIC_DD_RUM_APPLICATION_ID: '/k8s/DD_RUM_APPLICATION_ID' - SI_PUBLIC_DD_RUM_CLIENT_TOKEN: '/k8s/DD_RUM_CLIENT_TOKEN' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'service-portal' +enabled: true +env: + BASEPATH: '/minarsidur' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=230' + SERVERSIDE_FEATURES_ON: '' + SI_PUBLIC_ENVIRONMENT: 'dev' + SI_PUBLIC_GRAPHQL_API: '/api/graphql' + SI_PUBLIC_IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' +grantNamespaces: + - 'nginx-ingress-internal' + - 'nginx-ingress-external' + - 'islandis' + - 'user-notification' + - 'identity-server' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/readiness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 30 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/service-portal' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'beta.dev01.devland.is' + paths: + - '/minarsidur' +namespace: 'service-portal' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 2 + max: 30 + min: 2 +resources: + limits: + cpu: '300m' + memory: '256Mi' + requests: + cpu: '5m' + memory: '32Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + SI_PUBLIC_CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + SI_PUBLIC_DD_RUM_APPLICATION_ID: '/k8s/DD_RUM_APPLICATION_ID' + SI_PUBLIC_DD_RUM_CLIENT_TOKEN: '/k8s/DD_RUM_CLIENT_TOKEN' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/service-portal/values.prod.yaml b/charts/services/service-portal/values.prod.yaml index 4d4dce47ea4e..601f924dc3ec 100644 --- a/charts/services/service-portal/values.prod.yaml +++ b/charts/services/service-portal/values.prod.yaml @@ -5,77 +5,87 @@ # ##################################################################### -service: - name: 'service-portal' - enabled: true +global: env: - BASEPATH: '/minarsidur' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - SI_PUBLIC_ENVIRONMENT: 'prod' - SI_PUBLIC_GRAPHQL_API: '/api/graphql' - SI_PUBLIC_IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' - grantNamespaces: - - 'nginx-ingress-internal' - - 'nginx-ingress-external' - - 'islandis' - - 'user-notification' - - 'identity-server' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/readiness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 30 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/service-portal' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'island.is' - paths: - - '/minarsidur' - - host: 'www.island.is' - paths: - - '/minarsidur' - namespace: 'service-portal' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 2 - max: 30 - min: 2 - resources: - limits: - cpu: '300m' - memory: '256Mi' - requests: - cpu: '5m' - memory: '32Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - SI_PUBLIC_CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - SI_PUBLIC_DD_RUM_APPLICATION_ID: '/k8s/DD_RUM_APPLICATION_ID' - SI_PUBLIC_DD_RUM_CLIENT_TOKEN: '/k8s/DD_RUM_CLIENT_TOKEN' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'service-portal' +enabled: true +env: + BASEPATH: '/minarsidur' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=230' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' + SI_PUBLIC_ENVIRONMENT: 'prod' + SI_PUBLIC_GRAPHQL_API: '/api/graphql' + SI_PUBLIC_IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' +grantNamespaces: + - 'nginx-ingress-internal' + - 'nginx-ingress-external' + - 'islandis' + - 'user-notification' + - 'identity-server' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/readiness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 30 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/service-portal' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'island.is' + paths: + - '/minarsidur' + - host: 'www.island.is' + paths: + - '/minarsidur' +namespace: 'service-portal' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 2 + max: 30 + min: 2 +resources: + limits: + cpu: '300m' + memory: '256Mi' + requests: + cpu: '5m' + memory: '32Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + SI_PUBLIC_CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + SI_PUBLIC_DD_RUM_APPLICATION_ID: '/k8s/DD_RUM_APPLICATION_ID' + SI_PUBLIC_DD_RUM_CLIENT_TOKEN: '/k8s/DD_RUM_CLIENT_TOKEN' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/service-portal/values.staging.yaml b/charts/services/service-portal/values.staging.yaml index 62cbbe5488dc..0401a390ad67 100644 --- a/charts/services/service-portal/values.staging.yaml +++ b/charts/services/service-portal/values.staging.yaml @@ -5,74 +5,84 @@ # ##################################################################### -service: - name: 'service-portal' - enabled: true +global: env: - BASEPATH: '/minarsidur' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230' - SERVERSIDE_FEATURES_ON: '' - SI_PUBLIC_ENVIRONMENT: 'staging' - SI_PUBLIC_GRAPHQL_API: '/api/graphql' - SI_PUBLIC_IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' - grantNamespaces: - - 'nginx-ingress-internal' - - 'nginx-ingress-external' - - 'islandis' - - 'user-notification' - - 'identity-server' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/readiness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 30 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/service-portal' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'beta.staging01.devland.is' - paths: - - '/minarsidur' - namespace: 'service-portal' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 2 - max: 30 - min: 2 - resources: - limits: - cpu: '300m' - memory: '256Mi' - requests: - cpu: '5m' - memory: '32Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - SI_PUBLIC_CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - SI_PUBLIC_DD_RUM_APPLICATION_ID: '/k8s/DD_RUM_APPLICATION_ID' - SI_PUBLIC_DD_RUM_CLIENT_TOKEN: '/k8s/DD_RUM_CLIENT_TOKEN' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'service-portal' +enabled: true +env: + BASEPATH: '/minarsidur' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=230' + SERVERSIDE_FEATURES_ON: '' + SI_PUBLIC_ENVIRONMENT: 'staging' + SI_PUBLIC_GRAPHQL_API: '/api/graphql' + SI_PUBLIC_IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' +grantNamespaces: + - 'nginx-ingress-internal' + - 'nginx-ingress-external' + - 'islandis' + - 'user-notification' + - 'identity-server' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/readiness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 30 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/service-portal' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'beta.staging01.devland.is' + paths: + - '/minarsidur' +namespace: 'service-portal' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 2 + max: 30 + min: 2 +resources: + limits: + cpu: '300m' + memory: '256Mi' + requests: + cpu: '5m' + memory: '32Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + SI_PUBLIC_CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + SI_PUBLIC_DD_RUM_APPLICATION_ID: '/k8s/DD_RUM_APPLICATION_ID' + SI_PUBLIC_DD_RUM_CLIENT_TOKEN: '/k8s/DD_RUM_CLIENT_TOKEN' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/services-auth-admin-api/values.dev.yaml b/charts/services/services-auth-admin-api/values.dev.yaml index e333b12f31fc..f2b108d4a7ce 100644 --- a/charts/services/services-auth-admin-api/values.dev.yaml +++ b/charts/services/services-auth-admin-api/values.dev.yaml @@ -5,96 +5,106 @@ # ##################################################################### -service: - name: 'services-auth-admin-api' - enabled: true +global: env: - COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' - COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS-DEV/GOV/10006/Skatturinn/ft-v1' - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'servicesauth' - DB_REPLICAS_HOST: 'postgres-applications-reader.internal' - DB_USER: 'servicesauth' - IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/auth-api' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' - IDENTITY_SERVER_ISSUER_URL_LIST: '["https://identity-server.dev01.devland.is","https://identity-server.staging01.devland.is","https://innskra.island.is"]' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=691 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - SYSLUMENN_HOST: 'https://api.syslumenn.is/staging' - SYSLUMENN_TIMEOUT: '3000' - XROAD_BASE_PATH: 'http://securityserver.dev01.devland.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.dev01.devland.is/r1/IS-DEV' - XROAD_CLIENT_ID: 'IS-DEV/GOV/10000/island-is-client' - XROAD_NATIONAL_REGISTRY_ACTOR_TOKEN: 'true' - XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' - XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS-DEV/GOV/10001/SKRA-Protected/Einstaklingar-v1' - XROAD_RSK_PROCURING_ACTOR_TOKEN: 'true' - XROAD_RSK_PROCURING_PATH: 'IS-DEV/GOV/10006/Skatturinn/relationships-v1' - XROAD_RSK_PROCURING_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' - XROAD_TLS_BASE_PATH: 'https://securityserver.dev01.devland.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.dev01.devland.is/r1/IS-DEV' - ZENDESK_CONTACT_FORM_SUBDOMAIN: 'digitaliceland' - grantNamespaces: - - 'nginx-ingress-external' - - 'nginx-ingress-internal' - - 'islandis' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/backend/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/backend/health/check' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-auth-admin-api' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/enable-global-auth: 'false' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'identity-server.dev01.devland.is' - paths: - - '/backend' - namespace: 'identity-server-admin' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '400m' - memory: '768Mi' - requests: - cpu: '100m' - memory: '512Mi' - secrets: - CLIENT_SECRET_ENCRYPTION_KEY: '/k8s/services-auth/admin-api/CLIENT_SECRET_ENCRYPTION_KEY' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DB_PASS: '/k8s/servicesauth/DB_PASSWORD' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-auth/IDENTITY_SERVER_CLIENT_SECRET' - NATIONAL_REGISTRY_IDS_CLIENT_SECRET: '/k8s/xroad/client/NATIONAL-REGISTRY/IDENTITYSERVER_SECRET' - SYSLUMENN_PASSWORD: '/k8s/services-auth/SYSLUMENN_PASSWORD' - SYSLUMENN_USERNAME: '/k8s/services-auth/SYSLUMENN_USERNAME' - ZENDESK_CONTACT_FORM_EMAIL: '/k8s/api/ZENDESK_CONTACT_FORM_EMAIL' - ZENDESK_CONTACT_FORM_TOKEN: '/k8s/api/ZENDESK_CONTACT_FORM_TOKEN' - ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE: '/k8s/services-auth/ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/identity-server/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'services-auth-admin-api' +enabled: true +env: + COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' + COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS-DEV/GOV/10006/Skatturinn/ft-v1' + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'servicesauth' + DB_REPLICAS_HOST: 'postgres-applications-reader.internal' + DB_USER: 'servicesauth' + IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/auth-api' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' + IDENTITY_SERVER_ISSUER_URL_LIST: '["https://identity-server.dev01.devland.is","https://identity-server.staging01.devland.is","https://innskra.island.is"]' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=691 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' + SYSLUMENN_HOST: 'https://api.syslumenn.is/staging' + SYSLUMENN_TIMEOUT: '3000' + XROAD_BASE_PATH: 'http://securityserver.dev01.devland.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.dev01.devland.is/r1/IS-DEV' + XROAD_CLIENT_ID: 'IS-DEV/GOV/10000/island-is-client' + XROAD_NATIONAL_REGISTRY_ACTOR_TOKEN: 'true' + XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' + XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS-DEV/GOV/10001/SKRA-Protected/Einstaklingar-v1' + XROAD_RSK_PROCURING_ACTOR_TOKEN: 'true' + XROAD_RSK_PROCURING_PATH: 'IS-DEV/GOV/10006/Skatturinn/relationships-v1' + XROAD_RSK_PROCURING_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' + XROAD_TLS_BASE_PATH: 'https://securityserver.dev01.devland.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.dev01.devland.is/r1/IS-DEV' + ZENDESK_CONTACT_FORM_SUBDOMAIN: 'digitaliceland' +grantNamespaces: + - 'nginx-ingress-external' + - 'nginx-ingress-internal' + - 'islandis' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/backend/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/backend/health/check' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-auth-admin-api' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/enable-global-auth: 'false' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'identity-server.dev01.devland.is' + paths: + - '/backend' +namespace: 'identity-server-admin' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '400m' + memory: '768Mi' + requests: + cpu: '100m' + memory: '512Mi' +secrets: + CLIENT_SECRET_ENCRYPTION_KEY: '/k8s/services-auth/admin-api/CLIENT_SECRET_ENCRYPTION_KEY' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/servicesauth/DB_PASSWORD' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-auth/IDENTITY_SERVER_CLIENT_SECRET' + NATIONAL_REGISTRY_IDS_CLIENT_SECRET: '/k8s/xroad/client/NATIONAL-REGISTRY/IDENTITYSERVER_SECRET' + SYSLUMENN_PASSWORD: '/k8s/services-auth/SYSLUMENN_PASSWORD' + SYSLUMENN_USERNAME: '/k8s/services-auth/SYSLUMENN_USERNAME' + ZENDESK_CONTACT_FORM_EMAIL: '/k8s/api/ZENDESK_CONTACT_FORM_EMAIL' + ZENDESK_CONTACT_FORM_TOKEN: '/k8s/api/ZENDESK_CONTACT_FORM_TOKEN' + ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE: '/k8s/services-auth/ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/services-auth-admin-api/values.prod.yaml b/charts/services/services-auth-admin-api/values.prod.yaml index 1f70037042f2..f392a1400099 100644 --- a/charts/services/services-auth-admin-api/values.prod.yaml +++ b/charts/services/services-auth-admin-api/values.prod.yaml @@ -5,96 +5,106 @@ # ##################################################################### -service: - name: 'services-auth-admin-api' - enabled: true +global: env: - COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.dnugi2.euw1.cache.amazonaws.com:6379"]' - COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS/GOV/5402696029/Skatturinn/ft-v1' - DB_HOST: 'postgres-ids.internal' - DB_NAME: 'servicesauth' - DB_REPLICAS_HOST: 'postgres-ids.internal' - DB_USER: 'servicesauth' - IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/auth-api' - IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' - IDENTITY_SERVER_ISSUER_URL_LIST: '["https://innskra.island.is"]' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=691 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - SYSLUMENN_HOST: 'https://api.syslumenn.is/api' - SYSLUMENN_TIMEOUT: '3000' - XROAD_BASE_PATH: 'http://securityserver.island.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.island.is/r1/IS' - XROAD_CLIENT_ID: 'IS/GOV/5501692829/island-is-client' - XROAD_NATIONAL_REGISTRY_ACTOR_TOKEN: 'true' - XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.dnugi2.euw1.cache.amazonaws.com:6379"]' - XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS/GOV/6503760649/SKRA-Protected/Einstaklingar-v1' - XROAD_RSK_PROCURING_ACTOR_TOKEN: 'true' - XROAD_RSK_PROCURING_PATH: 'IS/GOV/5402696029/Skatturinn/relationships-v1' - XROAD_RSK_PROCURING_REDIS_NODES: '["clustercfg.general-redis-cluster-group.dnugi2.euw1.cache.amazonaws.com:6379"]' - XROAD_TLS_BASE_PATH: 'https://securityserver.island.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.island.is/r1/IS' - ZENDESK_CONTACT_FORM_SUBDOMAIN: 'digitaliceland' - grantNamespaces: - - 'nginx-ingress-external' - - 'nginx-ingress-internal' - - 'islandis' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/backend/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/backend/health/check' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-auth-admin-api' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/enable-global-auth: 'false' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'innskra.island.is' - paths: - - '/backend' - namespace: 'identity-server-admin' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '400m' - memory: '768Mi' - requests: - cpu: '100m' - memory: '512Mi' - secrets: - CLIENT_SECRET_ENCRYPTION_KEY: '/k8s/services-auth/admin-api/CLIENT_SECRET_ENCRYPTION_KEY' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DB_PASS: '/k8s/servicesauth/DB_PASSWORD' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-auth/IDENTITY_SERVER_CLIENT_SECRET' - NATIONAL_REGISTRY_IDS_CLIENT_SECRET: '/k8s/xroad/client/NATIONAL-REGISTRY/IDENTITYSERVER_SECRET' - SYSLUMENN_PASSWORD: '/k8s/services-auth/SYSLUMENN_PASSWORD' - SYSLUMENN_USERNAME: '/k8s/services-auth/SYSLUMENN_USERNAME' - ZENDESK_CONTACT_FORM_EMAIL: '/k8s/api/ZENDESK_CONTACT_FORM_EMAIL' - ZENDESK_CONTACT_FORM_TOKEN: '/k8s/api/ZENDESK_CONTACT_FORM_TOKEN' - ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE: '/k8s/services-auth/ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/identity-server/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'services-auth-admin-api' +enabled: true +env: + COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.dnugi2.euw1.cache.amazonaws.com:6379"]' + COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS/GOV/5402696029/Skatturinn/ft-v1' + DB_HOST: 'postgres-ids.internal' + DB_NAME: 'servicesauth' + DB_REPLICAS_HOST: 'postgres-ids.internal' + DB_USER: 'servicesauth' + IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/auth-api' + IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' + IDENTITY_SERVER_ISSUER_URL_LIST: '["https://innskra.island.is"]' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=691 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' + SYSLUMENN_HOST: 'https://api.syslumenn.is/api' + SYSLUMENN_TIMEOUT: '3000' + XROAD_BASE_PATH: 'http://securityserver.island.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.island.is/r1/IS' + XROAD_CLIENT_ID: 'IS/GOV/5501692829/island-is-client' + XROAD_NATIONAL_REGISTRY_ACTOR_TOKEN: 'true' + XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.dnugi2.euw1.cache.amazonaws.com:6379"]' + XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS/GOV/6503760649/SKRA-Protected/Einstaklingar-v1' + XROAD_RSK_PROCURING_ACTOR_TOKEN: 'true' + XROAD_RSK_PROCURING_PATH: 'IS/GOV/5402696029/Skatturinn/relationships-v1' + XROAD_RSK_PROCURING_REDIS_NODES: '["clustercfg.general-redis-cluster-group.dnugi2.euw1.cache.amazonaws.com:6379"]' + XROAD_TLS_BASE_PATH: 'https://securityserver.island.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.island.is/r1/IS' + ZENDESK_CONTACT_FORM_SUBDOMAIN: 'digitaliceland' +grantNamespaces: + - 'nginx-ingress-external' + - 'nginx-ingress-internal' + - 'islandis' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/backend/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/backend/health/check' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-auth-admin-api' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/enable-global-auth: 'false' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'innskra.island.is' + paths: + - '/backend' +namespace: 'identity-server-admin' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '400m' + memory: '768Mi' + requests: + cpu: '100m' + memory: '512Mi' +secrets: + CLIENT_SECRET_ENCRYPTION_KEY: '/k8s/services-auth/admin-api/CLIENT_SECRET_ENCRYPTION_KEY' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/servicesauth/DB_PASSWORD' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-auth/IDENTITY_SERVER_CLIENT_SECRET' + NATIONAL_REGISTRY_IDS_CLIENT_SECRET: '/k8s/xroad/client/NATIONAL-REGISTRY/IDENTITYSERVER_SECRET' + SYSLUMENN_PASSWORD: '/k8s/services-auth/SYSLUMENN_PASSWORD' + SYSLUMENN_USERNAME: '/k8s/services-auth/SYSLUMENN_USERNAME' + ZENDESK_CONTACT_FORM_EMAIL: '/k8s/api/ZENDESK_CONTACT_FORM_EMAIL' + ZENDESK_CONTACT_FORM_TOKEN: '/k8s/api/ZENDESK_CONTACT_FORM_TOKEN' + ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE: '/k8s/services-auth/ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/services-auth-admin-api/values.staging.yaml b/charts/services/services-auth-admin-api/values.staging.yaml index 05a56a59bfaa..1ca982a2abb7 100644 --- a/charts/services/services-auth-admin-api/values.staging.yaml +++ b/charts/services/services-auth-admin-api/values.staging.yaml @@ -5,96 +5,106 @@ # ##################################################################### -service: - name: 'services-auth-admin-api' - enabled: true +global: env: - COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' - COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS-TEST/GOV/5402696029/Skatturinn/ft-v1' - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'servicesauth' - DB_REPLICAS_HOST: 'postgres-applications.internal' - DB_USER: 'servicesauth' - IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/auth-api' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' - IDENTITY_SERVER_ISSUER_URL_LIST: '["https://identity-server.staging01.devland.is","https://innskra.island.is"]' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=691 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - SYSLUMENN_HOST: 'https://api.syslumenn.is/staging' - SYSLUMENN_TIMEOUT: '3000' - XROAD_BASE_PATH: 'http://securityserver.staging01.devland.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.staging01.devland.is/r1/IS-TEST' - XROAD_CLIENT_ID: 'IS-TEST/GOV/5501692829/island-is-client' - XROAD_NATIONAL_REGISTRY_ACTOR_TOKEN: 'true' - XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' - XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS-TEST/GOV/6503760649/SKRA-Protected/Einstaklingar-v1' - XROAD_RSK_PROCURING_ACTOR_TOKEN: 'true' - XROAD_RSK_PROCURING_PATH: 'IS-TEST/GOV/5402696029/Skatturinn/relationships-v1' - XROAD_RSK_PROCURING_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' - XROAD_TLS_BASE_PATH: 'https://securityserver.staging01.devland.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.staging01.devland.is/r1/IS-TEST' - ZENDESK_CONTACT_FORM_SUBDOMAIN: 'digitaliceland' - grantNamespaces: - - 'nginx-ingress-external' - - 'nginx-ingress-internal' - - 'islandis' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/backend/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/backend/health/check' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-auth-admin-api' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/enable-global-auth: 'false' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'identity-server.staging01.devland.is' - paths: - - '/backend' - namespace: 'identity-server-admin' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '400m' - memory: '768Mi' - requests: - cpu: '100m' - memory: '512Mi' - secrets: - CLIENT_SECRET_ENCRYPTION_KEY: '/k8s/services-auth/admin-api/CLIENT_SECRET_ENCRYPTION_KEY' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DB_PASS: '/k8s/servicesauth/DB_PASSWORD' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-auth/IDENTITY_SERVER_CLIENT_SECRET' - NATIONAL_REGISTRY_IDS_CLIENT_SECRET: '/k8s/xroad/client/NATIONAL-REGISTRY/IDENTITYSERVER_SECRET' - SYSLUMENN_PASSWORD: '/k8s/services-auth/SYSLUMENN_PASSWORD' - SYSLUMENN_USERNAME: '/k8s/services-auth/SYSLUMENN_USERNAME' - ZENDESK_CONTACT_FORM_EMAIL: '/k8s/api/ZENDESK_CONTACT_FORM_EMAIL' - ZENDESK_CONTACT_FORM_TOKEN: '/k8s/api/ZENDESK_CONTACT_FORM_TOKEN' - ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE: '/k8s/services-auth/ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/identity-server/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'services-auth-admin-api' +enabled: true +env: + COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' + COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS-TEST/GOV/5402696029/Skatturinn/ft-v1' + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'servicesauth' + DB_REPLICAS_HOST: 'postgres-applications.internal' + DB_USER: 'servicesauth' + IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/auth-api' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' + IDENTITY_SERVER_ISSUER_URL_LIST: '["https://identity-server.staging01.devland.is","https://innskra.island.is"]' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=691 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' + SYSLUMENN_HOST: 'https://api.syslumenn.is/staging' + SYSLUMENN_TIMEOUT: '3000' + XROAD_BASE_PATH: 'http://securityserver.staging01.devland.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.staging01.devland.is/r1/IS-TEST' + XROAD_CLIENT_ID: 'IS-TEST/GOV/5501692829/island-is-client' + XROAD_NATIONAL_REGISTRY_ACTOR_TOKEN: 'true' + XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' + XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS-TEST/GOV/6503760649/SKRA-Protected/Einstaklingar-v1' + XROAD_RSK_PROCURING_ACTOR_TOKEN: 'true' + XROAD_RSK_PROCURING_PATH: 'IS-TEST/GOV/5402696029/Skatturinn/relationships-v1' + XROAD_RSK_PROCURING_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' + XROAD_TLS_BASE_PATH: 'https://securityserver.staging01.devland.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.staging01.devland.is/r1/IS-TEST' + ZENDESK_CONTACT_FORM_SUBDOMAIN: 'digitaliceland' +grantNamespaces: + - 'nginx-ingress-external' + - 'nginx-ingress-internal' + - 'islandis' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/backend/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/backend/health/check' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-auth-admin-api' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/enable-global-auth: 'false' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'identity-server.staging01.devland.is' + paths: + - '/backend' +namespace: 'identity-server-admin' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '400m' + memory: '768Mi' + requests: + cpu: '100m' + memory: '512Mi' +secrets: + CLIENT_SECRET_ENCRYPTION_KEY: '/k8s/services-auth/admin-api/CLIENT_SECRET_ENCRYPTION_KEY' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/servicesauth/DB_PASSWORD' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-auth/IDENTITY_SERVER_CLIENT_SECRET' + NATIONAL_REGISTRY_IDS_CLIENT_SECRET: '/k8s/xroad/client/NATIONAL-REGISTRY/IDENTITYSERVER_SECRET' + SYSLUMENN_PASSWORD: '/k8s/services-auth/SYSLUMENN_PASSWORD' + SYSLUMENN_USERNAME: '/k8s/services-auth/SYSLUMENN_USERNAME' + ZENDESK_CONTACT_FORM_EMAIL: '/k8s/api/ZENDESK_CONTACT_FORM_EMAIL' + ZENDESK_CONTACT_FORM_TOKEN: '/k8s/api/ZENDESK_CONTACT_FORM_TOKEN' + ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE: '/k8s/services-auth/ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/services-auth-delegation-api/values.dev.yaml b/charts/services/services-auth-delegation-api/values.dev.yaml index 856a9f66d92e..c11b9182cc45 100644 --- a/charts/services/services-auth-delegation-api/values.dev.yaml +++ b/charts/services/services-auth-delegation-api/values.dev.yaml @@ -5,95 +5,105 @@ # ##################################################################### -service: - name: 'services-auth-delegation-api' - enabled: true +global: env: - COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' - COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS-DEV/GOV/10006/Skatturinn/ft-v1' - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'servicesauth' - DB_REPLICAS_HOST: 'postgres-applications-reader.internal' - DB_USER: 'servicesauth' - IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/auth-api' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - SYSLUMENN_HOST: 'https://api.syslumenn.is/staging' - SYSLUMENN_TIMEOUT: '3000' - USER_NOTIFICATION_API_URL: 'http://web-user-notification.user-notification.svc.cluster.local' - XROAD_BASE_PATH: 'http://securityserver.dev01.devland.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.dev01.devland.is/r1/IS-DEV' - XROAD_CLIENT_ID: 'IS-DEV/GOV/10000/island-is-client' - XROAD_NATIONAL_REGISTRY_ACTOR_TOKEN: 'true' - XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' - XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS-DEV/GOV/10001/SKRA-Protected/Einstaklingar-v1' - XROAD_RSK_PROCURING_ACTOR_TOKEN: 'true' - XROAD_RSK_PROCURING_PATH: 'IS-DEV/GOV/10006/Skatturinn/relationships-v1' - XROAD_RSK_PROCURING_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' - XROAD_TLS_BASE_PATH: 'https://securityserver.dev01.devland.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.dev01.devland.is/r1/IS-DEV' - ZENDESK_CONTACT_FORM_SUBDOMAIN: 'digitaliceland' - grantNamespaces: - - 'nginx-ingress-internal' - - 'islandis' - - 'service-portal' - - 'user-notification-worker' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/health/check' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-auth-delegation-api' - ingress: - internal-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-internal-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'auth-delegation-api.internal.dev01.devland.is' - paths: - - '/' - namespace: 'identity-server-delegation' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '100m' - memory: '256Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DB_PASS: '/k8s/servicesauth/DB_PASSWORD' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-auth/IDENTITY_SERVER_CLIENT_SECRET' - NATIONAL_REGISTRY_IDS_CLIENT_SECRET: '/k8s/xroad/client/NATIONAL-REGISTRY/IDENTITYSERVER_SECRET' - SYSLUMENN_PASSWORD: '/k8s/services-auth/SYSLUMENN_PASSWORD' - SYSLUMENN_USERNAME: '/k8s/services-auth/SYSLUMENN_USERNAME' - ZENDESK_CONTACT_FORM_EMAIL: '/k8s/api/ZENDESK_CONTACT_FORM_EMAIL' - ZENDESK_CONTACT_FORM_TOKEN: '/k8s/api/ZENDESK_CONTACT_FORM_TOKEN' - ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE: '/k8s/services-auth/ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/identity-server/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'services-auth-delegation-api' +enabled: true +env: + COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' + COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS-DEV/GOV/10006/Skatturinn/ft-v1' + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'servicesauth' + DB_REPLICAS_HOST: 'postgres-applications-reader.internal' + DB_USER: 'servicesauth' + IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/auth-api' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' + SYSLUMENN_HOST: 'https://api.syslumenn.is/staging' + SYSLUMENN_TIMEOUT: '3000' + USER_NOTIFICATION_API_URL: 'http://web-user-notification.user-notification.svc.cluster.local' + XROAD_BASE_PATH: 'http://securityserver.dev01.devland.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.dev01.devland.is/r1/IS-DEV' + XROAD_CLIENT_ID: 'IS-DEV/GOV/10000/island-is-client' + XROAD_NATIONAL_REGISTRY_ACTOR_TOKEN: 'true' + XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' + XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS-DEV/GOV/10001/SKRA-Protected/Einstaklingar-v1' + XROAD_RSK_PROCURING_ACTOR_TOKEN: 'true' + XROAD_RSK_PROCURING_PATH: 'IS-DEV/GOV/10006/Skatturinn/relationships-v1' + XROAD_RSK_PROCURING_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' + XROAD_TLS_BASE_PATH: 'https://securityserver.dev01.devland.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.dev01.devland.is/r1/IS-DEV' + ZENDESK_CONTACT_FORM_SUBDOMAIN: 'digitaliceland' +grantNamespaces: + - 'nginx-ingress-internal' + - 'islandis' + - 'service-portal' + - 'user-notification-worker' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/health/check' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-auth-delegation-api' +ingress: + internal-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-internal-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'auth-delegation-api.internal.dev01.devland.is' + paths: + - '/' +namespace: 'identity-server-delegation' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '100m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/servicesauth/DB_PASSWORD' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-auth/IDENTITY_SERVER_CLIENT_SECRET' + NATIONAL_REGISTRY_IDS_CLIENT_SECRET: '/k8s/xroad/client/NATIONAL-REGISTRY/IDENTITYSERVER_SECRET' + SYSLUMENN_PASSWORD: '/k8s/services-auth/SYSLUMENN_PASSWORD' + SYSLUMENN_USERNAME: '/k8s/services-auth/SYSLUMENN_USERNAME' + ZENDESK_CONTACT_FORM_EMAIL: '/k8s/api/ZENDESK_CONTACT_FORM_EMAIL' + ZENDESK_CONTACT_FORM_TOKEN: '/k8s/api/ZENDESK_CONTACT_FORM_TOKEN' + ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE: '/k8s/services-auth/ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/services-auth-delegation-api/values.prod.yaml b/charts/services/services-auth-delegation-api/values.prod.yaml index 5fb3c434bc34..d0dd8d6d9be6 100644 --- a/charts/services/services-auth-delegation-api/values.prod.yaml +++ b/charts/services/services-auth-delegation-api/values.prod.yaml @@ -5,95 +5,105 @@ # ##################################################################### -service: - name: 'services-auth-delegation-api' - enabled: true +global: env: - COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.dnugi2.euw1.cache.amazonaws.com:6379"]' - COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS/GOV/5402696029/Skatturinn/ft-v1' - DB_HOST: 'postgres-ids.internal' - DB_NAME: 'servicesauth' - DB_REPLICAS_HOST: 'postgres-ids.internal' - DB_USER: 'servicesauth' - IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/auth-api' - IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - SYSLUMENN_HOST: 'https://api.syslumenn.is/api' - SYSLUMENN_TIMEOUT: '3000' - USER_NOTIFICATION_API_URL: 'https://user-notification.internal.island.is' - XROAD_BASE_PATH: 'http://securityserver.island.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.island.is/r1/IS' - XROAD_CLIENT_ID: 'IS/GOV/5501692829/island-is-client' - XROAD_NATIONAL_REGISTRY_ACTOR_TOKEN: 'true' - XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.dnugi2.euw1.cache.amazonaws.com:6379"]' - XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS/GOV/6503760649/SKRA-Protected/Einstaklingar-v1' - XROAD_RSK_PROCURING_ACTOR_TOKEN: 'true' - XROAD_RSK_PROCURING_PATH: 'IS/GOV/5402696029/Skatturinn/relationships-v1' - XROAD_RSK_PROCURING_REDIS_NODES: '["clustercfg.general-redis-cluster-group.dnugi2.euw1.cache.amazonaws.com:6379"]' - XROAD_TLS_BASE_PATH: 'https://securityserver.island.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.island.is/r1/IS' - ZENDESK_CONTACT_FORM_SUBDOMAIN: 'digitaliceland' - grantNamespaces: - - 'nginx-ingress-internal' - - 'islandis' - - 'service-portal' - - 'user-notification-worker' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/health/check' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-auth-delegation-api' - ingress: - internal-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-internal-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'auth-delegation-api.internal.innskra.island.is' - paths: - - '/' - namespace: 'identity-server-delegation' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '100m' - memory: '256Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DB_PASS: '/k8s/servicesauth/DB_PASSWORD' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-auth/IDENTITY_SERVER_CLIENT_SECRET' - NATIONAL_REGISTRY_IDS_CLIENT_SECRET: '/k8s/xroad/client/NATIONAL-REGISTRY/IDENTITYSERVER_SECRET' - SYSLUMENN_PASSWORD: '/k8s/services-auth/SYSLUMENN_PASSWORD' - SYSLUMENN_USERNAME: '/k8s/services-auth/SYSLUMENN_USERNAME' - ZENDESK_CONTACT_FORM_EMAIL: '/k8s/api/ZENDESK_CONTACT_FORM_EMAIL' - ZENDESK_CONTACT_FORM_TOKEN: '/k8s/api/ZENDESK_CONTACT_FORM_TOKEN' - ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE: '/k8s/services-auth/ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/identity-server/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'services-auth-delegation-api' +enabled: true +env: + COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.dnugi2.euw1.cache.amazonaws.com:6379"]' + COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS/GOV/5402696029/Skatturinn/ft-v1' + DB_HOST: 'postgres-ids.internal' + DB_NAME: 'servicesauth' + DB_REPLICAS_HOST: 'postgres-ids.internal' + DB_USER: 'servicesauth' + IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/auth-api' + IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' + SYSLUMENN_HOST: 'https://api.syslumenn.is/api' + SYSLUMENN_TIMEOUT: '3000' + USER_NOTIFICATION_API_URL: 'https://user-notification.internal.island.is' + XROAD_BASE_PATH: 'http://securityserver.island.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.island.is/r1/IS' + XROAD_CLIENT_ID: 'IS/GOV/5501692829/island-is-client' + XROAD_NATIONAL_REGISTRY_ACTOR_TOKEN: 'true' + XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.dnugi2.euw1.cache.amazonaws.com:6379"]' + XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS/GOV/6503760649/SKRA-Protected/Einstaklingar-v1' + XROAD_RSK_PROCURING_ACTOR_TOKEN: 'true' + XROAD_RSK_PROCURING_PATH: 'IS/GOV/5402696029/Skatturinn/relationships-v1' + XROAD_RSK_PROCURING_REDIS_NODES: '["clustercfg.general-redis-cluster-group.dnugi2.euw1.cache.amazonaws.com:6379"]' + XROAD_TLS_BASE_PATH: 'https://securityserver.island.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.island.is/r1/IS' + ZENDESK_CONTACT_FORM_SUBDOMAIN: 'digitaliceland' +grantNamespaces: + - 'nginx-ingress-internal' + - 'islandis' + - 'service-portal' + - 'user-notification-worker' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/health/check' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-auth-delegation-api' +ingress: + internal-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-internal-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'auth-delegation-api.internal.innskra.island.is' + paths: + - '/' +namespace: 'identity-server-delegation' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '100m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/servicesauth/DB_PASSWORD' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-auth/IDENTITY_SERVER_CLIENT_SECRET' + NATIONAL_REGISTRY_IDS_CLIENT_SECRET: '/k8s/xroad/client/NATIONAL-REGISTRY/IDENTITYSERVER_SECRET' + SYSLUMENN_PASSWORD: '/k8s/services-auth/SYSLUMENN_PASSWORD' + SYSLUMENN_USERNAME: '/k8s/services-auth/SYSLUMENN_USERNAME' + ZENDESK_CONTACT_FORM_EMAIL: '/k8s/api/ZENDESK_CONTACT_FORM_EMAIL' + ZENDESK_CONTACT_FORM_TOKEN: '/k8s/api/ZENDESK_CONTACT_FORM_TOKEN' + ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE: '/k8s/services-auth/ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/services-auth-delegation-api/values.staging.yaml b/charts/services/services-auth-delegation-api/values.staging.yaml index b94d03c10b8c..1acaebe52182 100644 --- a/charts/services/services-auth-delegation-api/values.staging.yaml +++ b/charts/services/services-auth-delegation-api/values.staging.yaml @@ -5,95 +5,105 @@ # ##################################################################### -service: - name: 'services-auth-delegation-api' - enabled: true +global: env: - COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' - COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS-TEST/GOV/5402696029/Skatturinn/ft-v1' - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'servicesauth' - DB_REPLICAS_HOST: 'postgres-applications.internal' - DB_USER: 'servicesauth' - IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/auth-api' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - SYSLUMENN_HOST: 'https://api.syslumenn.is/staging' - SYSLUMENN_TIMEOUT: '3000' - USER_NOTIFICATION_API_URL: 'http://web-user-notification.user-notification.svc.cluster.local' - XROAD_BASE_PATH: 'http://securityserver.staging01.devland.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.staging01.devland.is/r1/IS-TEST' - XROAD_CLIENT_ID: 'IS-TEST/GOV/5501692829/island-is-client' - XROAD_NATIONAL_REGISTRY_ACTOR_TOKEN: 'true' - XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' - XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS-TEST/GOV/6503760649/SKRA-Protected/Einstaklingar-v1' - XROAD_RSK_PROCURING_ACTOR_TOKEN: 'true' - XROAD_RSK_PROCURING_PATH: 'IS-TEST/GOV/5402696029/Skatturinn/relationships-v1' - XROAD_RSK_PROCURING_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' - XROAD_TLS_BASE_PATH: 'https://securityserver.staging01.devland.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.staging01.devland.is/r1/IS-TEST' - ZENDESK_CONTACT_FORM_SUBDOMAIN: 'digitaliceland' - grantNamespaces: - - 'nginx-ingress-internal' - - 'islandis' - - 'service-portal' - - 'user-notification-worker' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/health/check' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-auth-delegation-api' - ingress: - internal-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-internal-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'auth-delegation-api.internal.staging01.devland.is' - paths: - - '/' - namespace: 'identity-server-delegation' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '100m' - memory: '256Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DB_PASS: '/k8s/servicesauth/DB_PASSWORD' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-auth/IDENTITY_SERVER_CLIENT_SECRET' - NATIONAL_REGISTRY_IDS_CLIENT_SECRET: '/k8s/xroad/client/NATIONAL-REGISTRY/IDENTITYSERVER_SECRET' - SYSLUMENN_PASSWORD: '/k8s/services-auth/SYSLUMENN_PASSWORD' - SYSLUMENN_USERNAME: '/k8s/services-auth/SYSLUMENN_USERNAME' - ZENDESK_CONTACT_FORM_EMAIL: '/k8s/api/ZENDESK_CONTACT_FORM_EMAIL' - ZENDESK_CONTACT_FORM_TOKEN: '/k8s/api/ZENDESK_CONTACT_FORM_TOKEN' - ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE: '/k8s/services-auth/ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/identity-server/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'services-auth-delegation-api' +enabled: true +env: + COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' + COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS-TEST/GOV/5402696029/Skatturinn/ft-v1' + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'servicesauth' + DB_REPLICAS_HOST: 'postgres-applications.internal' + DB_USER: 'servicesauth' + IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/auth-api' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' + SYSLUMENN_HOST: 'https://api.syslumenn.is/staging' + SYSLUMENN_TIMEOUT: '3000' + USER_NOTIFICATION_API_URL: 'http://web-user-notification.user-notification.svc.cluster.local' + XROAD_BASE_PATH: 'http://securityserver.staging01.devland.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.staging01.devland.is/r1/IS-TEST' + XROAD_CLIENT_ID: 'IS-TEST/GOV/5501692829/island-is-client' + XROAD_NATIONAL_REGISTRY_ACTOR_TOKEN: 'true' + XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' + XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS-TEST/GOV/6503760649/SKRA-Protected/Einstaklingar-v1' + XROAD_RSK_PROCURING_ACTOR_TOKEN: 'true' + XROAD_RSK_PROCURING_PATH: 'IS-TEST/GOV/5402696029/Skatturinn/relationships-v1' + XROAD_RSK_PROCURING_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' + XROAD_TLS_BASE_PATH: 'https://securityserver.staging01.devland.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.staging01.devland.is/r1/IS-TEST' + ZENDESK_CONTACT_FORM_SUBDOMAIN: 'digitaliceland' +grantNamespaces: + - 'nginx-ingress-internal' + - 'islandis' + - 'service-portal' + - 'user-notification-worker' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/health/check' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-auth-delegation-api' +ingress: + internal-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-internal-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'auth-delegation-api.internal.staging01.devland.is' + paths: + - '/' +namespace: 'identity-server-delegation' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '100m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/servicesauth/DB_PASSWORD' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-auth/IDENTITY_SERVER_CLIENT_SECRET' + NATIONAL_REGISTRY_IDS_CLIENT_SECRET: '/k8s/xroad/client/NATIONAL-REGISTRY/IDENTITYSERVER_SECRET' + SYSLUMENN_PASSWORD: '/k8s/services-auth/SYSLUMENN_PASSWORD' + SYSLUMENN_USERNAME: '/k8s/services-auth/SYSLUMENN_USERNAME' + ZENDESK_CONTACT_FORM_EMAIL: '/k8s/api/ZENDESK_CONTACT_FORM_EMAIL' + ZENDESK_CONTACT_FORM_TOKEN: '/k8s/api/ZENDESK_CONTACT_FORM_TOKEN' + ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE: '/k8s/services-auth/ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/services-auth-ids-api-cleanup/values.dev.yaml b/charts/services/services-auth-ids-api-cleanup/values.dev.yaml index 5687fa002d54..5a4276deb188 100644 --- a/charts/services/services-auth-ids-api-cleanup/values.dev.yaml +++ b/charts/services/services-auth-ids-api-cleanup/values.dev.yaml @@ -5,66 +5,76 @@ # ##################################################################### -service: - name: 'services-auth-ids-api-cleanup' - args: - - 'main.js' - - '--job=cleanup' - command: - - 'node' - enabled: true +global: env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'servicesauth' - DB_REPLICAS_HOST: 'postgres-applications-reader.internal' - DB_USER: 'servicesauth' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=921 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - grantNamespaces: - - 'nginx-ingress-external' - - 'user-notification' - - 'portals-admin' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-auth-ids-api' - namespace: 'identity-server' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '400m' - memory: '1024Mi' - requests: - cpu: '100m' - memory: '256Mi' - schedule: '0 3 * * *' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DB_PASS: '/k8s/servicesauth/DB_PASSWORD' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/identity-server/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'services-auth-ids-api-cleanup' +args: + - 'main.js' + - '--job=cleanup' +command: + - 'node' +enabled: true +env: + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'servicesauth' + DB_REPLICAS_HOST: 'postgres-applications-reader.internal' + DB_USER: 'servicesauth' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=921 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: + - 'nginx-ingress-external' + - 'user-notification' + - 'portals-admin' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-auth-ids-api' +namespace: 'identity-server' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '400m' + memory: '1024Mi' + requests: + cpu: '100m' + memory: '256Mi' +schedule: '0 3 * * *' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/servicesauth/DB_PASSWORD' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/services-auth-ids-api-cleanup/values.prod.yaml b/charts/services/services-auth-ids-api-cleanup/values.prod.yaml index 4da0ca63d794..88701a214d23 100644 --- a/charts/services/services-auth-ids-api-cleanup/values.prod.yaml +++ b/charts/services/services-auth-ids-api-cleanup/values.prod.yaml @@ -5,66 +5,76 @@ # ##################################################################### -service: - name: 'services-auth-ids-api-cleanup' - args: - - 'main.js' - - '--job=cleanup' - command: - - 'node' - enabled: true +global: env: - DB_HOST: 'postgres-ids.internal' - DB_NAME: 'servicesauth' - DB_REPLICAS_HOST: 'postgres-ids.internal' - DB_USER: 'servicesauth' - IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=921 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - grantNamespaces: - - 'nginx-ingress-external' - - 'user-notification' - - 'portals-admin' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 3 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-auth-ids-api' - namespace: 'identity-server' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 3 - max: 10 - min: 3 - resources: - limits: - cpu: '400m' - memory: '1024Mi' - requests: - cpu: '100m' - memory: '256Mi' - schedule: '0 3 * * *' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DB_PASS: '/k8s/servicesauth/DB_PASSWORD' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/identity-server/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'services-auth-ids-api-cleanup' +args: + - 'main.js' + - '--job=cleanup' +command: + - 'node' +enabled: true +env: + DB_HOST: 'postgres-ids.internal' + DB_NAME: 'servicesauth' + DB_REPLICAS_HOST: 'postgres-ids.internal' + DB_USER: 'servicesauth' + IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=921 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' +grantNamespaces: + - 'nginx-ingress-external' + - 'user-notification' + - 'portals-admin' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 3 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-auth-ids-api' +namespace: 'identity-server' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 3 + max: 10 + min: 3 +resources: + limits: + cpu: '400m' + memory: '1024Mi' + requests: + cpu: '100m' + memory: '256Mi' +schedule: '0 3 * * *' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/servicesauth/DB_PASSWORD' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/services-auth-ids-api-cleanup/values.staging.yaml b/charts/services/services-auth-ids-api-cleanup/values.staging.yaml index 970bb0f99cd9..62add51ed018 100644 --- a/charts/services/services-auth-ids-api-cleanup/values.staging.yaml +++ b/charts/services/services-auth-ids-api-cleanup/values.staging.yaml @@ -5,66 +5,76 @@ # ##################################################################### -service: - name: 'services-auth-ids-api-cleanup' - args: - - 'main.js' - - '--job=cleanup' - command: - - 'node' - enabled: true +global: env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'servicesauth' - DB_REPLICAS_HOST: 'postgres-applications.internal' - DB_USER: 'servicesauth' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=921 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - grantNamespaces: - - 'nginx-ingress-external' - - 'user-notification' - - 'portals-admin' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-auth-ids-api' - namespace: 'identity-server' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '400m' - memory: '1024Mi' - requests: - cpu: '100m' - memory: '256Mi' - schedule: '0 3 * * *' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DB_PASS: '/k8s/servicesauth/DB_PASSWORD' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/identity-server/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'services-auth-ids-api-cleanup' +args: + - 'main.js' + - '--job=cleanup' +command: + - 'node' +enabled: true +env: + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'servicesauth' + DB_REPLICAS_HOST: 'postgres-applications.internal' + DB_USER: 'servicesauth' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=921 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: + - 'nginx-ingress-external' + - 'user-notification' + - 'portals-admin' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-auth-ids-api' +namespace: 'identity-server' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '400m' + memory: '1024Mi' + requests: + cpu: '100m' + memory: '256Mi' +schedule: '0 3 * * *' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/servicesauth/DB_PASSWORD' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/services-auth-ids-api/values.dev.yaml b/charts/services/services-auth-ids-api/values.dev.yaml index ad6739bb93ef..3f01536db5bf 100644 --- a/charts/services/services-auth-ids-api/values.dev.yaml +++ b/charts/services/services-auth-ids-api/values.dev.yaml @@ -5,138 +5,148 @@ # ##################################################################### -service: - name: 'services-auth-ids-api' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/identity-server/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'services-auth-ids-api' +enabled: true +env: + COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' + COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS-DEV/GOV/10006/Skatturinn/ft-v1' + DB_EXTENSIONS: 'uuid-ossp' + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'servicesauth' + DB_REPLICAS_HOST: 'postgres-applications-reader.internal' + DB_USER: 'servicesauth' + IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/auth-api' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' + LOG_LEVEL: 'info' + NATIONAL_REGISTRY_B2C_CLIENT_ID: '6cf94113-d326-4e4d-b97c-1fea12d2f5e1' + NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentitydev.b2clogin.com/skraidentitydev.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' + NATIONAL_REGISTRY_B2C_PATH: 'IS-DEV/GOV/10001/SKRA-Cloud-Protected/Midlun-v1' + NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentitydev.onmicrosoft.com/midlun/.default' + NODE_OPTIONS: '--max-old-space-size=691 -r dd-trace/init' + NOVA_ACCEPT_UNAUTHORIZED: 'true' + PASSKEY_CORE_ALLOWED_ORIGINS: '["https://island.is","android:apk-key-hash:JgPeo_F6KYk-ngRa26tO2SsAtMiTBQCc7WtSgN-jRX0","android:apk-key-hash:EsLTUu5kaY7XPmMl2f7nbq4amu-PNzdYu3FecNf90wU"]' + PASSKEY_CORE_CHALLENGE_TTL_MS: '120000' + PASSKEY_CORE_MAX_AGE_DAYS: '365' + PASSKEY_CORE_RP_ID: 'island.is' + PASSKEY_CORE_RP_NAME: 'Island.is' + PUBLIC_URL: 'https://identity-server.dev01.devland.is/api' + REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' + SERVERSIDE_FEATURES_ON: '' + SYSLUMENN_HOST: 'https://api.syslumenn.is/staging' + SYSLUMENN_TIMEOUT: '3000' + USER_PROFILE_CLIENT_SCOPE: '["@island.is/user-profile:read"]' + USER_PROFILE_CLIENT_URL: 'http://web-service-portal-api.service-portal.svc.cluster.local' + XROAD_BASE_PATH: 'http://securityserver.dev01.devland.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.dev01.devland.is/r1/IS-DEV' + XROAD_CLIENT_ID: 'IS-DEV/GOV/10000/island-is-client' + XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' + XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS-DEV/GOV/10001/SKRA-Protected/Einstaklingar-v1' + XROAD_RSK_PROCURING_PATH: 'IS-DEV/GOV/10006/Skatturinn/relationships-v1' + XROAD_RSK_PROCURING_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' + XROAD_TJODSKRA_API_PATH: '/SKRA-Protected/Einstaklingar-v1' + XROAD_TJODSKRA_MEMBER_CODE: '10001' + XROAD_TLS_BASE_PATH: 'https://securityserver.dev01.devland.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.dev01.devland.is/r1/IS-DEV' + ZENDESK_CONTACT_FORM_SUBDOMAIN: 'digitaliceland' +grantNamespaces: + - 'nginx-ingress-external' + - 'user-notification' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/health/check' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 15 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-auth-ids-api' +initContainer: + containers: + - args: + - 'sequelize-cli' + - 'db:migrate' + command: + - 'npx' + name: 'migrations' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' + - args: + - 'sequelize-cli' + - 'db:seed:all' + command: + - 'npx' + name: 'seed' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' env: - COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' - COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS-DEV/GOV/10006/Skatturinn/ft-v1' DB_EXTENSIONS: 'uuid-ossp' DB_HOST: 'postgres-applications.internal' DB_NAME: 'servicesauth' DB_REPLICAS_HOST: 'postgres-applications-reader.internal' DB_USER: 'servicesauth' - IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/auth-api' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' - LOG_LEVEL: 'info' - NATIONAL_REGISTRY_B2C_CLIENT_ID: '6cf94113-d326-4e4d-b97c-1fea12d2f5e1' - NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentitydev.b2clogin.com/skraidentitydev.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' - NATIONAL_REGISTRY_B2C_PATH: 'IS-DEV/GOV/10001/SKRA-Cloud-Protected/Midlun-v1' - NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentitydev.onmicrosoft.com/midlun/.default' - NODE_OPTIONS: '--max-old-space-size=691 -r dd-trace/init' - NOVA_ACCEPT_UNAUTHORIZED: 'true' - PASSKEY_CORE_ALLOWED_ORIGINS: '["https://island.is","android:apk-key-hash:JgPeo_F6KYk-ngRa26tO2SsAtMiTBQCc7WtSgN-jRX0","android:apk-key-hash:EsLTUu5kaY7XPmMl2f7nbq4amu-PNzdYu3FecNf90wU"]' - PASSKEY_CORE_CHALLENGE_TTL_MS: '120000' - PASSKEY_CORE_MAX_AGE_DAYS: '365' - PASSKEY_CORE_RP_ID: 'island.is' - PASSKEY_CORE_RP_NAME: 'Island.is' - PUBLIC_URL: 'https://identity-server.dev01.devland.is/api' - REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' SERVERSIDE_FEATURES_ON: '' - SYSLUMENN_HOST: 'https://api.syslumenn.is/staging' - SYSLUMENN_TIMEOUT: '3000' - USER_PROFILE_CLIENT_SCOPE: '["@island.is/user-profile:read"]' - USER_PROFILE_CLIENT_URL: 'http://web-service-portal-api.service-portal.svc.cluster.local' - XROAD_BASE_PATH: 'http://securityserver.dev01.devland.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.dev01.devland.is/r1/IS-DEV' - XROAD_CLIENT_ID: 'IS-DEV/GOV/10000/island-is-client' - XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' - XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS-DEV/GOV/10001/SKRA-Protected/Einstaklingar-v1' - XROAD_RSK_PROCURING_PATH: 'IS-DEV/GOV/10006/Skatturinn/relationships-v1' - XROAD_RSK_PROCURING_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' - XROAD_TJODSKRA_API_PATH: '/SKRA-Protected/Einstaklingar-v1' - XROAD_TJODSKRA_MEMBER_CODE: '10001' - XROAD_TLS_BASE_PATH: 'https://securityserver.dev01.devland.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.dev01.devland.is/r1/IS-DEV' - ZENDESK_CONTACT_FORM_SUBDOMAIN: 'digitaliceland' - grantNamespaces: - - 'nginx-ingress-external' - - 'user-notification' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/health/check' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 15 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-auth-ids-api' - initContainer: - containers: - - args: - - 'sequelize-cli' - - 'db:migrate' - command: - - 'npx' - name: 'migrations' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - - args: - - 'sequelize-cli' - - 'db:seed:all' - command: - - 'npx' - name: 'seed' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - env: - DB_EXTENSIONS: 'uuid-ossp' - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'servicesauth' - DB_REPLICAS_HOST: 'postgres-applications-reader.internal' - DB_USER: 'servicesauth' - SERVERSIDE_FEATURES_ON: '' - secrets: - DB_PASS: '/k8s/servicesauth/DB_PASSWORD' - namespace: 'identity-server' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 2 - max: 15 - min: 2 - resources: - limits: - cpu: '800m' - memory: '768Mi' - requests: - cpu: '400m' - memory: '512Mi' secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' DB_PASS: '/k8s/servicesauth/DB_PASSWORD' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-auth/IDENTITY_SERVER_CLIENT_SECRET' - NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/services-auth/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' - NOVA_PASSWORD: '/k8s/services-auth/NOVA_PASSWORD' - NOVA_URL: '/k8s/services-auth/NOVA_URL' - NOVA_USERNAME: '/k8s/services-auth/NOVA_USERNAME' - SYSLUMENN_PASSWORD: '/k8s/services-auth/SYSLUMENN_PASSWORD' - SYSLUMENN_USERNAME: '/k8s/services-auth/SYSLUMENN_USERNAME' - ZENDESK_CONTACT_FORM_EMAIL: '/k8s/api/ZENDESK_CONTACT_FORM_EMAIL' - ZENDESK_CONTACT_FORM_TOKEN: '/k8s/api/ZENDESK_CONTACT_FORM_TOKEN' - ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE: '/k8s/services-auth/ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE' - securityContext: - allowPrivilegeEscalation: false - privileged: false +namespace: 'identity-server' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 2 + max: 15 + min: 2 +resources: + limits: + cpu: '800m' + memory: '768Mi' + requests: + cpu: '400m' + memory: '512Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/servicesauth/DB_PASSWORD' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-auth/IDENTITY_SERVER_CLIENT_SECRET' + NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/services-auth/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' + NOVA_PASSWORD: '/k8s/services-auth/NOVA_PASSWORD' + NOVA_URL: '/k8s/services-auth/NOVA_URL' + NOVA_USERNAME: '/k8s/services-auth/NOVA_USERNAME' + SYSLUMENN_PASSWORD: '/k8s/services-auth/SYSLUMENN_PASSWORD' + SYSLUMENN_USERNAME: '/k8s/services-auth/SYSLUMENN_USERNAME' + ZENDESK_CONTACT_FORM_EMAIL: '/k8s/api/ZENDESK_CONTACT_FORM_EMAIL' + ZENDESK_CONTACT_FORM_TOKEN: '/k8s/api/ZENDESK_CONTACT_FORM_TOKEN' + ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE: '/k8s/services-auth/ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/services-auth-ids-api/values.prod.yaml b/charts/services/services-auth-ids-api/values.prod.yaml index e229bced66f1..8452923e6595 100644 --- a/charts/services/services-auth-ids-api/values.prod.yaml +++ b/charts/services/services-auth-ids-api/values.prod.yaml @@ -5,138 +5,148 @@ # ##################################################################### -service: - name: 'services-auth-ids-api' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/identity-server/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'services-auth-ids-api' +enabled: true +env: + COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.dnugi2.euw1.cache.amazonaws.com:6379"]' + COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS/GOV/5402696029/Skatturinn/ft-v1' + DB_EXTENSIONS: 'uuid-ossp' + DB_HOST: 'postgres-ids.internal' + DB_NAME: 'servicesauth' + DB_REPLICAS_HOST: 'postgres-ids.internal' + DB_USER: 'servicesauth' + IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/auth-api' + IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' + LOG_LEVEL: 'info' + NATIONAL_REGISTRY_B2C_CLIENT_ID: '8271bbc2-d8de-480f-8540-ea43fc40b7ae' + NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentity.b2clogin.com/skraidentity.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' + NATIONAL_REGISTRY_B2C_PATH: 'IS/GOV/6503760649/SKRA-Cloud-Protected/Midlun-v1' + NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentity.onmicrosoft.com/midlun/.default' + NODE_OPTIONS: '--max-old-space-size=691 -r dd-trace/init' + NOVA_ACCEPT_UNAUTHORIZED: 'false' + PASSKEY_CORE_ALLOWED_ORIGINS: '["https://island.is","android:apk-key-hash:JgPeo_F6KYk-ngRa26tO2SsAtMiTBQCc7WtSgN-jRX0","android:apk-key-hash:EsLTUu5kaY7XPmMl2f7nbq4amu-PNzdYu3FecNf90wU"]' + PASSKEY_CORE_CHALLENGE_TTL_MS: '120000' + PASSKEY_CORE_MAX_AGE_DAYS: '365' + PASSKEY_CORE_RP_ID: 'island.is' + PASSKEY_CORE_RP_NAME: 'Island.is' + PUBLIC_URL: 'https://innskra.island.is/api' + REDIS_NODES: '["clustercfg.general-redis-cluster-group.dnugi2.euw1.cache.amazonaws.com:6379"]' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' + SYSLUMENN_HOST: 'https://api.syslumenn.is/api' + SYSLUMENN_TIMEOUT: '3000' + USER_PROFILE_CLIENT_SCOPE: '["@island.is/user-profile:read"]' + USER_PROFILE_CLIENT_URL: 'https://service-portal-api.internal.island.is' + XROAD_BASE_PATH: 'http://securityserver.island.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.island.is/r1/IS' + XROAD_CLIENT_ID: 'IS/GOV/5501692829/island-is-client' + XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.dnugi2.euw1.cache.amazonaws.com:6379"]' + XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS/GOV/6503760649/SKRA-Protected/Einstaklingar-v1' + XROAD_RSK_PROCURING_PATH: 'IS/GOV/5402696029/Skatturinn/relationships-v1' + XROAD_RSK_PROCURING_REDIS_NODES: '["clustercfg.general-redis-cluster-group.dnugi2.euw1.cache.amazonaws.com:6379"]' + XROAD_TJODSKRA_API_PATH: '/SKRA-Protected/Einstaklingar-v1' + XROAD_TJODSKRA_MEMBER_CODE: '6503760649' + XROAD_TLS_BASE_PATH: 'https://securityserver.island.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.island.is/r1/IS' + ZENDESK_CONTACT_FORM_SUBDOMAIN: 'digitaliceland' +grantNamespaces: + - 'nginx-ingress-external' + - 'user-notification' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/health/check' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 15 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-auth-ids-api' +initContainer: + containers: + - args: + - 'sequelize-cli' + - 'db:migrate' + command: + - 'npx' + name: 'migrations' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' + - args: + - 'sequelize-cli' + - 'db:seed:all' + command: + - 'npx' + name: 'seed' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' env: - COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.dnugi2.euw1.cache.amazonaws.com:6379"]' - COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS/GOV/5402696029/Skatturinn/ft-v1' DB_EXTENSIONS: 'uuid-ossp' DB_HOST: 'postgres-ids.internal' DB_NAME: 'servicesauth' DB_REPLICAS_HOST: 'postgres-ids.internal' DB_USER: 'servicesauth' - IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/auth-api' - IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' - LOG_LEVEL: 'info' - NATIONAL_REGISTRY_B2C_CLIENT_ID: '8271bbc2-d8de-480f-8540-ea43fc40b7ae' - NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentity.b2clogin.com/skraidentity.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' - NATIONAL_REGISTRY_B2C_PATH: 'IS/GOV/6503760649/SKRA-Cloud-Protected/Midlun-v1' - NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentity.onmicrosoft.com/midlun/.default' - NODE_OPTIONS: '--max-old-space-size=691 -r dd-trace/init' - NOVA_ACCEPT_UNAUTHORIZED: 'false' - PASSKEY_CORE_ALLOWED_ORIGINS: '["https://island.is","android:apk-key-hash:JgPeo_F6KYk-ngRa26tO2SsAtMiTBQCc7WtSgN-jRX0","android:apk-key-hash:EsLTUu5kaY7XPmMl2f7nbq4amu-PNzdYu3FecNf90wU"]' - PASSKEY_CORE_CHALLENGE_TTL_MS: '120000' - PASSKEY_CORE_MAX_AGE_DAYS: '365' - PASSKEY_CORE_RP_ID: 'island.is' - PASSKEY_CORE_RP_NAME: 'Island.is' - PUBLIC_URL: 'https://innskra.island.is/api' - REDIS_NODES: '["clustercfg.general-redis-cluster-group.dnugi2.euw1.cache.amazonaws.com:6379"]' SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - SYSLUMENN_HOST: 'https://api.syslumenn.is/api' - SYSLUMENN_TIMEOUT: '3000' - USER_PROFILE_CLIENT_SCOPE: '["@island.is/user-profile:read"]' - USER_PROFILE_CLIENT_URL: 'https://service-portal-api.internal.island.is' - XROAD_BASE_PATH: 'http://securityserver.island.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.island.is/r1/IS' - XROAD_CLIENT_ID: 'IS/GOV/5501692829/island-is-client' - XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.dnugi2.euw1.cache.amazonaws.com:6379"]' - XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS/GOV/6503760649/SKRA-Protected/Einstaklingar-v1' - XROAD_RSK_PROCURING_PATH: 'IS/GOV/5402696029/Skatturinn/relationships-v1' - XROAD_RSK_PROCURING_REDIS_NODES: '["clustercfg.general-redis-cluster-group.dnugi2.euw1.cache.amazonaws.com:6379"]' - XROAD_TJODSKRA_API_PATH: '/SKRA-Protected/Einstaklingar-v1' - XROAD_TJODSKRA_MEMBER_CODE: '6503760649' - XROAD_TLS_BASE_PATH: 'https://securityserver.island.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.island.is/r1/IS' - ZENDESK_CONTACT_FORM_SUBDOMAIN: 'digitaliceland' - grantNamespaces: - - 'nginx-ingress-external' - - 'user-notification' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/health/check' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 15 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-auth-ids-api' - initContainer: - containers: - - args: - - 'sequelize-cli' - - 'db:migrate' - command: - - 'npx' - name: 'migrations' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - - args: - - 'sequelize-cli' - - 'db:seed:all' - command: - - 'npx' - name: 'seed' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - env: - DB_EXTENSIONS: 'uuid-ossp' - DB_HOST: 'postgres-ids.internal' - DB_NAME: 'servicesauth' - DB_REPLICAS_HOST: 'postgres-ids.internal' - DB_USER: 'servicesauth' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - secrets: - DB_PASS: '/k8s/servicesauth/DB_PASSWORD' - namespace: 'identity-server' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 2 - max: 15 - min: 2 - resources: - limits: - cpu: '800m' - memory: '768Mi' - requests: - cpu: '400m' - memory: '512Mi' secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' DB_PASS: '/k8s/servicesauth/DB_PASSWORD' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-auth/IDENTITY_SERVER_CLIENT_SECRET' - NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/services-auth/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' - NOVA_PASSWORD: '/k8s/services-auth/NOVA_PASSWORD' - NOVA_URL: '/k8s/services-auth/NOVA_URL' - NOVA_USERNAME: '/k8s/services-auth/NOVA_USERNAME' - SYSLUMENN_PASSWORD: '/k8s/services-auth/SYSLUMENN_PASSWORD' - SYSLUMENN_USERNAME: '/k8s/services-auth/SYSLUMENN_USERNAME' - ZENDESK_CONTACT_FORM_EMAIL: '/k8s/api/ZENDESK_CONTACT_FORM_EMAIL' - ZENDESK_CONTACT_FORM_TOKEN: '/k8s/api/ZENDESK_CONTACT_FORM_TOKEN' - ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE: '/k8s/services-auth/ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE' - securityContext: - allowPrivilegeEscalation: false - privileged: false +namespace: 'identity-server' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 2 + max: 15 + min: 2 +resources: + limits: + cpu: '800m' + memory: '768Mi' + requests: + cpu: '400m' + memory: '512Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/servicesauth/DB_PASSWORD' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-auth/IDENTITY_SERVER_CLIENT_SECRET' + NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/services-auth/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' + NOVA_PASSWORD: '/k8s/services-auth/NOVA_PASSWORD' + NOVA_URL: '/k8s/services-auth/NOVA_URL' + NOVA_USERNAME: '/k8s/services-auth/NOVA_USERNAME' + SYSLUMENN_PASSWORD: '/k8s/services-auth/SYSLUMENN_PASSWORD' + SYSLUMENN_USERNAME: '/k8s/services-auth/SYSLUMENN_USERNAME' + ZENDESK_CONTACT_FORM_EMAIL: '/k8s/api/ZENDESK_CONTACT_FORM_EMAIL' + ZENDESK_CONTACT_FORM_TOKEN: '/k8s/api/ZENDESK_CONTACT_FORM_TOKEN' + ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE: '/k8s/services-auth/ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/services-auth-ids-api/values.staging.yaml b/charts/services/services-auth-ids-api/values.staging.yaml index d0886f109094..0ed369b6862e 100644 --- a/charts/services/services-auth-ids-api/values.staging.yaml +++ b/charts/services/services-auth-ids-api/values.staging.yaml @@ -5,138 +5,148 @@ # ##################################################################### -service: - name: 'services-auth-ids-api' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/identity-server/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'services-auth-ids-api' +enabled: true +env: + COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' + COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS-TEST/GOV/5402696029/Skatturinn/ft-v1' + DB_EXTENSIONS: 'uuid-ossp' + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'servicesauth' + DB_REPLICAS_HOST: 'postgres-applications.internal' + DB_USER: 'servicesauth' + IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/auth-api' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' + LOG_LEVEL: 'info' + NATIONAL_REGISTRY_B2C_CLIENT_ID: '6cf94113-d326-4e4d-b97c-1fea12d2f5e1' + NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentitydev.b2clogin.com/skraidentitydev.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' + NATIONAL_REGISTRY_B2C_PATH: 'IS-TEST/GOV/10001/SKRA-Cloud-Protected/Midlun-v1' + NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentitydev.onmicrosoft.com/midlun/.default' + NODE_OPTIONS: '--max-old-space-size=691 -r dd-trace/init' + NOVA_ACCEPT_UNAUTHORIZED: 'false' + PASSKEY_CORE_ALLOWED_ORIGINS: '["https://island.is","android:apk-key-hash:JgPeo_F6KYk-ngRa26tO2SsAtMiTBQCc7WtSgN-jRX0","android:apk-key-hash:EsLTUu5kaY7XPmMl2f7nbq4amu-PNzdYu3FecNf90wU"]' + PASSKEY_CORE_CHALLENGE_TTL_MS: '120000' + PASSKEY_CORE_MAX_AGE_DAYS: '365' + PASSKEY_CORE_RP_ID: 'island.is' + PASSKEY_CORE_RP_NAME: 'Island.is' + PUBLIC_URL: 'https://identity-server.staging01.devland.is/api' + REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' + SERVERSIDE_FEATURES_ON: '' + SYSLUMENN_HOST: 'https://api.syslumenn.is/staging' + SYSLUMENN_TIMEOUT: '3000' + USER_PROFILE_CLIENT_SCOPE: '["@island.is/user-profile:read"]' + USER_PROFILE_CLIENT_URL: 'http://web-service-portal-api.service-portal.svc.cluster.local' + XROAD_BASE_PATH: 'http://securityserver.staging01.devland.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.staging01.devland.is/r1/IS-TEST' + XROAD_CLIENT_ID: 'IS-TEST/GOV/5501692829/island-is-client' + XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' + XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS-TEST/GOV/6503760649/SKRA-Protected/Einstaklingar-v1' + XROAD_RSK_PROCURING_PATH: 'IS-TEST/GOV/5402696029/Skatturinn/relationships-v1' + XROAD_RSK_PROCURING_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' + XROAD_TJODSKRA_API_PATH: '/SKRA-Protected/Einstaklingar-v1' + XROAD_TJODSKRA_MEMBER_CODE: '6503760649' + XROAD_TLS_BASE_PATH: 'https://securityserver.staging01.devland.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.staging01.devland.is/r1/IS-TEST' + ZENDESK_CONTACT_FORM_SUBDOMAIN: 'digitaliceland' +grantNamespaces: + - 'nginx-ingress-external' + - 'user-notification' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/health/check' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 15 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-auth-ids-api' +initContainer: + containers: + - args: + - 'sequelize-cli' + - 'db:migrate' + command: + - 'npx' + name: 'migrations' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' + - args: + - 'sequelize-cli' + - 'db:seed:all' + command: + - 'npx' + name: 'seed' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' env: - COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' - COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS-TEST/GOV/5402696029/Skatturinn/ft-v1' DB_EXTENSIONS: 'uuid-ossp' DB_HOST: 'postgres-applications.internal' DB_NAME: 'servicesauth' DB_REPLICAS_HOST: 'postgres-applications.internal' DB_USER: 'servicesauth' - IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/auth-api' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' - LOG_LEVEL: 'info' - NATIONAL_REGISTRY_B2C_CLIENT_ID: '6cf94113-d326-4e4d-b97c-1fea12d2f5e1' - NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentitydev.b2clogin.com/skraidentitydev.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' - NATIONAL_REGISTRY_B2C_PATH: 'IS-TEST/GOV/10001/SKRA-Cloud-Protected/Midlun-v1' - NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentitydev.onmicrosoft.com/midlun/.default' - NODE_OPTIONS: '--max-old-space-size=691 -r dd-trace/init' - NOVA_ACCEPT_UNAUTHORIZED: 'false' - PASSKEY_CORE_ALLOWED_ORIGINS: '["https://island.is","android:apk-key-hash:JgPeo_F6KYk-ngRa26tO2SsAtMiTBQCc7WtSgN-jRX0","android:apk-key-hash:EsLTUu5kaY7XPmMl2f7nbq4amu-PNzdYu3FecNf90wU"]' - PASSKEY_CORE_CHALLENGE_TTL_MS: '120000' - PASSKEY_CORE_MAX_AGE_DAYS: '365' - PASSKEY_CORE_RP_ID: 'island.is' - PASSKEY_CORE_RP_NAME: 'Island.is' - PUBLIC_URL: 'https://identity-server.staging01.devland.is/api' - REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' SERVERSIDE_FEATURES_ON: '' - SYSLUMENN_HOST: 'https://api.syslumenn.is/staging' - SYSLUMENN_TIMEOUT: '3000' - USER_PROFILE_CLIENT_SCOPE: '["@island.is/user-profile:read"]' - USER_PROFILE_CLIENT_URL: 'http://web-service-portal-api.service-portal.svc.cluster.local' - XROAD_BASE_PATH: 'http://securityserver.staging01.devland.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.staging01.devland.is/r1/IS-TEST' - XROAD_CLIENT_ID: 'IS-TEST/GOV/5501692829/island-is-client' - XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' - XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS-TEST/GOV/6503760649/SKRA-Protected/Einstaklingar-v1' - XROAD_RSK_PROCURING_PATH: 'IS-TEST/GOV/5402696029/Skatturinn/relationships-v1' - XROAD_RSK_PROCURING_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' - XROAD_TJODSKRA_API_PATH: '/SKRA-Protected/Einstaklingar-v1' - XROAD_TJODSKRA_MEMBER_CODE: '6503760649' - XROAD_TLS_BASE_PATH: 'https://securityserver.staging01.devland.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.staging01.devland.is/r1/IS-TEST' - ZENDESK_CONTACT_FORM_SUBDOMAIN: 'digitaliceland' - grantNamespaces: - - 'nginx-ingress-external' - - 'user-notification' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/health/check' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 15 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-auth-ids-api' - initContainer: - containers: - - args: - - 'sequelize-cli' - - 'db:migrate' - command: - - 'npx' - name: 'migrations' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - - args: - - 'sequelize-cli' - - 'db:seed:all' - command: - - 'npx' - name: 'seed' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - env: - DB_EXTENSIONS: 'uuid-ossp' - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'servicesauth' - DB_REPLICAS_HOST: 'postgres-applications.internal' - DB_USER: 'servicesauth' - SERVERSIDE_FEATURES_ON: '' - secrets: - DB_PASS: '/k8s/servicesauth/DB_PASSWORD' - namespace: 'identity-server' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 2 - max: 15 - min: 2 - resources: - limits: - cpu: '800m' - memory: '768Mi' - requests: - cpu: '400m' - memory: '512Mi' secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' DB_PASS: '/k8s/servicesauth/DB_PASSWORD' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-auth/IDENTITY_SERVER_CLIENT_SECRET' - NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/services-auth/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' - NOVA_PASSWORD: '/k8s/services-auth/NOVA_PASSWORD' - NOVA_URL: '/k8s/services-auth/NOVA_URL' - NOVA_USERNAME: '/k8s/services-auth/NOVA_USERNAME' - SYSLUMENN_PASSWORD: '/k8s/services-auth/SYSLUMENN_PASSWORD' - SYSLUMENN_USERNAME: '/k8s/services-auth/SYSLUMENN_USERNAME' - ZENDESK_CONTACT_FORM_EMAIL: '/k8s/api/ZENDESK_CONTACT_FORM_EMAIL' - ZENDESK_CONTACT_FORM_TOKEN: '/k8s/api/ZENDESK_CONTACT_FORM_TOKEN' - ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE: '/k8s/services-auth/ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE' - securityContext: - allowPrivilegeEscalation: false - privileged: false +namespace: 'identity-server' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 2 + max: 15 + min: 2 +resources: + limits: + cpu: '800m' + memory: '768Mi' + requests: + cpu: '400m' + memory: '512Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/servicesauth/DB_PASSWORD' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-auth/IDENTITY_SERVER_CLIENT_SECRET' + NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/services-auth/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' + NOVA_PASSWORD: '/k8s/services-auth/NOVA_PASSWORD' + NOVA_URL: '/k8s/services-auth/NOVA_URL' + NOVA_USERNAME: '/k8s/services-auth/NOVA_USERNAME' + SYSLUMENN_PASSWORD: '/k8s/services-auth/SYSLUMENN_PASSWORD' + SYSLUMENN_USERNAME: '/k8s/services-auth/SYSLUMENN_USERNAME' + ZENDESK_CONTACT_FORM_EMAIL: '/k8s/api/ZENDESK_CONTACT_FORM_EMAIL' + ZENDESK_CONTACT_FORM_TOKEN: '/k8s/api/ZENDESK_CONTACT_FORM_TOKEN' + ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE: '/k8s/services-auth/ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/services-auth-personal-representative-public/values.dev.yaml b/charts/services/services-auth-personal-representative-public/values.dev.yaml index 6f946614981a..08b020d2b4f0 100644 --- a/charts/services/services-auth-personal-representative-public/values.dev.yaml +++ b/charts/services/services-auth-personal-representative-public/values.dev.yaml @@ -5,66 +5,76 @@ # ##################################################################### -service: - name: 'services-auth-personal-representative-public' - enabled: true +global: env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'servicesauth' - DB_REPLICAS_HOST: 'postgres-applications-reader.internal' - DB_USER: 'servicesauth' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - grantNamespaces: [] - grantNamespacesEnabled: false - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/health/check' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-auth-personal-representative-public' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-internal-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'personal-representative-public-xrd.internal.dev01.devland.is' - paths: - - '/' - namespace: 'personal-representative' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '100m' - memory: '256Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DB_PASS: '/k8s/servicesauth/DB_PASSWORD' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/identity-server/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'services-auth-personal-representative-public' +enabled: true +env: + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'servicesauth' + DB_REPLICAS_HOST: 'postgres-applications-reader.internal' + DB_USER: 'servicesauth' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: [] +grantNamespacesEnabled: false +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/health/check' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-auth-personal-representative-public' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-internal-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'personal-representative-public-xrd.internal.dev01.devland.is' + paths: + - '/' +namespace: 'personal-representative' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '100m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/servicesauth/DB_PASSWORD' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/services-auth-personal-representative-public/values.prod.yaml b/charts/services/services-auth-personal-representative-public/values.prod.yaml index d66fdeb65371..d9370ec8a097 100644 --- a/charts/services/services-auth-personal-representative-public/values.prod.yaml +++ b/charts/services/services-auth-personal-representative-public/values.prod.yaml @@ -5,66 +5,76 @@ # ##################################################################### -service: - name: 'services-auth-personal-representative-public' - enabled: true +global: env: - DB_HOST: 'postgres-ids.internal' - DB_NAME: 'servicesauth' - DB_REPLICAS_HOST: 'postgres-ids.internal' - DB_USER: 'servicesauth' - IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - grantNamespaces: [] - grantNamespacesEnabled: false - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/health/check' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-auth-personal-representative-public' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-internal-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'personal-representative-public-xrd.internal.innskra.island.is' - paths: - - '/' - namespace: 'personal-representative' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '100m' - memory: '256Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DB_PASS: '/k8s/servicesauth/DB_PASSWORD' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/identity-server/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'services-auth-personal-representative-public' +enabled: true +env: + DB_HOST: 'postgres-ids.internal' + DB_NAME: 'servicesauth' + DB_REPLICAS_HOST: 'postgres-ids.internal' + DB_USER: 'servicesauth' + IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' +grantNamespaces: [] +grantNamespacesEnabled: false +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/health/check' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-auth-personal-representative-public' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-internal-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'personal-representative-public-xrd.internal.innskra.island.is' + paths: + - '/' +namespace: 'personal-representative' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '100m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/servicesauth/DB_PASSWORD' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/services-auth-personal-representative-public/values.staging.yaml b/charts/services/services-auth-personal-representative-public/values.staging.yaml index 742b180409ae..5a132366628b 100644 --- a/charts/services/services-auth-personal-representative-public/values.staging.yaml +++ b/charts/services/services-auth-personal-representative-public/values.staging.yaml @@ -5,66 +5,76 @@ # ##################################################################### -service: - name: 'services-auth-personal-representative-public' - enabled: true +global: env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'servicesauth' - DB_REPLICAS_HOST: 'postgres-applications.internal' - DB_USER: 'servicesauth' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - grantNamespaces: [] - grantNamespacesEnabled: false - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/health/check' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-auth-personal-representative-public' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-internal-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'personal-representative-public-xrd.internal.staging01.devland.is' - paths: - - '/' - namespace: 'personal-representative' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '100m' - memory: '256Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DB_PASS: '/k8s/servicesauth/DB_PASSWORD' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/identity-server/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'services-auth-personal-representative-public' +enabled: true +env: + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'servicesauth' + DB_REPLICAS_HOST: 'postgres-applications.internal' + DB_USER: 'servicesauth' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: [] +grantNamespacesEnabled: false +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/health/check' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-auth-personal-representative-public' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-internal-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'personal-representative-public-xrd.internal.staging01.devland.is' + paths: + - '/' +namespace: 'personal-representative' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '100m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/servicesauth/DB_PASSWORD' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/services-auth-personal-representative/values.dev.yaml b/charts/services/services-auth-personal-representative/values.dev.yaml index 6afa98941f22..973eb041bc32 100644 --- a/charts/services/services-auth-personal-representative/values.dev.yaml +++ b/charts/services/services-auth-personal-representative/values.dev.yaml @@ -5,89 +5,99 @@ # ##################################################################### -service: - name: 'services-auth-personal-representative' - enabled: true +global: env: - COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' - COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS-DEV/GOV/10006/Skatturinn/ft-v1' - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'servicesauth' - DB_REPLICAS_HOST: 'postgres-applications-reader.internal' - DB_USER: 'servicesauth' - IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/auth-api' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - SYSLUMENN_HOST: 'https://api.syslumenn.is/staging' - SYSLUMENN_TIMEOUT: '3000' - XROAD_BASE_PATH: 'http://securityserver.dev01.devland.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.dev01.devland.is/r1/IS-DEV' - XROAD_CLIENT_ID: 'IS-DEV/GOV/10000/island-is-client' - XROAD_NATIONAL_REGISTRY_ACTOR_TOKEN: 'true' - XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' - XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS-DEV/GOV/10001/SKRA-Protected/Einstaklingar-v1' - XROAD_RSK_PROCURING_ACTOR_TOKEN: 'true' - XROAD_RSK_PROCURING_PATH: 'IS-DEV/GOV/10006/Skatturinn/relationships-v1' - XROAD_RSK_PROCURING_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' - XROAD_TLS_BASE_PATH: 'https://securityserver.dev01.devland.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.dev01.devland.is/r1/IS-DEV' - ZENDESK_CONTACT_FORM_SUBDOMAIN: 'digitaliceland' - grantNamespaces: [] - grantNamespacesEnabled: false - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/health/check' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-auth-personal-representative' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-internal-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'personal-representative-xrd.internal.dev01.devland.is' - paths: - - '/' - namespace: 'personal-representative' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '100m' - memory: '256Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DB_PASS: '/k8s/servicesauth/DB_PASSWORD' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-auth/IDENTITY_SERVER_CLIENT_SECRET' - SYSLUMENN_PASSWORD: '/k8s/services-auth/SYSLUMENN_PASSWORD' - SYSLUMENN_USERNAME: '/k8s/services-auth/SYSLUMENN_USERNAME' - ZENDESK_CONTACT_FORM_EMAIL: '/k8s/api/ZENDESK_CONTACT_FORM_EMAIL' - ZENDESK_CONTACT_FORM_TOKEN: '/k8s/api/ZENDESK_CONTACT_FORM_TOKEN' - ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE: '/k8s/services-auth/ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/identity-server/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'services-auth-personal-representative' +enabled: true +env: + COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' + COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS-DEV/GOV/10006/Skatturinn/ft-v1' + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'servicesauth' + DB_REPLICAS_HOST: 'postgres-applications-reader.internal' + DB_USER: 'servicesauth' + IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/auth-api' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' + SYSLUMENN_HOST: 'https://api.syslumenn.is/staging' + SYSLUMENN_TIMEOUT: '3000' + XROAD_BASE_PATH: 'http://securityserver.dev01.devland.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.dev01.devland.is/r1/IS-DEV' + XROAD_CLIENT_ID: 'IS-DEV/GOV/10000/island-is-client' + XROAD_NATIONAL_REGISTRY_ACTOR_TOKEN: 'true' + XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' + XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS-DEV/GOV/10001/SKRA-Protected/Einstaklingar-v1' + XROAD_RSK_PROCURING_ACTOR_TOKEN: 'true' + XROAD_RSK_PROCURING_PATH: 'IS-DEV/GOV/10006/Skatturinn/relationships-v1' + XROAD_RSK_PROCURING_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' + XROAD_TLS_BASE_PATH: 'https://securityserver.dev01.devland.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.dev01.devland.is/r1/IS-DEV' + ZENDESK_CONTACT_FORM_SUBDOMAIN: 'digitaliceland' +grantNamespaces: [] +grantNamespacesEnabled: false +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/health/check' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-auth-personal-representative' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-internal-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'personal-representative-xrd.internal.dev01.devland.is' + paths: + - '/' +namespace: 'personal-representative' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '100m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/servicesauth/DB_PASSWORD' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-auth/IDENTITY_SERVER_CLIENT_SECRET' + SYSLUMENN_PASSWORD: '/k8s/services-auth/SYSLUMENN_PASSWORD' + SYSLUMENN_USERNAME: '/k8s/services-auth/SYSLUMENN_USERNAME' + ZENDESK_CONTACT_FORM_EMAIL: '/k8s/api/ZENDESK_CONTACT_FORM_EMAIL' + ZENDESK_CONTACT_FORM_TOKEN: '/k8s/api/ZENDESK_CONTACT_FORM_TOKEN' + ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE: '/k8s/services-auth/ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/services-auth-personal-representative/values.prod.yaml b/charts/services/services-auth-personal-representative/values.prod.yaml index 8b748446fad3..f9f74f8d92c1 100644 --- a/charts/services/services-auth-personal-representative/values.prod.yaml +++ b/charts/services/services-auth-personal-representative/values.prod.yaml @@ -5,89 +5,99 @@ # ##################################################################### -service: - name: 'services-auth-personal-representative' - enabled: true +global: env: - COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.dnugi2.euw1.cache.amazonaws.com:6379"]' - COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS/GOV/5402696029/Skatturinn/ft-v1' - DB_HOST: 'postgres-ids.internal' - DB_NAME: 'servicesauth' - DB_REPLICAS_HOST: 'postgres-ids.internal' - DB_USER: 'servicesauth' - IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/auth-api' - IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - SYSLUMENN_HOST: 'https://api.syslumenn.is/api' - SYSLUMENN_TIMEOUT: '3000' - XROAD_BASE_PATH: 'http://securityserver.island.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.island.is/r1/IS' - XROAD_CLIENT_ID: 'IS/GOV/5501692829/island-is-client' - XROAD_NATIONAL_REGISTRY_ACTOR_TOKEN: 'true' - XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.dnugi2.euw1.cache.amazonaws.com:6379"]' - XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS/GOV/6503760649/SKRA-Protected/Einstaklingar-v1' - XROAD_RSK_PROCURING_ACTOR_TOKEN: 'true' - XROAD_RSK_PROCURING_PATH: 'IS/GOV/5402696029/Skatturinn/relationships-v1' - XROAD_RSK_PROCURING_REDIS_NODES: '["clustercfg.general-redis-cluster-group.dnugi2.euw1.cache.amazonaws.com:6379"]' - XROAD_TLS_BASE_PATH: 'https://securityserver.island.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.island.is/r1/IS' - ZENDESK_CONTACT_FORM_SUBDOMAIN: 'digitaliceland' - grantNamespaces: [] - grantNamespacesEnabled: false - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/health/check' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-auth-personal-representative' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-internal-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'personal-representative-xrd.internal.innskra.island.is' - paths: - - '/' - namespace: 'personal-representative' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '100m' - memory: '256Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DB_PASS: '/k8s/servicesauth/DB_PASSWORD' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-auth/IDENTITY_SERVER_CLIENT_SECRET' - SYSLUMENN_PASSWORD: '/k8s/services-auth/SYSLUMENN_PASSWORD' - SYSLUMENN_USERNAME: '/k8s/services-auth/SYSLUMENN_USERNAME' - ZENDESK_CONTACT_FORM_EMAIL: '/k8s/api/ZENDESK_CONTACT_FORM_EMAIL' - ZENDESK_CONTACT_FORM_TOKEN: '/k8s/api/ZENDESK_CONTACT_FORM_TOKEN' - ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE: '/k8s/services-auth/ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/identity-server/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'services-auth-personal-representative' +enabled: true +env: + COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.dnugi2.euw1.cache.amazonaws.com:6379"]' + COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS/GOV/5402696029/Skatturinn/ft-v1' + DB_HOST: 'postgres-ids.internal' + DB_NAME: 'servicesauth' + DB_REPLICAS_HOST: 'postgres-ids.internal' + DB_USER: 'servicesauth' + IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/auth-api' + IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' + SYSLUMENN_HOST: 'https://api.syslumenn.is/api' + SYSLUMENN_TIMEOUT: '3000' + XROAD_BASE_PATH: 'http://securityserver.island.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.island.is/r1/IS' + XROAD_CLIENT_ID: 'IS/GOV/5501692829/island-is-client' + XROAD_NATIONAL_REGISTRY_ACTOR_TOKEN: 'true' + XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.dnugi2.euw1.cache.amazonaws.com:6379"]' + XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS/GOV/6503760649/SKRA-Protected/Einstaklingar-v1' + XROAD_RSK_PROCURING_ACTOR_TOKEN: 'true' + XROAD_RSK_PROCURING_PATH: 'IS/GOV/5402696029/Skatturinn/relationships-v1' + XROAD_RSK_PROCURING_REDIS_NODES: '["clustercfg.general-redis-cluster-group.dnugi2.euw1.cache.amazonaws.com:6379"]' + XROAD_TLS_BASE_PATH: 'https://securityserver.island.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.island.is/r1/IS' + ZENDESK_CONTACT_FORM_SUBDOMAIN: 'digitaliceland' +grantNamespaces: [] +grantNamespacesEnabled: false +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/health/check' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-auth-personal-representative' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-internal-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'personal-representative-xrd.internal.innskra.island.is' + paths: + - '/' +namespace: 'personal-representative' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '100m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/servicesauth/DB_PASSWORD' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-auth/IDENTITY_SERVER_CLIENT_SECRET' + SYSLUMENN_PASSWORD: '/k8s/services-auth/SYSLUMENN_PASSWORD' + SYSLUMENN_USERNAME: '/k8s/services-auth/SYSLUMENN_USERNAME' + ZENDESK_CONTACT_FORM_EMAIL: '/k8s/api/ZENDESK_CONTACT_FORM_EMAIL' + ZENDESK_CONTACT_FORM_TOKEN: '/k8s/api/ZENDESK_CONTACT_FORM_TOKEN' + ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE: '/k8s/services-auth/ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/services-auth-personal-representative/values.staging.yaml b/charts/services/services-auth-personal-representative/values.staging.yaml index 212e2d315435..21ec99d0547a 100644 --- a/charts/services/services-auth-personal-representative/values.staging.yaml +++ b/charts/services/services-auth-personal-representative/values.staging.yaml @@ -5,89 +5,99 @@ # ##################################################################### -service: - name: 'services-auth-personal-representative' - enabled: true +global: env: - COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' - COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS-TEST/GOV/5402696029/Skatturinn/ft-v1' - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'servicesauth' - DB_REPLICAS_HOST: 'postgres-applications.internal' - DB_USER: 'servicesauth' - IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/auth-api' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - SYSLUMENN_HOST: 'https://api.syslumenn.is/staging' - SYSLUMENN_TIMEOUT: '3000' - XROAD_BASE_PATH: 'http://securityserver.staging01.devland.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.staging01.devland.is/r1/IS-TEST' - XROAD_CLIENT_ID: 'IS-TEST/GOV/5501692829/island-is-client' - XROAD_NATIONAL_REGISTRY_ACTOR_TOKEN: 'true' - XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' - XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS-TEST/GOV/6503760649/SKRA-Protected/Einstaklingar-v1' - XROAD_RSK_PROCURING_ACTOR_TOKEN: 'true' - XROAD_RSK_PROCURING_PATH: 'IS-TEST/GOV/5402696029/Skatturinn/relationships-v1' - XROAD_RSK_PROCURING_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' - XROAD_TLS_BASE_PATH: 'https://securityserver.staging01.devland.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.staging01.devland.is/r1/IS-TEST' - ZENDESK_CONTACT_FORM_SUBDOMAIN: 'digitaliceland' - grantNamespaces: [] - grantNamespacesEnabled: false - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/health/check' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-auth-personal-representative' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-internal-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'personal-representative-xrd.internal.staging01.devland.is' - paths: - - '/' - namespace: 'personal-representative' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '100m' - memory: '256Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DB_PASS: '/k8s/servicesauth/DB_PASSWORD' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-auth/IDENTITY_SERVER_CLIENT_SECRET' - SYSLUMENN_PASSWORD: '/k8s/services-auth/SYSLUMENN_PASSWORD' - SYSLUMENN_USERNAME: '/k8s/services-auth/SYSLUMENN_USERNAME' - ZENDESK_CONTACT_FORM_EMAIL: '/k8s/api/ZENDESK_CONTACT_FORM_EMAIL' - ZENDESK_CONTACT_FORM_TOKEN: '/k8s/api/ZENDESK_CONTACT_FORM_TOKEN' - ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE: '/k8s/services-auth/ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/identity-server/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'services-auth-personal-representative' +enabled: true +env: + COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' + COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS-TEST/GOV/5402696029/Skatturinn/ft-v1' + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'servicesauth' + DB_REPLICAS_HOST: 'postgres-applications.internal' + DB_USER: 'servicesauth' + IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/auth-api' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' + SYSLUMENN_HOST: 'https://api.syslumenn.is/staging' + SYSLUMENN_TIMEOUT: '3000' + XROAD_BASE_PATH: 'http://securityserver.staging01.devland.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.staging01.devland.is/r1/IS-TEST' + XROAD_CLIENT_ID: 'IS-TEST/GOV/5501692829/island-is-client' + XROAD_NATIONAL_REGISTRY_ACTOR_TOKEN: 'true' + XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' + XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS-TEST/GOV/6503760649/SKRA-Protected/Einstaklingar-v1' + XROAD_RSK_PROCURING_ACTOR_TOKEN: 'true' + XROAD_RSK_PROCURING_PATH: 'IS-TEST/GOV/5402696029/Skatturinn/relationships-v1' + XROAD_RSK_PROCURING_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' + XROAD_TLS_BASE_PATH: 'https://securityserver.staging01.devland.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.staging01.devland.is/r1/IS-TEST' + ZENDESK_CONTACT_FORM_SUBDOMAIN: 'digitaliceland' +grantNamespaces: [] +grantNamespacesEnabled: false +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/health/check' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-auth-personal-representative' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-internal-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'personal-representative-xrd.internal.staging01.devland.is' + paths: + - '/' +namespace: 'personal-representative' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '100m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/servicesauth/DB_PASSWORD' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-auth/IDENTITY_SERVER_CLIENT_SECRET' + SYSLUMENN_PASSWORD: '/k8s/services-auth/SYSLUMENN_PASSWORD' + SYSLUMENN_USERNAME: '/k8s/services-auth/SYSLUMENN_USERNAME' + ZENDESK_CONTACT_FORM_EMAIL: '/k8s/api/ZENDESK_CONTACT_FORM_EMAIL' + ZENDESK_CONTACT_FORM_TOKEN: '/k8s/api/ZENDESK_CONTACT_FORM_TOKEN' + ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE: '/k8s/services-auth/ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/services-auth-public-api/values.dev.yaml b/charts/services/services-auth-public-api/values.dev.yaml index f80cba70f189..4398430d7eb2 100644 --- a/charts/services/services-auth-public-api/values.dev.yaml +++ b/charts/services/services-auth-public-api/values.dev.yaml @@ -5,105 +5,115 @@ # ##################################################################### -service: - name: 'services-auth-public-api' - enabled: true +global: env: - COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' - COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS-DEV/GOV/10006/Skatturinn/ft-v1' - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'servicesauth' - DB_REPLICAS_HOST: 'postgres-applications-reader.internal' - DB_USER: 'servicesauth' - IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/auth-api' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=345 -r dd-trace/init' - PASSKEY_CORE_ALLOWED_ORIGINS: '["https://island.is","android:apk-key-hash:JgPeo_F6KYk-ngRa26tO2SsAtMiTBQCc7WtSgN-jRX0","android:apk-key-hash:EsLTUu5kaY7XPmMl2f7nbq4amu-PNzdYu3FecNf90wU"]' - PASSKEY_CORE_CHALLENGE_TTL_MS: '120000' - PASSKEY_CORE_RP_ID: 'island.is' - PASSKEY_CORE_RP_NAME: 'Island.is' - PUBLIC_URL: 'https://identity-server.dev01.devland.is/api' - REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' - SERVERSIDE_FEATURES_ON: '' - SYSLUMENN_HOST: 'https://api.syslumenn.is/staging' - SYSLUMENN_TIMEOUT: '3000' - XROAD_BASE_PATH: 'http://securityserver.dev01.devland.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.dev01.devland.is/r1/IS-DEV' - XROAD_CLIENT_ID: 'IS-DEV/GOV/10000/island-is-client' - XROAD_NATIONAL_REGISTRY_ACTOR_TOKEN: 'true' - XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' - XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS-DEV/GOV/10001/SKRA-Protected/Einstaklingar-v1' - XROAD_RSK_PROCURING_ACTOR_TOKEN: 'true' - XROAD_RSK_PROCURING_PATH: 'IS-DEV/GOV/10006/Skatturinn/relationships-v1' - XROAD_RSK_PROCURING_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' - XROAD_TJODSKRA_API_PATH: '/SKRA-Protected/Einstaklingar-v1' - XROAD_TJODSKRA_MEMBER_CODE: '10001' - XROAD_TLS_BASE_PATH: 'https://securityserver.dev01.devland.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.dev01.devland.is/r1/IS-DEV' - ZENDESK_CONTACT_FORM_SUBDOMAIN: 'digitaliceland' - grantNamespaces: - - 'nginx-ingress-external' - - 'nginx-ingress-internal' - - 'islandis' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/health/check' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-auth-public-api' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/enable-global-auth: 'false' - nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/rewrite-target: '/$2' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'identity-server.dev01.devland.is' - paths: - - '/api(/|$)(.*)' - namespace: 'identity-server-admin' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '400m' - memory: '384Mi' - requests: - cpu: '100m' - memory: '256Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DB_PASS: '/k8s/servicesauth/DB_PASSWORD' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-auth/IDENTITY_SERVER_CLIENT_SECRET' - NATIONAL_REGISTRY_IDS_CLIENT_SECRET: '/k8s/xroad/client/NATIONAL-REGISTRY/IDENTITYSERVER_SECRET' - SYSLUMENN_PASSWORD: '/k8s/services-auth/SYSLUMENN_PASSWORD' - SYSLUMENN_USERNAME: '/k8s/services-auth/SYSLUMENN_USERNAME' - ZENDESK_CONTACT_FORM_EMAIL: '/k8s/api/ZENDESK_CONTACT_FORM_EMAIL' - ZENDESK_CONTACT_FORM_TOKEN: '/k8s/api/ZENDESK_CONTACT_FORM_TOKEN' - ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE: '/k8s/services-auth/ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/identity-server/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'services-auth-public-api' +enabled: true +env: + COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' + COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS-DEV/GOV/10006/Skatturinn/ft-v1' + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'servicesauth' + DB_REPLICAS_HOST: 'postgres-applications-reader.internal' + DB_USER: 'servicesauth' + IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/auth-api' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=345 -r dd-trace/init' + PASSKEY_CORE_ALLOWED_ORIGINS: '["https://island.is","android:apk-key-hash:JgPeo_F6KYk-ngRa26tO2SsAtMiTBQCc7WtSgN-jRX0","android:apk-key-hash:EsLTUu5kaY7XPmMl2f7nbq4amu-PNzdYu3FecNf90wU"]' + PASSKEY_CORE_CHALLENGE_TTL_MS: '120000' + PASSKEY_CORE_RP_ID: 'island.is' + PASSKEY_CORE_RP_NAME: 'Island.is' + PUBLIC_URL: 'https://identity-server.dev01.devland.is/api' + REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' + SERVERSIDE_FEATURES_ON: '' + SYSLUMENN_HOST: 'https://api.syslumenn.is/staging' + SYSLUMENN_TIMEOUT: '3000' + XROAD_BASE_PATH: 'http://securityserver.dev01.devland.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.dev01.devland.is/r1/IS-DEV' + XROAD_CLIENT_ID: 'IS-DEV/GOV/10000/island-is-client' + XROAD_NATIONAL_REGISTRY_ACTOR_TOKEN: 'true' + XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' + XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS-DEV/GOV/10001/SKRA-Protected/Einstaklingar-v1' + XROAD_RSK_PROCURING_ACTOR_TOKEN: 'true' + XROAD_RSK_PROCURING_PATH: 'IS-DEV/GOV/10006/Skatturinn/relationships-v1' + XROAD_RSK_PROCURING_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' + XROAD_TJODSKRA_API_PATH: '/SKRA-Protected/Einstaklingar-v1' + XROAD_TJODSKRA_MEMBER_CODE: '10001' + XROAD_TLS_BASE_PATH: 'https://securityserver.dev01.devland.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.dev01.devland.is/r1/IS-DEV' + ZENDESK_CONTACT_FORM_SUBDOMAIN: 'digitaliceland' +grantNamespaces: + - 'nginx-ingress-external' + - 'nginx-ingress-internal' + - 'islandis' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/health/check' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-auth-public-api' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/enable-global-auth: 'false' + nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/rewrite-target: '/$2' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'identity-server.dev01.devland.is' + paths: + - '/api(/|$)(.*)' +namespace: 'identity-server-admin' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '400m' + memory: '384Mi' + requests: + cpu: '100m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/servicesauth/DB_PASSWORD' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-auth/IDENTITY_SERVER_CLIENT_SECRET' + NATIONAL_REGISTRY_IDS_CLIENT_SECRET: '/k8s/xroad/client/NATIONAL-REGISTRY/IDENTITYSERVER_SECRET' + SYSLUMENN_PASSWORD: '/k8s/services-auth/SYSLUMENN_PASSWORD' + SYSLUMENN_USERNAME: '/k8s/services-auth/SYSLUMENN_USERNAME' + ZENDESK_CONTACT_FORM_EMAIL: '/k8s/api/ZENDESK_CONTACT_FORM_EMAIL' + ZENDESK_CONTACT_FORM_TOKEN: '/k8s/api/ZENDESK_CONTACT_FORM_TOKEN' + ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE: '/k8s/services-auth/ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/services-auth-public-api/values.prod.yaml b/charts/services/services-auth-public-api/values.prod.yaml index e8aaab3d72e7..cedab910898a 100644 --- a/charts/services/services-auth-public-api/values.prod.yaml +++ b/charts/services/services-auth-public-api/values.prod.yaml @@ -5,105 +5,115 @@ # ##################################################################### -service: - name: 'services-auth-public-api' - enabled: true +global: env: - COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.dnugi2.euw1.cache.amazonaws.com:6379"]' - COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS/GOV/5402696029/Skatturinn/ft-v1' - DB_HOST: 'postgres-ids.internal' - DB_NAME: 'servicesauth' - DB_REPLICAS_HOST: 'postgres-ids.internal' - DB_USER: 'servicesauth' - IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/auth-api' - IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=345 -r dd-trace/init' - PASSKEY_CORE_ALLOWED_ORIGINS: '["https://island.is","android:apk-key-hash:JgPeo_F6KYk-ngRa26tO2SsAtMiTBQCc7WtSgN-jRX0","android:apk-key-hash:EsLTUu5kaY7XPmMl2f7nbq4amu-PNzdYu3FecNf90wU"]' - PASSKEY_CORE_CHALLENGE_TTL_MS: '120000' - PASSKEY_CORE_RP_ID: 'island.is' - PASSKEY_CORE_RP_NAME: 'Island.is' - PUBLIC_URL: 'https://innskra.island.is/api' - REDIS_NODES: '["clustercfg.general-redis-cluster-group.dnugi2.euw1.cache.amazonaws.com:6379"]' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - SYSLUMENN_HOST: 'https://api.syslumenn.is/api' - SYSLUMENN_TIMEOUT: '3000' - XROAD_BASE_PATH: 'http://securityserver.island.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.island.is/r1/IS' - XROAD_CLIENT_ID: 'IS/GOV/5501692829/island-is-client' - XROAD_NATIONAL_REGISTRY_ACTOR_TOKEN: 'true' - XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.dnugi2.euw1.cache.amazonaws.com:6379"]' - XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS/GOV/6503760649/SKRA-Protected/Einstaklingar-v1' - XROAD_RSK_PROCURING_ACTOR_TOKEN: 'true' - XROAD_RSK_PROCURING_PATH: 'IS/GOV/5402696029/Skatturinn/relationships-v1' - XROAD_RSK_PROCURING_REDIS_NODES: '["clustercfg.general-redis-cluster-group.dnugi2.euw1.cache.amazonaws.com:6379"]' - XROAD_TJODSKRA_API_PATH: '/SKRA-Protected/Einstaklingar-v1' - XROAD_TJODSKRA_MEMBER_CODE: '6503760649' - XROAD_TLS_BASE_PATH: 'https://securityserver.island.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.island.is/r1/IS' - ZENDESK_CONTACT_FORM_SUBDOMAIN: 'digitaliceland' - grantNamespaces: - - 'nginx-ingress-external' - - 'nginx-ingress-internal' - - 'islandis' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/health/check' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-auth-public-api' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/enable-global-auth: 'false' - nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/rewrite-target: '/$2' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'innskra.island.is' - paths: - - '/api(/|$)(.*)' - namespace: 'identity-server-admin' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '400m' - memory: '384Mi' - requests: - cpu: '100m' - memory: '256Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DB_PASS: '/k8s/servicesauth/DB_PASSWORD' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-auth/IDENTITY_SERVER_CLIENT_SECRET' - NATIONAL_REGISTRY_IDS_CLIENT_SECRET: '/k8s/xroad/client/NATIONAL-REGISTRY/IDENTITYSERVER_SECRET' - SYSLUMENN_PASSWORD: '/k8s/services-auth/SYSLUMENN_PASSWORD' - SYSLUMENN_USERNAME: '/k8s/services-auth/SYSLUMENN_USERNAME' - ZENDESK_CONTACT_FORM_EMAIL: '/k8s/api/ZENDESK_CONTACT_FORM_EMAIL' - ZENDESK_CONTACT_FORM_TOKEN: '/k8s/api/ZENDESK_CONTACT_FORM_TOKEN' - ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE: '/k8s/services-auth/ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/identity-server/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'services-auth-public-api' +enabled: true +env: + COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.dnugi2.euw1.cache.amazonaws.com:6379"]' + COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS/GOV/5402696029/Skatturinn/ft-v1' + DB_HOST: 'postgres-ids.internal' + DB_NAME: 'servicesauth' + DB_REPLICAS_HOST: 'postgres-ids.internal' + DB_USER: 'servicesauth' + IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/auth-api' + IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=345 -r dd-trace/init' + PASSKEY_CORE_ALLOWED_ORIGINS: '["https://island.is","android:apk-key-hash:JgPeo_F6KYk-ngRa26tO2SsAtMiTBQCc7WtSgN-jRX0","android:apk-key-hash:EsLTUu5kaY7XPmMl2f7nbq4amu-PNzdYu3FecNf90wU"]' + PASSKEY_CORE_CHALLENGE_TTL_MS: '120000' + PASSKEY_CORE_RP_ID: 'island.is' + PASSKEY_CORE_RP_NAME: 'Island.is' + PUBLIC_URL: 'https://innskra.island.is/api' + REDIS_NODES: '["clustercfg.general-redis-cluster-group.dnugi2.euw1.cache.amazonaws.com:6379"]' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' + SYSLUMENN_HOST: 'https://api.syslumenn.is/api' + SYSLUMENN_TIMEOUT: '3000' + XROAD_BASE_PATH: 'http://securityserver.island.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.island.is/r1/IS' + XROAD_CLIENT_ID: 'IS/GOV/5501692829/island-is-client' + XROAD_NATIONAL_REGISTRY_ACTOR_TOKEN: 'true' + XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.dnugi2.euw1.cache.amazonaws.com:6379"]' + XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS/GOV/6503760649/SKRA-Protected/Einstaklingar-v1' + XROAD_RSK_PROCURING_ACTOR_TOKEN: 'true' + XROAD_RSK_PROCURING_PATH: 'IS/GOV/5402696029/Skatturinn/relationships-v1' + XROAD_RSK_PROCURING_REDIS_NODES: '["clustercfg.general-redis-cluster-group.dnugi2.euw1.cache.amazonaws.com:6379"]' + XROAD_TJODSKRA_API_PATH: '/SKRA-Protected/Einstaklingar-v1' + XROAD_TJODSKRA_MEMBER_CODE: '6503760649' + XROAD_TLS_BASE_PATH: 'https://securityserver.island.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.island.is/r1/IS' + ZENDESK_CONTACT_FORM_SUBDOMAIN: 'digitaliceland' +grantNamespaces: + - 'nginx-ingress-external' + - 'nginx-ingress-internal' + - 'islandis' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/health/check' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-auth-public-api' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/enable-global-auth: 'false' + nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/rewrite-target: '/$2' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'innskra.island.is' + paths: + - '/api(/|$)(.*)' +namespace: 'identity-server-admin' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '400m' + memory: '384Mi' + requests: + cpu: '100m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/servicesauth/DB_PASSWORD' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-auth/IDENTITY_SERVER_CLIENT_SECRET' + NATIONAL_REGISTRY_IDS_CLIENT_SECRET: '/k8s/xroad/client/NATIONAL-REGISTRY/IDENTITYSERVER_SECRET' + SYSLUMENN_PASSWORD: '/k8s/services-auth/SYSLUMENN_PASSWORD' + SYSLUMENN_USERNAME: '/k8s/services-auth/SYSLUMENN_USERNAME' + ZENDESK_CONTACT_FORM_EMAIL: '/k8s/api/ZENDESK_CONTACT_FORM_EMAIL' + ZENDESK_CONTACT_FORM_TOKEN: '/k8s/api/ZENDESK_CONTACT_FORM_TOKEN' + ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE: '/k8s/services-auth/ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/services-auth-public-api/values.staging.yaml b/charts/services/services-auth-public-api/values.staging.yaml index f3634bc368d7..af05b8333772 100644 --- a/charts/services/services-auth-public-api/values.staging.yaml +++ b/charts/services/services-auth-public-api/values.staging.yaml @@ -5,105 +5,115 @@ # ##################################################################### -service: - name: 'services-auth-public-api' - enabled: true +global: env: - COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' - COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS-TEST/GOV/5402696029/Skatturinn/ft-v1' - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'servicesauth' - DB_REPLICAS_HOST: 'postgres-applications.internal' - DB_USER: 'servicesauth' - IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/auth-api' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=345 -r dd-trace/init' - PASSKEY_CORE_ALLOWED_ORIGINS: '["https://island.is","android:apk-key-hash:JgPeo_F6KYk-ngRa26tO2SsAtMiTBQCc7WtSgN-jRX0","android:apk-key-hash:EsLTUu5kaY7XPmMl2f7nbq4amu-PNzdYu3FecNf90wU"]' - PASSKEY_CORE_CHALLENGE_TTL_MS: '120000' - PASSKEY_CORE_RP_ID: 'island.is' - PASSKEY_CORE_RP_NAME: 'Island.is' - PUBLIC_URL: 'https://identity-server.staging01.devland.is/api' - REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' - SERVERSIDE_FEATURES_ON: '' - SYSLUMENN_HOST: 'https://api.syslumenn.is/staging' - SYSLUMENN_TIMEOUT: '3000' - XROAD_BASE_PATH: 'http://securityserver.staging01.devland.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.staging01.devland.is/r1/IS-TEST' - XROAD_CLIENT_ID: 'IS-TEST/GOV/5501692829/island-is-client' - XROAD_NATIONAL_REGISTRY_ACTOR_TOKEN: 'true' - XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' - XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS-TEST/GOV/6503760649/SKRA-Protected/Einstaklingar-v1' - XROAD_RSK_PROCURING_ACTOR_TOKEN: 'true' - XROAD_RSK_PROCURING_PATH: 'IS-TEST/GOV/5402696029/Skatturinn/relationships-v1' - XROAD_RSK_PROCURING_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' - XROAD_TJODSKRA_API_PATH: '/SKRA-Protected/Einstaklingar-v1' - XROAD_TJODSKRA_MEMBER_CODE: '6503760649' - XROAD_TLS_BASE_PATH: 'https://securityserver.staging01.devland.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.staging01.devland.is/r1/IS-TEST' - ZENDESK_CONTACT_FORM_SUBDOMAIN: 'digitaliceland' - grantNamespaces: - - 'nginx-ingress-external' - - 'nginx-ingress-internal' - - 'islandis' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/health/check' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-auth-public-api' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/enable-global-auth: 'false' - nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/rewrite-target: '/$2' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'identity-server.staging01.devland.is' - paths: - - '/api(/|$)(.*)' - namespace: 'identity-server-admin' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '400m' - memory: '384Mi' - requests: - cpu: '100m' - memory: '256Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DB_PASS: '/k8s/servicesauth/DB_PASSWORD' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-auth/IDENTITY_SERVER_CLIENT_SECRET' - NATIONAL_REGISTRY_IDS_CLIENT_SECRET: '/k8s/xroad/client/NATIONAL-REGISTRY/IDENTITYSERVER_SECRET' - SYSLUMENN_PASSWORD: '/k8s/services-auth/SYSLUMENN_PASSWORD' - SYSLUMENN_USERNAME: '/k8s/services-auth/SYSLUMENN_USERNAME' - ZENDESK_CONTACT_FORM_EMAIL: '/k8s/api/ZENDESK_CONTACT_FORM_EMAIL' - ZENDESK_CONTACT_FORM_TOKEN: '/k8s/api/ZENDESK_CONTACT_FORM_TOKEN' - ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE: '/k8s/services-auth/ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/identity-server/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'services-auth-public-api' +enabled: true +env: + COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' + COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS-TEST/GOV/5402696029/Skatturinn/ft-v1' + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'servicesauth' + DB_REPLICAS_HOST: 'postgres-applications.internal' + DB_USER: 'servicesauth' + IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/auth-api' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=345 -r dd-trace/init' + PASSKEY_CORE_ALLOWED_ORIGINS: '["https://island.is","android:apk-key-hash:JgPeo_F6KYk-ngRa26tO2SsAtMiTBQCc7WtSgN-jRX0","android:apk-key-hash:EsLTUu5kaY7XPmMl2f7nbq4amu-PNzdYu3FecNf90wU"]' + PASSKEY_CORE_CHALLENGE_TTL_MS: '120000' + PASSKEY_CORE_RP_ID: 'island.is' + PASSKEY_CORE_RP_NAME: 'Island.is' + PUBLIC_URL: 'https://identity-server.staging01.devland.is/api' + REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' + SERVERSIDE_FEATURES_ON: '' + SYSLUMENN_HOST: 'https://api.syslumenn.is/staging' + SYSLUMENN_TIMEOUT: '3000' + XROAD_BASE_PATH: 'http://securityserver.staging01.devland.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.staging01.devland.is/r1/IS-TEST' + XROAD_CLIENT_ID: 'IS-TEST/GOV/5501692829/island-is-client' + XROAD_NATIONAL_REGISTRY_ACTOR_TOKEN: 'true' + XROAD_NATIONAL_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' + XROAD_NATIONAL_REGISTRY_SERVICE_PATH: 'IS-TEST/GOV/6503760649/SKRA-Protected/Einstaklingar-v1' + XROAD_RSK_PROCURING_ACTOR_TOKEN: 'true' + XROAD_RSK_PROCURING_PATH: 'IS-TEST/GOV/5402696029/Skatturinn/relationships-v1' + XROAD_RSK_PROCURING_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' + XROAD_TJODSKRA_API_PATH: '/SKRA-Protected/Einstaklingar-v1' + XROAD_TJODSKRA_MEMBER_CODE: '6503760649' + XROAD_TLS_BASE_PATH: 'https://securityserver.staging01.devland.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.staging01.devland.is/r1/IS-TEST' + ZENDESK_CONTACT_FORM_SUBDOMAIN: 'digitaliceland' +grantNamespaces: + - 'nginx-ingress-external' + - 'nginx-ingress-internal' + - 'islandis' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/health/check' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-auth-public-api' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/enable-global-auth: 'false' + nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/rewrite-target: '/$2' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'identity-server.staging01.devland.is' + paths: + - '/api(/|$)(.*)' +namespace: 'identity-server-admin' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '400m' + memory: '384Mi' + requests: + cpu: '100m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/servicesauth/DB_PASSWORD' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-auth/IDENTITY_SERVER_CLIENT_SECRET' + NATIONAL_REGISTRY_IDS_CLIENT_SECRET: '/k8s/xroad/client/NATIONAL-REGISTRY/IDENTITYSERVER_SECRET' + SYSLUMENN_PASSWORD: '/k8s/services-auth/SYSLUMENN_PASSWORD' + SYSLUMENN_USERNAME: '/k8s/services-auth/SYSLUMENN_USERNAME' + ZENDESK_CONTACT_FORM_EMAIL: '/k8s/api/ZENDESK_CONTACT_FORM_EMAIL' + ZENDESK_CONTACT_FORM_TOKEN: '/k8s/api/ZENDESK_CONTACT_FORM_TOKEN' + ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE: '/k8s/services-auth/ZENDESK_WEBHOOK_SECRET_GENERAL_MANDATE' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/services-bff-portals-admin/values.dev.yaml b/charts/services/services-bff-portals-admin/values.dev.yaml index 32df0a313f6a..e5b6da0bda2f 100644 --- a/charts/services/services-bff-portals-admin/values.dev.yaml +++ b/charts/services/services-bff-portals-admin/values.dev.yaml @@ -5,88 +5,98 @@ # ##################################################################### -service: - name: 'services-bff-portals-admin' - enabled: true +global: env: - BFF_ALLOWED_EXTERNAL_API_URLS: '["https://api.dev01.devland.is"]' - BFF_ALLOWED_REDIRECT_URIS: '["https://beta.dev01.devland.is"]' - BFF_CACHE_USER_PROFILE_TTL_MS: '3595000' - BFF_CALLBACKS_BASE_PATH: 'https://beta.dev01.devland.is/stjornbord/bff/callbacks' - BFF_CLIENT_BASE_URL: 'https://beta.dev01.devland.is' - BFF_CLIENT_KEY_PATH: '/stjornbord' - BFF_LOGIN_ATTEMPT_TTL_MS: '604800000' - BFF_LOGOUT_REDIRECT_URI: 'https://beta.dev01.devland.is' - BFF_NAME: 'stjornbord' - BFF_PAR_SUPPORT_ENABLED: 'true' - BFF_PROXY_API_ENDPOINT: 'http://web-api.islandis.svc.cluster.local/api/graphql' - IDENTITY_SERVER_CLIENT_ID: '@admin.island.is/bff-stjornbord' - IDENTITY_SERVER_CLIENT_SCOPES: '["@admin.island.is/delegations","@admin.island.is/ads","@admin.island.is/regulations","@admin.island.is/regulations:manage","@admin.island.is/icelandic-names-registry","@admin.island.is/application-system:admin","@admin.island.is/application-system:institution","@admin.island.is/document-provider","@admin.island.is/auth","@admin.island.is/auth:admin","@admin.island.is/petitions","@admin.island.is/service-desk","@admin.island.is/ads:explicit","@admin.island.is/signature-collection:manage","@admin.island.is/signature-collection:process","@admin.island.is/form-system","@admin.island.is/form-system:admin","@admin.island.is/delegation-system","@admin.island.is/delegation-system:admin"]' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' - REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' - SERVERSIDE_FEATURES_ON: '' - grantNamespaces: - - 'identity-server' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/stjornbord/bff/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/stjornbord/bff/health/check' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-bff' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/enable-global-auth: 'false' - nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'beta.dev01.devland.is' - paths: - - '/stjornbord/bff' - namespace: 'portals-admin' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '100m' - memory: '256Mi' - secrets: - BFF_TOKEN_SECRET_BASE64: '/k8s/services-bff/portals-admin/BFF_TOKEN_SECRET_BASE64' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-bff/portals-admin/IDENTITY_SERVER_CLIENT_SECRET' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'services-bff-portals-admin' +enabled: true +env: + BFF_ALLOWED_EXTERNAL_API_URLS: '["https://api.dev01.devland.is"]' + BFF_ALLOWED_REDIRECT_URIS: '["https://beta.dev01.devland.is"]' + BFF_CACHE_USER_PROFILE_TTL_MS: '3595000' + BFF_CALLBACKS_BASE_PATH: 'https://beta.dev01.devland.is/stjornbord/bff/callbacks' + BFF_CLIENT_BASE_URL: 'https://beta.dev01.devland.is' + BFF_CLIENT_KEY_PATH: '/stjornbord' + BFF_LOGIN_ATTEMPT_TTL_MS: '604800000' + BFF_LOGOUT_REDIRECT_URI: 'https://beta.dev01.devland.is' + BFF_NAME: 'stjornbord' + BFF_PAR_SUPPORT_ENABLED: 'true' + BFF_PROXY_API_ENDPOINT: 'http://web-api.islandis.svc.cluster.local/api/graphql' + IDENTITY_SERVER_CLIENT_ID: '@admin.island.is/bff-stjornbord' + IDENTITY_SERVER_CLIENT_SCOPES: '["@admin.island.is/delegations","@admin.island.is/ads","@admin.island.is/regulations","@admin.island.is/regulations:manage","@admin.island.is/icelandic-names-registry","@admin.island.is/application-system:admin","@admin.island.is/application-system:institution","@admin.island.is/document-provider","@admin.island.is/auth","@admin.island.is/auth:admin","@admin.island.is/petitions","@admin.island.is/service-desk","@admin.island.is/ads:explicit","@admin.island.is/signature-collection:manage","@admin.island.is/signature-collection:process","@admin.island.is/form-system","@admin.island.is/form-system:admin","@admin.island.is/delegation-system","@admin.island.is/delegation-system:admin"]' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: + - 'identity-server' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/stjornbord/bff/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/stjornbord/bff/health/check' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-bff' +ingress: + primary-alb: annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/services-bff' - create: true - name: 'services-bff' + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/enable-global-auth: 'false' + nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'beta.dev01.devland.is' + paths: + - '/stjornbord/bff' +namespace: 'portals-admin' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '100m' + memory: '256Mi' +secrets: + BFF_TOKEN_SECRET_BASE64: '/k8s/services-bff/portals-admin/BFF_TOKEN_SECRET_BASE64' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-bff/portals-admin/IDENTITY_SERVER_CLIENT_SECRET' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/services-bff' + create: true + name: 'services-bff' diff --git a/charts/services/services-bff-portals-admin/values.prod.yaml b/charts/services/services-bff-portals-admin/values.prod.yaml index a598b3465197..ffde3a0cc06e 100644 --- a/charts/services/services-bff-portals-admin/values.prod.yaml +++ b/charts/services/services-bff-portals-admin/values.prod.yaml @@ -5,90 +5,100 @@ # ##################################################################### -service: - name: 'services-bff-portals-admin' - enabled: true +global: env: - BFF_ALLOWED_EXTERNAL_API_URLS: '["https://api.island.is"]' - BFF_ALLOWED_REDIRECT_URIS: '["https://island.is"]' - BFF_CACHE_USER_PROFILE_TTL_MS: '3595000' - BFF_CALLBACKS_BASE_PATH: 'https://island.is/stjornbord/bff/callbacks' - BFF_CLIENT_BASE_URL: 'https://island.is' - BFF_CLIENT_KEY_PATH: '/stjornbord' - BFF_LOGIN_ATTEMPT_TTL_MS: '604800000' - BFF_LOGOUT_REDIRECT_URI: 'https://island.is' - BFF_NAME: 'stjornbord' - BFF_PAR_SUPPORT_ENABLED: 'true' - BFF_PROXY_API_ENDPOINT: 'http://web-api.islandis.svc.cluster.local/api/graphql' - IDENTITY_SERVER_CLIENT_ID: '@admin.island.is/bff-stjornbord' - IDENTITY_SERVER_CLIENT_SCOPES: '["@admin.island.is/delegations","@admin.island.is/ads","@admin.island.is/regulations","@admin.island.is/regulations:manage","@admin.island.is/icelandic-names-registry","@admin.island.is/application-system:admin","@admin.island.is/application-system:institution","@admin.island.is/document-provider","@admin.island.is/auth","@admin.island.is/auth:admin","@admin.island.is/petitions","@admin.island.is/service-desk","@admin.island.is/ads:explicit","@admin.island.is/signature-collection:manage","@admin.island.is/signature-collection:process","@admin.island.is/form-system","@admin.island.is/form-system:admin","@admin.island.is/delegation-system","@admin.island.is/delegation-system:admin"]' - IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' - REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379"]' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - grantNamespaces: - - 'identity-server' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/stjornbord/bff/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/stjornbord/bff/health/check' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-bff' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'island.is' - paths: - - '/stjornbord/bff' - - host: 'www.island.is' - paths: - - '/stjornbord/bff' - namespace: 'portals-admin' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '100m' - memory: '256Mi' - secrets: - BFF_TOKEN_SECRET_BASE64: '/k8s/services-bff/portals-admin/BFF_TOKEN_SECRET_BASE64' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-bff/portals-admin/IDENTITY_SERVER_CLIENT_SECRET' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'services-bff-portals-admin' +enabled: true +env: + BFF_ALLOWED_EXTERNAL_API_URLS: '["https://api.island.is"]' + BFF_ALLOWED_REDIRECT_URIS: '["https://island.is"]' + BFF_CACHE_USER_PROFILE_TTL_MS: '3595000' + BFF_CALLBACKS_BASE_PATH: 'https://island.is/stjornbord/bff/callbacks' + BFF_CLIENT_BASE_URL: 'https://island.is' + BFF_CLIENT_KEY_PATH: '/stjornbord' + BFF_LOGIN_ATTEMPT_TTL_MS: '604800000' + BFF_LOGOUT_REDIRECT_URI: 'https://island.is' + BFF_NAME: 'stjornbord' + BFF_PAR_SUPPORT_ENABLED: 'true' + BFF_PROXY_API_ENDPOINT: 'http://web-api.islandis.svc.cluster.local/api/graphql' + IDENTITY_SERVER_CLIENT_ID: '@admin.island.is/bff-stjornbord' + IDENTITY_SERVER_CLIENT_SCOPES: '["@admin.island.is/delegations","@admin.island.is/ads","@admin.island.is/regulations","@admin.island.is/regulations:manage","@admin.island.is/icelandic-names-registry","@admin.island.is/application-system:admin","@admin.island.is/application-system:institution","@admin.island.is/document-provider","@admin.island.is/auth","@admin.island.is/auth:admin","@admin.island.is/petitions","@admin.island.is/service-desk","@admin.island.is/ads:explicit","@admin.island.is/signature-collection:manage","@admin.island.is/signature-collection:process","@admin.island.is/form-system","@admin.island.is/form-system:admin","@admin.island.is/delegation-system","@admin.island.is/delegation-system:admin"]' + IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379"]' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' +grantNamespaces: + - 'identity-server' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/stjornbord/bff/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/stjornbord/bff/health/check' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-bff' +ingress: + primary-alb: annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/services-bff' - create: true - name: 'services-bff' + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'island.is' + paths: + - '/stjornbord/bff' + - host: 'www.island.is' + paths: + - '/stjornbord/bff' +namespace: 'portals-admin' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '100m' + memory: '256Mi' +secrets: + BFF_TOKEN_SECRET_BASE64: '/k8s/services-bff/portals-admin/BFF_TOKEN_SECRET_BASE64' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-bff/portals-admin/IDENTITY_SERVER_CLIENT_SECRET' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/services-bff' + create: true + name: 'services-bff' diff --git a/charts/services/services-bff-portals-admin/values.staging.yaml b/charts/services/services-bff-portals-admin/values.staging.yaml index 94d465b6b307..6c61eb1836e1 100644 --- a/charts/services/services-bff-portals-admin/values.staging.yaml +++ b/charts/services/services-bff-portals-admin/values.staging.yaml @@ -5,88 +5,98 @@ # ##################################################################### -service: - name: 'services-bff-portals-admin' - enabled: true +global: env: - BFF_ALLOWED_EXTERNAL_API_URLS: '["https://api.staging01.devland.is"]' - BFF_ALLOWED_REDIRECT_URIS: '["https://beta.staging01.devland.is"]' - BFF_CACHE_USER_PROFILE_TTL_MS: '3595000' - BFF_CALLBACKS_BASE_PATH: 'https://beta.staging01.devland.is/stjornbord/bff/callbacks' - BFF_CLIENT_BASE_URL: 'https://beta.staging01.devland.is' - BFF_CLIENT_KEY_PATH: '/stjornbord' - BFF_LOGIN_ATTEMPT_TTL_MS: '604800000' - BFF_LOGOUT_REDIRECT_URI: 'https://beta.staging01.devland.is' - BFF_NAME: 'stjornbord' - BFF_PAR_SUPPORT_ENABLED: 'true' - BFF_PROXY_API_ENDPOINT: 'http://web-api.islandis.svc.cluster.local/api/graphql' - IDENTITY_SERVER_CLIENT_ID: '@admin.island.is/bff-stjornbord' - IDENTITY_SERVER_CLIENT_SCOPES: '["@admin.island.is/delegations","@admin.island.is/ads","@admin.island.is/regulations","@admin.island.is/regulations:manage","@admin.island.is/icelandic-names-registry","@admin.island.is/application-system:admin","@admin.island.is/application-system:institution","@admin.island.is/document-provider","@admin.island.is/auth","@admin.island.is/auth:admin","@admin.island.is/petitions","@admin.island.is/service-desk","@admin.island.is/ads:explicit","@admin.island.is/signature-collection:manage","@admin.island.is/signature-collection:process","@admin.island.is/form-system","@admin.island.is/form-system:admin","@admin.island.is/delegation-system","@admin.island.is/delegation-system:admin"]' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' - REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' - SERVERSIDE_FEATURES_ON: '' - grantNamespaces: - - 'identity-server' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/stjornbord/bff/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/stjornbord/bff/health/check' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-bff' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/enable-global-auth: 'false' - nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'beta.staging01.devland.is' - paths: - - '/stjornbord/bff' - namespace: 'portals-admin' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '100m' - memory: '256Mi' - secrets: - BFF_TOKEN_SECRET_BASE64: '/k8s/services-bff/portals-admin/BFF_TOKEN_SECRET_BASE64' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-bff/portals-admin/IDENTITY_SERVER_CLIENT_SECRET' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'services-bff-portals-admin' +enabled: true +env: + BFF_ALLOWED_EXTERNAL_API_URLS: '["https://api.staging01.devland.is"]' + BFF_ALLOWED_REDIRECT_URIS: '["https://beta.staging01.devland.is"]' + BFF_CACHE_USER_PROFILE_TTL_MS: '3595000' + BFF_CALLBACKS_BASE_PATH: 'https://beta.staging01.devland.is/stjornbord/bff/callbacks' + BFF_CLIENT_BASE_URL: 'https://beta.staging01.devland.is' + BFF_CLIENT_KEY_PATH: '/stjornbord' + BFF_LOGIN_ATTEMPT_TTL_MS: '604800000' + BFF_LOGOUT_REDIRECT_URI: 'https://beta.staging01.devland.is' + BFF_NAME: 'stjornbord' + BFF_PAR_SUPPORT_ENABLED: 'true' + BFF_PROXY_API_ENDPOINT: 'http://web-api.islandis.svc.cluster.local/api/graphql' + IDENTITY_SERVER_CLIENT_ID: '@admin.island.is/bff-stjornbord' + IDENTITY_SERVER_CLIENT_SCOPES: '["@admin.island.is/delegations","@admin.island.is/ads","@admin.island.is/regulations","@admin.island.is/regulations:manage","@admin.island.is/icelandic-names-registry","@admin.island.is/application-system:admin","@admin.island.is/application-system:institution","@admin.island.is/document-provider","@admin.island.is/auth","@admin.island.is/auth:admin","@admin.island.is/petitions","@admin.island.is/service-desk","@admin.island.is/ads:explicit","@admin.island.is/signature-collection:manage","@admin.island.is/signature-collection:process","@admin.island.is/form-system","@admin.island.is/form-system:admin","@admin.island.is/delegation-system","@admin.island.is/delegation-system:admin"]' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: + - 'identity-server' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/stjornbord/bff/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/stjornbord/bff/health/check' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-bff' +ingress: + primary-alb: annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/services-bff' - create: true - name: 'services-bff' + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/enable-global-auth: 'false' + nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'beta.staging01.devland.is' + paths: + - '/stjornbord/bff' +namespace: 'portals-admin' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '100m' + memory: '256Mi' +secrets: + BFF_TOKEN_SECRET_BASE64: '/k8s/services-bff/portals-admin/BFF_TOKEN_SECRET_BASE64' + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-bff/portals-admin/IDENTITY_SERVER_CLIENT_SECRET' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/services-bff' + create: true + name: 'services-bff' diff --git a/charts/services/services-documents/values.dev.yaml b/charts/services/services-documents/values.dev.yaml index 7986eba538b7..83c19d129dc3 100644 --- a/charts/services/services-documents/values.dev.yaml +++ b/charts/services/services-documents/values.dev.yaml @@ -5,82 +5,92 @@ # ##################################################################### -service: - name: 'services-documents' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'services-documents' +enabled: true +env: + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'services_documents' + DB_REPLICAS_HOST: 'postgres-applications-reader.internal' + DB_USER: 'services_documents' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: + - 'islandis' + - 'application-system' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/readiness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-documents' +initContainer: + containers: + - args: + - 'sequelize-cli' + - 'db:migrate' + command: + - 'npx' + name: 'migrations' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' env: DB_HOST: 'postgres-applications.internal' DB_NAME: 'services_documents' DB_REPLICAS_HOST: 'postgres-applications-reader.internal' DB_USER: 'services_documents' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' SERVERSIDE_FEATURES_ON: '' - grantNamespaces: - - 'islandis' - - 'application-system' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/readiness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-documents' - initContainer: - containers: - - args: - - 'sequelize-cli' - - 'db:migrate' - command: - - 'npx' - name: 'migrations' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'services_documents' - DB_REPLICAS_HOST: 'postgres-applications-reader.internal' - DB_USER: 'services_documents' - SERVERSIDE_FEATURES_ON: '' - secrets: - DB_PASS: '/k8s/services-documents/DB_PASSWORD' - namespace: 'services-documents' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '100m' - memory: '128Mi' secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' DB_PASS: '/k8s/services-documents/DB_PASSWORD' - securityContext: - allowPrivilegeEscalation: false - privileged: false +namespace: 'services-documents' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '100m' + memory: '128Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/services-documents/DB_PASSWORD' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/services-documents/values.prod.yaml b/charts/services/services-documents/values.prod.yaml index 84badec92b27..b45e24d634a0 100644 --- a/charts/services/services-documents/values.prod.yaml +++ b/charts/services/services-documents/values.prod.yaml @@ -5,82 +5,92 @@ # ##################################################################### -service: - name: 'services-documents' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'services-documents' +enabled: true +env: + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'services_documents' + DB_REPLICAS_HOST: 'postgres-applications.internal' + DB_USER: 'services_documents' + IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' +grantNamespaces: + - 'islandis' + - 'application-system' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/readiness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 3 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-documents' +initContainer: + containers: + - args: + - 'sequelize-cli' + - 'db:migrate' + command: + - 'npx' + name: 'migrations' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' env: DB_HOST: 'postgres-applications.internal' DB_NAME: 'services_documents' DB_REPLICAS_HOST: 'postgres-applications.internal' DB_USER: 'services_documents' - IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - grantNamespaces: - - 'islandis' - - 'application-system' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/readiness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 3 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-documents' - initContainer: - containers: - - args: - - 'sequelize-cli' - - 'db:migrate' - command: - - 'npx' - name: 'migrations' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'services_documents' - DB_REPLICAS_HOST: 'postgres-applications.internal' - DB_USER: 'services_documents' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - secrets: - DB_PASS: '/k8s/services-documents/DB_PASSWORD' - namespace: 'services-documents' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 3 - max: 10 - min: 3 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '100m' - memory: '128Mi' secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' DB_PASS: '/k8s/services-documents/DB_PASSWORD' - securityContext: - allowPrivilegeEscalation: false - privileged: false +namespace: 'services-documents' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 3 + max: 10 + min: 3 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '100m' + memory: '128Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/services-documents/DB_PASSWORD' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/services-documents/values.staging.yaml b/charts/services/services-documents/values.staging.yaml index a02eda7d83d3..62e2c5f722a0 100644 --- a/charts/services/services-documents/values.staging.yaml +++ b/charts/services/services-documents/values.staging.yaml @@ -5,82 +5,92 @@ # ##################################################################### -service: - name: 'services-documents' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'services-documents' +enabled: true +env: + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'services_documents' + DB_REPLICAS_HOST: 'postgres-applications.internal' + DB_USER: 'services_documents' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: + - 'islandis' + - 'application-system' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/readiness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-documents' +initContainer: + containers: + - args: + - 'sequelize-cli' + - 'db:migrate' + command: + - 'npx' + name: 'migrations' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' env: DB_HOST: 'postgres-applications.internal' DB_NAME: 'services_documents' DB_REPLICAS_HOST: 'postgres-applications.internal' DB_USER: 'services_documents' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' SERVERSIDE_FEATURES_ON: '' - grantNamespaces: - - 'islandis' - - 'application-system' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/readiness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-documents' - initContainer: - containers: - - args: - - 'sequelize-cli' - - 'db:migrate' - command: - - 'npx' - name: 'migrations' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'services_documents' - DB_REPLICAS_HOST: 'postgres-applications.internal' - DB_USER: 'services_documents' - SERVERSIDE_FEATURES_ON: '' - secrets: - DB_PASS: '/k8s/services-documents/DB_PASSWORD' - namespace: 'services-documents' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '100m' - memory: '128Mi' secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' DB_PASS: '/k8s/services-documents/DB_PASSWORD' - securityContext: - allowPrivilegeEscalation: false - privileged: false +namespace: 'services-documents' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '100m' + memory: '128Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/services-documents/DB_PASSWORD' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/services-sessions-cleanup/values.dev.yaml b/charts/services/services-sessions-cleanup/values.dev.yaml index 2810e712e008..fa54d71f9cc6 100644 --- a/charts/services/services-sessions-cleanup/values.dev.yaml +++ b/charts/services/services-sessions-cleanup/values.dev.yaml @@ -5,65 +5,75 @@ # ##################################################################### -service: - name: 'services-sessions-cleanup' - args: - - 'main.js' - - '--job=cleanup' - command: - - 'node' - enabled: true +global: env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'services_sessions' - DB_REPLICAS_HOST: 'postgres-applications-reader.internal' - DB_USER: 'services_sessions' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - grantNamespaces: - - 'nginx-ingress-internal' - - 'islandis' - - 'identity-server' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-sessions' - namespace: 'services-sessions' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '100m' - memory: '256Mi' - schedule: '0 3 * * *' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DB_PASS: '/k8s/services-sessions/DB_PASSWORD' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'services-sessions-cleanup' +args: + - 'main.js' + - '--job=cleanup' +command: + - 'node' +enabled: true +env: + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'services_sessions' + DB_REPLICAS_HOST: 'postgres-applications-reader.internal' + DB_USER: 'services_sessions' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: + - 'nginx-ingress-internal' + - 'islandis' + - 'identity-server' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-sessions' +namespace: 'services-sessions' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '100m' + memory: '256Mi' +schedule: '0 3 * * *' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/services-sessions/DB_PASSWORD' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/services-sessions-cleanup/values.prod.yaml b/charts/services/services-sessions-cleanup/values.prod.yaml index f8c42663766d..2a436d368e82 100644 --- a/charts/services/services-sessions-cleanup/values.prod.yaml +++ b/charts/services/services-sessions-cleanup/values.prod.yaml @@ -5,65 +5,75 @@ # ##################################################################### -service: - name: 'services-sessions-cleanup' - args: - - 'main.js' - - '--job=cleanup' - command: - - 'node' - enabled: true +global: env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'services_sessions' - DB_REPLICAS_HOST: 'postgres-applications.internal' - DB_USER: 'services_sessions' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - grantNamespaces: - - 'nginx-ingress-internal' - - 'islandis' - - 'identity-server' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 3 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-sessions' - namespace: 'services-sessions' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 3 - max: 10 - min: 3 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '100m' - memory: '256Mi' - schedule: '0 3 * * *' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DB_PASS: '/k8s/services-sessions/DB_PASSWORD' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'services-sessions-cleanup' +args: + - 'main.js' + - '--job=cleanup' +command: + - 'node' +enabled: true +env: + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'services_sessions' + DB_REPLICAS_HOST: 'postgres-applications.internal' + DB_USER: 'services_sessions' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' +grantNamespaces: + - 'nginx-ingress-internal' + - 'islandis' + - 'identity-server' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 3 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-sessions' +namespace: 'services-sessions' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 3 + max: 10 + min: 3 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '100m' + memory: '256Mi' +schedule: '0 3 * * *' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/services-sessions/DB_PASSWORD' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/services-sessions-cleanup/values.staging.yaml b/charts/services/services-sessions-cleanup/values.staging.yaml index 0e3079e2dc79..df9aff0539a1 100644 --- a/charts/services/services-sessions-cleanup/values.staging.yaml +++ b/charts/services/services-sessions-cleanup/values.staging.yaml @@ -5,65 +5,75 @@ # ##################################################################### -service: - name: 'services-sessions-cleanup' - args: - - 'main.js' - - '--job=cleanup' - command: - - 'node' - enabled: true +global: env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'services_sessions' - DB_REPLICAS_HOST: 'postgres-applications.internal' - DB_USER: 'services_sessions' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - grantNamespaces: - - 'nginx-ingress-internal' - - 'islandis' - - 'identity-server' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-sessions' - namespace: 'services-sessions' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '100m' - memory: '256Mi' - schedule: '0 3 * * *' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DB_PASS: '/k8s/services-sessions/DB_PASSWORD' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'services-sessions-cleanup' +args: + - 'main.js' + - '--job=cleanup' +command: + - 'node' +enabled: true +env: + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'services_sessions' + DB_REPLICAS_HOST: 'postgres-applications.internal' + DB_USER: 'services_sessions' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: + - 'nginx-ingress-internal' + - 'islandis' + - 'identity-server' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-sessions' +namespace: 'services-sessions' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '100m' + memory: '256Mi' +schedule: '0 3 * * *' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/services-sessions/DB_PASSWORD' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/services-sessions-worker/values.dev.yaml b/charts/services/services-sessions-worker/values.dev.yaml index cbb41726849b..b0fcf628cfaf 100644 --- a/charts/services/services-sessions-worker/values.dev.yaml +++ b/charts/services/services-sessions-worker/values.dev.yaml @@ -5,99 +5,109 @@ # ##################################################################### -service: - name: 'services-sessions-worker' - args: - - 'main.js' - - '--job=worker' - command: - - 'node' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'services-sessions-worker' +args: + - 'main.js' + - '--job=worker' +command: + - 'node' +enabled: true +env: + DB_EXTENSIONS: 'uuid-ossp' + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'services_sessions' + DB_REPLICAS_HOST: 'postgres-applications-reader.internal' + DB_USER: 'services_sessions' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' + REDIS_USE_SSL: 'true' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: + - 'nginx-ingress-internal' + - 'islandis' + - 'identity-server' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-sessions' +initContainer: + containers: + - args: + - 'sequelize-cli' + - 'db:migrate' + command: + - 'npx' + name: 'migrations' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' env: DB_EXTENSIONS: 'uuid-ossp' DB_HOST: 'postgres-applications.internal' DB_NAME: 'services_sessions' DB_REPLICAS_HOST: 'postgres-applications-reader.internal' DB_USER: 'services_sessions' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' - REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' - REDIS_USE_SSL: 'true' SERVERSIDE_FEATURES_ON: '' - grantNamespaces: - - 'nginx-ingress-internal' - - 'islandis' - - 'identity-server' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-sessions' - initContainer: - containers: - - args: - - 'sequelize-cli' - - 'db:migrate' - command: - - 'npx' - name: 'migrations' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - env: - DB_EXTENSIONS: 'uuid-ossp' - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'services_sessions' - DB_REPLICAS_HOST: 'postgres-applications-reader.internal' - DB_USER: 'services_sessions' - SERVERSIDE_FEATURES_ON: '' - secrets: - DB_PASS: '/k8s/services-sessions/DB_PASSWORD' - namespace: 'services-sessions' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '100m' - memory: '256Mi' secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' DB_PASS: '/k8s/services-sessions/DB_PASSWORD' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/sessions-worker' - create: true - name: 'sessions-worker' +namespace: 'services-sessions' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '100m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/services-sessions/DB_PASSWORD' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/sessions-worker' + create: true + name: 'sessions-worker' diff --git a/charts/services/services-sessions-worker/values.prod.yaml b/charts/services/services-sessions-worker/values.prod.yaml index 12db2631ab9a..430ba3aa97cb 100644 --- a/charts/services/services-sessions-worker/values.prod.yaml +++ b/charts/services/services-sessions-worker/values.prod.yaml @@ -5,99 +5,109 @@ # ##################################################################### -service: - name: 'services-sessions-worker' - args: - - 'main.js' - - '--job=worker' - command: - - 'node' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'services-sessions-worker' +args: + - 'main.js' + - '--job=worker' +command: + - 'node' +enabled: true +env: + DB_EXTENSIONS: 'uuid-ossp' + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'services_sessions' + DB_REPLICAS_HOST: 'postgres-applications.internal' + DB_USER: 'services_sessions' + IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379"]' + REDIS_USE_SSL: 'true' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' +grantNamespaces: + - 'nginx-ingress-internal' + - 'islandis' + - 'identity-server' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 3 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-sessions' +initContainer: + containers: + - args: + - 'sequelize-cli' + - 'db:migrate' + command: + - 'npx' + name: 'migrations' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' env: DB_EXTENSIONS: 'uuid-ossp' DB_HOST: 'postgres-applications.internal' DB_NAME: 'services_sessions' DB_REPLICAS_HOST: 'postgres-applications.internal' DB_USER: 'services_sessions' - IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' - REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379"]' - REDIS_USE_SSL: 'true' SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - grantNamespaces: - - 'nginx-ingress-internal' - - 'islandis' - - 'identity-server' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 3 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-sessions' - initContainer: - containers: - - args: - - 'sequelize-cli' - - 'db:migrate' - command: - - 'npx' - name: 'migrations' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - env: - DB_EXTENSIONS: 'uuid-ossp' - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'services_sessions' - DB_REPLICAS_HOST: 'postgres-applications.internal' - DB_USER: 'services_sessions' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - secrets: - DB_PASS: '/k8s/services-sessions/DB_PASSWORD' - namespace: 'services-sessions' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 3 - max: 10 - min: 3 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '100m' - memory: '256Mi' secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' DB_PASS: '/k8s/services-sessions/DB_PASSWORD' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/sessions-worker' - create: true - name: 'sessions-worker' +namespace: 'services-sessions' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 3 + max: 10 + min: 3 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '100m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/services-sessions/DB_PASSWORD' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/sessions-worker' + create: true + name: 'sessions-worker' diff --git a/charts/services/services-sessions-worker/values.staging.yaml b/charts/services/services-sessions-worker/values.staging.yaml index a738f2833e73..3721d83be564 100644 --- a/charts/services/services-sessions-worker/values.staging.yaml +++ b/charts/services/services-sessions-worker/values.staging.yaml @@ -5,99 +5,109 @@ # ##################################################################### -service: - name: 'services-sessions-worker' - args: - - 'main.js' - - '--job=worker' - command: - - 'node' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'services-sessions-worker' +args: + - 'main.js' + - '--job=worker' +command: + - 'node' +enabled: true +env: + DB_EXTENSIONS: 'uuid-ossp' + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'services_sessions' + DB_REPLICAS_HOST: 'postgres-applications.internal' + DB_USER: 'services_sessions' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' + REDIS_USE_SSL: 'true' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: + - 'nginx-ingress-internal' + - 'islandis' + - 'identity-server' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-sessions' +initContainer: + containers: + - args: + - 'sequelize-cli' + - 'db:migrate' + command: + - 'npx' + name: 'migrations' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' env: DB_EXTENSIONS: 'uuid-ossp' DB_HOST: 'postgres-applications.internal' DB_NAME: 'services_sessions' DB_REPLICAS_HOST: 'postgres-applications.internal' DB_USER: 'services_sessions' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' - REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' - REDIS_USE_SSL: 'true' SERVERSIDE_FEATURES_ON: '' - grantNamespaces: - - 'nginx-ingress-internal' - - 'islandis' - - 'identity-server' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-sessions' - initContainer: - containers: - - args: - - 'sequelize-cli' - - 'db:migrate' - command: - - 'npx' - name: 'migrations' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - env: - DB_EXTENSIONS: 'uuid-ossp' - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'services_sessions' - DB_REPLICAS_HOST: 'postgres-applications.internal' - DB_USER: 'services_sessions' - SERVERSIDE_FEATURES_ON: '' - secrets: - DB_PASS: '/k8s/services-sessions/DB_PASSWORD' - namespace: 'services-sessions' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '100m' - memory: '256Mi' secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' DB_PASS: '/k8s/services-sessions/DB_PASSWORD' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/sessions-worker' - create: true - name: 'sessions-worker' +namespace: 'services-sessions' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '100m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/services-sessions/DB_PASSWORD' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/sessions-worker' + create: true + name: 'sessions-worker' diff --git a/charts/services/services-sessions/values.dev.yaml b/charts/services/services-sessions/values.dev.yaml index 873a839370c4..dfb22e69db69 100644 --- a/charts/services/services-sessions/values.dev.yaml +++ b/charts/services/services-sessions/values.dev.yaml @@ -5,71 +5,81 @@ # ##################################################################### -service: - name: 'services-sessions' - enabled: true +global: env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'services_sessions' - DB_REPLICAS_HOST: 'postgres-applications-reader.internal' - DB_USER: 'services_sessions_read' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' - REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' - REDIS_USE_SSL: 'true' - SERVERSIDE_FEATURES_ON: '' - grantNamespaces: - - 'nginx-ingress-internal' - - 'islandis' - - 'identity-server' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-sessions' - ingress: - internal-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-internal-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'sessions-api.internal.dev01.devland.is' - paths: - - '/' - namespace: 'services-sessions' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 1 - max: 10 - min: 1 - resources: - limits: - cpu: '250m' - memory: '512Mi' - requests: - cpu: '25m' - memory: '300Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DB_PASS: '/k8s/services-sessions/readonly/DB_PASSWORD' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'services-sessions' +enabled: true +env: + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'services_sessions' + DB_REPLICAS_HOST: 'postgres-applications-reader.internal' + DB_USER: 'services_sessions_read' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' + REDIS_USE_SSL: 'true' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: + - 'nginx-ingress-internal' + - 'islandis' + - 'identity-server' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-sessions' +ingress: + internal-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-internal-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'sessions-api.internal.dev01.devland.is' + paths: + - '/' +namespace: 'services-sessions' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 1 + max: 10 + min: 1 +resources: + limits: + cpu: '250m' + memory: '512Mi' + requests: + cpu: '25m' + memory: '300Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/services-sessions/readonly/DB_PASSWORD' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/services-sessions/values.prod.yaml b/charts/services/services-sessions/values.prod.yaml index 3924ef526fae..ac6d8167fb4e 100644 --- a/charts/services/services-sessions/values.prod.yaml +++ b/charts/services/services-sessions/values.prod.yaml @@ -5,71 +5,81 @@ # ##################################################################### -service: - name: 'services-sessions' - enabled: true +global: env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'services_sessions' - DB_REPLICAS_HOST: 'postgres-applications.internal' - DB_USER: 'services_sessions_read' - IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' - REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379"]' - REDIS_USE_SSL: 'true' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - grantNamespaces: - - 'nginx-ingress-internal' - - 'islandis' - - 'identity-server' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-sessions' - ingress: - internal-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-internal-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'sessions-api.internal.island.is' - paths: - - '/' - namespace: 'services-sessions' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 1 - max: 10 - min: 1 - resources: - limits: - cpu: '250m' - memory: '512Mi' - requests: - cpu: '25m' - memory: '300Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DB_PASS: '/k8s/services-sessions/readonly/DB_PASSWORD' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'services-sessions' +enabled: true +env: + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'services_sessions' + DB_REPLICAS_HOST: 'postgres-applications.internal' + DB_USER: 'services_sessions_read' + IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379"]' + REDIS_USE_SSL: 'true' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' +grantNamespaces: + - 'nginx-ingress-internal' + - 'islandis' + - 'identity-server' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-sessions' +ingress: + internal-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-internal-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'sessions-api.internal.island.is' + paths: + - '/' +namespace: 'services-sessions' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 1 + max: 10 + min: 1 +resources: + limits: + cpu: '250m' + memory: '512Mi' + requests: + cpu: '25m' + memory: '300Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/services-sessions/readonly/DB_PASSWORD' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/services-sessions/values.staging.yaml b/charts/services/services-sessions/values.staging.yaml index 946e32fdfb8b..5de452280635 100644 --- a/charts/services/services-sessions/values.staging.yaml +++ b/charts/services/services-sessions/values.staging.yaml @@ -5,71 +5,81 @@ # ##################################################################### -service: - name: 'services-sessions' - enabled: true +global: env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'services_sessions' - DB_REPLICAS_HOST: 'postgres-applications.internal' - DB_USER: 'services_sessions_read' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' - REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' - REDIS_USE_SSL: 'true' - SERVERSIDE_FEATURES_ON: '' - grantNamespaces: - - 'nginx-ingress-internal' - - 'islandis' - - 'identity-server' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-sessions' - ingress: - internal-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-internal-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'sessions-api.internal.staging01.devland.is' - paths: - - '/' - namespace: 'services-sessions' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 1 - max: 10 - min: 1 - resources: - limits: - cpu: '250m' - memory: '512Mi' - requests: - cpu: '25m' - memory: '300Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DB_PASS: '/k8s/services-sessions/readonly/DB_PASSWORD' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'services-sessions' +enabled: true +env: + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'services_sessions' + DB_REPLICAS_HOST: 'postgres-applications.internal' + DB_USER: 'services_sessions_read' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' + REDIS_USE_SSL: 'true' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: + - 'nginx-ingress-internal' + - 'islandis' + - 'identity-server' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-sessions' +ingress: + internal-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-internal-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'sessions-api.internal.staging01.devland.is' + paths: + - '/' +namespace: 'services-sessions' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 1 + max: 10 + min: 1 +resources: + limits: + cpu: '250m' + memory: '512Mi' + requests: + cpu: '25m' + memory: '300Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/services-sessions/readonly/DB_PASSWORD' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/services-university-gateway-worker/values.dev.yaml b/charts/services/services-university-gateway-worker/values.dev.yaml index 8ce8e5a4d296..b219e85aa530 100644 --- a/charts/services/services-university-gateway-worker/values.dev.yaml +++ b/charts/services/services-university-gateway-worker/values.dev.yaml @@ -5,89 +5,99 @@ # ##################################################################### -service: - name: 'services-university-gateway-worker' - args: - - 'main.js' - - '--job' - - 'worker' - command: - - 'node' - enabled: true +global: env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'services_university_gateway' - DB_REPLICAS_HOST: 'postgres-applications-reader.internal' - DB_USER: 'services_university_gateway' - IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/university-gateway' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=345 -r dd-trace/init' - REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' - SERVERSIDE_FEATURES_ON: '' - XROAD_BASE_PATH: 'http://securityserver.dev01.devland.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.dev01.devland.is/r1/IS-DEV' - XROAD_CLIENT_ID: 'IS-DEV/GOV/10000/island-is-client' - XROAD_TLS_BASE_PATH: 'https://securityserver.dev01.devland.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.dev01.devland.is/r1/IS-DEV' - XROAD_UNIVERSITY_GATEWAY_AGRICULTURAL_UNIVERSITY_OF_ICELAND_PATH: 'IS-DEV/EDU/10056/LBHI-Protected/umsoknir-v1' - XROAD_UNIVERSITY_GATEWAY_BIFROST_UNIVERSITY_PATH: 'IS-DEV/EDU/10057/Bifrost-Protected/umsoknir-v1' - XROAD_UNIVERSITY_GATEWAY_HOLAR_UNIVERSITY_PATH: 'IS-DEV/EDU/10055/Holar-Protected/umsoknir-v1' - XROAD_UNIVERSITY_GATEWAY_ICELAND_UNIVERSITY_OF_THE_ARTS_PATH: 'IS-DEV/EDU/10049/LHI-Protected/umsoknir-v1' - XROAD_UNIVERSITY_GATEWAY_REYKJAVIK_UNIVERSITY_PATH: 'IS-DEV/EDU/10062/RvkUni-Hvin-Protected/umsoknir-v1' - XROAD_UNIVERSITY_GATEWAY_UNIVERSITY_OF_AKUREYRI_PATH: 'IS-DEV/EDU/10054/UNAK-Protected/umsoknir-v1' - XROAD_UNIVERSITY_GATEWAY_UNIVERSITY_OF_ICELAND_PATH: 'IS-DEV/EDU/10010/HI-Protected/umsoknir-v1' - grantNamespaces: - - 'islandis' - - 'nginx-ingress-internal' - - 'application-system' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-university-gateway' - namespace: 'services-university-gateway' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '200m' - memory: '384Mi' - requests: - cpu: '50m' - memory: '256Mi' - schedule: '0 * * * *' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DB_PASS: '/k8s/services-university-gateway/DB_PASSWORD' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-university-gateway/IDENTITY_SERVER_CLIENT_SECRET' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/services-university-gateway-worker' - create: true - name: 'services-university-gateway-worker' + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'services-university-gateway-worker' +args: + - 'main.js' + - '--job' + - 'worker' +command: + - 'node' +enabled: true +env: + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'services_university_gateway' + DB_REPLICAS_HOST: 'postgres-applications-reader.internal' + DB_USER: 'services_university_gateway' + IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/university-gateway' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=345 -r dd-trace/init' + REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' + SERVERSIDE_FEATURES_ON: '' + XROAD_BASE_PATH: 'http://securityserver.dev01.devland.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.dev01.devland.is/r1/IS-DEV' + XROAD_CLIENT_ID: 'IS-DEV/GOV/10000/island-is-client' + XROAD_TLS_BASE_PATH: 'https://securityserver.dev01.devland.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.dev01.devland.is/r1/IS-DEV' + XROAD_UNIVERSITY_GATEWAY_AGRICULTURAL_UNIVERSITY_OF_ICELAND_PATH: 'IS-DEV/EDU/10056/LBHI-Protected/umsoknir-v1' + XROAD_UNIVERSITY_GATEWAY_BIFROST_UNIVERSITY_PATH: 'IS-DEV/EDU/10057/Bifrost-Protected/umsoknir-v1' + XROAD_UNIVERSITY_GATEWAY_HOLAR_UNIVERSITY_PATH: 'IS-DEV/EDU/10055/Holar-Protected/umsoknir-v1' + XROAD_UNIVERSITY_GATEWAY_ICELAND_UNIVERSITY_OF_THE_ARTS_PATH: 'IS-DEV/EDU/10049/LHI-Protected/umsoknir-v1' + XROAD_UNIVERSITY_GATEWAY_REYKJAVIK_UNIVERSITY_PATH: 'IS-DEV/EDU/10062/RvkUni-Hvin-Protected/umsoknir-v1' + XROAD_UNIVERSITY_GATEWAY_UNIVERSITY_OF_AKUREYRI_PATH: 'IS-DEV/EDU/10054/UNAK-Protected/umsoknir-v1' + XROAD_UNIVERSITY_GATEWAY_UNIVERSITY_OF_ICELAND_PATH: 'IS-DEV/EDU/10010/HI-Protected/umsoknir-v1' +grantNamespaces: + - 'islandis' + - 'nginx-ingress-internal' + - 'application-system' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-university-gateway' +namespace: 'services-university-gateway' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '200m' + memory: '384Mi' + requests: + cpu: '50m' + memory: '256Mi' +schedule: '0 * * * *' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/services-university-gateway/DB_PASSWORD' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-university-gateway/IDENTITY_SERVER_CLIENT_SECRET' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/services-university-gateway-worker' + create: true + name: 'services-university-gateway-worker' diff --git a/charts/services/services-university-gateway-worker/values.prod.yaml b/charts/services/services-university-gateway-worker/values.prod.yaml index 52f5f260bdac..2827d3e190cc 100644 --- a/charts/services/services-university-gateway-worker/values.prod.yaml +++ b/charts/services/services-university-gateway-worker/values.prod.yaml @@ -5,89 +5,99 @@ # ##################################################################### -service: - name: 'services-university-gateway-worker' - args: - - 'main.js' - - '--job' - - 'worker' - command: - - 'node' - enabled: true +global: env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'services_university_gateway' - DB_REPLICAS_HOST: 'postgres-applications.internal' - DB_USER: 'services_university_gateway' - IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/university-gateway' - IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=345 -r dd-trace/init' - REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379"]' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - XROAD_BASE_PATH: 'http://securityserver.island.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.island.is/r1/IS' - XROAD_CLIENT_ID: 'IS/GOV/5501692829/island-is-client' - XROAD_TLS_BASE_PATH: 'https://securityserver.island.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.island.is/r1/IS' - XROAD_UNIVERSITY_GATEWAY_AGRICULTURAL_UNIVERSITY_OF_ICELAND_PATH: 'IS/EDU/4112043590/LBHI-Protected/umsoknir-v1' - XROAD_UNIVERSITY_GATEWAY_BIFROST_UNIVERSITY_PATH: 'IS/EDU/5502690239/Bifrost-Protected/umsoknir-v1' - XROAD_UNIVERSITY_GATEWAY_HOLAR_UNIVERSITY_PATH: 'IS/EDU/5001694359/Holar-Protected/umsoknir-v1' - XROAD_UNIVERSITY_GATEWAY_ICELAND_UNIVERSITY_OF_THE_ARTS_PATH: 'IS/EDU/4210984099/LHI-Protected/umsoknir-v1' - XROAD_UNIVERSITY_GATEWAY_REYKJAVIK_UNIVERSITY_PATH: 'IS/EDU/5101054190/RvkUni-Hvin-Protected/umsoknir-v1' - XROAD_UNIVERSITY_GATEWAY_UNIVERSITY_OF_AKUREYRI_PATH: 'IS/EDU/5206871229/UNAK-Protected/umsoknir-v1' - XROAD_UNIVERSITY_GATEWAY_UNIVERSITY_OF_ICELAND_PATH: 'IS/EDU/6001692039/HI-Protected/umsoknir-v1' - grantNamespaces: - - 'islandis' - - 'nginx-ingress-internal' - - 'application-system' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 3 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-university-gateway' - namespace: 'services-university-gateway' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 3 - max: 10 - min: 3 - resources: - limits: - cpu: '200m' - memory: '384Mi' - requests: - cpu: '50m' - memory: '256Mi' - schedule: '0 * * * *' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DB_PASS: '/k8s/services-university-gateway/DB_PASSWORD' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-university-gateway/IDENTITY_SERVER_CLIENT_SECRET' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/services-university-gateway-worker' - create: true - name: 'services-university-gateway-worker' + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'services-university-gateway-worker' +args: + - 'main.js' + - '--job' + - 'worker' +command: + - 'node' +enabled: true +env: + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'services_university_gateway' + DB_REPLICAS_HOST: 'postgres-applications.internal' + DB_USER: 'services_university_gateway' + IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/university-gateway' + IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=345 -r dd-trace/init' + REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379"]' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' + XROAD_BASE_PATH: 'http://securityserver.island.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.island.is/r1/IS' + XROAD_CLIENT_ID: 'IS/GOV/5501692829/island-is-client' + XROAD_TLS_BASE_PATH: 'https://securityserver.island.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.island.is/r1/IS' + XROAD_UNIVERSITY_GATEWAY_AGRICULTURAL_UNIVERSITY_OF_ICELAND_PATH: 'IS/EDU/4112043590/LBHI-Protected/umsoknir-v1' + XROAD_UNIVERSITY_GATEWAY_BIFROST_UNIVERSITY_PATH: 'IS/EDU/5502690239/Bifrost-Protected/umsoknir-v1' + XROAD_UNIVERSITY_GATEWAY_HOLAR_UNIVERSITY_PATH: 'IS/EDU/5001694359/Holar-Protected/umsoknir-v1' + XROAD_UNIVERSITY_GATEWAY_ICELAND_UNIVERSITY_OF_THE_ARTS_PATH: 'IS/EDU/4210984099/LHI-Protected/umsoknir-v1' + XROAD_UNIVERSITY_GATEWAY_REYKJAVIK_UNIVERSITY_PATH: 'IS/EDU/5101054190/RvkUni-Hvin-Protected/umsoknir-v1' + XROAD_UNIVERSITY_GATEWAY_UNIVERSITY_OF_AKUREYRI_PATH: 'IS/EDU/5206871229/UNAK-Protected/umsoknir-v1' + XROAD_UNIVERSITY_GATEWAY_UNIVERSITY_OF_ICELAND_PATH: 'IS/EDU/6001692039/HI-Protected/umsoknir-v1' +grantNamespaces: + - 'islandis' + - 'nginx-ingress-internal' + - 'application-system' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 3 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-university-gateway' +namespace: 'services-university-gateway' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 3 + max: 10 + min: 3 +resources: + limits: + cpu: '200m' + memory: '384Mi' + requests: + cpu: '50m' + memory: '256Mi' +schedule: '0 * * * *' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/services-university-gateway/DB_PASSWORD' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-university-gateway/IDENTITY_SERVER_CLIENT_SECRET' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/services-university-gateway-worker' + create: true + name: 'services-university-gateway-worker' diff --git a/charts/services/services-university-gateway-worker/values.staging.yaml b/charts/services/services-university-gateway-worker/values.staging.yaml index e14559e68773..e64ffd48d011 100644 --- a/charts/services/services-university-gateway-worker/values.staging.yaml +++ b/charts/services/services-university-gateway-worker/values.staging.yaml @@ -5,89 +5,99 @@ # ##################################################################### -service: - name: 'services-university-gateway-worker' - args: - - 'main.js' - - '--job' - - 'worker' - command: - - 'node' - enabled: true +global: env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'services_university_gateway' - DB_REPLICAS_HOST: 'postgres-applications.internal' - DB_USER: 'services_university_gateway' - IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/university-gateway' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=345 -r dd-trace/init' - REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' - SERVERSIDE_FEATURES_ON: '' - XROAD_BASE_PATH: 'http://securityserver.staging01.devland.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.staging01.devland.is/r1/IS-TEST' - XROAD_CLIENT_ID: 'IS-TEST/GOV/5501692829/island-is-client' - XROAD_TLS_BASE_PATH: 'https://securityserver.staging01.devland.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.staging01.devland.is/r1/IS-TEST' - XROAD_UNIVERSITY_GATEWAY_AGRICULTURAL_UNIVERSITY_OF_ICELAND_PATH: 'IS-TEST/EDU/10056/LBHI-Protected/umsoknir-v1' - XROAD_UNIVERSITY_GATEWAY_BIFROST_UNIVERSITY_PATH: 'IS-TEST/EDU/10057/Bifrost-Protected/umsoknir-v1' - XROAD_UNIVERSITY_GATEWAY_HOLAR_UNIVERSITY_PATH: 'IS-TEST/EDU/10055/Holar-Protected/umsoknir-v1' - XROAD_UNIVERSITY_GATEWAY_ICELAND_UNIVERSITY_OF_THE_ARTS_PATH: 'IS-TEST/EDU/10049/LHI-Protected/umsoknir-v1' - XROAD_UNIVERSITY_GATEWAY_REYKJAVIK_UNIVERSITY_PATH: 'IS-TEST/EDU/5101054190/RvkUni-Hvin-Protected/umsoknir-v1' - XROAD_UNIVERSITY_GATEWAY_UNIVERSITY_OF_AKUREYRI_PATH: 'IS-TEST/EDU/10054/UNAK-Protected/umsoknir-v1' - XROAD_UNIVERSITY_GATEWAY_UNIVERSITY_OF_ICELAND_PATH: 'IS-TEST/EDU/10010/HI-Protected/umsoknir-v1' - grantNamespaces: - - 'islandis' - - 'nginx-ingress-internal' - - 'application-system' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-university-gateway' - namespace: 'services-university-gateway' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '200m' - memory: '384Mi' - requests: - cpu: '50m' - memory: '256Mi' - schedule: '0 2 * * *' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DB_PASS: '/k8s/services-university-gateway/DB_PASSWORD' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-university-gateway/IDENTITY_SERVER_CLIENT_SECRET' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/services-university-gateway-worker' - create: true - name: 'services-university-gateway-worker' + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'services-university-gateway-worker' +args: + - 'main.js' + - '--job' + - 'worker' +command: + - 'node' +enabled: true +env: + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'services_university_gateway' + DB_REPLICAS_HOST: 'postgres-applications.internal' + DB_USER: 'services_university_gateway' + IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/university-gateway' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=345 -r dd-trace/init' + REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' + SERVERSIDE_FEATURES_ON: '' + XROAD_BASE_PATH: 'http://securityserver.staging01.devland.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.staging01.devland.is/r1/IS-TEST' + XROAD_CLIENT_ID: 'IS-TEST/GOV/5501692829/island-is-client' + XROAD_TLS_BASE_PATH: 'https://securityserver.staging01.devland.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.staging01.devland.is/r1/IS-TEST' + XROAD_UNIVERSITY_GATEWAY_AGRICULTURAL_UNIVERSITY_OF_ICELAND_PATH: 'IS-TEST/EDU/10056/LBHI-Protected/umsoknir-v1' + XROAD_UNIVERSITY_GATEWAY_BIFROST_UNIVERSITY_PATH: 'IS-TEST/EDU/10057/Bifrost-Protected/umsoknir-v1' + XROAD_UNIVERSITY_GATEWAY_HOLAR_UNIVERSITY_PATH: 'IS-TEST/EDU/10055/Holar-Protected/umsoknir-v1' + XROAD_UNIVERSITY_GATEWAY_ICELAND_UNIVERSITY_OF_THE_ARTS_PATH: 'IS-TEST/EDU/10049/LHI-Protected/umsoknir-v1' + XROAD_UNIVERSITY_GATEWAY_REYKJAVIK_UNIVERSITY_PATH: 'IS-TEST/EDU/5101054190/RvkUni-Hvin-Protected/umsoknir-v1' + XROAD_UNIVERSITY_GATEWAY_UNIVERSITY_OF_AKUREYRI_PATH: 'IS-TEST/EDU/10054/UNAK-Protected/umsoknir-v1' + XROAD_UNIVERSITY_GATEWAY_UNIVERSITY_OF_ICELAND_PATH: 'IS-TEST/EDU/10010/HI-Protected/umsoknir-v1' +grantNamespaces: + - 'islandis' + - 'nginx-ingress-internal' + - 'application-system' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-university-gateway' +namespace: 'services-university-gateway' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '200m' + memory: '384Mi' + requests: + cpu: '50m' + memory: '256Mi' +schedule: '0 2 * * *' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/services-university-gateway/DB_PASSWORD' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-university-gateway/IDENTITY_SERVER_CLIENT_SECRET' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/services-university-gateway-worker' + create: true + name: 'services-university-gateway-worker' diff --git a/charts/services/services-university-gateway/values.dev.yaml b/charts/services/services-university-gateway/values.dev.yaml index f402f052ac45..3916a66ca657 100644 --- a/charts/services/services-university-gateway/values.dev.yaml +++ b/charts/services/services-university-gateway/values.dev.yaml @@ -5,131 +5,141 @@ # ##################################################################### -service: - name: 'services-university-gateway' - args: - - 'main.js' - command: - - 'node' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'services-university-gateway' +args: + - 'main.js' +command: + - 'node' +enabled: true +env: + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'services_university_gateway' + DB_REPLICAS_HOST: 'postgres-applications-reader.internal' + DB_USER: 'services_university_gateway' + IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/university-gateway' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=345 -r dd-trace/init' + REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' + SERVERSIDE_FEATURES_ON: '' + XROAD_BASE_PATH: 'http://securityserver.dev01.devland.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.dev01.devland.is/r1/IS-DEV' + XROAD_CLIENT_ID: 'IS-DEV/GOV/10000/island-is-client' + XROAD_TLS_BASE_PATH: 'https://securityserver.dev01.devland.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.dev01.devland.is/r1/IS-DEV' + XROAD_UNIVERSITY_GATEWAY_AGRICULTURAL_UNIVERSITY_OF_ICELAND_PATH: 'IS-DEV/EDU/10056/LBHI-Protected/umsoknir-v1' + XROAD_UNIVERSITY_GATEWAY_BIFROST_UNIVERSITY_PATH: 'IS-DEV/EDU/10057/Bifrost-Protected/umsoknir-v1' + XROAD_UNIVERSITY_GATEWAY_HOLAR_UNIVERSITY_PATH: 'IS-DEV/EDU/10055/Holar-Protected/umsoknir-v1' + XROAD_UNIVERSITY_GATEWAY_ICELAND_UNIVERSITY_OF_THE_ARTS_PATH: 'IS-DEV/EDU/10049/LHI-Protected/umsoknir-v1' + XROAD_UNIVERSITY_GATEWAY_REYKJAVIK_UNIVERSITY_PATH: 'IS-DEV/EDU/10062/RvkUni-Hvin-Protected/umsoknir-v1' + XROAD_UNIVERSITY_GATEWAY_UNIVERSITY_OF_AKUREYRI_PATH: 'IS-DEV/EDU/10054/UNAK-Protected/umsoknir-v1' + XROAD_UNIVERSITY_GATEWAY_UNIVERSITY_OF_ICELAND_PATH: 'IS-DEV/EDU/10010/HI-Protected/umsoknir-v1' +grantNamespaces: + - 'islandis' + - 'nginx-ingress-internal' + - 'application-system' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-university-gateway' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-internal-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'services-university-gateway.internal.dev01.devland.is' + paths: + - '/api' +initContainer: + containers: + - args: + - 'sequelize-cli' + - 'db:migrate' + command: + - 'npx' + name: 'migrations' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' + - args: + - 'sequelize-cli' + - 'db:seed:all' + command: + - 'npx' + name: 'seed' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' env: DB_HOST: 'postgres-applications.internal' DB_NAME: 'services_university_gateway' DB_REPLICAS_HOST: 'postgres-applications-reader.internal' DB_USER: 'services_university_gateway' - IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/university-gateway' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=345 -r dd-trace/init' - REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' SERVERSIDE_FEATURES_ON: '' - XROAD_BASE_PATH: 'http://securityserver.dev01.devland.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.dev01.devland.is/r1/IS-DEV' - XROAD_CLIENT_ID: 'IS-DEV/GOV/10000/island-is-client' - XROAD_TLS_BASE_PATH: 'https://securityserver.dev01.devland.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.dev01.devland.is/r1/IS-DEV' - XROAD_UNIVERSITY_GATEWAY_AGRICULTURAL_UNIVERSITY_OF_ICELAND_PATH: 'IS-DEV/EDU/10056/LBHI-Protected/umsoknir-v1' - XROAD_UNIVERSITY_GATEWAY_BIFROST_UNIVERSITY_PATH: 'IS-DEV/EDU/10057/Bifrost-Protected/umsoknir-v1' - XROAD_UNIVERSITY_GATEWAY_HOLAR_UNIVERSITY_PATH: 'IS-DEV/EDU/10055/Holar-Protected/umsoknir-v1' - XROAD_UNIVERSITY_GATEWAY_ICELAND_UNIVERSITY_OF_THE_ARTS_PATH: 'IS-DEV/EDU/10049/LHI-Protected/umsoknir-v1' - XROAD_UNIVERSITY_GATEWAY_REYKJAVIK_UNIVERSITY_PATH: 'IS-DEV/EDU/10062/RvkUni-Hvin-Protected/umsoknir-v1' - XROAD_UNIVERSITY_GATEWAY_UNIVERSITY_OF_AKUREYRI_PATH: 'IS-DEV/EDU/10054/UNAK-Protected/umsoknir-v1' - XROAD_UNIVERSITY_GATEWAY_UNIVERSITY_OF_ICELAND_PATH: 'IS-DEV/EDU/10010/HI-Protected/umsoknir-v1' - grantNamespaces: - - 'islandis' - - 'nginx-ingress-internal' - - 'application-system' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-university-gateway' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-internal-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'services-university-gateway.internal.dev01.devland.is' - paths: - - '/api' - initContainer: - containers: - - args: - - 'sequelize-cli' - - 'db:migrate' - command: - - 'npx' - name: 'migrations' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - - args: - - 'sequelize-cli' - - 'db:seed:all' - command: - - 'npx' - name: 'seed' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'services_university_gateway' - DB_REPLICAS_HOST: 'postgres-applications-reader.internal' - DB_USER: 'services_university_gateway' - SERVERSIDE_FEATURES_ON: '' - secrets: - DB_PASS: '/k8s/services-university-gateway/DB_PASSWORD' - namespace: 'services-university-gateway' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '200m' - memory: '384Mi' - requests: - cpu: '50m' - memory: '256Mi' secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' DB_PASS: '/k8s/services-university-gateway/DB_PASSWORD' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-university-gateway/IDENTITY_SERVER_CLIENT_SECRET' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/services-university-gateway' - create: true - name: 'services-university-gateway' +namespace: 'services-university-gateway' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '200m' + memory: '384Mi' + requests: + cpu: '50m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/services-university-gateway/DB_PASSWORD' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-university-gateway/IDENTITY_SERVER_CLIENT_SECRET' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/services-university-gateway' + create: true + name: 'services-university-gateway' diff --git a/charts/services/services-university-gateway/values.prod.yaml b/charts/services/services-university-gateway/values.prod.yaml index 41e71669fa69..59ce966458e7 100644 --- a/charts/services/services-university-gateway/values.prod.yaml +++ b/charts/services/services-university-gateway/values.prod.yaml @@ -5,131 +5,141 @@ # ##################################################################### -service: - name: 'services-university-gateway' - args: - - 'main.js' - command: - - 'node' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'services-university-gateway' +args: + - 'main.js' +command: + - 'node' +enabled: true +env: + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'services_university_gateway' + DB_REPLICAS_HOST: 'postgres-applications.internal' + DB_USER: 'services_university_gateway' + IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/university-gateway' + IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=345 -r dd-trace/init' + REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379"]' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' + XROAD_BASE_PATH: 'http://securityserver.island.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.island.is/r1/IS' + XROAD_CLIENT_ID: 'IS/GOV/5501692829/island-is-client' + XROAD_TLS_BASE_PATH: 'https://securityserver.island.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.island.is/r1/IS' + XROAD_UNIVERSITY_GATEWAY_AGRICULTURAL_UNIVERSITY_OF_ICELAND_PATH: 'IS/EDU/4112043590/LBHI-Protected/umsoknir-v1' + XROAD_UNIVERSITY_GATEWAY_BIFROST_UNIVERSITY_PATH: 'IS/EDU/5502690239/Bifrost-Protected/umsoknir-v1' + XROAD_UNIVERSITY_GATEWAY_HOLAR_UNIVERSITY_PATH: 'IS/EDU/5001694359/Holar-Protected/umsoknir-v1' + XROAD_UNIVERSITY_GATEWAY_ICELAND_UNIVERSITY_OF_THE_ARTS_PATH: 'IS/EDU/4210984099/LHI-Protected/umsoknir-v1' + XROAD_UNIVERSITY_GATEWAY_REYKJAVIK_UNIVERSITY_PATH: 'IS/EDU/5101054190/RvkUni-Hvin-Protected/umsoknir-v1' + XROAD_UNIVERSITY_GATEWAY_UNIVERSITY_OF_AKUREYRI_PATH: 'IS/EDU/5206871229/UNAK-Protected/umsoknir-v1' + XROAD_UNIVERSITY_GATEWAY_UNIVERSITY_OF_ICELAND_PATH: 'IS/EDU/6001692039/HI-Protected/umsoknir-v1' +grantNamespaces: + - 'islandis' + - 'nginx-ingress-internal' + - 'application-system' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-university-gateway' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-internal-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'services-university-gateway.internal.island.is' + paths: + - '/api' +initContainer: + containers: + - args: + - 'sequelize-cli' + - 'db:migrate' + command: + - 'npx' + name: 'migrations' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' + - args: + - 'sequelize-cli' + - 'db:seed:all' + command: + - 'npx' + name: 'seed' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' env: DB_HOST: 'postgres-applications.internal' DB_NAME: 'services_university_gateway' DB_REPLICAS_HOST: 'postgres-applications.internal' DB_USER: 'services_university_gateway' - IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/university-gateway' - IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=345 -r dd-trace/init' - REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379"]' SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - XROAD_BASE_PATH: 'http://securityserver.island.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.island.is/r1/IS' - XROAD_CLIENT_ID: 'IS/GOV/5501692829/island-is-client' - XROAD_TLS_BASE_PATH: 'https://securityserver.island.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.island.is/r1/IS' - XROAD_UNIVERSITY_GATEWAY_AGRICULTURAL_UNIVERSITY_OF_ICELAND_PATH: 'IS/EDU/4112043590/LBHI-Protected/umsoknir-v1' - XROAD_UNIVERSITY_GATEWAY_BIFROST_UNIVERSITY_PATH: 'IS/EDU/5502690239/Bifrost-Protected/umsoknir-v1' - XROAD_UNIVERSITY_GATEWAY_HOLAR_UNIVERSITY_PATH: 'IS/EDU/5001694359/Holar-Protected/umsoknir-v1' - XROAD_UNIVERSITY_GATEWAY_ICELAND_UNIVERSITY_OF_THE_ARTS_PATH: 'IS/EDU/4210984099/LHI-Protected/umsoknir-v1' - XROAD_UNIVERSITY_GATEWAY_REYKJAVIK_UNIVERSITY_PATH: 'IS/EDU/5101054190/RvkUni-Hvin-Protected/umsoknir-v1' - XROAD_UNIVERSITY_GATEWAY_UNIVERSITY_OF_AKUREYRI_PATH: 'IS/EDU/5206871229/UNAK-Protected/umsoknir-v1' - XROAD_UNIVERSITY_GATEWAY_UNIVERSITY_OF_ICELAND_PATH: 'IS/EDU/6001692039/HI-Protected/umsoknir-v1' - grantNamespaces: - - 'islandis' - - 'nginx-ingress-internal' - - 'application-system' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-university-gateway' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-internal-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'services-university-gateway.internal.island.is' - paths: - - '/api' - initContainer: - containers: - - args: - - 'sequelize-cli' - - 'db:migrate' - command: - - 'npx' - name: 'migrations' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - - args: - - 'sequelize-cli' - - 'db:seed:all' - command: - - 'npx' - name: 'seed' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'services_university_gateway' - DB_REPLICAS_HOST: 'postgres-applications.internal' - DB_USER: 'services_university_gateway' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - secrets: - DB_PASS: '/k8s/services-university-gateway/DB_PASSWORD' - namespace: 'services-university-gateway' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '200m' - memory: '384Mi' - requests: - cpu: '50m' - memory: '256Mi' secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' DB_PASS: '/k8s/services-university-gateway/DB_PASSWORD' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-university-gateway/IDENTITY_SERVER_CLIENT_SECRET' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/services-university-gateway' - create: true - name: 'services-university-gateway' +namespace: 'services-university-gateway' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '200m' + memory: '384Mi' + requests: + cpu: '50m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/services-university-gateway/DB_PASSWORD' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-university-gateway/IDENTITY_SERVER_CLIENT_SECRET' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/services-university-gateway' + create: true + name: 'services-university-gateway' diff --git a/charts/services/services-university-gateway/values.staging.yaml b/charts/services/services-university-gateway/values.staging.yaml index d97d8e508183..688dd16644f0 100644 --- a/charts/services/services-university-gateway/values.staging.yaml +++ b/charts/services/services-university-gateway/values.staging.yaml @@ -5,131 +5,141 @@ # ##################################################################### -service: - name: 'services-university-gateway' - args: - - 'main.js' - command: - - 'node' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'services-university-gateway' +args: + - 'main.js' +command: + - 'node' +enabled: true +env: + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'services_university_gateway' + DB_REPLICAS_HOST: 'postgres-applications.internal' + DB_USER: 'services_university_gateway' + IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/university-gateway' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=345 -r dd-trace/init' + REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' + SERVERSIDE_FEATURES_ON: '' + XROAD_BASE_PATH: 'http://securityserver.staging01.devland.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.staging01.devland.is/r1/IS-TEST' + XROAD_CLIENT_ID: 'IS-TEST/GOV/5501692829/island-is-client' + XROAD_TLS_BASE_PATH: 'https://securityserver.staging01.devland.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.staging01.devland.is/r1/IS-TEST' + XROAD_UNIVERSITY_GATEWAY_AGRICULTURAL_UNIVERSITY_OF_ICELAND_PATH: 'IS-TEST/EDU/10056/LBHI-Protected/umsoknir-v1' + XROAD_UNIVERSITY_GATEWAY_BIFROST_UNIVERSITY_PATH: 'IS-TEST/EDU/10057/Bifrost-Protected/umsoknir-v1' + XROAD_UNIVERSITY_GATEWAY_HOLAR_UNIVERSITY_PATH: 'IS-TEST/EDU/10055/Holar-Protected/umsoknir-v1' + XROAD_UNIVERSITY_GATEWAY_ICELAND_UNIVERSITY_OF_THE_ARTS_PATH: 'IS-TEST/EDU/10049/LHI-Protected/umsoknir-v1' + XROAD_UNIVERSITY_GATEWAY_REYKJAVIK_UNIVERSITY_PATH: 'IS-TEST/EDU/5101054190/RvkUni-Hvin-Protected/umsoknir-v1' + XROAD_UNIVERSITY_GATEWAY_UNIVERSITY_OF_AKUREYRI_PATH: 'IS-TEST/EDU/10054/UNAK-Protected/umsoknir-v1' + XROAD_UNIVERSITY_GATEWAY_UNIVERSITY_OF_ICELAND_PATH: 'IS-TEST/EDU/10010/HI-Protected/umsoknir-v1' +grantNamespaces: + - 'islandis' + - 'nginx-ingress-internal' + - 'application-system' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-university-gateway' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-internal-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'services-university-gateway.internal.staging01.devland.is' + paths: + - '/api' +initContainer: + containers: + - args: + - 'sequelize-cli' + - 'db:migrate' + command: + - 'npx' + name: 'migrations' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' + - args: + - 'sequelize-cli' + - 'db:seed:all' + command: + - 'npx' + name: 'seed' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' env: DB_HOST: 'postgres-applications.internal' DB_NAME: 'services_university_gateway' DB_REPLICAS_HOST: 'postgres-applications.internal' DB_USER: 'services_university_gateway' - IDENTITY_SERVER_CLIENT_ID: '@island.is/clients/university-gateway' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=345 -r dd-trace/init' - REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' SERVERSIDE_FEATURES_ON: '' - XROAD_BASE_PATH: 'http://securityserver.staging01.devland.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.staging01.devland.is/r1/IS-TEST' - XROAD_CLIENT_ID: 'IS-TEST/GOV/5501692829/island-is-client' - XROAD_TLS_BASE_PATH: 'https://securityserver.staging01.devland.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.staging01.devland.is/r1/IS-TEST' - XROAD_UNIVERSITY_GATEWAY_AGRICULTURAL_UNIVERSITY_OF_ICELAND_PATH: 'IS-TEST/EDU/10056/LBHI-Protected/umsoknir-v1' - XROAD_UNIVERSITY_GATEWAY_BIFROST_UNIVERSITY_PATH: 'IS-TEST/EDU/10057/Bifrost-Protected/umsoknir-v1' - XROAD_UNIVERSITY_GATEWAY_HOLAR_UNIVERSITY_PATH: 'IS-TEST/EDU/10055/Holar-Protected/umsoknir-v1' - XROAD_UNIVERSITY_GATEWAY_ICELAND_UNIVERSITY_OF_THE_ARTS_PATH: 'IS-TEST/EDU/10049/LHI-Protected/umsoknir-v1' - XROAD_UNIVERSITY_GATEWAY_REYKJAVIK_UNIVERSITY_PATH: 'IS-TEST/EDU/5101054190/RvkUni-Hvin-Protected/umsoknir-v1' - XROAD_UNIVERSITY_GATEWAY_UNIVERSITY_OF_AKUREYRI_PATH: 'IS-TEST/EDU/10054/UNAK-Protected/umsoknir-v1' - XROAD_UNIVERSITY_GATEWAY_UNIVERSITY_OF_ICELAND_PATH: 'IS-TEST/EDU/10010/HI-Protected/umsoknir-v1' - grantNamespaces: - - 'islandis' - - 'nginx-ingress-internal' - - 'application-system' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-university-gateway' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-internal-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'services-university-gateway.internal.staging01.devland.is' - paths: - - '/api' - initContainer: - containers: - - args: - - 'sequelize-cli' - - 'db:migrate' - command: - - 'npx' - name: 'migrations' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - - args: - - 'sequelize-cli' - - 'db:seed:all' - command: - - 'npx' - name: 'seed' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'services_university_gateway' - DB_REPLICAS_HOST: 'postgres-applications.internal' - DB_USER: 'services_university_gateway' - SERVERSIDE_FEATURES_ON: '' - secrets: - DB_PASS: '/k8s/services-university-gateway/DB_PASSWORD' - namespace: 'services-university-gateway' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '200m' - memory: '384Mi' - requests: - cpu: '50m' - memory: '256Mi' secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' DB_PASS: '/k8s/services-university-gateway/DB_PASSWORD' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-university-gateway/IDENTITY_SERVER_CLIENT_SECRET' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/services-university-gateway' - create: true - name: 'services-university-gateway' +namespace: 'services-university-gateway' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '200m' + memory: '384Mi' + requests: + cpu: '50m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/services-university-gateway/DB_PASSWORD' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/services-university-gateway/IDENTITY_SERVER_CLIENT_SECRET' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/services-university-gateway' + create: true + name: 'services-university-gateway' diff --git a/charts/services/skilavottord-web/values.dev.yaml b/charts/services/skilavottord-web/values.dev.yaml index 6fb0b20b8d27..3a79f9ea475e 100644 --- a/charts/services/skilavottord-web/values.dev.yaml +++ b/charts/services/skilavottord-web/values.dev.yaml @@ -5,71 +5,81 @@ # ##################################################################### -service: - name: 'skilavottord-web' - enabled: true +global: env: - API_URL: 'http://web-skilavottord-ws' - ENVIRONMENT: 'dev' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - grantNamespaces: - - 'nginx-ingress-external' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 8 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/skilavottord-web' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'beta.dev01.devland.is' - paths: - - '/app/skilavottord/' - namespace: 'skilavottord' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '40m' - memory: '256Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DD_RUM_APPLICATION_ID: '/k8s/DD_RUM_APPLICATION_ID' - DD_RUM_CLIENT_TOKEN: '/k8s/DD_RUM_CLIENT_TOKEN' - IDENTITY_SERVER_DOMAIN: '/k8s/skilavottord/web/IDENTITY_SERVER_DOMAIN' - IDENTITY_SERVER_LOGOUT_REDIRECT_URL: '/k8s/skilavottord/web/IDENTITY_SERVER_LOGOUT_REDIRECT_URL' - NEXTAUTH_URL: '/k8s/skilavottord/web/NEXTAUTH_URL' - SKILAVOTTORD_WEB_IDS_CLIENT_SECRET: '/k8s/skilavottord/web/IDENTITY_SERVER_CLIENT_SECRET' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'skilavottord-web' +enabled: true +env: + API_URL: 'http://web-skilavottord-ws' + ENVIRONMENT: 'dev' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: + - 'nginx-ingress-external' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 8 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/skilavottord-web' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'beta.dev01.devland.is' + paths: + - '/app/skilavottord/' +namespace: 'skilavottord' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '40m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DD_RUM_APPLICATION_ID: '/k8s/DD_RUM_APPLICATION_ID' + DD_RUM_CLIENT_TOKEN: '/k8s/DD_RUM_CLIENT_TOKEN' + IDENTITY_SERVER_DOMAIN: '/k8s/skilavottord/web/IDENTITY_SERVER_DOMAIN' + IDENTITY_SERVER_LOGOUT_REDIRECT_URL: '/k8s/skilavottord/web/IDENTITY_SERVER_LOGOUT_REDIRECT_URL' + NEXTAUTH_URL: '/k8s/skilavottord/web/NEXTAUTH_URL' + SKILAVOTTORD_WEB_IDS_CLIENT_SECRET: '/k8s/skilavottord/web/IDENTITY_SERVER_CLIENT_SECRET' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/skilavottord-web/values.prod.yaml b/charts/services/skilavottord-web/values.prod.yaml index 9c145e2baa6e..1e749d8d079b 100644 --- a/charts/services/skilavottord-web/values.prod.yaml +++ b/charts/services/skilavottord-web/values.prod.yaml @@ -5,74 +5,84 @@ # ##################################################################### -service: - name: 'skilavottord-web' - enabled: true +global: env: - API_URL: 'http://web-skilavottord-ws' - ENVIRONMENT: 'prod' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - grantNamespaces: - - 'nginx-ingress-external' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 8 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/skilavottord-web' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'island.is' - paths: - - '/app/skilavottord/' - - host: 'www.island.is' - paths: - - '/app/skilavottord/' - namespace: 'skilavottord' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '40m' - memory: '256Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DD_RUM_APPLICATION_ID: '/k8s/DD_RUM_APPLICATION_ID' - DD_RUM_CLIENT_TOKEN: '/k8s/DD_RUM_CLIENT_TOKEN' - IDENTITY_SERVER_DOMAIN: '/k8s/skilavottord/web/IDENTITY_SERVER_DOMAIN' - IDENTITY_SERVER_LOGOUT_REDIRECT_URL: '/k8s/skilavottord/web/IDENTITY_SERVER_LOGOUT_REDIRECT_URL' - NEXTAUTH_URL: '/k8s/skilavottord/web/NEXTAUTH_URL' - SKILAVOTTORD_WEB_IDS_CLIENT_SECRET: '/k8s/skilavottord/web/IDENTITY_SERVER_CLIENT_SECRET' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'skilavottord-web' +enabled: true +env: + API_URL: 'http://web-skilavottord-ws' + ENVIRONMENT: 'prod' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' +grantNamespaces: + - 'nginx-ingress-external' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 8 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/skilavottord-web' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'island.is' + paths: + - '/app/skilavottord/' + - host: 'www.island.is' + paths: + - '/app/skilavottord/' +namespace: 'skilavottord' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '40m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DD_RUM_APPLICATION_ID: '/k8s/DD_RUM_APPLICATION_ID' + DD_RUM_CLIENT_TOKEN: '/k8s/DD_RUM_CLIENT_TOKEN' + IDENTITY_SERVER_DOMAIN: '/k8s/skilavottord/web/IDENTITY_SERVER_DOMAIN' + IDENTITY_SERVER_LOGOUT_REDIRECT_URL: '/k8s/skilavottord/web/IDENTITY_SERVER_LOGOUT_REDIRECT_URL' + NEXTAUTH_URL: '/k8s/skilavottord/web/NEXTAUTH_URL' + SKILAVOTTORD_WEB_IDS_CLIENT_SECRET: '/k8s/skilavottord/web/IDENTITY_SERVER_CLIENT_SECRET' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/skilavottord-web/values.staging.yaml b/charts/services/skilavottord-web/values.staging.yaml index 7668b7bf5b05..592971c93b7c 100644 --- a/charts/services/skilavottord-web/values.staging.yaml +++ b/charts/services/skilavottord-web/values.staging.yaml @@ -5,71 +5,81 @@ # ##################################################################### -service: - name: 'skilavottord-web' - enabled: true +global: env: - API_URL: 'http://web-skilavottord-ws' - ENVIRONMENT: 'staging' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - grantNamespaces: - - 'nginx-ingress-external' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 8 - replicas: - max: 10 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/skilavottord-web' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'beta.staging01.devland.is' - paths: - - '/app/skilavottord/' - namespace: 'skilavottord' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 2 - max: 10 - min: 2 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '40m' - memory: '256Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DD_RUM_APPLICATION_ID: '/k8s/DD_RUM_APPLICATION_ID' - DD_RUM_CLIENT_TOKEN: '/k8s/DD_RUM_CLIENT_TOKEN' - IDENTITY_SERVER_DOMAIN: '/k8s/skilavottord/web/IDENTITY_SERVER_DOMAIN' - IDENTITY_SERVER_LOGOUT_REDIRECT_URL: '/k8s/skilavottord/web/IDENTITY_SERVER_LOGOUT_REDIRECT_URL' - NEXTAUTH_URL: '/k8s/skilavottord/web/NEXTAUTH_URL' - SKILAVOTTORD_WEB_IDS_CLIENT_SECRET: '/k8s/skilavottord/web/IDENTITY_SERVER_CLIENT_SECRET' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'skilavottord-web' +enabled: true +env: + API_URL: 'http://web-skilavottord-ws' + ENVIRONMENT: 'staging' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: + - 'nginx-ingress-external' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 8 + replicas: + max: 10 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/skilavottord-web' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'beta.staging01.devland.is' + paths: + - '/app/skilavottord/' +namespace: 'skilavottord' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 2 + max: 10 + min: 2 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '40m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DD_RUM_APPLICATION_ID: '/k8s/DD_RUM_APPLICATION_ID' + DD_RUM_CLIENT_TOKEN: '/k8s/DD_RUM_CLIENT_TOKEN' + IDENTITY_SERVER_DOMAIN: '/k8s/skilavottord/web/IDENTITY_SERVER_DOMAIN' + IDENTITY_SERVER_LOGOUT_REDIRECT_URL: '/k8s/skilavottord/web/IDENTITY_SERVER_LOGOUT_REDIRECT_URL' + NEXTAUTH_URL: '/k8s/skilavottord/web/NEXTAUTH_URL' + SKILAVOTTORD_WEB_IDS_CLIENT_SECRET: '/k8s/skilavottord/web/IDENTITY_SERVER_CLIENT_SECRET' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/skilavottord-ws/values.dev.yaml b/charts/services/skilavottord-ws/values.dev.yaml index 3205ebeb0e62..912a0807fa3a 100644 --- a/charts/services/skilavottord-ws/values.dev.yaml +++ b/charts/services/skilavottord-ws/values.dev.yaml @@ -5,100 +5,110 @@ # ##################################################################### -service: - name: 'skilavottord-ws' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'skilavottord-ws' +enabled: true +env: + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'skilavottord' + DB_REPLICAS_HOST: 'postgres-applications-reader.internal' + DB_USER: 'skilavottord' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: + - 'application-system' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/skilavottord-ws' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'beta.dev01.devland.is' + paths: + - '/app/skilavottord/api/graphql' +initContainer: + containers: + - args: + - 'sequelize-cli' + - 'db:migrate' + command: + - 'npx' + name: 'migrations' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' env: DB_HOST: 'postgres-applications.internal' DB_NAME: 'skilavottord' DB_REPLICAS_HOST: 'postgres-applications-reader.internal' DB_USER: 'skilavottord' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' SERVERSIDE_FEATURES_ON: '' - grantNamespaces: - - 'application-system' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/skilavottord-ws' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'beta.dev01.devland.is' - paths: - - '/app/skilavottord/api/graphql' - initContainer: - containers: - - args: - - 'sequelize-cli' - - 'db:migrate' - command: - - 'npx' - name: 'migrations' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'skilavottord' - DB_REPLICAS_HOST: 'postgres-applications-reader.internal' - DB_USER: 'skilavottord' - SERVERSIDE_FEATURES_ON: '' - secrets: - DB_PASS: '/k8s/skilavottord/DB_PASSWORD' - namespace: 'skilavottord' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '40m' - memory: '256Mi' secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' DB_PASS: '/k8s/skilavottord/DB_PASSWORD' - FJARSYSLA_REST_PASS: '/k8s/skilavottord/FJARSYSLA_REST_PASS' - FJARSYSLA_REST_URL: '/k8s/skilavottord-ws/FJARSYSLA_REST_URL' - FJARSYSLA_REST_USER: '/k8s/skilavottord/FJARSYSLA_REST_USER' - SAMGONGUSTOFA_REST_AUTH_URL: '/k8s/skilavottord-ws/SAMGONGUSTOFA_REST_AUTH_URL' - SAMGONGUSTOFA_REST_DEREG_URL: '/k8s/skilavottord-ws/SAMGONGUSTOFA_REST_DEREG_URL' - SAMGONGUSTOFA_REST_PASS: '/k8s/skilavottord/SAMGONGUSTOFA_REST_PASS' - SAMGONGUSTOFA_REST_USER: '/k8s/skilavottord/SAMGONGUSTOFA_REST_USER' - SAMGONGUSTOFA_SOAP_PASS: '/k8s/skilavottord/SAMGONGUSTOFA_SOAP_PASS' - SAMGONGUSTOFA_SOAP_URL: '/k8s/skilavottord-ws/SAMGONGUSTOFA_SOAP_URL' - SAMGONGUSTOFA_SOAP_USER: '/k8s/skilavottord/SAMGONGUSTOFA_SOAP_USER' - securityContext: - allowPrivilegeEscalation: false - privileged: false +namespace: 'skilavottord' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '40m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/skilavottord/DB_PASSWORD' + FJARSYSLA_REST_PASS: '/k8s/skilavottord/FJARSYSLA_REST_PASS' + FJARSYSLA_REST_URL: '/k8s/skilavottord-ws/FJARSYSLA_REST_URL' + FJARSYSLA_REST_USER: '/k8s/skilavottord/FJARSYSLA_REST_USER' + SAMGONGUSTOFA_REST_AUTH_URL: '/k8s/skilavottord-ws/SAMGONGUSTOFA_REST_AUTH_URL' + SAMGONGUSTOFA_REST_DEREG_URL: '/k8s/skilavottord-ws/SAMGONGUSTOFA_REST_DEREG_URL' + SAMGONGUSTOFA_REST_PASS: '/k8s/skilavottord/SAMGONGUSTOFA_REST_PASS' + SAMGONGUSTOFA_REST_USER: '/k8s/skilavottord/SAMGONGUSTOFA_REST_USER' + SAMGONGUSTOFA_SOAP_PASS: '/k8s/skilavottord/SAMGONGUSTOFA_SOAP_PASS' + SAMGONGUSTOFA_SOAP_URL: '/k8s/skilavottord-ws/SAMGONGUSTOFA_SOAP_URL' + SAMGONGUSTOFA_SOAP_USER: '/k8s/skilavottord/SAMGONGUSTOFA_SOAP_USER' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/skilavottord-ws/values.prod.yaml b/charts/services/skilavottord-ws/values.prod.yaml index 02e0783cc579..2cbcfc7a20e5 100644 --- a/charts/services/skilavottord-ws/values.prod.yaml +++ b/charts/services/skilavottord-ws/values.prod.yaml @@ -5,103 +5,113 @@ # ##################################################################### -service: - name: 'skilavottord-ws' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'skilavottord-ws' +enabled: true +env: + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'skilavottord' + DB_REPLICAS_HOST: 'postgres-applications.internal' + DB_USER: 'skilavottord' + IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' +grantNamespaces: + - 'application-system' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 3 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/skilavottord-ws' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'island.is' + paths: + - '/app/skilavottord/api/graphql' + - host: 'www.island.is' + paths: + - '/app/skilavottord/api/graphql' +initContainer: + containers: + - args: + - 'sequelize-cli' + - 'db:migrate' + command: + - 'npx' + name: 'migrations' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' env: DB_HOST: 'postgres-applications.internal' DB_NAME: 'skilavottord' DB_REPLICAS_HOST: 'postgres-applications.internal' DB_USER: 'skilavottord' - IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - grantNamespaces: - - 'application-system' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 3 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/skilavottord-ws' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'island.is' - paths: - - '/app/skilavottord/api/graphql' - - host: 'www.island.is' - paths: - - '/app/skilavottord/api/graphql' - initContainer: - containers: - - args: - - 'sequelize-cli' - - 'db:migrate' - command: - - 'npx' - name: 'migrations' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'skilavottord' - DB_REPLICAS_HOST: 'postgres-applications.internal' - DB_USER: 'skilavottord' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - secrets: - DB_PASS: '/k8s/skilavottord/DB_PASSWORD' - namespace: 'skilavottord' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 3 - max: 10 - min: 3 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '40m' - memory: '256Mi' secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' DB_PASS: '/k8s/skilavottord/DB_PASSWORD' - FJARSYSLA_REST_PASS: '/k8s/skilavottord/FJARSYSLA_REST_PASS' - FJARSYSLA_REST_URL: '/k8s/skilavottord-ws/FJARSYSLA_REST_URL' - FJARSYSLA_REST_USER: '/k8s/skilavottord/FJARSYSLA_REST_USER' - SAMGONGUSTOFA_REST_AUTH_URL: '/k8s/skilavottord-ws/SAMGONGUSTOFA_REST_AUTH_URL' - SAMGONGUSTOFA_REST_DEREG_URL: '/k8s/skilavottord-ws/SAMGONGUSTOFA_REST_DEREG_URL' - SAMGONGUSTOFA_REST_PASS: '/k8s/skilavottord/SAMGONGUSTOFA_REST_PASS' - SAMGONGUSTOFA_REST_USER: '/k8s/skilavottord/SAMGONGUSTOFA_REST_USER' - SAMGONGUSTOFA_SOAP_PASS: '/k8s/skilavottord/SAMGONGUSTOFA_SOAP_PASS' - SAMGONGUSTOFA_SOAP_URL: '/k8s/skilavottord-ws/SAMGONGUSTOFA_SOAP_URL' - SAMGONGUSTOFA_SOAP_USER: '/k8s/skilavottord/SAMGONGUSTOFA_SOAP_USER' - securityContext: - allowPrivilegeEscalation: false - privileged: false +namespace: 'skilavottord' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 3 + max: 10 + min: 3 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '40m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/skilavottord/DB_PASSWORD' + FJARSYSLA_REST_PASS: '/k8s/skilavottord/FJARSYSLA_REST_PASS' + FJARSYSLA_REST_URL: '/k8s/skilavottord-ws/FJARSYSLA_REST_URL' + FJARSYSLA_REST_USER: '/k8s/skilavottord/FJARSYSLA_REST_USER' + SAMGONGUSTOFA_REST_AUTH_URL: '/k8s/skilavottord-ws/SAMGONGUSTOFA_REST_AUTH_URL' + SAMGONGUSTOFA_REST_DEREG_URL: '/k8s/skilavottord-ws/SAMGONGUSTOFA_REST_DEREG_URL' + SAMGONGUSTOFA_REST_PASS: '/k8s/skilavottord/SAMGONGUSTOFA_REST_PASS' + SAMGONGUSTOFA_REST_USER: '/k8s/skilavottord/SAMGONGUSTOFA_REST_USER' + SAMGONGUSTOFA_SOAP_PASS: '/k8s/skilavottord/SAMGONGUSTOFA_SOAP_PASS' + SAMGONGUSTOFA_SOAP_URL: '/k8s/skilavottord-ws/SAMGONGUSTOFA_SOAP_URL' + SAMGONGUSTOFA_SOAP_USER: '/k8s/skilavottord/SAMGONGUSTOFA_SOAP_USER' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/skilavottord-ws/values.staging.yaml b/charts/services/skilavottord-ws/values.staging.yaml index 6ae7f7f33757..7589387d597d 100644 --- a/charts/services/skilavottord-ws/values.staging.yaml +++ b/charts/services/skilavottord-ws/values.staging.yaml @@ -5,100 +5,110 @@ # ##################################################################### -service: - name: 'skilavottord-ws' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'skilavottord-ws' +enabled: true +env: + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'skilavottord' + DB_REPLICAS_HOST: 'postgres-applications.internal' + DB_USER: 'skilavottord' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: + - 'application-system' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/skilavottord-ws' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'beta.staging01.devland.is' + paths: + - '/app/skilavottord/api/graphql' +initContainer: + containers: + - args: + - 'sequelize-cli' + - 'db:migrate' + command: + - 'npx' + name: 'migrations' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' env: DB_HOST: 'postgres-applications.internal' DB_NAME: 'skilavottord' DB_REPLICAS_HOST: 'postgres-applications.internal' DB_USER: 'skilavottord' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=460 -r dd-trace/init' SERVERSIDE_FEATURES_ON: '' - grantNamespaces: - - 'application-system' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/skilavottord-ws' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'beta.staging01.devland.is' - paths: - - '/app/skilavottord/api/graphql' - initContainer: - containers: - - args: - - 'sequelize-cli' - - 'db:migrate' - command: - - 'npx' - name: 'migrations' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'skilavottord' - DB_REPLICAS_HOST: 'postgres-applications.internal' - DB_USER: 'skilavottord' - SERVERSIDE_FEATURES_ON: '' - secrets: - DB_PASS: '/k8s/skilavottord/DB_PASSWORD' - namespace: 'skilavottord' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '400m' - memory: '512Mi' - requests: - cpu: '40m' - memory: '256Mi' secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' DB_PASS: '/k8s/skilavottord/DB_PASSWORD' - FJARSYSLA_REST_PASS: '/k8s/skilavottord/FJARSYSLA_REST_PASS' - FJARSYSLA_REST_URL: '/k8s/skilavottord-ws/FJARSYSLA_REST_URL' - FJARSYSLA_REST_USER: '/k8s/skilavottord/FJARSYSLA_REST_USER' - SAMGONGUSTOFA_REST_AUTH_URL: '/k8s/skilavottord-ws/SAMGONGUSTOFA_REST_AUTH_URL' - SAMGONGUSTOFA_REST_DEREG_URL: '/k8s/skilavottord-ws/SAMGONGUSTOFA_REST_DEREG_URL' - SAMGONGUSTOFA_REST_PASS: '/k8s/skilavottord/SAMGONGUSTOFA_REST_PASS' - SAMGONGUSTOFA_REST_USER: '/k8s/skilavottord/SAMGONGUSTOFA_REST_USER' - SAMGONGUSTOFA_SOAP_PASS: '/k8s/skilavottord/SAMGONGUSTOFA_SOAP_PASS' - SAMGONGUSTOFA_SOAP_URL: '/k8s/skilavottord-ws/SAMGONGUSTOFA_SOAP_URL' - SAMGONGUSTOFA_SOAP_USER: '/k8s/skilavottord/SAMGONGUSTOFA_SOAP_USER' - securityContext: - allowPrivilegeEscalation: false - privileged: false +namespace: 'skilavottord' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '400m' + memory: '512Mi' + requests: + cpu: '40m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/skilavottord/DB_PASSWORD' + FJARSYSLA_REST_PASS: '/k8s/skilavottord/FJARSYSLA_REST_PASS' + FJARSYSLA_REST_URL: '/k8s/skilavottord-ws/FJARSYSLA_REST_URL' + FJARSYSLA_REST_USER: '/k8s/skilavottord/FJARSYSLA_REST_USER' + SAMGONGUSTOFA_REST_AUTH_URL: '/k8s/skilavottord-ws/SAMGONGUSTOFA_REST_AUTH_URL' + SAMGONGUSTOFA_REST_DEREG_URL: '/k8s/skilavottord-ws/SAMGONGUSTOFA_REST_DEREG_URL' + SAMGONGUSTOFA_REST_PASS: '/k8s/skilavottord/SAMGONGUSTOFA_REST_PASS' + SAMGONGUSTOFA_REST_USER: '/k8s/skilavottord/SAMGONGUSTOFA_REST_USER' + SAMGONGUSTOFA_SOAP_PASS: '/k8s/skilavottord/SAMGONGUSTOFA_SOAP_PASS' + SAMGONGUSTOFA_SOAP_URL: '/k8s/skilavottord-ws/SAMGONGUSTOFA_SOAP_URL' + SAMGONGUSTOFA_SOAP_USER: '/k8s/skilavottord/SAMGONGUSTOFA_SOAP_USER' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/user-notification-cleanup-worker/values.dev.yaml b/charts/services/user-notification-cleanup-worker/values.dev.yaml index 7eab21aa6c9f..0a120dea2a1a 100644 --- a/charts/services/user-notification-cleanup-worker/values.dev.yaml +++ b/charts/services/user-notification-cleanup-worker/values.dev.yaml @@ -5,96 +5,106 @@ # ##################################################################### -service: - name: 'user-notification-cleanup-worker' - args: - - '--no-experimental-fetch' - - 'main.js' - - '--job=cleanup' - command: - - 'node' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'user-notification-cleanup-worker' +args: + - '--no-experimental-fetch' + - 'main.js' + - '--job=cleanup' +command: + - 'node' +enabled: true +env: + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'user_notification' + DB_REPLICAS_HOST: 'postgres-applications-reader.internal' + DB_USER: 'user_notification' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: + - 'nginx-ingress-internal' + - 'islandis' + - 'identity-server-delegation' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-user-notification' +initContainer: + containers: + - args: + - 'sequelize-cli' + - 'db:migrate' + command: + - 'npx' + name: 'migrations' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' env: DB_HOST: 'postgres-applications.internal' DB_NAME: 'user_notification' DB_REPLICAS_HOST: 'postgres-applications-reader.internal' DB_USER: 'user_notification' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' SERVERSIDE_FEATURES_ON: '' - grantNamespaces: - - 'nginx-ingress-internal' - - 'islandis' - - 'identity-server-delegation' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-user-notification' - initContainer: - containers: - - args: - - 'sequelize-cli' - - 'db:migrate' - command: - - 'npx' - name: 'migrations' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'user_notification' - DB_REPLICAS_HOST: 'postgres-applications-reader.internal' - DB_USER: 'user_notification' - SERVERSIDE_FEATURES_ON: '' - secrets: - DB_PASS: '/k8s/user-notification/DB_PASSWORD' - namespace: 'user-notification' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '100m' - memory: '128Mi' - schedule: '@hourly' secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' DB_PASS: '/k8s/user-notification/DB_PASSWORD' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/user-notification-cleanup-worker' - create: true - name: 'user-notification-cleanup-worker' +namespace: 'user-notification' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '100m' + memory: '128Mi' +schedule: '@hourly' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/user-notification/DB_PASSWORD' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/user-notification-cleanup-worker' + create: true + name: 'user-notification-cleanup-worker' diff --git a/charts/services/user-notification-cleanup-worker/values.prod.yaml b/charts/services/user-notification-cleanup-worker/values.prod.yaml index 2b64fab9e9c5..d8fce489b1a7 100644 --- a/charts/services/user-notification-cleanup-worker/values.prod.yaml +++ b/charts/services/user-notification-cleanup-worker/values.prod.yaml @@ -5,96 +5,106 @@ # ##################################################################### -service: - name: 'user-notification-cleanup-worker' - args: - - '--no-experimental-fetch' - - 'main.js' - - '--job=cleanup' - command: - - 'node' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'user-notification-cleanup-worker' +args: + - '--no-experimental-fetch' + - 'main.js' + - '--job=cleanup' +command: + - 'node' +enabled: true +env: + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'user_notification' + DB_REPLICAS_HOST: 'postgres-applications.internal' + DB_USER: 'user_notification' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' +grantNamespaces: + - 'nginx-ingress-internal' + - 'islandis' + - 'identity-server-delegation' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 3 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-user-notification' +initContainer: + containers: + - args: + - 'sequelize-cli' + - 'db:migrate' + command: + - 'npx' + name: 'migrations' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' env: DB_HOST: 'postgres-applications.internal' DB_NAME: 'user_notification' DB_REPLICAS_HOST: 'postgres-applications.internal' DB_USER: 'user_notification' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - grantNamespaces: - - 'nginx-ingress-internal' - - 'islandis' - - 'identity-server-delegation' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 3 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-user-notification' - initContainer: - containers: - - args: - - 'sequelize-cli' - - 'db:migrate' - command: - - 'npx' - name: 'migrations' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'user_notification' - DB_REPLICAS_HOST: 'postgres-applications.internal' - DB_USER: 'user_notification' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - secrets: - DB_PASS: '/k8s/user-notification/DB_PASSWORD' - namespace: 'user-notification' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 3 - max: 10 - min: 3 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '100m' - memory: '128Mi' - schedule: '@midnight' secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' DB_PASS: '/k8s/user-notification/DB_PASSWORD' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/user-notification-cleanup-worker' - create: true - name: 'user-notification-cleanup-worker' +namespace: 'user-notification' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 3 + max: 10 + min: 3 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '100m' + memory: '128Mi' +schedule: '@midnight' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/user-notification/DB_PASSWORD' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/user-notification-cleanup-worker' + create: true + name: 'user-notification-cleanup-worker' diff --git a/charts/services/user-notification-cleanup-worker/values.staging.yaml b/charts/services/user-notification-cleanup-worker/values.staging.yaml index f2a28de06fdb..f2e7f59cd8c1 100644 --- a/charts/services/user-notification-cleanup-worker/values.staging.yaml +++ b/charts/services/user-notification-cleanup-worker/values.staging.yaml @@ -5,96 +5,106 @@ # ##################################################################### -service: - name: 'user-notification-cleanup-worker' - args: - - '--no-experimental-fetch' - - 'main.js' - - '--job=cleanup' - command: - - 'node' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'user-notification-cleanup-worker' +args: + - '--no-experimental-fetch' + - 'main.js' + - '--job=cleanup' +command: + - 'node' +enabled: true +env: + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'user_notification' + DB_REPLICAS_HOST: 'postgres-applications.internal' + DB_USER: 'user_notification' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' +grantNamespaces: + - 'nginx-ingress-internal' + - 'islandis' + - 'identity-server-delegation' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-user-notification' +initContainer: + containers: + - args: + - 'sequelize-cli' + - 'db:migrate' + command: + - 'npx' + name: 'migrations' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' env: DB_HOST: 'postgres-applications.internal' DB_NAME: 'user_notification' DB_REPLICAS_HOST: 'postgres-applications.internal' DB_USER: 'user_notification' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' SERVERSIDE_FEATURES_ON: '' - grantNamespaces: - - 'nginx-ingress-internal' - - 'islandis' - - 'identity-server-delegation' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-user-notification' - initContainer: - containers: - - args: - - 'sequelize-cli' - - 'db:migrate' - command: - - 'npx' - name: 'migrations' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'user_notification' - DB_REPLICAS_HOST: 'postgres-applications.internal' - DB_USER: 'user_notification' - SERVERSIDE_FEATURES_ON: '' - secrets: - DB_PASS: '/k8s/user-notification/DB_PASSWORD' - namespace: 'user-notification' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '100m' - memory: '128Mi' - schedule: '@midnight' secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' DB_PASS: '/k8s/user-notification/DB_PASSWORD' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/user-notification-cleanup-worker' - create: true - name: 'user-notification-cleanup-worker' +namespace: 'user-notification' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '100m' + memory: '128Mi' +schedule: '@midnight' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DB_PASS: '/k8s/user-notification/DB_PASSWORD' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/user-notification-cleanup-worker' + create: true + name: 'user-notification-cleanup-worker' diff --git a/charts/services/user-notification-worker/values.dev.yaml b/charts/services/user-notification-worker/values.dev.yaml index 0513749491fe..1bf7c01440c1 100644 --- a/charts/services/user-notification-worker/values.dev.yaml +++ b/charts/services/user-notification-worker/values.dev.yaml @@ -5,123 +5,133 @@ # ##################################################################### -service: - name: 'user-notification-worker' - args: - - '--no-experimental-fetch' - - 'main.js' - - '--job=worker' - command: - - 'node' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'user-notification-worker' +args: + - '--no-experimental-fetch' + - 'main.js' + - '--job=worker' +command: + - 'node' +enabled: true +env: + AUTH_DELEGATION_API_URL: 'http://web-services-auth-delegation-api.identity-server-delegation.svc.cluster.local' + AUTH_DELEGATION_MACHINE_CLIENT_SCOPE: '["@island.is/auth/delegations/index:system"]' + COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' + COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS-DEV/GOV/10006/Skatturinn/ft-v1' + CONTENTFUL_HOST: 'preview.contentful.com' + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'user_notification' + DB_REPLICAS_HOST: 'postgres-applications-reader.internal' + DB_USER: 'user_notification' + DEAD_LETTER_QUEUE_NAME: 'user-notification-failure' + EMAIL_FROM_ADDRESS: 'development@island.is' + EMAIL_REGION: 'eu-west-1' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' + LOG_LEVEL: 'info' + MAIN_QUEUE_NAME: 'user-notification' + NATIONAL_REGISTRY_B2C_CLIENT_ID: 'b464afdd-056b-406d-b650-6d41733cfeb7' + NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentitydev.b2clogin.com/skraidentitydev.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' + NATIONAL_REGISTRY_B2C_PATH: 'IS-DEV/GOV/10001/SKRA-Cloud-Protected/Midlun-v1' + NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentitydev.onmicrosoft.com/midlun/.default' + NODE_OPTIONS: '--max-old-space-size=345 -r dd-trace/init' + REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' + REDIS_USE_SSL: 'true' + SERVERSIDE_FEATURES_ON: '' + SERVICE_PORTAL_CLICK_ACTION_URL: 'https://island.is/minarsidur' + USER_PROFILE_CLIENT_URL: 'http://web-service-portal-api.service-portal.svc.cluster.local' + XROAD_BASE_PATH: 'http://securityserver.dev01.devland.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.dev01.devland.is/r1/IS-DEV' + XROAD_CLIENT_ID: 'IS-DEV/GOV/10000/island-is-client' + XROAD_TLS_BASE_PATH: 'https://securityserver.dev01.devland.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.dev01.devland.is/r1/IS-DEV' +grantNamespaces: + - 'nginx-ingress-internal' + - 'islandis' + - 'identity-server-delegation' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/health/check' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 2 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-user-notification' +initContainer: + containers: + - args: + - 'sequelize-cli' + - 'db:migrate' + command: + - 'npx' + name: 'migrations' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' env: - AUTH_DELEGATION_API_URL: 'http://web-services-auth-delegation-api.identity-server-delegation.svc.cluster.local' - AUTH_DELEGATION_MACHINE_CLIENT_SCOPE: '["@island.is/auth/delegations/index:system"]' - COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' - COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS-DEV/GOV/10006/Skatturinn/ft-v1' - CONTENTFUL_HOST: 'preview.contentful.com' DB_HOST: 'postgres-applications.internal' DB_NAME: 'user_notification' DB_REPLICAS_HOST: 'postgres-applications-reader.internal' DB_USER: 'user_notification' - DEAD_LETTER_QUEUE_NAME: 'user-notification-failure' - EMAIL_FROM_ADDRESS: 'development@island.is' - EMAIL_REGION: 'eu-west-1' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' - LOG_LEVEL: 'info' - MAIN_QUEUE_NAME: 'user-notification' - NATIONAL_REGISTRY_B2C_CLIENT_ID: 'b464afdd-056b-406d-b650-6d41733cfeb7' - NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentitydev.b2clogin.com/skraidentitydev.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' - NATIONAL_REGISTRY_B2C_PATH: 'IS-DEV/GOV/10001/SKRA-Cloud-Protected/Midlun-v1' - NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentitydev.onmicrosoft.com/midlun/.default' - NODE_OPTIONS: '--max-old-space-size=345 -r dd-trace/init' - REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' - REDIS_USE_SSL: 'true' SERVERSIDE_FEATURES_ON: '' - SERVICE_PORTAL_CLICK_ACTION_URL: 'https://island.is/minarsidur' - USER_PROFILE_CLIENT_URL: 'http://web-service-portal-api.service-portal.svc.cluster.local' - XROAD_BASE_PATH: 'http://securityserver.dev01.devland.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.dev01.devland.is/r1/IS-DEV' - XROAD_CLIENT_ID: 'IS-DEV/GOV/10000/island-is-client' - XROAD_TLS_BASE_PATH: 'https://securityserver.dev01.devland.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.dev01.devland.is/r1/IS-DEV' - grantNamespaces: - - 'nginx-ingress-internal' - - 'islandis' - - 'identity-server-delegation' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/health/check' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 2 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-user-notification' - initContainer: - containers: - - args: - - 'sequelize-cli' - - 'db:migrate' - command: - - 'npx' - name: 'migrations' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'user_notification' - DB_REPLICAS_HOST: 'postgres-applications-reader.internal' - DB_USER: 'user_notification' - SERVERSIDE_FEATURES_ON: '' - secrets: - DB_PASS: '/k8s/user-notification/DB_PASSWORD' - namespace: 'user-notification' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 1 - max: 2 - min: 1 - resources: - limits: - cpu: '400m' - memory: '384Mi' - requests: - cpu: '150m' - memory: '256Mi' secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - CONTENTFUL_ACCESS_TOKEN: '/k8s/user-notification/CONTENTFUL_ACCESS_TOKEN' DB_PASS: '/k8s/user-notification/DB_PASSWORD' - FIREBASE_CREDENTIALS: '/k8s/user-notification/firestore-credentials' - IDENTITY_SERVER_CLIENT_ID: '/k8s/user-notification/USER_NOTIFICATION_CLIENT_ID' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/user-notification/USER_NOTIFICATION_CLIENT_SECRET' - NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/api/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/user-notification-worker' - create: true - name: 'user-notification-worker' +namespace: 'user-notification' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 1 + max: 2 + min: 1 +resources: + limits: + cpu: '400m' + memory: '384Mi' + requests: + cpu: '150m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + CONTENTFUL_ACCESS_TOKEN: '/k8s/user-notification/CONTENTFUL_ACCESS_TOKEN' + DB_PASS: '/k8s/user-notification/DB_PASSWORD' + FIREBASE_CREDENTIALS: '/k8s/user-notification/firestore-credentials' + IDENTITY_SERVER_CLIENT_ID: '/k8s/user-notification/USER_NOTIFICATION_CLIENT_ID' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/user-notification/USER_NOTIFICATION_CLIENT_SECRET' + NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/api/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/user-notification-worker' + create: true + name: 'user-notification-worker' diff --git a/charts/services/user-notification-worker/values.prod.yaml b/charts/services/user-notification-worker/values.prod.yaml index 617a16a5f6a0..2ce3c5f1e8f6 100644 --- a/charts/services/user-notification-worker/values.prod.yaml +++ b/charts/services/user-notification-worker/values.prod.yaml @@ -5,123 +5,133 @@ # ##################################################################### -service: - name: 'user-notification-worker' - args: - - '--no-experimental-fetch' - - 'main.js' - - '--job=worker' - command: - - 'node' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'user-notification-worker' +args: + - '--no-experimental-fetch' + - 'main.js' + - '--job=worker' +command: + - 'node' +enabled: true +env: + AUTH_DELEGATION_API_URL: 'https://auth-delegation-api.internal.innskra.island.is' + AUTH_DELEGATION_MACHINE_CLIENT_SCOPE: '["@island.is/auth/delegations/index:system"]' + COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379"]' + COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS/GOV/5402696029/Skatturinn/ft-v1' + CONTENTFUL_HOST: 'cdn.contentful.com' + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'user_notification' + DB_REPLICAS_HOST: 'postgres-applications.internal' + DB_USER: 'user_notification' + DEAD_LETTER_QUEUE_NAME: 'user-notification-failure' + EMAIL_FROM_ADDRESS: 'noreply@island.is' + EMAIL_REGION: 'eu-west-1' + IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' + LOG_LEVEL: 'info' + MAIN_QUEUE_NAME: 'user-notification' + NATIONAL_REGISTRY_B2C_CLIENT_ID: '2304d7ca-7ed3-4188-8b6d-e1b7e0e3df7f' + NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentity.b2clogin.com/skraidentity.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' + NATIONAL_REGISTRY_B2C_PATH: 'IS/GOV/6503760649/SKRA-Cloud-Protected/Midlun-v1' + NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentity.onmicrosoft.com/midlun/.default' + NODE_OPTIONS: '--max-old-space-size=345 -r dd-trace/init' + REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379"]' + REDIS_USE_SSL: 'true' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' + SERVICE_PORTAL_CLICK_ACTION_URL: 'https://island.is/minarsidur' + USER_PROFILE_CLIENT_URL: 'http://web-service-portal-api.service-portal.svc.cluster.local' + XROAD_BASE_PATH: 'http://securityserver.island.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.island.is/r1/IS' + XROAD_CLIENT_ID: 'IS/GOV/5501692829/island-is-client' + XROAD_TLS_BASE_PATH: 'https://securityserver.island.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.island.is/r1/IS' +grantNamespaces: + - 'nginx-ingress-internal' + - 'islandis' + - 'identity-server-delegation' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/health/check' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 2 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-user-notification' +initContainer: + containers: + - args: + - 'sequelize-cli' + - 'db:migrate' + command: + - 'npx' + name: 'migrations' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' env: - AUTH_DELEGATION_API_URL: 'https://auth-delegation-api.internal.innskra.island.is' - AUTH_DELEGATION_MACHINE_CLIENT_SCOPE: '["@island.is/auth/delegations/index:system"]' - COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379"]' - COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS/GOV/5402696029/Skatturinn/ft-v1' - CONTENTFUL_HOST: 'cdn.contentful.com' DB_HOST: 'postgres-applications.internal' DB_NAME: 'user_notification' DB_REPLICAS_HOST: 'postgres-applications.internal' DB_USER: 'user_notification' - DEAD_LETTER_QUEUE_NAME: 'user-notification-failure' - EMAIL_FROM_ADDRESS: 'noreply@island.is' - EMAIL_REGION: 'eu-west-1' - IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' - LOG_LEVEL: 'info' - MAIN_QUEUE_NAME: 'user-notification' - NATIONAL_REGISTRY_B2C_CLIENT_ID: '2304d7ca-7ed3-4188-8b6d-e1b7e0e3df7f' - NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentity.b2clogin.com/skraidentity.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' - NATIONAL_REGISTRY_B2C_PATH: 'IS/GOV/6503760649/SKRA-Cloud-Protected/Midlun-v1' - NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentity.onmicrosoft.com/midlun/.default' - NODE_OPTIONS: '--max-old-space-size=345 -r dd-trace/init' - REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379"]' - REDIS_USE_SSL: 'true' SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - SERVICE_PORTAL_CLICK_ACTION_URL: 'https://island.is/minarsidur' - USER_PROFILE_CLIENT_URL: 'http://web-service-portal-api.service-portal.svc.cluster.local' - XROAD_BASE_PATH: 'http://securityserver.island.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.island.is/r1/IS' - XROAD_CLIENT_ID: 'IS/GOV/5501692829/island-is-client' - XROAD_TLS_BASE_PATH: 'https://securityserver.island.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.island.is/r1/IS' - grantNamespaces: - - 'nginx-ingress-internal' - - 'islandis' - - 'identity-server-delegation' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/health/check' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 2 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-user-notification' - initContainer: - containers: - - args: - - 'sequelize-cli' - - 'db:migrate' - command: - - 'npx' - name: 'migrations' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'user_notification' - DB_REPLICAS_HOST: 'postgres-applications.internal' - DB_USER: 'user_notification' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - secrets: - DB_PASS: '/k8s/user-notification/DB_PASSWORD' - namespace: 'user-notification' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 1 - max: 2 - min: 1 - resources: - limits: - cpu: '400m' - memory: '384Mi' - requests: - cpu: '150m' - memory: '256Mi' secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - CONTENTFUL_ACCESS_TOKEN: '/k8s/user-notification/CONTENTFUL_ACCESS_TOKEN' DB_PASS: '/k8s/user-notification/DB_PASSWORD' - FIREBASE_CREDENTIALS: '/k8s/user-notification/firestore-credentials' - IDENTITY_SERVER_CLIENT_ID: '/k8s/user-notification/USER_NOTIFICATION_CLIENT_ID' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/user-notification/USER_NOTIFICATION_CLIENT_SECRET' - NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/api/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/user-notification-worker' - create: true - name: 'user-notification-worker' +namespace: 'user-notification' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 1 + max: 2 + min: 1 +resources: + limits: + cpu: '400m' + memory: '384Mi' + requests: + cpu: '150m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + CONTENTFUL_ACCESS_TOKEN: '/k8s/user-notification/CONTENTFUL_ACCESS_TOKEN' + DB_PASS: '/k8s/user-notification/DB_PASSWORD' + FIREBASE_CREDENTIALS: '/k8s/user-notification/firestore-credentials' + IDENTITY_SERVER_CLIENT_ID: '/k8s/user-notification/USER_NOTIFICATION_CLIENT_ID' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/user-notification/USER_NOTIFICATION_CLIENT_SECRET' + NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/api/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/user-notification-worker' + create: true + name: 'user-notification-worker' diff --git a/charts/services/user-notification-worker/values.staging.yaml b/charts/services/user-notification-worker/values.staging.yaml index 5e07417e0b03..6016cd6dfdea 100644 --- a/charts/services/user-notification-worker/values.staging.yaml +++ b/charts/services/user-notification-worker/values.staging.yaml @@ -5,123 +5,133 @@ # ##################################################################### -service: - name: 'user-notification-worker' - args: - - '--no-experimental-fetch' - - 'main.js' - - '--job=worker' - command: - - 'node' - enabled: true +global: + env: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'user-notification-worker' +args: + - '--no-experimental-fetch' + - 'main.js' + - '--job=worker' +command: + - 'node' +enabled: true +env: + AUTH_DELEGATION_API_URL: 'http://web-services-auth-delegation-api.identity-server-delegation.svc.cluster.local' + AUTH_DELEGATION_MACHINE_CLIENT_SCOPE: '["@island.is/auth/delegations/index:system"]' + COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' + COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS-TEST/GOV/5402696029/Skatturinn/ft-v1' + CONTENTFUL_HOST: 'cdn.contentful.com' + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'user_notification' + DB_REPLICAS_HOST: 'postgres-applications.internal' + DB_USER: 'user_notification' + DEAD_LETTER_QUEUE_NAME: 'user-notification-failure' + EMAIL_FROM_ADDRESS: 'development@island.is' + EMAIL_REGION: 'eu-west-1' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' + LOG_LEVEL: 'info' + MAIN_QUEUE_NAME: 'user-notification' + NATIONAL_REGISTRY_B2C_CLIENT_ID: 'ca128c23-b43c-443d-bade-ec5a146a933f' + NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentitydev.b2clogin.com/skraidentitystaging.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' + NATIONAL_REGISTRY_B2C_PATH: 'IS-TEST/GOV/6503760649/SKRA-Cloud-Protected/Midlun-v1' + NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentitystaging.onmicrosoft.com/midlun/.default' + NODE_OPTIONS: '--max-old-space-size=345 -r dd-trace/init' + REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' + REDIS_USE_SSL: 'true' + SERVERSIDE_FEATURES_ON: '' + SERVICE_PORTAL_CLICK_ACTION_URL: 'https://island.is/minarsidur' + USER_PROFILE_CLIENT_URL: 'http://web-service-portal-api.service-portal.svc.cluster.local' + XROAD_BASE_PATH: 'http://securityserver.staging01.devland.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.staging01.devland.is/r1/IS-TEST' + XROAD_CLIENT_ID: 'IS-TEST/GOV/5501692829/island-is-client' + XROAD_TLS_BASE_PATH: 'https://securityserver.staging01.devland.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.staging01.devland.is/r1/IS-TEST' +grantNamespaces: + - 'nginx-ingress-internal' + - 'islandis' + - 'identity-server-delegation' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/health/check' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 2 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-user-notification' +initContainer: + containers: + - args: + - 'sequelize-cli' + - 'db:migrate' + command: + - 'npx' + name: 'migrations' + resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '50m' + memory: '128Mi' env: - AUTH_DELEGATION_API_URL: 'http://web-services-auth-delegation-api.identity-server-delegation.svc.cluster.local' - AUTH_DELEGATION_MACHINE_CLIENT_SCOPE: '["@island.is/auth/delegations/index:system"]' - COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' - COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS-TEST/GOV/5402696029/Skatturinn/ft-v1' - CONTENTFUL_HOST: 'cdn.contentful.com' DB_HOST: 'postgres-applications.internal' DB_NAME: 'user_notification' DB_REPLICAS_HOST: 'postgres-applications.internal' DB_USER: 'user_notification' - DEAD_LETTER_QUEUE_NAME: 'user-notification-failure' - EMAIL_FROM_ADDRESS: 'development@island.is' - EMAIL_REGION: 'eu-west-1' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' - LOG_LEVEL: 'info' - MAIN_QUEUE_NAME: 'user-notification' - NATIONAL_REGISTRY_B2C_CLIENT_ID: 'ca128c23-b43c-443d-bade-ec5a146a933f' - NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentitydev.b2clogin.com/skraidentitystaging.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' - NATIONAL_REGISTRY_B2C_PATH: 'IS-TEST/GOV/6503760649/SKRA-Cloud-Protected/Midlun-v1' - NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentitystaging.onmicrosoft.com/midlun/.default' - NODE_OPTIONS: '--max-old-space-size=345 -r dd-trace/init' - REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' - REDIS_USE_SSL: 'true' SERVERSIDE_FEATURES_ON: '' - SERVICE_PORTAL_CLICK_ACTION_URL: 'https://island.is/minarsidur' - USER_PROFILE_CLIENT_URL: 'http://web-service-portal-api.service-portal.svc.cluster.local' - XROAD_BASE_PATH: 'http://securityserver.staging01.devland.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.staging01.devland.is/r1/IS-TEST' - XROAD_CLIENT_ID: 'IS-TEST/GOV/5501692829/island-is-client' - XROAD_TLS_BASE_PATH: 'https://securityserver.staging01.devland.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.staging01.devland.is/r1/IS-TEST' - grantNamespaces: - - 'nginx-ingress-internal' - - 'islandis' - - 'identity-server-delegation' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/health/check' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 2 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-user-notification' - initContainer: - containers: - - args: - - 'sequelize-cli' - - 'db:migrate' - command: - - 'npx' - name: 'migrations' - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '50m' - memory: '128Mi' - env: - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'user_notification' - DB_REPLICAS_HOST: 'postgres-applications.internal' - DB_USER: 'user_notification' - SERVERSIDE_FEATURES_ON: '' - secrets: - DB_PASS: '/k8s/user-notification/DB_PASSWORD' - namespace: 'user-notification' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 1 - max: 2 - min: 1 - resources: - limits: - cpu: '400m' - memory: '384Mi' - requests: - cpu: '150m' - memory: '256Mi' secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - CONTENTFUL_ACCESS_TOKEN: '/k8s/user-notification/CONTENTFUL_ACCESS_TOKEN' DB_PASS: '/k8s/user-notification/DB_PASSWORD' - FIREBASE_CREDENTIALS: '/k8s/user-notification/firestore-credentials' - IDENTITY_SERVER_CLIENT_ID: '/k8s/user-notification/USER_NOTIFICATION_CLIENT_ID' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/user-notification/USER_NOTIFICATION_CLIENT_SECRET' - NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/api/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/user-notification-worker' - create: true - name: 'user-notification-worker' +namespace: 'user-notification' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 1 + max: 2 + min: 1 +resources: + limits: + cpu: '400m' + memory: '384Mi' + requests: + cpu: '150m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + CONTENTFUL_ACCESS_TOKEN: '/k8s/user-notification/CONTENTFUL_ACCESS_TOKEN' + DB_PASS: '/k8s/user-notification/DB_PASSWORD' + FIREBASE_CREDENTIALS: '/k8s/user-notification/firestore-credentials' + IDENTITY_SERVER_CLIENT_ID: '/k8s/user-notification/USER_NOTIFICATION_CLIENT_ID' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/user-notification/USER_NOTIFICATION_CLIENT_SECRET' + NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/api/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/user-notification-worker' + create: true + name: 'user-notification-worker' diff --git a/charts/services/user-notification/values.dev.yaml b/charts/services/user-notification/values.dev.yaml index 1ef373013b2e..de82ce62f772 100644 --- a/charts/services/user-notification/values.dev.yaml +++ b/charts/services/user-notification/values.dev.yaml @@ -5,108 +5,118 @@ # ##################################################################### -service: - name: 'user-notification' - args: - - '--no-experimental-fetch' - - 'main.js' - command: - - 'node' - enabled: true +global: env: - AUTH_DELEGATION_API_URL: 'http://web-services-auth-delegation-api.identity-server-delegation.svc.cluster.local' - AUTH_DELEGATION_MACHINE_CLIENT_SCOPE: '["@island.is/auth/delegations/index:system"]' - COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' - COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS-DEV/GOV/10006/Skatturinn/ft-v1' - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'user_notification' - DB_REPLICAS_HOST: 'postgres-applications-reader.internal' - DB_USER: 'user_notification' - DEAD_LETTER_QUEUE_NAME: 'user-notification-failure' - EMAIL_FROM_ADDRESS: 'development@island.is' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' - LOG_LEVEL: 'info' - MAIN_QUEUE_NAME: 'user-notification' - NATIONAL_REGISTRY_B2C_CLIENT_ID: 'b464afdd-056b-406d-b650-6d41733cfeb7' - NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentitydev.b2clogin.com/skraidentitydev.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' - NATIONAL_REGISTRY_B2C_PATH: 'IS-DEV/GOV/10001/SKRA-Cloud-Protected/Midlun-v1' - NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentitydev.onmicrosoft.com/midlun/.default' - NODE_OPTIONS: '--max-old-space-size=345 -r dd-trace/init' - REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' - REDIS_USE_SSL: 'true' - SERVERSIDE_FEATURES_ON: '' - SERVICE_PORTAL_CLICK_ACTION_URL: 'https://island.is/minarsidur' - USER_PROFILE_CLIENT_URL: 'http://web-service-portal-api.service-portal.svc.cluster.local' - XROAD_BASE_PATH: 'http://securityserver.dev01.devland.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.dev01.devland.is/r1/IS-DEV' - XROAD_CLIENT_ID: 'IS-DEV/GOV/10000/island-is-client' - XROAD_TLS_BASE_PATH: 'https://securityserver.dev01.devland.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.dev01.devland.is/r1/IS-DEV' - grantNamespaces: - - 'nginx-ingress-internal' - - 'islandis' - - 'identity-server-delegation' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/health/check' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-user-notification' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-internal-alb' - nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'user-notification-xrd.internal.dev01.devland.is' - paths: - - '/' - namespace: 'user-notification' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '400m' - memory: '384Mi' - requests: - cpu: '150m' - memory: '256Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - CONTENTFUL_ACCESS_TOKEN: '/k8s/user-notification/CONTENTFUL_ACCESS_TOKEN' - DB_PASS: '/k8s/user-notification/DB_PASSWORD' - FIREBASE_CREDENTIALS: '/k8s/user-notification/firestore-credentials' - IDENTITY_SERVER_CLIENT_ID: '/k8s/user-notification/USER_NOTIFICATION_CLIENT_ID' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/user-notification/USER_NOTIFICATION_CLIENT_SECRET' - NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/api/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'user-notification' +args: + - '--no-experimental-fetch' + - 'main.js' +command: + - 'node' +enabled: true +env: + AUTH_DELEGATION_API_URL: 'http://web-services-auth-delegation-api.identity-server-delegation.svc.cluster.local' + AUTH_DELEGATION_MACHINE_CLIENT_SCOPE: '["@island.is/auth/delegations/index:system"]' + COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' + COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS-DEV/GOV/10006/Skatturinn/ft-v1' + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'user_notification' + DB_REPLICAS_HOST: 'postgres-applications-reader.internal' + DB_USER: 'user_notification' + DEAD_LETTER_QUEUE_NAME: 'user-notification-failure' + EMAIL_FROM_ADDRESS: 'development@island.is' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.dev01.devland.is' + LOG_LEVEL: 'info' + MAIN_QUEUE_NAME: 'user-notification' + NATIONAL_REGISTRY_B2C_CLIENT_ID: 'b464afdd-056b-406d-b650-6d41733cfeb7' + NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentitydev.b2clogin.com/skraidentitydev.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' + NATIONAL_REGISTRY_B2C_PATH: 'IS-DEV/GOV/10001/SKRA-Cloud-Protected/Midlun-v1' + NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentitydev.onmicrosoft.com/midlun/.default' + NODE_OPTIONS: '--max-old-space-size=345 -r dd-trace/init' + REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.5fzau3.euw1.cache.amazonaws.com:6379"]' + REDIS_USE_SSL: 'true' + SERVERSIDE_FEATURES_ON: '' + SERVICE_PORTAL_CLICK_ACTION_URL: 'https://island.is/minarsidur' + USER_PROFILE_CLIENT_URL: 'http://web-service-portal-api.service-portal.svc.cluster.local' + XROAD_BASE_PATH: 'http://securityserver.dev01.devland.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.dev01.devland.is/r1/IS-DEV' + XROAD_CLIENT_ID: 'IS-DEV/GOV/10000/island-is-client' + XROAD_TLS_BASE_PATH: 'https://securityserver.dev01.devland.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.dev01.devland.is/r1/IS-DEV' +grantNamespaces: + - 'nginx-ingress-internal' + - 'islandis' + - 'identity-server-delegation' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/health/check' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-user-notification' +ingress: + primary-alb: annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/user-notification' - create: true - name: 'user-notification' + kubernetes.io/ingress.class: 'nginx-internal-alb' + nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'user-notification-xrd.internal.dev01.devland.is' + paths: + - '/' +namespace: 'user-notification' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '400m' + memory: '384Mi' + requests: + cpu: '150m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + CONTENTFUL_ACCESS_TOKEN: '/k8s/user-notification/CONTENTFUL_ACCESS_TOKEN' + DB_PASS: '/k8s/user-notification/DB_PASSWORD' + FIREBASE_CREDENTIALS: '/k8s/user-notification/firestore-credentials' + IDENTITY_SERVER_CLIENT_ID: '/k8s/user-notification/USER_NOTIFICATION_CLIENT_ID' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/user-notification/USER_NOTIFICATION_CLIENT_SECRET' + NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/api/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/user-notification' + create: true + name: 'user-notification' diff --git a/charts/services/user-notification/values.prod.yaml b/charts/services/user-notification/values.prod.yaml index cc8901065d01..5431ce0f5d1c 100644 --- a/charts/services/user-notification/values.prod.yaml +++ b/charts/services/user-notification/values.prod.yaml @@ -5,108 +5,118 @@ # ##################################################################### -service: - name: 'user-notification' - args: - - '--no-experimental-fetch' - - 'main.js' - command: - - 'node' - enabled: true +global: env: - AUTH_DELEGATION_API_URL: 'https://auth-delegation-api.internal.innskra.island.is' - AUTH_DELEGATION_MACHINE_CLIENT_SCOPE: '["@island.is/auth/delegations/index:system"]' - COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379"]' - COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS/GOV/5402696029/Skatturinn/ft-v1' - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'user_notification' - DB_REPLICAS_HOST: 'postgres-applications.internal' - DB_USER: 'user_notification' - DEAD_LETTER_QUEUE_NAME: 'user-notification-failure' - EMAIL_FROM_ADDRESS: 'noreply@island.is' - IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' - LOG_LEVEL: 'info' - MAIN_QUEUE_NAME: 'user-notification' - NATIONAL_REGISTRY_B2C_CLIENT_ID: '2304d7ca-7ed3-4188-8b6d-e1b7e0e3df7f' - NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentity.b2clogin.com/skraidentity.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' - NATIONAL_REGISTRY_B2C_PATH: 'IS/GOV/6503760649/SKRA-Cloud-Protected/Midlun-v1' - NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentity.onmicrosoft.com/midlun/.default' - NODE_OPTIONS: '--max-old-space-size=345 -r dd-trace/init' - REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379"]' - REDIS_USE_SSL: 'true' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - SERVICE_PORTAL_CLICK_ACTION_URL: 'https://island.is/minarsidur' - USER_PROFILE_CLIENT_URL: 'http://web-service-portal-api.service-portal.svc.cluster.local' - XROAD_BASE_PATH: 'http://securityserver.island.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.island.is/r1/IS' - XROAD_CLIENT_ID: 'IS/GOV/5501692829/island-is-client' - XROAD_TLS_BASE_PATH: 'https://securityserver.island.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.island.is/r1/IS' - grantNamespaces: - - 'nginx-ingress-internal' - - 'islandis' - - 'identity-server-delegation' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/health/check' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 3 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-user-notification' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-internal-alb' - nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'user-notification-xrd.internal.island.is' - paths: - - '/' - namespace: 'user-notification' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 3 - max: 10 - min: 3 - resources: - limits: - cpu: '400m' - memory: '384Mi' - requests: - cpu: '150m' - memory: '256Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - CONTENTFUL_ACCESS_TOKEN: '/k8s/user-notification/CONTENTFUL_ACCESS_TOKEN' - DB_PASS: '/k8s/user-notification/DB_PASSWORD' - FIREBASE_CREDENTIALS: '/k8s/user-notification/firestore-credentials' - IDENTITY_SERVER_CLIENT_ID: '/k8s/user-notification/USER_NOTIFICATION_CLIENT_ID' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/user-notification/USER_NOTIFICATION_CLIENT_SECRET' - NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/api/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'user-notification' +args: + - '--no-experimental-fetch' + - 'main.js' +command: + - 'node' +enabled: true +env: + AUTH_DELEGATION_API_URL: 'https://auth-delegation-api.internal.innskra.island.is' + AUTH_DELEGATION_MACHINE_CLIENT_SCOPE: '["@island.is/auth/delegations/index:system"]' + COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379"]' + COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS/GOV/5402696029/Skatturinn/ft-v1' + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'user_notification' + DB_REPLICAS_HOST: 'postgres-applications.internal' + DB_USER: 'user_notification' + DEAD_LETTER_QUEUE_NAME: 'user-notification-failure' + EMAIL_FROM_ADDRESS: 'noreply@island.is' + IDENTITY_SERVER_ISSUER_URL: 'https://innskra.island.is' + LOG_LEVEL: 'info' + MAIN_QUEUE_NAME: 'user-notification' + NATIONAL_REGISTRY_B2C_CLIENT_ID: '2304d7ca-7ed3-4188-8b6d-e1b7e0e3df7f' + NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentity.b2clogin.com/skraidentity.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' + NATIONAL_REGISTRY_B2C_PATH: 'IS/GOV/6503760649/SKRA-Cloud-Protected/Midlun-v1' + NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentity.onmicrosoft.com/midlun/.default' + NODE_OPTIONS: '--max-old-space-size=345 -r dd-trace/init' + REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.whakos.euw1.cache.amazonaws.com:6379"]' + REDIS_USE_SSL: 'true' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' + SERVICE_PORTAL_CLICK_ACTION_URL: 'https://island.is/minarsidur' + USER_PROFILE_CLIENT_URL: 'http://web-service-portal-api.service-portal.svc.cluster.local' + XROAD_BASE_PATH: 'http://securityserver.island.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.island.is/r1/IS' + XROAD_CLIENT_ID: 'IS/GOV/5501692829/island-is-client' + XROAD_TLS_BASE_PATH: 'https://securityserver.island.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.island.is/r1/IS' +grantNamespaces: + - 'nginx-ingress-internal' + - 'islandis' + - 'identity-server-delegation' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/health/check' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 3 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-user-notification' +ingress: + primary-alb: annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/user-notification' - create: true - name: 'user-notification' + kubernetes.io/ingress.class: 'nginx-internal-alb' + nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'user-notification-xrd.internal.island.is' + paths: + - '/' +namespace: 'user-notification' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 3 + max: 10 + min: 3 +resources: + limits: + cpu: '400m' + memory: '384Mi' + requests: + cpu: '150m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + CONTENTFUL_ACCESS_TOKEN: '/k8s/user-notification/CONTENTFUL_ACCESS_TOKEN' + DB_PASS: '/k8s/user-notification/DB_PASSWORD' + FIREBASE_CREDENTIALS: '/k8s/user-notification/firestore-credentials' + IDENTITY_SERVER_CLIENT_ID: '/k8s/user-notification/USER_NOTIFICATION_CLIENT_ID' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/user-notification/USER_NOTIFICATION_CLIENT_SECRET' + NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/api/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/user-notification' + create: true + name: 'user-notification' diff --git a/charts/services/user-notification/values.staging.yaml b/charts/services/user-notification/values.staging.yaml index 0cf6941f51db..f4c312c8b9fa 100644 --- a/charts/services/user-notification/values.staging.yaml +++ b/charts/services/user-notification/values.staging.yaml @@ -5,108 +5,118 @@ # ##################################################################### -service: - name: 'user-notification' - args: - - '--no-experimental-fetch' - - 'main.js' - command: - - 'node' - enabled: true +global: env: - AUTH_DELEGATION_API_URL: 'http://web-services-auth-delegation-api.identity-server-delegation.svc.cluster.local' - AUTH_DELEGATION_MACHINE_CLIENT_SCOPE: '["@island.is/auth/delegations/index:system"]' - COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' - COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS-TEST/GOV/5402696029/Skatturinn/ft-v1' - DB_HOST: 'postgres-applications.internal' - DB_NAME: 'user_notification' - DB_REPLICAS_HOST: 'postgres-applications.internal' - DB_USER: 'user_notification' - DEAD_LETTER_QUEUE_NAME: 'user-notification-failure' - EMAIL_FROM_ADDRESS: 'development@island.is' - IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' - LOG_LEVEL: 'info' - MAIN_QUEUE_NAME: 'user-notification' - NATIONAL_REGISTRY_B2C_CLIENT_ID: 'ca128c23-b43c-443d-bade-ec5a146a933f' - NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentitydev.b2clogin.com/skraidentitystaging.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' - NATIONAL_REGISTRY_B2C_PATH: 'IS-TEST/GOV/6503760649/SKRA-Cloud-Protected/Midlun-v1' - NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentitystaging.onmicrosoft.com/midlun/.default' - NODE_OPTIONS: '--max-old-space-size=345 -r dd-trace/init' - REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' - REDIS_USE_SSL: 'true' - SERVERSIDE_FEATURES_ON: '' - SERVICE_PORTAL_CLICK_ACTION_URL: 'https://island.is/minarsidur' - USER_PROFILE_CLIENT_URL: 'http://web-service-portal-api.service-portal.svc.cluster.local' - XROAD_BASE_PATH: 'http://securityserver.staging01.devland.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.staging01.devland.is/r1/IS-TEST' - XROAD_CLIENT_ID: 'IS-TEST/GOV/5501692829/island-is-client' - XROAD_TLS_BASE_PATH: 'https://securityserver.staging01.devland.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.staging01.devland.is/r1/IS-TEST' - grantNamespaces: - - 'nginx-ingress-internal' - - 'islandis' - - 'identity-server-delegation' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/health/check' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-user-notification' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-internal-alb' - nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'user-notification-xrd.internal.staging01.devland.is' - paths: - - '/' - namespace: 'user-notification' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '400m' - memory: '384Mi' - requests: - cpu: '150m' - memory: '256Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - CONTENTFUL_ACCESS_TOKEN: '/k8s/user-notification/CONTENTFUL_ACCESS_TOKEN' - DB_PASS: '/k8s/user-notification/DB_PASSWORD' - FIREBASE_CREDENTIALS: '/k8s/user-notification/firestore-credentials' - IDENTITY_SERVER_CLIENT_ID: '/k8s/user-notification/USER_NOTIFICATION_CLIENT_ID' - IDENTITY_SERVER_CLIENT_SECRET: '/k8s/user-notification/USER_NOTIFICATION_CLIENT_SECRET' - NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/api/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'user-notification' +args: + - '--no-experimental-fetch' + - 'main.js' +command: + - 'node' +enabled: true +env: + AUTH_DELEGATION_API_URL: 'http://web-services-auth-delegation-api.identity-server-delegation.svc.cluster.local' + AUTH_DELEGATION_MACHINE_CLIENT_SCOPE: '["@island.is/auth/delegations/index:system"]' + COMPANY_REGISTRY_REDIS_NODES: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' + COMPANY_REGISTRY_XROAD_PROVIDER_ID: 'IS-TEST/GOV/5402696029/Skatturinn/ft-v1' + DB_HOST: 'postgres-applications.internal' + DB_NAME: 'user_notification' + DB_REPLICAS_HOST: 'postgres-applications.internal' + DB_USER: 'user_notification' + DEAD_LETTER_QUEUE_NAME: 'user-notification-failure' + EMAIL_FROM_ADDRESS: 'development@island.is' + IDENTITY_SERVER_ISSUER_URL: 'https://identity-server.staging01.devland.is' + LOG_LEVEL: 'info' + MAIN_QUEUE_NAME: 'user-notification' + NATIONAL_REGISTRY_B2C_CLIENT_ID: 'ca128c23-b43c-443d-bade-ec5a146a933f' + NATIONAL_REGISTRY_B2C_ENDPOINT: 'https://skraidentitydev.b2clogin.com/skraidentitystaging.onmicrosoft.com/b2c_1_midlun_flow/oauth2/v2.0/token' + NATIONAL_REGISTRY_B2C_PATH: 'IS-TEST/GOV/6503760649/SKRA-Cloud-Protected/Midlun-v1' + NATIONAL_REGISTRY_B2C_SCOPE: 'https://skraidentitystaging.onmicrosoft.com/midlun/.default' + NODE_OPTIONS: '--max-old-space-size=345 -r dd-trace/init' + REDIS_URL_NODE_01: '["clustercfg.general-redis-cluster-group.ab9ckb.euw1.cache.amazonaws.com:6379"]' + REDIS_USE_SSL: 'true' + SERVERSIDE_FEATURES_ON: '' + SERVICE_PORTAL_CLICK_ACTION_URL: 'https://island.is/minarsidur' + USER_PROFILE_CLIENT_URL: 'http://web-service-portal-api.service-portal.svc.cluster.local' + XROAD_BASE_PATH: 'http://securityserver.staging01.devland.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.staging01.devland.is/r1/IS-TEST' + XROAD_CLIENT_ID: 'IS-TEST/GOV/5501692829/island-is-client' + XROAD_TLS_BASE_PATH: 'https://securityserver.staging01.devland.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.staging01.devland.is/r1/IS-TEST' +grantNamespaces: + - 'nginx-ingress-internal' + - 'islandis' + - 'identity-server-delegation' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/health/check' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-user-notification' +ingress: + primary-alb: annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/user-notification' - create: true - name: 'user-notification' + kubernetes.io/ingress.class: 'nginx-internal-alb' + nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'user-notification-xrd.internal.staging01.devland.is' + paths: + - '/' +namespace: 'user-notification' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '400m' + memory: '384Mi' + requests: + cpu: '150m' + memory: '256Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + CONTENTFUL_ACCESS_TOKEN: '/k8s/user-notification/CONTENTFUL_ACCESS_TOKEN' + DB_PASS: '/k8s/user-notification/DB_PASSWORD' + FIREBASE_CREDENTIALS: '/k8s/user-notification/firestore-credentials' + IDENTITY_SERVER_CLIENT_ID: '/k8s/user-notification/USER_NOTIFICATION_CLIENT_ID' + IDENTITY_SERVER_CLIENT_SECRET: '/k8s/user-notification/USER_NOTIFICATION_CLIENT_SECRET' + NATIONAL_REGISTRY_B2C_CLIENT_SECRET: '/k8s/api/NATIONAL_REGISTRY_B2C_CLIENT_SECRET' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/user-notification' + create: true + name: 'user-notification' diff --git a/charts/services/web/values.dev.yaml b/charts/services/web/values.dev.yaml index 35461b14ba2f..a6455c2f5c34 100644 --- a/charts/services/web/values.dev.yaml +++ b/charts/services/web/values.dev.yaml @@ -5,75 +5,85 @@ # ##################################################################### -service: - name: 'web' - enabled: true +global: env: - API_URL: 'http://web-api' - DISABLE_API_CATALOGUE: 'false' - DISABLE_ORGANIZATION_CHATBOT: 'false' - DISABLE_SYSLUMENN_PAGE: 'false' - ENVIRONMENT: 'dev' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=691 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - TRACKING_DOMAIN: 'beta.dev01.devland.is' - grantNamespaces: - - 'nginx-ingress-external' - - 'api-catalogue' - - 'application-system' - - 'consultation-portal' - - 'search-indexer' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 20 - path: '/readiness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 50 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/web' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'beta.dev01.devland.is' - paths: - - '/' - namespace: 'islandis' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 2 - max: 50 - min: 2 - resources: - limits: - cpu: '1000m' - memory: '768Mi' - requests: - cpu: '300m' - memory: '384Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DD_RUM_APPLICATION_ID: '/k8s/DD_RUM_APPLICATION_ID' - DD_RUM_CLIENT_TOKEN: '/k8s/DD_RUM_CLIENT_TOKEN' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'web' +enabled: true +env: + API_URL: 'http://web-api' + DISABLE_API_CATALOGUE: 'false' + DISABLE_ORGANIZATION_CHATBOT: 'false' + DISABLE_SYSLUMENN_PAGE: 'false' + ENVIRONMENT: 'dev' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=691 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' + TRACKING_DOMAIN: 'beta.dev01.devland.is' +grantNamespaces: + - 'nginx-ingress-external' + - 'api-catalogue' + - 'application-system' + - 'consultation-portal' + - 'search-indexer' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 20 + path: '/readiness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 50 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/web' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'beta.dev01.devland.is' + paths: + - '/' +namespace: 'islandis' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 2 + max: 50 + min: 2 +resources: + limits: + cpu: '1000m' + memory: '768Mi' + requests: + cpu: '300m' + memory: '384Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DD_RUM_APPLICATION_ID: '/k8s/DD_RUM_APPLICATION_ID' + DD_RUM_CLIENT_TOKEN: '/k8s/DD_RUM_CLIENT_TOKEN' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/web/values.prod.yaml b/charts/services/web/values.prod.yaml index 8b480b747dfe..a5c86c5c9db1 100644 --- a/charts/services/web/values.prod.yaml +++ b/charts/services/web/values.prod.yaml @@ -5,78 +5,88 @@ # ##################################################################### -service: - name: 'web' - enabled: true +global: env: - API_URL: 'http://web-api' - DISABLE_API_CATALOGUE: 'false' - DISABLE_ORGANIZATION_CHATBOT: 'false' - DISABLE_SYSLUMENN_PAGE: 'false' - ENVIRONMENT: 'prod' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=691 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - TRACKING_DOMAIN: 'island.is' - grantNamespaces: - - 'nginx-ingress-external' - - 'api-catalogue' - - 'application-system' - - 'consultation-portal' - - 'search-indexer' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 20 - path: '/readiness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 50 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/web' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'island.is' - paths: - - '/' - - host: 'www.island.is' - paths: - - '/' - namespace: 'islandis' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 2 - max: 50 - min: 2 - resources: - limits: - cpu: '1000m' - memory: '768Mi' - requests: - cpu: '300m' - memory: '384Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DD_RUM_APPLICATION_ID: '/k8s/DD_RUM_APPLICATION_ID' - DD_RUM_CLIENT_TOKEN: '/k8s/DD_RUM_CLIENT_TOKEN' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'web' +enabled: true +env: + API_URL: 'http://web-api' + DISABLE_API_CATALOGUE: 'false' + DISABLE_ORGANIZATION_CHATBOT: 'false' + DISABLE_SYSLUMENN_PAGE: 'false' + ENVIRONMENT: 'prod' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=691 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' + TRACKING_DOMAIN: 'island.is' +grantNamespaces: + - 'nginx-ingress-external' + - 'api-catalogue' + - 'application-system' + - 'consultation-portal' + - 'search-indexer' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 20 + path: '/readiness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 50 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/web' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'island.is' + paths: + - '/' + - host: 'www.island.is' + paths: + - '/' +namespace: 'islandis' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 2 + max: 50 + min: 2 +resources: + limits: + cpu: '1000m' + memory: '768Mi' + requests: + cpu: '300m' + memory: '384Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DD_RUM_APPLICATION_ID: '/k8s/DD_RUM_APPLICATION_ID' + DD_RUM_CLIENT_TOKEN: '/k8s/DD_RUM_CLIENT_TOKEN' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/web/values.staging.yaml b/charts/services/web/values.staging.yaml index 39d11797cf78..4a0b40a3fa19 100644 --- a/charts/services/web/values.staging.yaml +++ b/charts/services/web/values.staging.yaml @@ -5,76 +5,86 @@ # ##################################################################### -service: - name: 'web' - basicAuth: '/k8s/web/basic_auth' - enabled: true +global: env: - API_URL: 'http://web-api' - DISABLE_API_CATALOGUE: 'false' - DISABLE_ORGANIZATION_CHATBOT: 'false' - DISABLE_SYSLUMENN_PAGE: 'false' - ENVIRONMENT: 'staging' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=691 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - TRACKING_DOMAIN: 'beta.staging01.devland.is' - grantNamespaces: - - 'nginx-ingress-external' - - 'api-catalogue' - - 'application-system' - - 'consultation-portal' - - 'search-indexer' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 20 - path: '/readiness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 50 - min: 2 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/web' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-external-alb' - nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' - nginx.ingress.kubernetes.io/proxy-buffering: 'on' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'beta.staging01.devland.is' - paths: - - '/' - namespace: 'islandis' - podDisruptionBudget: - maxUnavailable: 1 - pvcs: [] - replicaCount: - default: 2 - max: 50 - min: 2 - resources: - limits: - cpu: '1000m' - memory: '768Mi' - requests: - cpu: '300m' - memory: '384Mi' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - DD_RUM_APPLICATION_ID: '/k8s/DD_RUM_APPLICATION_ID' - DD_RUM_CLIENT_TOKEN: '/k8s/DD_RUM_CLIENT_TOKEN' - securityContext: - allowPrivilegeEscalation: false - privileged: false + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'web' +basicAuth: '/k8s/web/basic_auth' +enabled: true +env: + API_URL: 'http://web-api' + DISABLE_API_CATALOGUE: 'false' + DISABLE_ORGANIZATION_CHATBOT: 'false' + DISABLE_SYSLUMENN_PAGE: 'false' + ENVIRONMENT: 'staging' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=691 -r dd-trace/init' + SERVERSIDE_FEATURES_ON: '' + TRACKING_DOMAIN: 'beta.staging01.devland.is' +grantNamespaces: + - 'nginx-ingress-external' + - 'api-catalogue' + - 'application-system' + - 'consultation-portal' + - 'search-indexer' +grantNamespacesEnabled: true +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/liveness' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 20 + path: '/readiness' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 50 + min: 2 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/web' +ingress: + primary-alb: + annotations: + kubernetes.io/ingress.class: 'nginx-external-alb' + nginx.ingress.kubernetes.io/proxy-buffer-size: '8k' + nginx.ingress.kubernetes.io/proxy-buffering: 'on' + nginx.ingress.kubernetes.io/service-upstream: 'true' + hosts: + - host: 'beta.staging01.devland.is' + paths: + - '/' +namespace: 'islandis' +podDisruptionBudget: + maxUnavailable: 1 +pvcs: [] +replicaCount: + default: 2 + max: 50 + min: 2 +resources: + limits: + cpu: '1000m' + memory: '768Mi' + requests: + cpu: '300m' + memory: '384Mi' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' + DD_RUM_APPLICATION_ID: '/k8s/DD_RUM_APPLICATION_ID' + DD_RUM_CLIENT_TOKEN: '/k8s/DD_RUM_CLIENT_TOKEN' +securityContext: + allowPrivilegeEscalation: false + privileged: false diff --git a/charts/services/xroad-collector/values.dev.yaml b/charts/services/xroad-collector/values.dev.yaml index 3997bb86d66b..5ee8d773b1d6 100644 --- a/charts/services/xroad-collector/values.dev.yaml +++ b/charts/services/xroad-collector/values.dev.yaml @@ -5,71 +5,81 @@ # ##################################################################### -service: - name: 'xroad-collector' - args: - - '--no-experimental-fetch' - - 'main.js' - command: - - 'node' - enabled: true +global: env: - ELASTIC_NODE: 'https://vpc-search-njkekqydiegezhr4vqpkfnw5la.eu-west-1.es.amazonaws.com' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' - NODE_TLS_REJECT_UNAUTHORIZED: '0' - SERVERSIDE_FEATURES_ON: '' - XROAD_BASE_PATH: 'http://securityserver.dev01.devland.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.dev01.devland.is/r1/IS-DEV' - XROAD_CLIENT_ID: 'IS-DEV/GOV/10000/island-is-client' - XROAD_TLS_BASE_PATH: 'https://securityserver.dev01.devland.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.dev01.devland.is/r1/IS-DEV' - grantNamespaces: [] - grantNamespacesEnabled: false - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-xroad-collector' - namespace: 'xroad-collector' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '100m' - memory: '128Mi' - schedule: '0 2 * * *' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/xroad-collector' - create: true - name: 'xroad-collector' + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'dev' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'xroad-collector' +args: + - '--no-experimental-fetch' + - 'main.js' +command: + - 'node' +enabled: true +env: + ELASTIC_NODE: 'https://vpc-search-njkekqydiegezhr4vqpkfnw5la.eu-west-1.es.amazonaws.com' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' + NODE_TLS_REJECT_UNAUTHORIZED: '0' + SERVERSIDE_FEATURES_ON: '' + XROAD_BASE_PATH: 'http://securityserver.dev01.devland.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.dev01.devland.is/r1/IS-DEV' + XROAD_CLIENT_ID: 'IS-DEV/GOV/10000/island-is-client' + XROAD_TLS_BASE_PATH: 'https://securityserver.dev01.devland.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.dev01.devland.is/r1/IS-DEV' +grantNamespaces: [] +grantNamespacesEnabled: false +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-xroad-collector' +namespace: 'xroad-collector' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '100m' + memory: '128Mi' +schedule: '0 2 * * *' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/xroad-collector' + create: true + name: 'xroad-collector' diff --git a/charts/services/xroad-collector/values.prod.yaml b/charts/services/xroad-collector/values.prod.yaml index feae3ef0d29d..e58441a7be40 100644 --- a/charts/services/xroad-collector/values.prod.yaml +++ b/charts/services/xroad-collector/values.prod.yaml @@ -5,71 +5,81 @@ # ##################################################################### -service: - name: 'xroad-collector' - args: - - '--no-experimental-fetch' - - 'main.js' - command: - - 'node' - enabled: true +global: env: - ELASTIC_NODE: 'https://vpc-search-mw4w5c2m2g5edjrtvwbpzhkw24.eu-west-1.es.amazonaws.com' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' - NODE_TLS_REJECT_UNAUTHORIZED: '0' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - XROAD_BASE_PATH: 'http://securityserver.island.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.island.is/r1/IS' - XROAD_CLIENT_ID: 'IS/GOV/5501692829/island-is-client' - XROAD_TLS_BASE_PATH: 'https://securityserver.island.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.island.is/r1/IS' - grantNamespaces: [] - grantNamespacesEnabled: false - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 3 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-xroad-collector' - namespace: 'xroad-collector' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 3 - max: 10 - min: 3 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '100m' - memory: '128Mi' - schedule: '0 2 * * *' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/xroad-collector' - create: true - name: 'xroad-collector' + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'prod' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'xroad-collector' +args: + - '--no-experimental-fetch' + - 'main.js' +command: + - 'node' +enabled: true +env: + ELASTIC_NODE: 'https://vpc-search-mw4w5c2m2g5edjrtvwbpzhkw24.eu-west-1.es.amazonaws.com' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' + NODE_TLS_REJECT_UNAUTHORIZED: '0' + SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' + XROAD_BASE_PATH: 'http://securityserver.island.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.island.is/r1/IS' + XROAD_CLIENT_ID: 'IS/GOV/5501692829/island-is-client' + XROAD_TLS_BASE_PATH: 'https://securityserver.island.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.island.is/r1/IS' +grantNamespaces: [] +grantNamespacesEnabled: false +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 10 + min: 3 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-xroad-collector' +namespace: 'xroad-collector' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 3 + max: 10 + min: 3 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '100m' + memory: '128Mi' +schedule: '0 2 * * *' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/xroad-collector' + create: true + name: 'xroad-collector' diff --git a/charts/services/xroad-collector/values.staging.yaml b/charts/services/xroad-collector/values.staging.yaml index 805c31149006..8f9c0ba8c176 100644 --- a/charts/services/xroad-collector/values.staging.yaml +++ b/charts/services/xroad-collector/values.staging.yaml @@ -5,71 +5,81 @@ # ##################################################################### -service: - name: 'xroad-collector' - args: - - '--no-experimental-fetch' - - 'main.js' - command: - - 'node' - enabled: true +global: env: - ELASTIC_NODE: 'https://vpc-search-q6hdtjcdlhkffyxvrnmzfwphuq.eu-west-1.es.amazonaws.com' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' - NODE_TLS_REJECT_UNAUTHORIZED: '0' - SERVERSIDE_FEATURES_ON: '' - XROAD_BASE_PATH: 'http://securityserver.staging01.devland.is' - XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.staging01.devland.is/r1/IS-TEST' - XROAD_CLIENT_ID: 'IS-TEST/GOV/5501692829/island-is-client' - XROAD_TLS_BASE_PATH: 'https://securityserver.staging01.devland.is' - XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.staging01.devland.is/r1/IS-TEST' - grantNamespaces: [] - grantNamespacesEnabled: false - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-xroad-collector' - namespace: 'xroad-collector' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '100m' - memory: '128Mi' - schedule: '0 2 * * *' - secrets: - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/xroad-collector' - create: true - name: 'xroad-collector' + AUDIT_GROUP_NAME: '/island-is/audit-log' + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' + PORT: '3333' + name: 'staging' + initContainer: + env: + AWS_REGION: 'eu-west-1' + NPM_CONFIG_UPDATE_NOTIFIER: 'false' +name: 'xroad-collector' +args: + - '--no-experimental-fetch' + - 'main.js' +command: + - 'node' +enabled: true +env: + ELASTIC_NODE: 'https://vpc-search-q6hdtjcdlhkffyxvrnmzfwphuq.eu-west-1.es.amazonaws.com' + LOG_LEVEL: 'info' + NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' + NODE_TLS_REJECT_UNAUTHORIZED: '0' + SERVERSIDE_FEATURES_ON: '' + XROAD_BASE_PATH: 'http://securityserver.staging01.devland.is' + XROAD_BASE_PATH_WITH_ENV: 'http://securityserver.staging01.devland.is/r1/IS-TEST' + XROAD_CLIENT_ID: 'IS-TEST/GOV/5501692829/island-is-client' + XROAD_TLS_BASE_PATH: 'https://securityserver.staging01.devland.is' + XROAD_TLS_BASE_PATH_WITH_ENV: 'https://securityserver.staging01.devland.is/r1/IS-TEST' +grantNamespaces: [] +grantNamespacesEnabled: false +healthCheck: + liveness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 + readiness: + initialDelaySeconds: 3 + path: '/' + timeoutSeconds: 3 +hpa: + scaling: + metric: + cpuAverageUtilization: 90 + nginxRequestsIrate: 5 + replicas: + max: 3 + min: 1 +image: + repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/services-xroad-collector' +namespace: 'xroad-collector' +podDisruptionBudget: + maxUnavailable: 1 +podSecurityContext: + fsGroup: 65534 +pvcs: [] +replicaCount: + default: 1 + max: 3 + min: 1 +resources: + limits: + cpu: '200m' + memory: '256Mi' + requests: + cpu: '100m' + memory: '128Mi' +schedule: '0 2 * * *' +secrets: + CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' +securityContext: + allowPrivilegeEscalation: false + privileged: false +serviceAccount: + annotations: + eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/xroad-collector' + create: true + name: 'xroad-collector' diff --git a/infra/src/cli/generate-chart-values.ts b/infra/src/cli/generate-chart-values.ts index 237c2a270615..ed6c3ed6439c 100755 --- a/infra/src/cli/generate-chart-values.ts +++ b/infra/src/cli/generate-chart-values.ts @@ -58,7 +58,6 @@ async function generateChartValues() { for (const [name, envs] of Object.entries(Deployments)) { for (const [envType, envName] of Object.entries(envs)) { console.log(`Processing ${name} ${envName} ${envType}`) - // Get rendered environment values and parse const renderedYaml = await renderEnv(envType as OpsEnv, name as ChartName) const renderedValues = yaml @@ -80,12 +79,12 @@ async function generateChartValues() { const services = Charts[name as ChartName][envType as OpsEnv] for (const service of services) { const serviceName = service.name() + console.log(`Processing ${serviceName} ${envName} ${envType}`) if (renderedValues[serviceName]) { const serviceValues = { - service: { - name: serviceName, - ...renderedValues[serviceName], - }, + global: renderedValues.global, + name: serviceName, + ...renderedValues[serviceName], } writeYamlFile( From 94f3f891240c04e9571c2740e11804a6ecce099a Mon Sep 17 00:00:00 2001 From: Kristofer Date: Thu, 14 Nov 2024 16:58:27 +0000 Subject: [PATCH 07/66] chore(deps): Update `@aws-sdk` client libraries (#16839) * init * Use same version for all AWS SDKs * Update devDevpendency versions to match dependencies * Redact secrets/keys * Restore original maxAttempts config for SSMClient * Keep original imports * Fix tests * try-catch instead of chaining * Revert logic and tests to main * Add `@aws-sdk/abort-controller` manually --------- Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- infra/package.json | 2 +- infra/yarn.lock | 1674 +++++++++++++++++-------------- package.json | 17 +- yarn.lock | 2357 +++++++++++++++++--------------------------- 4 files changed, 1866 insertions(+), 2184 deletions(-) diff --git a/infra/package.json b/infra/package.json index 37b440fdd44c..356fc8a12835 100644 --- a/infra/package.json +++ b/infra/package.json @@ -25,7 +25,7 @@ "typescript": "4.6.4" }, "dependencies": { - "@aws-sdk/client-ssm": "3.145.0", + "@aws-sdk/client-ssm": "3.687.0", "@types/lodash": "4.14.160", "aws-sdk": "^2.1003.0", "glob": "10.3.3", diff --git a/infra/yarn.lock b/infra/yarn.lock index 97bc475a7bec..513e351a079f 100644 --- a/infra/yarn.lock +++ b/infra/yarn.lock @@ -25,694 +25,482 @@ __metadata: languageName: node linkType: hard -"@aws-crypto/ie11-detection@npm:^2.0.0": - version: 2.0.0 - resolution: "@aws-crypto/ie11-detection@npm:2.0.0" - dependencies: - tslib: ^1.11.1 - checksum: dd15daa1160ecdf28b9c930dcbd7f8bc96e74d7f791134974b672f5d36182274c76db4fff414385cdb8997a8b7ade991988a571aaac3184e226e2ed6428d895f - languageName: node - linkType: hard - -"@aws-crypto/sha256-browser@npm:2.0.0": - version: 2.0.0 - resolution: "@aws-crypto/sha256-browser@npm:2.0.0" +"@aws-crypto/sha256-browser@npm:5.2.0": + version: 5.2.0 + resolution: "@aws-crypto/sha256-browser@npm:5.2.0" dependencies: - "@aws-crypto/ie11-detection": ^2.0.0 - "@aws-crypto/sha256-js": ^2.0.0 - "@aws-crypto/supports-web-crypto": ^2.0.0 - "@aws-crypto/util": ^2.0.0 - "@aws-sdk/types": ^3.1.0 + "@aws-crypto/sha256-js": ^5.2.0 + "@aws-crypto/supports-web-crypto": ^5.2.0 + "@aws-crypto/util": ^5.2.0 + "@aws-sdk/types": ^3.222.0 "@aws-sdk/util-locate-window": ^3.0.0 - "@aws-sdk/util-utf8-browser": ^3.0.0 - tslib: ^1.11.1 - checksum: 7bc1ff042d0c53a46c0fc3824bd97fb3ed1df7dc030b8a995889471052860b8c8ade469c97866fafd8249a3144d0f48b0f1054f357e2b403606009381c4b8f0e - languageName: node - linkType: hard - -"@aws-crypto/sha256-js@npm:2.0.0": - version: 2.0.0 - resolution: "@aws-crypto/sha256-js@npm:2.0.0" - dependencies: - "@aws-crypto/util": ^2.0.0 - "@aws-sdk/types": ^3.1.0 - tslib: ^1.11.1 - checksum: e4abf9baec6bed19d380f92a999a41ac5bdd8890dfd45971d29054c298854c5b7087e7de633413f2e64618ef8238ccf4c0b75797c73063c74bbba3cb5d8b2581 - languageName: node - linkType: hard - -"@aws-crypto/sha256-js@npm:^2.0.0": - version: 2.0.1 - resolution: "@aws-crypto/sha256-js@npm:2.0.1" - dependencies: - "@aws-crypto/util": ^2.0.1 - "@aws-sdk/types": ^3.1.0 - tslib: ^1.11.1 - checksum: d5f07a5dde2cde277b63e781adc3fb0d04e202f56d159b50089f3bfd8bf657db1c35e18813e2ec6c3771dfdf0d0d6eb13f36a8ad021b5db7d2bb8fdc9f06dce3 - languageName: node - linkType: hard - -"@aws-crypto/supports-web-crypto@npm:^2.0.0": - version: 2.0.0 - resolution: "@aws-crypto/supports-web-crypto@npm:2.0.0" - dependencies: - tslib: ^1.11.1 - checksum: 77fad3813a5d3c495296fb836293184d32aeddacd436bf7d1b59b93d87de4cf7c0dbf862d4eaf915259edfb7b424ea05e2ceeddbaa1588a154d0c19df455c475 - languageName: node - linkType: hard - -"@aws-crypto/util@npm:^2.0.0, @aws-crypto/util@npm:^2.0.1": - version: 2.0.1 - resolution: "@aws-crypto/util@npm:2.0.1" - dependencies: - "@aws-sdk/types": ^3.1.0 - "@aws-sdk/util-utf8-browser": ^3.0.0 - tslib: ^1.11.1 - checksum: 83d7edea95336869854eb98bf53416a70ee824a03c8858779abcef7b7f35813ba3ba0aaa571d87c416bdcec78b620e825fe9e65769a15d2009af0ccb279ef981 - languageName: node - linkType: hard - -"@aws-sdk/abort-controller@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/abort-controller@npm:3.127.0" - dependencies: - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: 9768573f8788db6fbed2a72a431860f6edb70a0795b78f2400993f91f471ad543e61eaca7503be949052af4ca953b23cc9b11e8bed5a3735198b65701349d759 - languageName: node - linkType: hard - -"@aws-sdk/client-ssm@npm:3.145.0": - version: 3.145.0 - resolution: "@aws-sdk/client-ssm@npm:3.145.0" - dependencies: - "@aws-crypto/sha256-browser": 2.0.0 - "@aws-crypto/sha256-js": 2.0.0 - "@aws-sdk/client-sts": 3.145.0 - "@aws-sdk/config-resolver": 3.130.0 - "@aws-sdk/credential-provider-node": 3.145.0 - "@aws-sdk/fetch-http-handler": 3.131.0 - "@aws-sdk/hash-node": 3.127.0 - "@aws-sdk/invalid-dependency": 3.127.0 - "@aws-sdk/middleware-content-length": 3.127.0 - "@aws-sdk/middleware-host-header": 3.127.0 - "@aws-sdk/middleware-logger": 3.127.0 - "@aws-sdk/middleware-recursion-detection": 3.127.0 - "@aws-sdk/middleware-retry": 3.127.0 - "@aws-sdk/middleware-serde": 3.127.0 - "@aws-sdk/middleware-signing": 3.130.0 - "@aws-sdk/middleware-stack": 3.127.0 - "@aws-sdk/middleware-user-agent": 3.127.0 - "@aws-sdk/node-config-provider": 3.127.0 - "@aws-sdk/node-http-handler": 3.127.0 - "@aws-sdk/protocol-http": 3.127.0 - "@aws-sdk/smithy-client": 3.142.0 - "@aws-sdk/types": 3.127.0 - "@aws-sdk/url-parser": 3.127.0 - "@aws-sdk/util-base64-browser": 3.109.0 - "@aws-sdk/util-base64-node": 3.55.0 - "@aws-sdk/util-body-length-browser": 3.55.0 - "@aws-sdk/util-body-length-node": 3.55.0 - "@aws-sdk/util-defaults-mode-browser": 3.142.0 - "@aws-sdk/util-defaults-mode-node": 3.142.0 - "@aws-sdk/util-user-agent-browser": 3.127.0 - "@aws-sdk/util-user-agent-node": 3.127.0 - "@aws-sdk/util-utf8-browser": 3.109.0 - "@aws-sdk/util-utf8-node": 3.109.0 - "@aws-sdk/util-waiter": 3.127.0 - tslib: ^2.3.1 - uuid: ^8.3.2 - checksum: 695fcad3f61fecffaf3f45f79e9e732bb3f219b1ce1aaf222ccbfc6c55ff9ff2cf3e323be03560dc3628a61748af7f7be51dde178e23e4ac4040de6117145ecb - languageName: node - linkType: hard - -"@aws-sdk/client-sso@npm:3.145.0": - version: 3.145.0 - resolution: "@aws-sdk/client-sso@npm:3.145.0" - dependencies: - "@aws-crypto/sha256-browser": 2.0.0 - "@aws-crypto/sha256-js": 2.0.0 - "@aws-sdk/config-resolver": 3.130.0 - "@aws-sdk/fetch-http-handler": 3.131.0 - "@aws-sdk/hash-node": 3.127.0 - "@aws-sdk/invalid-dependency": 3.127.0 - "@aws-sdk/middleware-content-length": 3.127.0 - "@aws-sdk/middleware-host-header": 3.127.0 - "@aws-sdk/middleware-logger": 3.127.0 - "@aws-sdk/middleware-recursion-detection": 3.127.0 - "@aws-sdk/middleware-retry": 3.127.0 - "@aws-sdk/middleware-serde": 3.127.0 - "@aws-sdk/middleware-stack": 3.127.0 - "@aws-sdk/middleware-user-agent": 3.127.0 - "@aws-sdk/node-config-provider": 3.127.0 - "@aws-sdk/node-http-handler": 3.127.0 - "@aws-sdk/protocol-http": 3.127.0 - "@aws-sdk/smithy-client": 3.142.0 - "@aws-sdk/types": 3.127.0 - "@aws-sdk/url-parser": 3.127.0 - "@aws-sdk/util-base64-browser": 3.109.0 - "@aws-sdk/util-base64-node": 3.55.0 - "@aws-sdk/util-body-length-browser": 3.55.0 - "@aws-sdk/util-body-length-node": 3.55.0 - "@aws-sdk/util-defaults-mode-browser": 3.142.0 - "@aws-sdk/util-defaults-mode-node": 3.142.0 - "@aws-sdk/util-user-agent-browser": 3.127.0 - "@aws-sdk/util-user-agent-node": 3.127.0 - "@aws-sdk/util-utf8-browser": 3.109.0 - "@aws-sdk/util-utf8-node": 3.109.0 - tslib: ^2.3.1 - checksum: c50b9ad2a096633d471161744de4a8940326c5357983f68602f8ebbdfe4b47e4b707050a99633b7e2ea0bb2438ce17d19bf22b2abc198e7385518e01d4cf5ca8 - languageName: node - linkType: hard - -"@aws-sdk/client-sts@npm:3.145.0": - version: 3.145.0 - resolution: "@aws-sdk/client-sts@npm:3.145.0" - dependencies: - "@aws-crypto/sha256-browser": 2.0.0 - "@aws-crypto/sha256-js": 2.0.0 - "@aws-sdk/config-resolver": 3.130.0 - "@aws-sdk/credential-provider-node": 3.145.0 - "@aws-sdk/fetch-http-handler": 3.131.0 - "@aws-sdk/hash-node": 3.127.0 - "@aws-sdk/invalid-dependency": 3.127.0 - "@aws-sdk/middleware-content-length": 3.127.0 - "@aws-sdk/middleware-host-header": 3.127.0 - "@aws-sdk/middleware-logger": 3.127.0 - "@aws-sdk/middleware-recursion-detection": 3.127.0 - "@aws-sdk/middleware-retry": 3.127.0 - "@aws-sdk/middleware-sdk-sts": 3.130.0 - "@aws-sdk/middleware-serde": 3.127.0 - "@aws-sdk/middleware-signing": 3.130.0 - "@aws-sdk/middleware-stack": 3.127.0 - "@aws-sdk/middleware-user-agent": 3.127.0 - "@aws-sdk/node-config-provider": 3.127.0 - "@aws-sdk/node-http-handler": 3.127.0 - "@aws-sdk/protocol-http": 3.127.0 - "@aws-sdk/smithy-client": 3.142.0 - "@aws-sdk/types": 3.127.0 - "@aws-sdk/url-parser": 3.127.0 - "@aws-sdk/util-base64-browser": 3.109.0 - "@aws-sdk/util-base64-node": 3.55.0 - "@aws-sdk/util-body-length-browser": 3.55.0 - "@aws-sdk/util-body-length-node": 3.55.0 - "@aws-sdk/util-defaults-mode-browser": 3.142.0 - "@aws-sdk/util-defaults-mode-node": 3.142.0 - "@aws-sdk/util-user-agent-browser": 3.127.0 - "@aws-sdk/util-user-agent-node": 3.127.0 - "@aws-sdk/util-utf8-browser": 3.109.0 - "@aws-sdk/util-utf8-node": 3.109.0 - entities: 2.2.0 - fast-xml-parser: 3.19.0 - tslib: ^2.3.1 - checksum: 4645c4902e0f32bd1e758ae7868150fd59000bc945979a9224a942c72cbc3418bbada9c21aa7162f7d42a232c0ba89faff948fa3efdbaff863fc89046d90c29d - languageName: node - linkType: hard - -"@aws-sdk/config-resolver@npm:3.130.0": - version: 3.130.0 - resolution: "@aws-sdk/config-resolver@npm:3.130.0" - dependencies: - "@aws-sdk/signature-v4": 3.130.0 - "@aws-sdk/types": 3.127.0 - "@aws-sdk/util-config-provider": 3.109.0 - "@aws-sdk/util-middleware": 3.127.0 - tslib: ^2.3.1 - checksum: 33fa2be1c94fffa2a053a53a2db3402f02493cacade3aff65d70474d404d71c1825c35dd78a3d87f9434b0f4212437bc82f83f10ae7cebdcfcfb0891145ce1ce - languageName: node - linkType: hard - -"@aws-sdk/credential-provider-env@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/credential-provider-env@npm:3.127.0" - dependencies: - "@aws-sdk/property-provider": 3.127.0 - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: e4cc8bd53b67d07f9ff0b1eae9193e8a1bffdc167a49f09d96334476f6d165652a6ff68ba306c044d4ceeb84be4181104f1452d59ff75c7a284a6fde1516556b - languageName: node - linkType: hard - -"@aws-sdk/credential-provider-imds@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/credential-provider-imds@npm:3.127.0" - dependencies: - "@aws-sdk/node-config-provider": 3.127.0 - "@aws-sdk/property-provider": 3.127.0 - "@aws-sdk/types": 3.127.0 - "@aws-sdk/url-parser": 3.127.0 - tslib: ^2.3.1 - checksum: f117bd18114cfee7f9a0201cc53244957f489b780ab5f57ef1c9896a9838688ffb9c7d3a4a6db366629aff2f7a99dab95a6b149130ccb0deab25f6fc04cd9edd - languageName: node - linkType: hard - -"@aws-sdk/credential-provider-ini@npm:3.145.0": - version: 3.145.0 - resolution: "@aws-sdk/credential-provider-ini@npm:3.145.0" - dependencies: - "@aws-sdk/credential-provider-env": 3.127.0 - "@aws-sdk/credential-provider-imds": 3.127.0 - "@aws-sdk/credential-provider-sso": 3.145.0 - "@aws-sdk/credential-provider-web-identity": 3.127.0 - "@aws-sdk/property-provider": 3.127.0 - "@aws-sdk/shared-ini-file-loader": 3.127.0 - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: 1899ecf98373a60e4360873fab5ffd7b3f920f4762ff13e1f85ea2efa11e6201d13bd6f649b1090a0a57afbdba87fa3f35f66533bf3b34f8a6629363a6f86a76 - languageName: node - linkType: hard - -"@aws-sdk/credential-provider-node@npm:3.145.0": - version: 3.145.0 - resolution: "@aws-sdk/credential-provider-node@npm:3.145.0" - dependencies: - "@aws-sdk/credential-provider-env": 3.127.0 - "@aws-sdk/credential-provider-imds": 3.127.0 - "@aws-sdk/credential-provider-ini": 3.145.0 - "@aws-sdk/credential-provider-process": 3.127.0 - "@aws-sdk/credential-provider-sso": 3.145.0 - "@aws-sdk/credential-provider-web-identity": 3.127.0 - "@aws-sdk/property-provider": 3.127.0 - "@aws-sdk/shared-ini-file-loader": 3.127.0 - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: 3795e31ab3717140df38712d18e1f3fd9ef66dc92943131c0a4cc2b640372463769005e2a943b6ffdac4052773ac77dd45f7fb86d8256e9630936b6536ee3f93 - languageName: node - linkType: hard - -"@aws-sdk/credential-provider-process@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/credential-provider-process@npm:3.127.0" - dependencies: - "@aws-sdk/property-provider": 3.127.0 - "@aws-sdk/shared-ini-file-loader": 3.127.0 - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: 60becf9f7d939c11a7b8aa8b6116c37f7d8069d1049a39404ca1f839771c6da4226e58a0acea3830ec591df3949fe5c703b9cd11e42a4f0b6d4cc54c8b4127dd - languageName: node - linkType: hard - -"@aws-sdk/credential-provider-sso@npm:3.145.0": - version: 3.145.0 - resolution: "@aws-sdk/credential-provider-sso@npm:3.145.0" - dependencies: - "@aws-sdk/client-sso": 3.145.0 - "@aws-sdk/property-provider": 3.127.0 - "@aws-sdk/shared-ini-file-loader": 3.127.0 - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: 3c59745d1ce896481bcef875e330b0629e70e952398174227eb3d73ff41c6921f0552a7fdfee2a2b1f609dac5d7ec26bfb648af1899dd56b4d8c6c2f90347c22 - languageName: node - linkType: hard - -"@aws-sdk/credential-provider-web-identity@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/credential-provider-web-identity@npm:3.127.0" - dependencies: - "@aws-sdk/property-provider": 3.127.0 - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: 359bc73eff0593e77e969a5e6506fedd93bd9e32f01043e044a5813dc445f7a5886bfac2676cabfc5c8a913dfc9c71e77fc68dfdd86ec5f1c293a342b42a13ee - languageName: node - linkType: hard - -"@aws-sdk/fetch-http-handler@npm:3.131.0": - version: 3.131.0 - resolution: "@aws-sdk/fetch-http-handler@npm:3.131.0" - dependencies: - "@aws-sdk/protocol-http": 3.127.0 - "@aws-sdk/querystring-builder": 3.127.0 - "@aws-sdk/types": 3.127.0 - "@aws-sdk/util-base64-browser": 3.109.0 - tslib: ^2.3.1 - checksum: 7bd5a83b929e59b86058c7a834daa8eedc7eab7a6bdb2016ff8898637c28bf7062830b108a45d70890062aa0f15271501290c18b06926a8af1bcb8d181817600 - languageName: node - linkType: hard - -"@aws-sdk/hash-node@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/hash-node@npm:3.127.0" - dependencies: - "@aws-sdk/types": 3.127.0 - "@aws-sdk/util-buffer-from": 3.55.0 - tslib: ^2.3.1 - checksum: fb07d9cd29cae316a1a4c0cd448489d6e14bd386fa49b08832d015c8bbcc59cad94e21fdd2f74f8dab08e0c01e1e0cddeac47f48d89dc766d10e95a0a62e7a23 - languageName: node - linkType: hard - -"@aws-sdk/invalid-dependency@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/invalid-dependency@npm:3.127.0" - dependencies: - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: 456b675fd05716050d2dfc325f92918cbd5bbd11c90096673eb7bc66f61ef55021459e893839b8b62ac09ee320ef77924c30cb25530fa1c74b848f3989695fbd - languageName: node - linkType: hard - -"@aws-sdk/is-array-buffer@npm:3.55.0": - version: 3.55.0 - resolution: "@aws-sdk/is-array-buffer@npm:3.55.0" - dependencies: - tslib: ^2.3.1 - checksum: 527481f024166197b84a2b4859b51df9b6da4396255c19832e8fdb2f6dfc914dab8ad89433602f8d797f3f8dacc312ab8a0073b2c8e20dc85a28ad9d27aceaa7 - languageName: node - linkType: hard - -"@aws-sdk/middleware-content-length@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/middleware-content-length@npm:3.127.0" - dependencies: - "@aws-sdk/protocol-http": 3.127.0 - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: 817f74342e862bb10e871d09cf937d7bb7eb5189b2ec4b8ce7b0657c38c74b5d0b6be8143f6618e037c5a29bef624446dfd5fe0cc0ce8114d87d5eded4778074 - languageName: node - linkType: hard - -"@aws-sdk/middleware-host-header@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/middleware-host-header@npm:3.127.0" - dependencies: - "@aws-sdk/protocol-http": 3.127.0 - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: 8ec8a7f7b260c6f3608ba6500586aefd024ac859baaccca9cbea73dfa43fc95cf3a123e369798c6bbd36ed7f3eb36482b5b2a41f46b0eb1416f94d6829e92e9f - languageName: node - linkType: hard - -"@aws-sdk/middleware-logger@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/middleware-logger@npm:3.127.0" - dependencies: - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: edc37f262bdab27bd0d1e26ed1ec1656d8257e9b9db58f45ccd0eb9ff9a39f71deb43955a843d440adce73a608a499ce7478780b774b5fb057bc4769dd7ee27d - languageName: node - linkType: hard - -"@aws-sdk/middleware-recursion-detection@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/middleware-recursion-detection@npm:3.127.0" - dependencies: - "@aws-sdk/protocol-http": 3.127.0 - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: dd04f307c4501bc35fef048a748a5d668061725b10d7cc39143404773049687957fa046b406677ce625279c1d2161cba17b0c639cb59579fc091abd06b91a719 - languageName: node - linkType: hard - -"@aws-sdk/middleware-retry@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/middleware-retry@npm:3.127.0" - dependencies: - "@aws-sdk/protocol-http": 3.127.0 - "@aws-sdk/service-error-classification": 3.127.0 - "@aws-sdk/types": 3.127.0 - "@aws-sdk/util-middleware": 3.127.0 - tslib: ^2.3.1 - uuid: ^8.3.2 - checksum: 314800be7d2cc1f20314ae413c029f31ef47ffc35a0a555944c87ea278ab61dafdf63cdf339effae9de66cbde542f0e25c8c8b3acf2c0d6a9cfbe59b09f646af - languageName: node - linkType: hard - -"@aws-sdk/middleware-sdk-sts@npm:3.130.0": - version: 3.130.0 - resolution: "@aws-sdk/middleware-sdk-sts@npm:3.130.0" - dependencies: - "@aws-sdk/middleware-signing": 3.130.0 - "@aws-sdk/property-provider": 3.127.0 - "@aws-sdk/protocol-http": 3.127.0 - "@aws-sdk/signature-v4": 3.130.0 - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: 4c83eb02d9b8f0b18d9d24704e660463d9d15cc7881c231a1ad315681e5bdd67f70d413f00ddedbcd8c5ed337df317fa6ce366e5314b4a440269bd44c0fad514 - languageName: node - linkType: hard - -"@aws-sdk/middleware-serde@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/middleware-serde@npm:3.127.0" - dependencies: - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: ff31988f06ef1b1d006ec4231d7dd8e72d60ba43d599952c504a9657308a7a0a7ef0d5610a5e73c58f66b8b168db1235c61d9276a1ef59b7ce9227d3e9eff026 - languageName: node - linkType: hard - -"@aws-sdk/middleware-signing@npm:3.130.0": - version: 3.130.0 - resolution: "@aws-sdk/middleware-signing@npm:3.130.0" - dependencies: - "@aws-sdk/property-provider": 3.127.0 - "@aws-sdk/protocol-http": 3.127.0 - "@aws-sdk/signature-v4": 3.130.0 - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: 74e4e480a027967cb9b0e060246e98b5d134bcc5509619b57247196337e19ae31273086a9c00bedfcab22982d5d583568b99343e7f3ea7cb5b99a8dbb89c2cde - languageName: node - linkType: hard - -"@aws-sdk/middleware-stack@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/middleware-stack@npm:3.127.0" - dependencies: - tslib: ^2.3.1 - checksum: 145a44b74681590edc328bb128a8f17af2b13b3e3a0c3bd8803636bafee4370db385fdc132d20ec2b0b331f849a367cb9b8b5ec37b4a705b70156c184ca9f84c - languageName: node - linkType: hard - -"@aws-sdk/middleware-user-agent@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/middleware-user-agent@npm:3.127.0" - dependencies: - "@aws-sdk/protocol-http": 3.127.0 - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: 2967bc7fce3f4e2ec35ee650c4fad897a4bc454884ada00031a302bfdf6d53153332e5171cc760defad2bcd7acadf6549a398bf606674f642573f2786c3741e0 - languageName: node - linkType: hard - -"@aws-sdk/node-config-provider@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/node-config-provider@npm:3.127.0" - dependencies: - "@aws-sdk/property-provider": 3.127.0 - "@aws-sdk/shared-ini-file-loader": 3.127.0 - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: 733a40d93a45258c8c94702c0c5fcd829c2fcc6e3ec4c3e4d63b77ee1b01ee6591b49216b9acd80388de238603ab0a92dd0e7a09b09c654997873e574e95e4d2 - languageName: node - linkType: hard - -"@aws-sdk/node-http-handler@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/node-http-handler@npm:3.127.0" - dependencies: - "@aws-sdk/abort-controller": 3.127.0 - "@aws-sdk/protocol-http": 3.127.0 - "@aws-sdk/querystring-builder": 3.127.0 - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: 55629edb90766ab5e62db4cd3a57751d719ddf79a1ebd9a8221fc9289509589535859337726b8ea942b96bcb356881ac1fc59707b9873270bde36da870092fab - languageName: node - linkType: hard - -"@aws-sdk/property-provider@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/property-provider@npm:3.127.0" - dependencies: - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: e78770762fb0d5d904c0d270266cb9ef580184c0aee25d1df389bff3e66f6c4cfa2c99104488539d22fa642c6102027772b85b42a07c2a90306b0c4751a81698 - languageName: node - linkType: hard - -"@aws-sdk/protocol-http@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/protocol-http@npm:3.127.0" - dependencies: - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: 2d34deb09bd1ba4316945f441f75600aa621d8fa9021c92a91582ac299d857a64572eeb87f7306e3a06c899635dccc717e1353aa290d38665be97487b13038ee + "@smithy/util-utf8": ^2.0.0 + tslib: ^2.6.2 + checksum: 773f12f2026d82a6bb4a23a8f491894a6d32525bd9b8bfbc12896526cf11882a7607a671c478c45f9cd7d6ba1caaed48a62b67c6f725244bd83a1275108f46c7 languageName: node linkType: hard -"@aws-sdk/querystring-builder@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/querystring-builder@npm:3.127.0" +"@aws-crypto/sha256-js@npm:5.2.0, @aws-crypto/sha256-js@npm:^5.2.0": + version: 5.2.0 + resolution: "@aws-crypto/sha256-js@npm:5.2.0" dependencies: - "@aws-sdk/types": 3.127.0 - "@aws-sdk/util-uri-escape": 3.55.0 - tslib: ^2.3.1 - checksum: ac84867b038c530821987db9fac8aaab20dd4b0d0c9fe78caee2f5dd4e8d5b6a99b8cb7ea7816476b9b13149305aea46a2c176130b586882243a82478de35473 + "@aws-crypto/util": ^5.2.0 + "@aws-sdk/types": ^3.222.0 + tslib: ^2.6.2 + checksum: 007fbe0436d714d0d0d282e2b61c90e45adcb9ad75eac9ac7ba03d32b56624afd09b2a9ceb4d659661cf17c51d74d1900ab6b00eacafc002da1101664955ca53 languageName: node linkType: hard -"@aws-sdk/querystring-parser@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/querystring-parser@npm:3.127.0" +"@aws-crypto/supports-web-crypto@npm:^5.2.0": + version: 5.2.0 + resolution: "@aws-crypto/supports-web-crypto@npm:5.2.0" dependencies: - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: 1dcb87be1586e21cc4d98653211ab1d4f484c9a8d62be0acfbd8dde3629559e079e3ca67eb20ce6bc17a53262d5d3462eb3d701573380ea216a2dd77088cd2a5 + tslib: ^2.6.2 + checksum: 6ffc21de48b2b2c3e918193101d7e8fe949d47b37688892e1c39eaedaa938be80c0f404fe1c874c30cce16781026777a53bf47d5d90143ca91d0feb7c4a6f830 languageName: node linkType: hard -"@aws-sdk/service-error-classification@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/service-error-classification@npm:3.127.0" - checksum: dcc743ac7a480edf56eac3861d575819edd5f181f67e603c4f6cc2291ae1f88c116dc2cab19da172a1f7dc5f62195875483c5105ac2f4076ba6caf518ab3867d - languageName: node - linkType: hard - -"@aws-sdk/shared-ini-file-loader@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/shared-ini-file-loader@npm:3.127.0" - dependencies: - tslib: ^2.3.1 - checksum: fa0c8ffa5d42940778b14e8f1d8998605b5d7ea43f3c19cc9dbb02f2d552c35dabc5850a5e6d3f6af68978b2171aaec435c05c648a1ecf1c2fb81fe9a60d9702 +"@aws-crypto/util@npm:^5.2.0": + version: 5.2.0 + resolution: "@aws-crypto/util@npm:5.2.0" + dependencies: + "@aws-sdk/types": ^3.222.0 + "@smithy/util-utf8": ^2.0.0 + tslib: ^2.6.2 + checksum: f0f81d9d2771c59946cfec48b86cb23d39f78a966c4a1f89d4753abdc3cb38de06f907d1e6450059b121d48ac65d612ab88bdb70014553a077fc3dabddfbf8d6 + languageName: node + linkType: hard + +"@aws-sdk/client-ssm@npm:3.687.0": + version: 3.687.0 + resolution: "@aws-sdk/client-ssm@npm:3.687.0" + dependencies: + "@aws-crypto/sha256-browser": 5.2.0 + "@aws-crypto/sha256-js": 5.2.0 + "@aws-sdk/client-sso-oidc": 3.687.0 + "@aws-sdk/client-sts": 3.687.0 + "@aws-sdk/core": 3.686.0 + "@aws-sdk/credential-provider-node": 3.687.0 + "@aws-sdk/middleware-host-header": 3.686.0 + "@aws-sdk/middleware-logger": 3.686.0 + "@aws-sdk/middleware-recursion-detection": 3.686.0 + "@aws-sdk/middleware-user-agent": 3.687.0 + "@aws-sdk/region-config-resolver": 3.686.0 + "@aws-sdk/types": 3.686.0 + "@aws-sdk/util-endpoints": 3.686.0 + "@aws-sdk/util-user-agent-browser": 3.686.0 + "@aws-sdk/util-user-agent-node": 3.687.0 + "@smithy/config-resolver": ^3.0.10 + "@smithy/core": ^2.5.1 + "@smithy/fetch-http-handler": ^4.0.0 + "@smithy/hash-node": ^3.0.8 + "@smithy/invalid-dependency": ^3.0.8 + "@smithy/middleware-content-length": ^3.0.10 + "@smithy/middleware-endpoint": ^3.2.1 + "@smithy/middleware-retry": ^3.0.25 + "@smithy/middleware-serde": ^3.0.8 + "@smithy/middleware-stack": ^3.0.8 + "@smithy/node-config-provider": ^3.1.9 + "@smithy/node-http-handler": ^3.2.5 + "@smithy/protocol-http": ^4.1.5 + "@smithy/smithy-client": ^3.4.2 + "@smithy/types": ^3.6.0 + "@smithy/url-parser": ^3.0.8 + "@smithy/util-base64": ^3.0.0 + "@smithy/util-body-length-browser": ^3.0.0 + "@smithy/util-body-length-node": ^3.0.0 + "@smithy/util-defaults-mode-browser": ^3.0.25 + "@smithy/util-defaults-mode-node": ^3.0.25 + "@smithy/util-endpoints": ^2.1.4 + "@smithy/util-middleware": ^3.0.8 + "@smithy/util-retry": ^3.0.8 + "@smithy/util-utf8": ^3.0.0 + "@smithy/util-waiter": ^3.1.7 + "@types/uuid": ^9.0.1 + tslib: ^2.6.2 + uuid: ^9.0.1 + checksum: 40ec944db43e7749e639f9d338440ba2be65f8b0361b73cafb8c709aa1237b71b9c967bc26bfecb7012c56ce72c5b988e41a48a1d2a65f0b5b6b650adfdfd4df + languageName: node + linkType: hard + +"@aws-sdk/client-sso-oidc@npm:3.687.0": + version: 3.687.0 + resolution: "@aws-sdk/client-sso-oidc@npm:3.687.0" + dependencies: + "@aws-crypto/sha256-browser": 5.2.0 + "@aws-crypto/sha256-js": 5.2.0 + "@aws-sdk/core": 3.686.0 + "@aws-sdk/credential-provider-node": 3.687.0 + "@aws-sdk/middleware-host-header": 3.686.0 + "@aws-sdk/middleware-logger": 3.686.0 + "@aws-sdk/middleware-recursion-detection": 3.686.0 + "@aws-sdk/middleware-user-agent": 3.687.0 + "@aws-sdk/region-config-resolver": 3.686.0 + "@aws-sdk/types": 3.686.0 + "@aws-sdk/util-endpoints": 3.686.0 + "@aws-sdk/util-user-agent-browser": 3.686.0 + "@aws-sdk/util-user-agent-node": 3.687.0 + "@smithy/config-resolver": ^3.0.10 + "@smithy/core": ^2.5.1 + "@smithy/fetch-http-handler": ^4.0.0 + "@smithy/hash-node": ^3.0.8 + "@smithy/invalid-dependency": ^3.0.8 + "@smithy/middleware-content-length": ^3.0.10 + "@smithy/middleware-endpoint": ^3.2.1 + "@smithy/middleware-retry": ^3.0.25 + "@smithy/middleware-serde": ^3.0.8 + "@smithy/middleware-stack": ^3.0.8 + "@smithy/node-config-provider": ^3.1.9 + "@smithy/node-http-handler": ^3.2.5 + "@smithy/protocol-http": ^4.1.5 + "@smithy/smithy-client": ^3.4.2 + "@smithy/types": ^3.6.0 + "@smithy/url-parser": ^3.0.8 + "@smithy/util-base64": ^3.0.0 + "@smithy/util-body-length-browser": ^3.0.0 + "@smithy/util-body-length-node": ^3.0.0 + "@smithy/util-defaults-mode-browser": ^3.0.25 + "@smithy/util-defaults-mode-node": ^3.0.25 + "@smithy/util-endpoints": ^2.1.4 + "@smithy/util-middleware": ^3.0.8 + "@smithy/util-retry": ^3.0.8 + "@smithy/util-utf8": ^3.0.0 + tslib: ^2.6.2 + peerDependencies: + "@aws-sdk/client-sts": ^3.687.0 + checksum: baa3a4ceb15ba2c88802d61fcbc757b4115cfaae8032ebe4a7cb4bd3790afb78fb291690dce31c0bdf80fc361b69e0e42b43c6bf412a1274844689bf49ac15b7 + languageName: node + linkType: hard + +"@aws-sdk/client-sso@npm:3.687.0": + version: 3.687.0 + resolution: "@aws-sdk/client-sso@npm:3.687.0" + dependencies: + "@aws-crypto/sha256-browser": 5.2.0 + "@aws-crypto/sha256-js": 5.2.0 + "@aws-sdk/core": 3.686.0 + "@aws-sdk/middleware-host-header": 3.686.0 + "@aws-sdk/middleware-logger": 3.686.0 + "@aws-sdk/middleware-recursion-detection": 3.686.0 + "@aws-sdk/middleware-user-agent": 3.687.0 + "@aws-sdk/region-config-resolver": 3.686.0 + "@aws-sdk/types": 3.686.0 + "@aws-sdk/util-endpoints": 3.686.0 + "@aws-sdk/util-user-agent-browser": 3.686.0 + "@aws-sdk/util-user-agent-node": 3.687.0 + "@smithy/config-resolver": ^3.0.10 + "@smithy/core": ^2.5.1 + "@smithy/fetch-http-handler": ^4.0.0 + "@smithy/hash-node": ^3.0.8 + "@smithy/invalid-dependency": ^3.0.8 + "@smithy/middleware-content-length": ^3.0.10 + "@smithy/middleware-endpoint": ^3.2.1 + "@smithy/middleware-retry": ^3.0.25 + "@smithy/middleware-serde": ^3.0.8 + "@smithy/middleware-stack": ^3.0.8 + "@smithy/node-config-provider": ^3.1.9 + "@smithy/node-http-handler": ^3.2.5 + "@smithy/protocol-http": ^4.1.5 + "@smithy/smithy-client": ^3.4.2 + "@smithy/types": ^3.6.0 + "@smithy/url-parser": ^3.0.8 + "@smithy/util-base64": ^3.0.0 + "@smithy/util-body-length-browser": ^3.0.0 + "@smithy/util-body-length-node": ^3.0.0 + "@smithy/util-defaults-mode-browser": ^3.0.25 + "@smithy/util-defaults-mode-node": ^3.0.25 + "@smithy/util-endpoints": ^2.1.4 + "@smithy/util-middleware": ^3.0.8 + "@smithy/util-retry": ^3.0.8 + "@smithy/util-utf8": ^3.0.0 + tslib: ^2.6.2 + checksum: 01c233165ba2ac84d9f288ba11f172afb8a039a37a10b571b8c99c5b9ece99f7b7eb63aa206d3cd9c81d9fb671c63e416af07e7aca04395e89e734a75ca1d5f5 + languageName: node + linkType: hard + +"@aws-sdk/client-sts@npm:3.687.0": + version: 3.687.0 + resolution: "@aws-sdk/client-sts@npm:3.687.0" + dependencies: + "@aws-crypto/sha256-browser": 5.2.0 + "@aws-crypto/sha256-js": 5.2.0 + "@aws-sdk/client-sso-oidc": 3.687.0 + "@aws-sdk/core": 3.686.0 + "@aws-sdk/credential-provider-node": 3.687.0 + "@aws-sdk/middleware-host-header": 3.686.0 + "@aws-sdk/middleware-logger": 3.686.0 + "@aws-sdk/middleware-recursion-detection": 3.686.0 + "@aws-sdk/middleware-user-agent": 3.687.0 + "@aws-sdk/region-config-resolver": 3.686.0 + "@aws-sdk/types": 3.686.0 + "@aws-sdk/util-endpoints": 3.686.0 + "@aws-sdk/util-user-agent-browser": 3.686.0 + "@aws-sdk/util-user-agent-node": 3.687.0 + "@smithy/config-resolver": ^3.0.10 + "@smithy/core": ^2.5.1 + "@smithy/fetch-http-handler": ^4.0.0 + "@smithy/hash-node": ^3.0.8 + "@smithy/invalid-dependency": ^3.0.8 + "@smithy/middleware-content-length": ^3.0.10 + "@smithy/middleware-endpoint": ^3.2.1 + "@smithy/middleware-retry": ^3.0.25 + "@smithy/middleware-serde": ^3.0.8 + "@smithy/middleware-stack": ^3.0.8 + "@smithy/node-config-provider": ^3.1.9 + "@smithy/node-http-handler": ^3.2.5 + "@smithy/protocol-http": ^4.1.5 + "@smithy/smithy-client": ^3.4.2 + "@smithy/types": ^3.6.0 + "@smithy/url-parser": ^3.0.8 + "@smithy/util-base64": ^3.0.0 + "@smithy/util-body-length-browser": ^3.0.0 + "@smithy/util-body-length-node": ^3.0.0 + "@smithy/util-defaults-mode-browser": ^3.0.25 + "@smithy/util-defaults-mode-node": ^3.0.25 + "@smithy/util-endpoints": ^2.1.4 + "@smithy/util-middleware": ^3.0.8 + "@smithy/util-retry": ^3.0.8 + "@smithy/util-utf8": ^3.0.0 + tslib: ^2.6.2 + checksum: 633ddab42f38b1803cd8bba671273378516d830e7398567076cb86bf1bb5827f722e7f12d03f16603c1e0ec61842f9687d7bfaefbde0737d79dfe50bd1605751 + languageName: node + linkType: hard + +"@aws-sdk/core@npm:3.686.0": + version: 3.686.0 + resolution: "@aws-sdk/core@npm:3.686.0" + dependencies: + "@aws-sdk/types": 3.686.0 + "@smithy/core": ^2.5.1 + "@smithy/node-config-provider": ^3.1.9 + "@smithy/property-provider": ^3.1.7 + "@smithy/protocol-http": ^4.1.5 + "@smithy/signature-v4": ^4.2.0 + "@smithy/smithy-client": ^3.4.2 + "@smithy/types": ^3.6.0 + "@smithy/util-middleware": ^3.0.8 + fast-xml-parser: 4.4.1 + tslib: ^2.6.2 + checksum: c74ea67447efe74dc88a48e9b2c16745503a4323e91ff97a98e56b3ac49d34a0a57a44eed0054559a5c675e20216e02037a761d946fd8053f142f2d3a274c8a8 + languageName: node + linkType: hard + +"@aws-sdk/credential-provider-env@npm:3.686.0": + version: 3.686.0 + resolution: "@aws-sdk/credential-provider-env@npm:3.686.0" + dependencies: + "@aws-sdk/core": 3.686.0 + "@aws-sdk/types": 3.686.0 + "@smithy/property-provider": ^3.1.7 + "@smithy/types": ^3.6.0 + tslib: ^2.6.2 + checksum: 2c574da1ce5027998e5672162efa2264cbebb8bed61e1d7f8556aa76e98aeb7a0c6db7bb1edf213331466edcff9001300a6c9733a6d50c862ade6568acb3e8dd + languageName: node + linkType: hard + +"@aws-sdk/credential-provider-http@npm:3.686.0": + version: 3.686.0 + resolution: "@aws-sdk/credential-provider-http@npm:3.686.0" + dependencies: + "@aws-sdk/core": 3.686.0 + "@aws-sdk/types": 3.686.0 + "@smithy/fetch-http-handler": ^4.0.0 + "@smithy/node-http-handler": ^3.2.5 + "@smithy/property-provider": ^3.1.7 + "@smithy/protocol-http": ^4.1.5 + "@smithy/smithy-client": ^3.4.2 + "@smithy/types": ^3.6.0 + "@smithy/util-stream": ^3.2.1 + tslib: ^2.6.2 + checksum: b503ae6c86c7d884e41df75dbe36a58b13ccaa8ca1adb20996311e521d6967b3442f65de6442195d49bbaa868984e9d5579d5cb22c4bd47926a33dd7065a2e09 + languageName: node + linkType: hard + +"@aws-sdk/credential-provider-ini@npm:3.687.0": + version: 3.687.0 + resolution: "@aws-sdk/credential-provider-ini@npm:3.687.0" + dependencies: + "@aws-sdk/core": 3.686.0 + "@aws-sdk/credential-provider-env": 3.686.0 + "@aws-sdk/credential-provider-http": 3.686.0 + "@aws-sdk/credential-provider-process": 3.686.0 + "@aws-sdk/credential-provider-sso": 3.687.0 + "@aws-sdk/credential-provider-web-identity": 3.686.0 + "@aws-sdk/types": 3.686.0 + "@smithy/credential-provider-imds": ^3.2.4 + "@smithy/property-provider": ^3.1.7 + "@smithy/shared-ini-file-loader": ^3.1.8 + "@smithy/types": ^3.6.0 + tslib: ^2.6.2 + peerDependencies: + "@aws-sdk/client-sts": ^3.687.0 + checksum: 1718843c54292b040323c3fd6abc38168f81267f75f11922aa92a8941572a669e59d319902f9af33f2f94c7c37022de3de6d66618bede1476492018e42489327 languageName: node linkType: hard -"@aws-sdk/signature-v4@npm:3.130.0": - version: 3.130.0 - resolution: "@aws-sdk/signature-v4@npm:3.130.0" +"@aws-sdk/credential-provider-node@npm:3.687.0": + version: 3.687.0 + resolution: "@aws-sdk/credential-provider-node@npm:3.687.0" dependencies: - "@aws-sdk/is-array-buffer": 3.55.0 - "@aws-sdk/types": 3.127.0 - "@aws-sdk/util-hex-encoding": 3.109.0 - "@aws-sdk/util-middleware": 3.127.0 - "@aws-sdk/util-uri-escape": 3.55.0 - tslib: ^2.3.1 - checksum: 10c63fa18db144eda63727006e812b1cd504b49e5c345c94ce45a0b4b072b82f1e5ca964468868a5351b0e795f1b2945bc2f4ef81a9fa2bad26485226958c33d + "@aws-sdk/credential-provider-env": 3.686.0 + "@aws-sdk/credential-provider-http": 3.686.0 + "@aws-sdk/credential-provider-ini": 3.687.0 + "@aws-sdk/credential-provider-process": 3.686.0 + "@aws-sdk/credential-provider-sso": 3.687.0 + "@aws-sdk/credential-provider-web-identity": 3.686.0 + "@aws-sdk/types": 3.686.0 + "@smithy/credential-provider-imds": ^3.2.4 + "@smithy/property-provider": ^3.1.7 + "@smithy/shared-ini-file-loader": ^3.1.8 + "@smithy/types": ^3.6.0 + tslib: ^2.6.2 + checksum: fc542feefdf04d81a426d1f9b4e95edab1d087af9fa2e2e77e0b7b0c676040aeac1b6e2631d448691d1e5f7dce5de0ff3e2566e6c2044ddf3b167a652b973288 languageName: node linkType: hard -"@aws-sdk/smithy-client@npm:3.142.0": - version: 3.142.0 - resolution: "@aws-sdk/smithy-client@npm:3.142.0" +"@aws-sdk/credential-provider-process@npm:3.686.0": + version: 3.686.0 + resolution: "@aws-sdk/credential-provider-process@npm:3.686.0" dependencies: - "@aws-sdk/middleware-stack": 3.127.0 - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: e87b04dc11b935ba6ae30d894f28cfb93894d96f19bfaa9f8656cdad85d6daf68f8067493a228e9dc4eee4fc91672254287ce2f37740d895d89806c151785280 + "@aws-sdk/core": 3.686.0 + "@aws-sdk/types": 3.686.0 + "@smithy/property-provider": ^3.1.7 + "@smithy/shared-ini-file-loader": ^3.1.8 + "@smithy/types": ^3.6.0 + tslib: ^2.6.2 + checksum: 5b73373200c2f1bd5dc79e76507418c0e39902b8b861129a967ac915d89a26fbd4b5e5f068c4b9e96b78666558e9b3572e841be28dd0c10079b4f5148b461239 languageName: node linkType: hard -"@aws-sdk/types@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/types@npm:3.127.0" - checksum: 35467177421fb180ca73eb85a327c814e3aaee11a8eabbf9f048d58ec4133d7205400ce2e3c3ef70d78a64a2359f1df2926e1a0e6f169a415c2896ff6dfb66d9 - languageName: node - linkType: hard - -"@aws-sdk/types@npm:^3.1.0": - version: 3.49.0 - resolution: "@aws-sdk/types@npm:3.49.0" - checksum: 39f5689128f438e051f1787bb8c3c04bd534b83b279bea1341f245b41a7b26357a6954329320043ec8ef1c4e226367490a8f39d3adb346f605e56ff17ec3eab9 - languageName: node - linkType: hard - -"@aws-sdk/url-parser@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/url-parser@npm:3.127.0" +"@aws-sdk/credential-provider-sso@npm:3.687.0": + version: 3.687.0 + resolution: "@aws-sdk/credential-provider-sso@npm:3.687.0" dependencies: - "@aws-sdk/querystring-parser": 3.127.0 - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: 5732f51d6fef2d26599cb186e230cd8e99c567f6efd7b3f27dc0ecdb660510a20a3384f00c5edb08d0e8e59fe3bcb5b8e368558aefbff2cf5201eaeb7caefa4a + "@aws-sdk/client-sso": 3.687.0 + "@aws-sdk/core": 3.686.0 + "@aws-sdk/token-providers": 3.686.0 + "@aws-sdk/types": 3.686.0 + "@smithy/property-provider": ^3.1.7 + "@smithy/shared-ini-file-loader": ^3.1.8 + "@smithy/types": ^3.6.0 + tslib: ^2.6.2 + checksum: 27435cc47d5fac002a98bcada8cf28a76cc0569b00e46637b05dd3e45bb6c2dc121969ccca54389864e4064d87607740c036535f65175f5f5e94c1c2410af3f6 languageName: node linkType: hard -"@aws-sdk/util-base64-browser@npm:3.109.0": - version: 3.109.0 - resolution: "@aws-sdk/util-base64-browser@npm:3.109.0" +"@aws-sdk/credential-provider-web-identity@npm:3.686.0": + version: 3.686.0 + resolution: "@aws-sdk/credential-provider-web-identity@npm:3.686.0" dependencies: - tslib: ^2.3.1 - checksum: e4fb1dc0e5ac60320d4ba05dcf03b8e641c7a304f918df3134bf46c8ccf5b09d07ee283924a4cc4e9250fef582a2636bb4dac6ba71ee36662b2678dfe49d46b2 + "@aws-sdk/core": 3.686.0 + "@aws-sdk/types": 3.686.0 + "@smithy/property-provider": ^3.1.7 + "@smithy/types": ^3.6.0 + tslib: ^2.6.2 + peerDependencies: + "@aws-sdk/client-sts": ^3.686.0 + checksum: dbe042d773acb6f51f8be763abb814be038217d1925961afb5c599bb825104d3162e83bc9133e2229a49f335fefebbc9dfd16d88ba3134dbba40de2505c4b9ca languageName: node linkType: hard -"@aws-sdk/util-base64-node@npm:3.55.0": - version: 3.55.0 - resolution: "@aws-sdk/util-base64-node@npm:3.55.0" +"@aws-sdk/middleware-host-header@npm:3.686.0": + version: 3.686.0 + resolution: "@aws-sdk/middleware-host-header@npm:3.686.0" dependencies: - "@aws-sdk/util-buffer-from": 3.55.0 - tslib: ^2.3.1 - checksum: 4a2a58ae2e5d2d904271dd0433b9c15ca9a8e9d62e979c82159420ab8e1b573e96c8f223c951be2139cdfe49a09c478d165eff9468978883c4c5bcdfa7d9fd4b + "@aws-sdk/types": 3.686.0 + "@smithy/protocol-http": ^4.1.5 + "@smithy/types": ^3.6.0 + tslib: ^2.6.2 + checksum: ed423fadd10061c554be88e2dfe1ba66990dca363903325a114c59f8cc8d44414286360273ab5edf7f8cf7eb95668ff88e4fbebbad1bf6d859410363959e1304 languageName: node linkType: hard -"@aws-sdk/util-body-length-browser@npm:3.55.0": - version: 3.55.0 - resolution: "@aws-sdk/util-body-length-browser@npm:3.55.0" +"@aws-sdk/middleware-logger@npm:3.686.0": + version: 3.686.0 + resolution: "@aws-sdk/middleware-logger@npm:3.686.0" dependencies: - tslib: ^2.3.1 - checksum: f10c9e1f052da751e762e807f23b768052e5d375d7e048d596ee1d607065ff0c0ef7004bd4fd136848b6a5646c1c69e43860aa7a3da80d90023b749530faad59 + "@aws-sdk/types": 3.686.0 + "@smithy/types": ^3.6.0 + tslib: ^2.6.2 + checksum: 513e20d1194fb6d932241c2d6bbf1b6dd1aadd3f9105612f1b381c93dc2bc7057dc0d0a8b25ea5d6354f68fbf218170f2f3dec26daf0a6f5d1134e1d802855a1 languageName: node linkType: hard -"@aws-sdk/util-body-length-node@npm:3.55.0": - version: 3.55.0 - resolution: "@aws-sdk/util-body-length-node@npm:3.55.0" +"@aws-sdk/middleware-recursion-detection@npm:3.686.0": + version: 3.686.0 + resolution: "@aws-sdk/middleware-recursion-detection@npm:3.686.0" dependencies: - tslib: ^2.3.1 - checksum: 35ae66271b7160c53b344a2bd933b5882e9fcef4a47c579a2a9e313657da8b896ca6c674489767f75d148ea5ffb8cbde2127eae55f5f39aaa4823a7c1d98ec69 + "@aws-sdk/types": 3.686.0 + "@smithy/protocol-http": ^4.1.5 + "@smithy/types": ^3.6.0 + tslib: ^2.6.2 + checksum: fe30ad3d39dbbb2d0b492ee5329ef6e03eeaf59437b4af75aa90129d21fde6a7b0626bed00dd2dfa8b6f27eb44c941828e200471becc9d574526fc36f2484995 languageName: node linkType: hard -"@aws-sdk/util-buffer-from@npm:3.55.0": - version: 3.55.0 - resolution: "@aws-sdk/util-buffer-from@npm:3.55.0" +"@aws-sdk/middleware-user-agent@npm:3.687.0": + version: 3.687.0 + resolution: "@aws-sdk/middleware-user-agent@npm:3.687.0" dependencies: - "@aws-sdk/is-array-buffer": 3.55.0 - tslib: ^2.3.1 - checksum: 0c1d72cf2369c13a8bff7d990f8e8da7f5584dcbdf1965cf50674d531b42d80661eebdbbaf968d6932760fc3f5708374a676d05485a1d02347655ea5f2423f57 + "@aws-sdk/core": 3.686.0 + "@aws-sdk/types": 3.686.0 + "@aws-sdk/util-endpoints": 3.686.0 + "@smithy/core": ^2.5.1 + "@smithy/protocol-http": ^4.1.5 + "@smithy/types": ^3.6.0 + tslib: ^2.6.2 + checksum: ca17d118d34a5149c3a9cf21001e6af02ecf3bbeda167a25ab88f5f3bf156cccc7f271e4870e8aff26152d1e0efab92b43b136ff221b11c6418a1ac105209dc9 languageName: node linkType: hard -"@aws-sdk/util-config-provider@npm:3.109.0": - version: 3.109.0 - resolution: "@aws-sdk/util-config-provider@npm:3.109.0" +"@aws-sdk/region-config-resolver@npm:3.686.0": + version: 3.686.0 + resolution: "@aws-sdk/region-config-resolver@npm:3.686.0" dependencies: - tslib: ^2.3.1 - checksum: 99c9ef24faa555a317b46b782e211474dd9d666611e1aa76b963e93a6e7c54e32d5c20b87d9a601b9de68dfa1c7310d72667a74c335b31edb776e8494e2541af + "@aws-sdk/types": 3.686.0 + "@smithy/node-config-provider": ^3.1.9 + "@smithy/types": ^3.6.0 + "@smithy/util-config-provider": ^3.0.0 + "@smithy/util-middleware": ^3.0.8 + tslib: ^2.6.2 + checksum: d9ea4e6715a994874bff6256af3cdf446762e67b3f65d4469ef2d43be8cbb639d5407a00f2254ce41ebf2b556fad31bb49d63083d0047086df831592a0d6d620 languageName: node linkType: hard -"@aws-sdk/util-defaults-mode-browser@npm:3.142.0": - version: 3.142.0 - resolution: "@aws-sdk/util-defaults-mode-browser@npm:3.142.0" +"@aws-sdk/token-providers@npm:3.686.0": + version: 3.686.0 + resolution: "@aws-sdk/token-providers@npm:3.686.0" dependencies: - "@aws-sdk/property-provider": 3.127.0 - "@aws-sdk/types": 3.127.0 - bowser: ^2.11.0 - tslib: ^2.3.1 - checksum: 6ead8f767c2dcc0e21be180784a9ca5b57daa905a426fac0d0aa12f79f026d2da55d83c8b29cbec5c6e7adaccad8219b300dc30913808770ff7a20f2aa45be15 + "@aws-sdk/types": 3.686.0 + "@smithy/property-provider": ^3.1.7 + "@smithy/shared-ini-file-loader": ^3.1.8 + "@smithy/types": ^3.6.0 + tslib: ^2.6.2 + peerDependencies: + "@aws-sdk/client-sso-oidc": ^3.686.0 + checksum: eae1cf27c76659ca1a802f4c99945cd17faec5310cde1e7cb795c64b7e8539a848a0b5ec906f3261fd2cf9f682fa4e21ab6542c2ebc4eb9655bdc795e653d4be languageName: node linkType: hard -"@aws-sdk/util-defaults-mode-node@npm:3.142.0": - version: 3.142.0 - resolution: "@aws-sdk/util-defaults-mode-node@npm:3.142.0" +"@aws-sdk/types@npm:3.686.0, @aws-sdk/types@npm:^3.222.0": + version: 3.686.0 + resolution: "@aws-sdk/types@npm:3.686.0" dependencies: - "@aws-sdk/config-resolver": 3.130.0 - "@aws-sdk/credential-provider-imds": 3.127.0 - "@aws-sdk/node-config-provider": 3.127.0 - "@aws-sdk/property-provider": 3.127.0 - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: 6025ea3359a16a312d1b9bdedc761f4eabd59d274bc96290514c3d8107e89da8c365db6bc23b4fb5143de5faa89ac082d435cbc655ca4457a6d9384a4bd5b643 + "@smithy/types": ^3.6.0 + tslib: ^2.6.2 + checksum: 59eda13ad391eb719ebec1cac06755c21d043d71681f1e8ecb3ea39f333c3c7e635bc11967c57d82472c74683be519703219290684d57d594189ca35eb7935cc languageName: node linkType: hard -"@aws-sdk/util-hex-encoding@npm:3.109.0": - version: 3.109.0 - resolution: "@aws-sdk/util-hex-encoding@npm:3.109.0" +"@aws-sdk/util-endpoints@npm:3.686.0": + version: 3.686.0 + resolution: "@aws-sdk/util-endpoints@npm:3.686.0" dependencies: - tslib: ^2.3.1 - checksum: 1c166b53d7f84c0271cb71da8ac0ef4a9bfd78f2d2d70e4a903921dd3c355a79a446fa66ff64522d87aa9c738f445fdfd527043980bea642ae3acbc7dd758edf + "@aws-sdk/types": 3.686.0 + "@smithy/types": ^3.6.0 + "@smithy/util-endpoints": ^2.1.4 + tslib: ^2.6.2 + checksum: b6bfb0edba2b98dbb3004378d5ddcd455a506bcb68f5f40ddd1a807ff265c46cf3fa183f9aa8b987e9db7cb286c6d9b3d3a43bc625ea8a6e469392d7844fee06 languageName: node linkType: hard @@ -725,87 +513,33 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/util-middleware@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/util-middleware@npm:3.127.0" - dependencies: - tslib: ^2.3.1 - checksum: c845b1bf6339cdee9762f41c3578fafb780bf5341037d3381c4dc799ac31626031de2a80735a5edaf260da655b1ef054a950dda552aedeed4188dfe42c717e83 - languageName: node - linkType: hard - -"@aws-sdk/util-uri-escape@npm:3.55.0": - version: 3.55.0 - resolution: "@aws-sdk/util-uri-escape@npm:3.55.0" - dependencies: - tslib: ^2.3.1 - checksum: fad6780856f2b42a11ce7bb1e2ea5b7a966a8f564f3d09e83dca024291ae589a0cb2a1d294812cd626346addeb292c178f84867e40f8fab6fca067bc42ad360a - languageName: node - linkType: hard - -"@aws-sdk/util-user-agent-browser@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/util-user-agent-browser@npm:3.127.0" +"@aws-sdk/util-user-agent-browser@npm:3.686.0": + version: 3.686.0 + resolution: "@aws-sdk/util-user-agent-browser@npm:3.686.0" dependencies: - "@aws-sdk/types": 3.127.0 + "@aws-sdk/types": 3.686.0 + "@smithy/types": ^3.6.0 bowser: ^2.11.0 - tslib: ^2.3.1 - checksum: 42f08784b3f6f535516467e60897330e23b853e9ce134e9095170ef36c715aa04017b066fddf2b4830438bb00b630e7895dfcfbfaaa4d8de63d9983d9f205e25 + tslib: ^2.6.2 + checksum: 8a86a1123583f1cfbe3c0680222110786867cc6db2cc5583a08fc952483fc5147072e366033628cf88e224ddd3fb76cc8779f5716ccbafbfa09492a2e9b206d1 languageName: node linkType: hard -"@aws-sdk/util-user-agent-node@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/util-user-agent-node@npm:3.127.0" +"@aws-sdk/util-user-agent-node@npm:3.687.0": + version: 3.687.0 + resolution: "@aws-sdk/util-user-agent-node@npm:3.687.0" dependencies: - "@aws-sdk/node-config-provider": 3.127.0 - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 + "@aws-sdk/middleware-user-agent": 3.687.0 + "@aws-sdk/types": 3.686.0 + "@smithy/node-config-provider": ^3.1.9 + "@smithy/types": ^3.6.0 + tslib: ^2.6.2 peerDependencies: aws-crt: ">=1.0.0" peerDependenciesMeta: aws-crt: optional: true - checksum: bba9cce7a775a3985b97960d64990d1b18ee39f0fdebcebd8d63f3eb951fe41f6808b9272ddafde2a4366f9e041bd10aec74aa8dba33d70101458dc8ce086ccf - languageName: node - linkType: hard - -"@aws-sdk/util-utf8-browser@npm:3.109.0": - version: 3.109.0 - resolution: "@aws-sdk/util-utf8-browser@npm:3.109.0" - dependencies: - tslib: ^2.3.1 - checksum: 8311763b04261dab5995ec67abf31795f41e9c4b1ad635ed305735e14c7e3bc48e9ae349a06aab485390358a6a58e97190144ea51190983cec4ae665887b219b - languageName: node - linkType: hard - -"@aws-sdk/util-utf8-browser@npm:^3.0.0": - version: 3.49.0 - resolution: "@aws-sdk/util-utf8-browser@npm:3.49.0" - dependencies: - tslib: ^2.3.0 - checksum: 695ea2115b1ec75450cef456c18129a4032521a6e1ca7f0bfbd6d9ebf1666dd4d65dc3e8748307e2aca317f2b5d93de9333a3886dd3970707e6bce23f60be9a7 - languageName: node - linkType: hard - -"@aws-sdk/util-utf8-node@npm:3.109.0": - version: 3.109.0 - resolution: "@aws-sdk/util-utf8-node@npm:3.109.0" - dependencies: - "@aws-sdk/util-buffer-from": 3.55.0 - tslib: ^2.3.1 - checksum: ef706db8c0ceb014bc2fb9e5045b54369160648a9e919836132f98c5537eda82193f400fab607783ecf98a5df11b66c32256c4f2780bc689d7507ddaf2a0977b - languageName: node - linkType: hard - -"@aws-sdk/util-waiter@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/util-waiter@npm:3.127.0" - dependencies: - "@aws-sdk/abort-controller": 3.127.0 - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: 3c27de00e943409a1fb927e450ecb7bd83cd6eb6329e0fbf51f20bd657a35571f181074f2ca1b612f87c07844be53129bf868c4acd4c734e22313197e6c70b1e + checksum: 2c6f282565e020dddee81eb1ebe020ca27289b4018ec2d6af8810d947a38323a51069d6b24fb9d67e67bdeed5539fcb8db9b91b4833e3ef02c640166ad31c3cf languageName: node linkType: hard @@ -3590,6 +3324,494 @@ __metadata: languageName: node linkType: hard +"@smithy/abort-controller@npm:^3.1.6": + version: 3.1.6 + resolution: "@smithy/abort-controller@npm:3.1.6" + dependencies: + "@smithy/types": ^3.6.0 + tslib: ^2.6.2 + checksum: abba34cc47b6f7951402da1f94465616b84dedf55e0b0467b53f7848b9cb3e82b94869fa637278aa2f65809613e872582791053fd23299e026edada4a5ec1c1c + languageName: node + linkType: hard + +"@smithy/config-resolver@npm:^3.0.10": + version: 3.0.10 + resolution: "@smithy/config-resolver@npm:3.0.10" + dependencies: + "@smithy/node-config-provider": ^3.1.9 + "@smithy/types": ^3.6.0 + "@smithy/util-config-provider": ^3.0.0 + "@smithy/util-middleware": ^3.0.8 + tslib: ^2.6.2 + checksum: 55c2355db7eabfd70f0bf288d58cb0238f43b754d91f46febf7fd04617e6107d26e2899ede2b37fbd977980bb12fdbdb688fc5f53654202e946fe3c258cef5d1 + languageName: node + linkType: hard + +"@smithy/core@npm:^2.5.1": + version: 2.5.1 + resolution: "@smithy/core@npm:2.5.1" + dependencies: + "@smithy/middleware-serde": ^3.0.8 + "@smithy/protocol-http": ^4.1.5 + "@smithy/types": ^3.6.0 + "@smithy/util-body-length-browser": ^3.0.0 + "@smithy/util-middleware": ^3.0.8 + "@smithy/util-stream": ^3.2.1 + "@smithy/util-utf8": ^3.0.0 + tslib: ^2.6.2 + checksum: 9175f48eca64f6b304335e32e09c6276aadf7d26cb9180da0a120a2b07c12d8dbe51de2ccce78e98c60729ce4eefe28e7ca95c169432a8049560564d780d1a81 + languageName: node + linkType: hard + +"@smithy/credential-provider-imds@npm:^3.2.4, @smithy/credential-provider-imds@npm:^3.2.5": + version: 3.2.5 + resolution: "@smithy/credential-provider-imds@npm:3.2.5" + dependencies: + "@smithy/node-config-provider": ^3.1.9 + "@smithy/property-provider": ^3.1.8 + "@smithy/types": ^3.6.0 + "@smithy/url-parser": ^3.0.8 + tslib: ^2.6.2 + checksum: 4c8941e3c3806f605930c31e461b0b0fd6384f782c7df92b35e30581eca02d7c4c6d6f2b1c5cdb08fcf4823d98f0ceadc8481def968f1266f761df5dac672d8f + languageName: node + linkType: hard + +"@smithy/fetch-http-handler@npm:^4.0.0": + version: 4.0.0 + resolution: "@smithy/fetch-http-handler@npm:4.0.0" + dependencies: + "@smithy/protocol-http": ^4.1.5 + "@smithy/querystring-builder": ^3.0.8 + "@smithy/types": ^3.6.0 + "@smithy/util-base64": ^3.0.0 + tslib: ^2.6.2 + checksum: 43fc88515227e0d66b6b6a56a8e7a7f9c9690b32c51265859d40c1f4ace3a8a9ebba78e095715fe85a508d32c4f237c09f722e1e0c86d15a3fc81edc961a5051 + languageName: node + linkType: hard + +"@smithy/hash-node@npm:^3.0.8": + version: 3.0.8 + resolution: "@smithy/hash-node@npm:3.0.8" + dependencies: + "@smithy/types": ^3.6.0 + "@smithy/util-buffer-from": ^3.0.0 + "@smithy/util-utf8": ^3.0.0 + tslib: ^2.6.2 + checksum: 9a2e2e8ea044008345e64406a5ecbc23a507b00eae42e71455f0b05c638a21da57a68e43d73254236203187d7943b864c750fc62f95825cc5340dd95767530c3 + languageName: node + linkType: hard + +"@smithy/invalid-dependency@npm:^3.0.8": + version: 3.0.8 + resolution: "@smithy/invalid-dependency@npm:3.0.8" + dependencies: + "@smithy/types": ^3.6.0 + tslib: ^2.6.2 + checksum: ad55921e703ea3396a7d03b4515c2c0100d3c494865594a8a73b160e2913cac442d61a2545bcb248fedf00bb150cce2c33827d1d12527e34070e7fd8e114d2d6 + languageName: node + linkType: hard + +"@smithy/is-array-buffer@npm:^2.2.0": + version: 2.2.0 + resolution: "@smithy/is-array-buffer@npm:2.2.0" + dependencies: + tslib: ^2.6.2 + checksum: cd12c2e27884fec89ca8966d33c9dc34d3234efe89b33a9b309c61ebcde463e6f15f6a02d31d4fddbfd6e5904743524ca5b95021b517b98fe10957c2da0cd5fc + languageName: node + linkType: hard + +"@smithy/is-array-buffer@npm:^3.0.0": + version: 3.0.0 + resolution: "@smithy/is-array-buffer@npm:3.0.0" + dependencies: + tslib: ^2.6.2 + checksum: ce7440fcb1ce3c46722cff11c33e2f62a9df86d74fa2054a8e6b540302a91211cf6e4e3b1b7aac7030c6c8909158c1b6867c394201fa8afc6b631979956610e5 + languageName: node + linkType: hard + +"@smithy/middleware-content-length@npm:^3.0.10": + version: 3.0.10 + resolution: "@smithy/middleware-content-length@npm:3.0.10" + dependencies: + "@smithy/protocol-http": ^4.1.5 + "@smithy/types": ^3.6.0 + tslib: ^2.6.2 + checksum: 776fd9014240109328b6823be8649322390bde7aa468750920be3e6ed268a4e380f5b3fcfbe15b2b8af1b6e4b4fedda9a446b76cc247ca252b95380646ac80b5 + languageName: node + linkType: hard + +"@smithy/middleware-endpoint@npm:^3.2.1": + version: 3.2.1 + resolution: "@smithy/middleware-endpoint@npm:3.2.1" + dependencies: + "@smithy/core": ^2.5.1 + "@smithy/middleware-serde": ^3.0.8 + "@smithy/node-config-provider": ^3.1.9 + "@smithy/shared-ini-file-loader": ^3.1.9 + "@smithy/types": ^3.6.0 + "@smithy/url-parser": ^3.0.8 + "@smithy/util-middleware": ^3.0.8 + tslib: ^2.6.2 + checksum: acc41e1b665b6a0c3cf2952a44b4cd1ce980866b44fe4b0ed9208a6067c3aa15ebe646623b14375be6c04ab73fa74fb95eeeca6905fc27092ce93495c77d8b9b + languageName: node + linkType: hard + +"@smithy/middleware-retry@npm:^3.0.25": + version: 3.0.25 + resolution: "@smithy/middleware-retry@npm:3.0.25" + dependencies: + "@smithy/node-config-provider": ^3.1.9 + "@smithy/protocol-http": ^4.1.5 + "@smithy/service-error-classification": ^3.0.8 + "@smithy/smithy-client": ^3.4.2 + "@smithy/types": ^3.6.0 + "@smithy/util-middleware": ^3.0.8 + "@smithy/util-retry": ^3.0.8 + tslib: ^2.6.2 + uuid: ^9.0.1 + checksum: d10264cbff951b3b9585b54cc0e67de6099ed67461a34d83266e197fc48bea45fc7207ed7329c567390be6f08aeb84a6e7fef5f4fd770da9cad0028fc6f61d65 + languageName: node + linkType: hard + +"@smithy/middleware-serde@npm:^3.0.8": + version: 3.0.8 + resolution: "@smithy/middleware-serde@npm:3.0.8" + dependencies: + "@smithy/types": ^3.6.0 + tslib: ^2.6.2 + checksum: 3d1ba269680bcf0cea6ea1c0e6d20eaf9de3597a687533607cc1ec49dad8669424e41bf3498dcdd21613f7791b0406db1846c2cdd6571682e4be8cb8055a85da + languageName: node + linkType: hard + +"@smithy/middleware-stack@npm:^3.0.8": + version: 3.0.8 + resolution: "@smithy/middleware-stack@npm:3.0.8" + dependencies: + "@smithy/types": ^3.6.0 + tslib: ^2.6.2 + checksum: c4a24dcdb1db8f347d266ee97676daf1f5bb495aa6c1e59992378bebe39265be14be5c3f7cf9ae35a8ffe68476cfcfe9000a87e9b00062538359c4507f4060ea + languageName: node + linkType: hard + +"@smithy/node-config-provider@npm:^3.1.9": + version: 3.1.9 + resolution: "@smithy/node-config-provider@npm:3.1.9" + dependencies: + "@smithy/property-provider": ^3.1.8 + "@smithy/shared-ini-file-loader": ^3.1.9 + "@smithy/types": ^3.6.0 + tslib: ^2.6.2 + checksum: fc0d27ff620475f406cb0f3e8527e8dcf56449ec3faad96b9738d26ec825d1b75a55b2f28750efbde383d163c5e25bb32ad09ba59d7d40e491898b9cc6a2eb2a + languageName: node + linkType: hard + +"@smithy/node-http-handler@npm:^3.2.5": + version: 3.2.5 + resolution: "@smithy/node-http-handler@npm:3.2.5" + dependencies: + "@smithy/abort-controller": ^3.1.6 + "@smithy/protocol-http": ^4.1.5 + "@smithy/querystring-builder": ^3.0.8 + "@smithy/types": ^3.6.0 + tslib: ^2.6.2 + checksum: ea8d4148dd760f031f9eeb2aec2480685bb1a40d7ac9c482eb3170df0316cae58433a6c803d85b046c132a19b8b4874741fae054355b5584facbd46c18889c83 + languageName: node + linkType: hard + +"@smithy/property-provider@npm:^3.1.7, @smithy/property-provider@npm:^3.1.8": + version: 3.1.8 + resolution: "@smithy/property-provider@npm:3.1.8" + dependencies: + "@smithy/types": ^3.6.0 + tslib: ^2.6.2 + checksum: acf8a3cc0cad53503870580e164b41d79e34f1129c5b6fcf99d8dc09a0a89055889430f9552bead9bafc82775fed5f5f4c8eb3f7e53d91f759bb164a3a68cea5 + languageName: node + linkType: hard + +"@smithy/protocol-http@npm:^4.1.5": + version: 4.1.5 + resolution: "@smithy/protocol-http@npm:4.1.5" + dependencies: + "@smithy/types": ^3.6.0 + tslib: ^2.6.2 + checksum: 2e581594d03ff367ebc0a1ab0443e8b148f39a3ea810333861f4aed639239e5a261bedbb49f6555cfdb9682b88cd881715764c2dfe7e18a7a003385a0b6200d5 + languageName: node + linkType: hard + +"@smithy/querystring-builder@npm:^3.0.8": + version: 3.0.8 + resolution: "@smithy/querystring-builder@npm:3.0.8" + dependencies: + "@smithy/types": ^3.6.0 + "@smithy/util-uri-escape": ^3.0.0 + tslib: ^2.6.2 + checksum: b07a766fb1e94e06116aef6534a31bbd4bb1bb94844d61c67615316d19aac82f94781fab779655bc03a46d70dda9caf3ad991a3e41548fbbba92783103f4f43e + languageName: node + linkType: hard + +"@smithy/querystring-parser@npm:^3.0.8": + version: 3.0.8 + resolution: "@smithy/querystring-parser@npm:3.0.8" + dependencies: + "@smithy/types": ^3.6.0 + tslib: ^2.6.2 + checksum: 4ad9edfd96f084432157abd4953840f051ca4678963193bdc0ec7b210c79a649ddc023e327c39bd835ef7f56447dfaf2e47210738799ba9d044befacbe316a25 + languageName: node + linkType: hard + +"@smithy/service-error-classification@npm:^3.0.8": + version: 3.0.8 + resolution: "@smithy/service-error-classification@npm:3.0.8" + dependencies: + "@smithy/types": ^3.6.0 + checksum: cba6d33eb0e7482e557c303638416ea8678f80fa5782c97dd67e5b72741f22e2446370dc0ef9b16802d73cdfb7a5e4e5587c1d4abb5aa5ca9c33525137b4cf2b + languageName: node + linkType: hard + +"@smithy/shared-ini-file-loader@npm:^3.1.8, @smithy/shared-ini-file-loader@npm:^3.1.9": + version: 3.1.9 + resolution: "@smithy/shared-ini-file-loader@npm:3.1.9" + dependencies: + "@smithy/types": ^3.6.0 + tslib: ^2.6.2 + checksum: 571cc785659551d875fb76c53d116bf6f3978d1b698be096e9218dbbe1dd42efbfb174e151528103888faf7c9854e66f3e5ca395b9c359e37f876c20b22a4f97 + languageName: node + linkType: hard + +"@smithy/signature-v4@npm:^4.2.0": + version: 4.2.1 + resolution: "@smithy/signature-v4@npm:4.2.1" + dependencies: + "@smithy/is-array-buffer": ^3.0.0 + "@smithy/protocol-http": ^4.1.5 + "@smithy/types": ^3.6.0 + "@smithy/util-hex-encoding": ^3.0.0 + "@smithy/util-middleware": ^3.0.8 + "@smithy/util-uri-escape": ^3.0.0 + "@smithy/util-utf8": ^3.0.0 + tslib: ^2.6.2 + checksum: 783d8c0a780fbb94084819ea624e75a72daf84c480fa3215b0edd7689041925dbbab3e2785acdfef564c5623631d09aae4915f27cfd1357d2bd0f26349041e56 + languageName: node + linkType: hard + +"@smithy/smithy-client@npm:^3.4.2": + version: 3.4.2 + resolution: "@smithy/smithy-client@npm:3.4.2" + dependencies: + "@smithy/core": ^2.5.1 + "@smithy/middleware-endpoint": ^3.2.1 + "@smithy/middleware-stack": ^3.0.8 + "@smithy/protocol-http": ^4.1.5 + "@smithy/types": ^3.6.0 + "@smithy/util-stream": ^3.2.1 + tslib: ^2.6.2 + checksum: 4b53e695e18bf0ed4805dd66839e272129be5384f6de5356a2adc03311f5c372766b490a3c001086aec8728f6c9bb90ca625a09e9b4c3fe875c1ee7567118f34 + languageName: node + linkType: hard + +"@smithy/types@npm:^3.6.0": + version: 3.6.0 + resolution: "@smithy/types@npm:3.6.0" + dependencies: + tslib: ^2.6.2 + checksum: 4f581dc1c3e2dee8e1134fafb47de2c301330ea668214eb1a81d26b85acdb48a7e52008da0d15a402e998a79bed285a74b88949a5a4a3fe0aef38c28620ab795 + languageName: node + linkType: hard + +"@smithy/url-parser@npm:^3.0.8": + version: 3.0.8 + resolution: "@smithy/url-parser@npm:3.0.8" + dependencies: + "@smithy/querystring-parser": ^3.0.8 + "@smithy/types": ^3.6.0 + tslib: ^2.6.2 + checksum: 1bf2143b298a4afdf6a8fa40f7b018ad59eb79b717e2bafcd8634c20893485c456c12fe73659d342a3d3a51cdbb10afea61fac285e7ce5fa0f66d7695ad7d10b + languageName: node + linkType: hard + +"@smithy/util-base64@npm:^3.0.0": + version: 3.0.0 + resolution: "@smithy/util-base64@npm:3.0.0" + dependencies: + "@smithy/util-buffer-from": ^3.0.0 + "@smithy/util-utf8": ^3.0.0 + tslib: ^2.6.2 + checksum: 413f26046a7e98b2661a078f218a8d040c820fc5a02f5e364aff58c3957e28fde1ac4048c2ebbad5d87b9da4b9aa98a8d4a7fb0d2ce97def33738bd7d8d79aa0 + languageName: node + linkType: hard + +"@smithy/util-body-length-browser@npm:^3.0.0": + version: 3.0.0 + resolution: "@smithy/util-body-length-browser@npm:3.0.0" + dependencies: + tslib: ^2.6.2 + checksum: b01d8258b9a25b262734fc49cefefe48583ba193c3eefd49a6f7fd5922c3015d23dda88b52f3dd9a16827cad16b5b9425eef01e91bd0c71bb5abc469d2952c07 + languageName: node + linkType: hard + +"@smithy/util-body-length-node@npm:^3.0.0": + version: 3.0.0 + resolution: "@smithy/util-body-length-node@npm:3.0.0" + dependencies: + tslib: ^2.6.2 + checksum: da1baf4790609d3dc28c88385c7274fdf9b91a641fe3c5af22b78e18156df17bd470181348f43b2c739680936b1dafb1526158dfd817c3d9ecb71e653b4cbe3f + languageName: node + linkType: hard + +"@smithy/util-buffer-from@npm:^2.2.0": + version: 2.2.0 + resolution: "@smithy/util-buffer-from@npm:2.2.0" + dependencies: + "@smithy/is-array-buffer": ^2.2.0 + tslib: ^2.6.2 + checksum: 424c5b7368ae5880a8f2732e298d17879a19ca925f24ca45e1c6c005f717bb15b76eb28174d308d81631ad457ea0088aab0fd3255dd42f45a535c81944ad64d3 + languageName: node + linkType: hard + +"@smithy/util-buffer-from@npm:^3.0.0": + version: 3.0.0 + resolution: "@smithy/util-buffer-from@npm:3.0.0" + dependencies: + "@smithy/is-array-buffer": ^3.0.0 + tslib: ^2.6.2 + checksum: 1bfc4ab093fe98132bbc1ccd36a0b9ad75a31ed26bac4b7e9350205513a2481eb190ae44679ab4fecc5e10d367b5e6592bbfbf792671579d17d17bd7f7f233f5 + languageName: node + linkType: hard + +"@smithy/util-config-provider@npm:^3.0.0": + version: 3.0.0 + resolution: "@smithy/util-config-provider@npm:3.0.0" + dependencies: + tslib: ^2.6.2 + checksum: fc0f5f57d30261cf3a6693d8e338b9d269332c478ee18d905309a769844188190caf0564855d7e84f6c61e56aa556195dda89f65e8c30791951cf4999e4a70e7 + languageName: node + linkType: hard + +"@smithy/util-defaults-mode-browser@npm:^3.0.25": + version: 3.0.25 + resolution: "@smithy/util-defaults-mode-browser@npm:3.0.25" + dependencies: + "@smithy/property-provider": ^3.1.8 + "@smithy/smithy-client": ^3.4.2 + "@smithy/types": ^3.6.0 + bowser: ^2.11.0 + tslib: ^2.6.2 + checksum: 87c4b346d753712f7fe501920c6bb9712d7ec56670e49aa5d6db40ebe0f0cfa58d9e1d27e96e40c6be1721cf81bd0b2f29c077efc3b8dece074e3a6d175fa1a4 + languageName: node + linkType: hard + +"@smithy/util-defaults-mode-node@npm:^3.0.25": + version: 3.0.25 + resolution: "@smithy/util-defaults-mode-node@npm:3.0.25" + dependencies: + "@smithy/config-resolver": ^3.0.10 + "@smithy/credential-provider-imds": ^3.2.5 + "@smithy/node-config-provider": ^3.1.9 + "@smithy/property-provider": ^3.1.8 + "@smithy/smithy-client": ^3.4.2 + "@smithy/types": ^3.6.0 + tslib: ^2.6.2 + checksum: e34c44bb5cbc8036765aa4f52e648a753b477b6653834291f7a2e0d82b7b58c1e741eac9a9a95d39b6f751c05013909c36ac0818e0015c24201af9d2e2fb0f5a + languageName: node + linkType: hard + +"@smithy/util-endpoints@npm:^2.1.4": + version: 2.1.4 + resolution: "@smithy/util-endpoints@npm:2.1.4" + dependencies: + "@smithy/node-config-provider": ^3.1.9 + "@smithy/types": ^3.6.0 + tslib: ^2.6.2 + checksum: 523df0a35807f3493cccaf1b76f88e14dedd3d9f29fe26a6f8c73cdfe09e57c67a1d3029cc585995b0f7fe20e07afa8b4dfa5f1d631a0c4c06c9f68075b61bad + languageName: node + linkType: hard + +"@smithy/util-hex-encoding@npm:^3.0.0": + version: 3.0.0 + resolution: "@smithy/util-hex-encoding@npm:3.0.0" + dependencies: + tslib: ^2.6.2 + checksum: dd32fd71e915825987a18bf7c0f8f0c4956d0b17a0ee71592b5563bb20e04f24dbf81d36161aac07caab3bb5e535cc609fce20aa4a38f66b457c4c6f5c7748d9 + languageName: node + linkType: hard + +"@smithy/util-middleware@npm:^3.0.8": + version: 3.0.8 + resolution: "@smithy/util-middleware@npm:3.0.8" + dependencies: + "@smithy/types": ^3.6.0 + tslib: ^2.6.2 + checksum: 6933c012f47c8b547b4986133a9dc2b264e9d71def155c4a9bce1bd1afbd73cb8e936c50ebc80190fc1d5bb26aee73ba012c567766dcd8a13c3d06bef841ab3c + languageName: node + linkType: hard + +"@smithy/util-retry@npm:^3.0.8": + version: 3.0.8 + resolution: "@smithy/util-retry@npm:3.0.8" + dependencies: + "@smithy/service-error-classification": ^3.0.8 + "@smithy/types": ^3.6.0 + tslib: ^2.6.2 + checksum: 5c0c63beb867828e6fd54f5fd83de412180df02de42f678df0f5a4412d10bfb5a74c22aa83a6f364c8292b5c82be94fe7af35d1ebe4e50a2c05946520f2ea870 + languageName: node + linkType: hard + +"@smithy/util-stream@npm:^3.2.1": + version: 3.2.1 + resolution: "@smithy/util-stream@npm:3.2.1" + dependencies: + "@smithy/fetch-http-handler": ^4.0.0 + "@smithy/node-http-handler": ^3.2.5 + "@smithy/types": ^3.6.0 + "@smithy/util-base64": ^3.0.0 + "@smithy/util-buffer-from": ^3.0.0 + "@smithy/util-hex-encoding": ^3.0.0 + "@smithy/util-utf8": ^3.0.0 + tslib: ^2.6.2 + checksum: 3dc2b005d48a2e5ccb0761e7a7869f8af24d34a93eaa34f0586ba42fe79f13d48efb676e4aacbf02a54f1a225eb851d2c706c016f5f9d0b4fc127d8be69f5d90 + languageName: node + linkType: hard + +"@smithy/util-uri-escape@npm:^3.0.0": + version: 3.0.0 + resolution: "@smithy/util-uri-escape@npm:3.0.0" + dependencies: + tslib: ^2.6.2 + checksum: d7ee01c978e2b08d0a89a3b678f5d5e5d5bb4ab4ab85567a238b1a6195dff1bdaf9ae62497e7f32ff5121b3dc007c370bcb6e8ef79b01fe5acdec5bbce8c7ce4 + languageName: node + linkType: hard + +"@smithy/util-utf8@npm:^2.0.0": + version: 2.3.0 + resolution: "@smithy/util-utf8@npm:2.3.0" + dependencies: + "@smithy/util-buffer-from": ^2.2.0 + tslib: ^2.6.2 + checksum: 00e55d4b4e37d48be0eef3599082402b933c52a1407fed7e8e8ad76d94d81a0b30b8bfaf2047c59d9c3af31e5f20e7a8c959cb7ae270f894255e05a2229964f0 + languageName: node + linkType: hard + +"@smithy/util-utf8@npm:^3.0.0": + version: 3.0.0 + resolution: "@smithy/util-utf8@npm:3.0.0" + dependencies: + "@smithy/util-buffer-from": ^3.0.0 + tslib: ^2.6.2 + checksum: d97be1748963263a1161ba80417d82318b977b38542f3fdf0379b0162461188be680e5bfb66a89d65652f0fad6ecf2ab23a43205979216e50602488f73434da3 + languageName: node + linkType: hard + +"@smithy/util-waiter@npm:^3.1.7": + version: 3.1.7 + resolution: "@smithy/util-waiter@npm:3.1.7" + dependencies: + "@smithy/abort-controller": ^3.1.6 + "@smithy/types": ^3.6.0 + tslib: ^2.6.2 + checksum: 190d992898d0c7d776c806657703c1ebd0ba2c24f4042ed0251dc8653799aefe12848a0445ee16cdbb05b76b5c81fc803b271957954aa614aaccb99dd3338caa + languageName: node + linkType: hard + "@tootallnate/once@npm:1": version: 1.1.2 resolution: "@tootallnate/once@npm:1.1.2" @@ -3801,6 +4023,13 @@ __metadata: languageName: node linkType: hard +"@types/uuid@npm:^9.0.1": + version: 9.0.8 + resolution: "@types/uuid@npm:9.0.8" + checksum: b8c60b7ba8250356b5088302583d1704a4e1a13558d143c549c408bf8920535602ffc12394ede77f8a8083511b023704bc66d1345792714002bfa261b17c5275 + languageName: node + linkType: hard + "@types/yargs-parser@npm:*": version: 15.0.0 resolution: "@types/yargs-parser@npm:15.0.0" @@ -5417,13 +5646,6 @@ __metadata: languageName: node linkType: hard -"entities@npm:2.2.0": - version: 2.2.0 - resolution: "entities@npm:2.2.0" - checksum: 19010dacaf0912c895ea262b4f6128574f9ccf8d4b3b65c7e8334ad0079b3706376360e28d8843ff50a78aabcb8f08f0a32dbfacdc77e47ed77ca08b713669b3 - languageName: node - linkType: hard - "env-paths@npm:^2.2.0": version: 2.2.1 resolution: "env-paths@npm:2.2.1" @@ -5910,12 +6132,14 @@ __metadata: languageName: node linkType: hard -"fast-xml-parser@npm:3.19.0": - version: 3.19.0 - resolution: "fast-xml-parser@npm:3.19.0" +"fast-xml-parser@npm:4.4.1": + version: 4.4.1 + resolution: "fast-xml-parser@npm:4.4.1" + dependencies: + strnum: ^1.0.5 bin: - xml2js: cli.js - checksum: d9da9145f73d90c05ee2746d80c78eca4da0249dea8c81ea8f1a6e1245e62988ed4a040dbd1c7229b1e0bdcbf69d33c882e0ac337d10c7eedb159a4dc9779327 + fxparser: src/cli/cli.js + checksum: f440c01cd141b98789ae777503bcb6727393296094cc82924ae9f88a5b971baa4eec7e65306c7e07746534caa661fc83694ff437d9012dc84dee39dfbfaab947 languageName: node linkType: hard @@ -6673,7 +6897,7 @@ __metadata: version: 0.0.0-use.local resolution: "infra@workspace:." dependencies: - "@aws-sdk/client-ssm": 3.145.0 + "@aws-sdk/client-ssm": 3.687.0 "@babel/core": 7.23.9 "@babel/plugin-transform-modules-commonjs": 7.23.3 "@nx/js": 16 @@ -9936,6 +10160,13 @@ __metadata: languageName: node linkType: hard +"strnum@npm:^1.0.5": + version: 1.0.5 + resolution: "strnum@npm:1.0.5" + checksum: 651b2031db5da1bf4a77fdd2f116a8ac8055157c5420f5569f64879133825915ad461513e7202a16d7fec63c54fd822410d0962f8ca12385c4334891b9ae6dd2 + languageName: node + linkType: hard + "strong-log-transformer@npm:^2.1.0": version: 2.1.0 resolution: "strong-log-transformer@npm:2.1.0" @@ -10214,13 +10445,6 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^1.11.1": - version: 1.14.1 - resolution: "tslib@npm:1.14.1" - checksum: dbe628ef87f66691d5d2959b3e41b9ca0045c3ee3c7c7b906cc1e328b39f199bb1ad9e671c39025bd56122ac57dfbf7385a94843b1cc07c60a4db74795829acd - languageName: node - linkType: hard - "tslib@npm:^2.1.0, tslib@npm:^2.4.0": version: 2.6.2 resolution: "tslib@npm:2.6.2" @@ -10235,10 +10459,10 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^2.3.1": - version: 2.4.1 - resolution: "tslib@npm:2.4.1" - checksum: 19480d6e0313292bd6505d4efe096a6b31c70e21cf08b5febf4da62e95c265c8f571f7b36fcc3d1a17e068032f59c269fab3459d6cd3ed6949eafecf64315fca +"tslib@npm:^2.6.2": + version: 2.8.1 + resolution: "tslib@npm:2.8.1" + checksum: e4aba30e632b8c8902b47587fd13345e2827fa639e7c3121074d5ee0880723282411a8838f830b55100cbe4517672f84a2472667d355b81e8af165a55dc6203a languageName: node linkType: hard @@ -10456,12 +10680,12 @@ __metadata: languageName: node linkType: hard -"uuid@npm:^8.3.2": - version: 8.3.2 - resolution: "uuid@npm:8.3.2" +"uuid@npm:^9.0.1": + version: 9.0.1 + resolution: "uuid@npm:9.0.1" bin: uuid: dist/bin/uuid - checksum: 5575a8a75c13120e2f10e6ddc801b2c7ed7d8f3c8ac22c7ed0c7b2ba6383ec0abda88c905085d630e251719e0777045ae3236f04c812184b7c765f63a70e58df + checksum: 39931f6da74e307f51c0fb463dc2462807531dc80760a9bff1e35af4316131b4fc3203d16da60ae33f07fdca5b56f3f1dd662da0c99fea9aaeab2004780cc5f4 languageName: node linkType: hard diff --git a/package.json b/package.json index 0a9d57c78aec..c0a86f7a5b63 100644 --- a/package.json +++ b/package.json @@ -69,12 +69,13 @@ "@apollo/gateway": "2.1.1", "@apollo/subgraph": "2.1.1", "@apollo/utils.keyvadapter": "3.0.0", - "@aws-sdk/client-s3": "3.662.0", - "@aws-sdk/client-sqs": "3.662.0", - "@aws-sdk/credential-provider-node": "3.662.0", - "@aws-sdk/lib-storage": "3.662.0", - "@aws-sdk/s3-presigned-post": "3.662.0", - "@aws-sdk/s3-request-presigner": "3.662.0", + "@aws-sdk/abort-controller": "3.374.0", + "@aws-sdk/client-s3": "3.687.0", + "@aws-sdk/client-sqs": "3.687.0", + "@aws-sdk/credential-provider-node": "3.687.0", + "@aws-sdk/lib-storage": "3.687.0", + "@aws-sdk/s3-presigned-post": "3.687.0", + "@aws-sdk/s3-request-presigner": "3.687.0", "@azure/msal-node": "1.14.4", "@contentful/app-sdk": "4.16.0", "@contentful/default-field-editors": "1.6.34", @@ -319,8 +320,8 @@ "@anatine/esbuild-decorators": "0.2.4", "@anatine/esbuildnx": "0.2.0", "@anev/ts-mountebank": "^1.6.0", - "@aws-sdk/client-ses": "3.145.0", - "@aws-sdk/client-ssm": "3.145.0", + "@aws-sdk/client-ses": "3.687.0", + "@aws-sdk/client-ssm": "3.687.0", "@babel/core": "7.22.5", "@babel/plugin-proposal-decorators": "7.22.5", "@babel/plugin-transform-class-properties": "7.22.5", diff --git a/yarn.lock b/yarn.lock index 89e37c725552..badd496cba21 100644 --- a/yarn.lock +++ b/yarn.lock @@ -746,15 +746,6 @@ __metadata: languageName: node linkType: hard -"@aws-crypto/ie11-detection@npm:^2.0.0": - version: 2.0.0 - resolution: "@aws-crypto/ie11-detection@npm:2.0.0" - dependencies: - tslib: ^1.11.1 - checksum: dd15daa1160ecdf28b9c930dcbd7f8bc96e74d7f791134974b672f5d36182274c76db4fff414385cdb8997a8b7ade991988a571aaac3184e226e2ed6428d895f - languageName: node - linkType: hard - "@aws-crypto/sha1-browser@npm:5.2.0": version: 5.2.0 resolution: "@aws-crypto/sha1-browser@npm:5.2.0" @@ -769,22 +760,6 @@ __metadata: languageName: node linkType: hard -"@aws-crypto/sha256-browser@npm:2.0.0": - version: 2.0.0 - resolution: "@aws-crypto/sha256-browser@npm:2.0.0" - dependencies: - "@aws-crypto/ie11-detection": ^2.0.0 - "@aws-crypto/sha256-js": ^2.0.0 - "@aws-crypto/supports-web-crypto": ^2.0.0 - "@aws-crypto/util": ^2.0.0 - "@aws-sdk/types": ^3.1.0 - "@aws-sdk/util-locate-window": ^3.0.0 - "@aws-sdk/util-utf8-browser": ^3.0.0 - tslib: ^1.11.1 - checksum: 7bc1ff042d0c53a46c0fc3824bd97fb3ed1df7dc030b8a995889471052860b8c8ade469c97866fafd8249a3144d0f48b0f1054f357e2b403606009381c4b8f0e - languageName: node - linkType: hard - "@aws-crypto/sha256-browser@npm:5.2.0": version: 5.2.0 resolution: "@aws-crypto/sha256-browser@npm:5.2.0" @@ -800,17 +775,6 @@ __metadata: languageName: node linkType: hard -"@aws-crypto/sha256-js@npm:2.0.0, @aws-crypto/sha256-js@npm:^2.0.0": - version: 2.0.0 - resolution: "@aws-crypto/sha256-js@npm:2.0.0" - dependencies: - "@aws-crypto/util": ^2.0.0 - "@aws-sdk/types": ^3.1.0 - tslib: ^1.11.1 - checksum: e4abf9baec6bed19d380f92a999a41ac5bdd8890dfd45971d29054c298854c5b7087e7de633413f2e64618ef8238ccf4c0b75797c73063c74bbba3cb5d8b2581 - languageName: node - linkType: hard - "@aws-crypto/sha256-js@npm:5.2.0, @aws-crypto/sha256-js@npm:^5.2.0": version: 5.2.0 resolution: "@aws-crypto/sha256-js@npm:5.2.0" @@ -822,15 +786,6 @@ __metadata: languageName: node linkType: hard -"@aws-crypto/supports-web-crypto@npm:^2.0.0": - version: 2.0.0 - resolution: "@aws-crypto/supports-web-crypto@npm:2.0.0" - dependencies: - tslib: ^1.11.1 - checksum: 77fad3813a5d3c495296fb836293184d32aeddacd436bf7d1b59b93d87de4cf7c0dbf862d4eaf915259edfb7b424ea05e2ceeddbaa1588a154d0c19df455c475 - languageName: node - linkType: hard - "@aws-crypto/supports-web-crypto@npm:^5.2.0": version: 5.2.0 resolution: "@aws-crypto/supports-web-crypto@npm:5.2.0" @@ -840,17 +795,6 @@ __metadata: languageName: node linkType: hard -"@aws-crypto/util@npm:^2.0.0": - version: 2.0.0 - resolution: "@aws-crypto/util@npm:2.0.0" - dependencies: - "@aws-sdk/types": ^3.1.0 - "@aws-sdk/util-utf8-browser": ^3.0.0 - tslib: ^1.11.1 - checksum: afff771bf8023218df3b224f0ad6b8f1a4cded4bdc0a4f9ff7234e7089311034b2046f8ba29d2e94810a46d5c38a2103d4828b60325cb0c49aea4d6cbb741c6a - languageName: node - linkType: hard - "@aws-crypto/util@npm:^5.2.0": version: 5.2.0 resolution: "@aws-crypto/util@npm:5.2.0" @@ -862,1201 +806,774 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/abort-controller@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/abort-controller@npm:3.127.0" +"@aws-sdk/abort-controller@npm:3.374.0": + version: 3.374.0 + resolution: "@aws-sdk/abort-controller@npm:3.374.0" dependencies: - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: 9768573f8788db6fbed2a72a431860f6edb70a0795b78f2400993f91f471ad543e61eaca7503be949052af4ca953b23cc9b11e8bed5a3735198b65701349d759 + "@smithy/abort-controller": ^1.0.1 + tslib: ^2.5.0 + checksum: 0cd46e1da1e553568b863fe9b821bb853e9de3c74bbdbe9c03fba3cd864a5b9f4d340b4c69625ef665751b9ac8035fe229d23bb8322d418b48525a27ff6fa31d languageName: node linkType: hard -"@aws-sdk/client-s3@npm:3.662.0": - version: 3.662.0 - resolution: "@aws-sdk/client-s3@npm:3.662.0" +"@aws-sdk/client-s3@npm:3.687.0": + version: 3.687.0 + resolution: "@aws-sdk/client-s3@npm:3.687.0" dependencies: "@aws-crypto/sha1-browser": 5.2.0 "@aws-crypto/sha256-browser": 5.2.0 "@aws-crypto/sha256-js": 5.2.0 - "@aws-sdk/client-sso-oidc": 3.662.0 - "@aws-sdk/client-sts": 3.662.0 - "@aws-sdk/core": 3.662.0 - "@aws-sdk/credential-provider-node": 3.662.0 - "@aws-sdk/middleware-bucket-endpoint": 3.662.0 - "@aws-sdk/middleware-expect-continue": 3.662.0 - "@aws-sdk/middleware-flexible-checksums": 3.662.0 - "@aws-sdk/middleware-host-header": 3.662.0 - "@aws-sdk/middleware-location-constraint": 3.662.0 - "@aws-sdk/middleware-logger": 3.662.0 - "@aws-sdk/middleware-recursion-detection": 3.662.0 - "@aws-sdk/middleware-sdk-s3": 3.662.0 - "@aws-sdk/middleware-ssec": 3.662.0 - "@aws-sdk/middleware-user-agent": 3.662.0 - "@aws-sdk/region-config-resolver": 3.662.0 - "@aws-sdk/signature-v4-multi-region": 3.662.0 - "@aws-sdk/types": 3.662.0 - "@aws-sdk/util-endpoints": 3.662.0 - "@aws-sdk/util-user-agent-browser": 3.662.0 - "@aws-sdk/util-user-agent-node": 3.662.0 - "@aws-sdk/xml-builder": 3.662.0 - "@smithy/config-resolver": ^3.0.9 - "@smithy/core": ^2.4.7 - "@smithy/eventstream-serde-browser": ^3.0.10 - "@smithy/eventstream-serde-config-resolver": ^3.0.7 - "@smithy/eventstream-serde-node": ^3.0.9 - "@smithy/fetch-http-handler": ^3.2.9 - "@smithy/hash-blob-browser": ^3.1.6 - "@smithy/hash-node": ^3.0.7 - "@smithy/hash-stream-node": ^3.1.6 - "@smithy/invalid-dependency": ^3.0.7 - "@smithy/md5-js": ^3.0.7 - "@smithy/middleware-content-length": ^3.0.9 - "@smithy/middleware-endpoint": ^3.1.4 - "@smithy/middleware-retry": ^3.0.22 - "@smithy/middleware-serde": ^3.0.7 - "@smithy/middleware-stack": ^3.0.7 - "@smithy/node-config-provider": ^3.1.8 - "@smithy/node-http-handler": ^3.2.4 - "@smithy/protocol-http": ^4.1.4 - "@smithy/smithy-client": ^3.3.6 - "@smithy/types": ^3.5.0 - "@smithy/url-parser": ^3.0.7 + "@aws-sdk/client-sso-oidc": 3.687.0 + "@aws-sdk/client-sts": 3.687.0 + "@aws-sdk/core": 3.686.0 + "@aws-sdk/credential-provider-node": 3.687.0 + "@aws-sdk/middleware-bucket-endpoint": 3.686.0 + "@aws-sdk/middleware-expect-continue": 3.686.0 + "@aws-sdk/middleware-flexible-checksums": 3.687.0 + "@aws-sdk/middleware-host-header": 3.686.0 + "@aws-sdk/middleware-location-constraint": 3.686.0 + "@aws-sdk/middleware-logger": 3.686.0 + "@aws-sdk/middleware-recursion-detection": 3.686.0 + "@aws-sdk/middleware-sdk-s3": 3.687.0 + "@aws-sdk/middleware-ssec": 3.686.0 + "@aws-sdk/middleware-user-agent": 3.687.0 + "@aws-sdk/region-config-resolver": 3.686.0 + "@aws-sdk/signature-v4-multi-region": 3.687.0 + "@aws-sdk/types": 3.686.0 + "@aws-sdk/util-endpoints": 3.686.0 + "@aws-sdk/util-user-agent-browser": 3.686.0 + "@aws-sdk/util-user-agent-node": 3.687.0 + "@aws-sdk/xml-builder": 3.686.0 + "@smithy/config-resolver": ^3.0.10 + "@smithy/core": ^2.5.1 + "@smithy/eventstream-serde-browser": ^3.0.11 + "@smithy/eventstream-serde-config-resolver": ^3.0.8 + "@smithy/eventstream-serde-node": ^3.0.10 + "@smithy/fetch-http-handler": ^4.0.0 + "@smithy/hash-blob-browser": ^3.1.7 + "@smithy/hash-node": ^3.0.8 + "@smithy/hash-stream-node": ^3.1.7 + "@smithy/invalid-dependency": ^3.0.8 + "@smithy/md5-js": ^3.0.8 + "@smithy/middleware-content-length": ^3.0.10 + "@smithy/middleware-endpoint": ^3.2.1 + "@smithy/middleware-retry": ^3.0.25 + "@smithy/middleware-serde": ^3.0.8 + "@smithy/middleware-stack": ^3.0.8 + "@smithy/node-config-provider": ^3.1.9 + "@smithy/node-http-handler": ^3.2.5 + "@smithy/protocol-http": ^4.1.5 + "@smithy/smithy-client": ^3.4.2 + "@smithy/types": ^3.6.0 + "@smithy/url-parser": ^3.0.8 "@smithy/util-base64": ^3.0.0 "@smithy/util-body-length-browser": ^3.0.0 "@smithy/util-body-length-node": ^3.0.0 - "@smithy/util-defaults-mode-browser": ^3.0.22 - "@smithy/util-defaults-mode-node": ^3.0.22 - "@smithy/util-endpoints": ^2.1.3 - "@smithy/util-middleware": ^3.0.7 - "@smithy/util-retry": ^3.0.7 - "@smithy/util-stream": ^3.1.9 + "@smithy/util-defaults-mode-browser": ^3.0.25 + "@smithy/util-defaults-mode-node": ^3.0.25 + "@smithy/util-endpoints": ^2.1.4 + "@smithy/util-middleware": ^3.0.8 + "@smithy/util-retry": ^3.0.8 + "@smithy/util-stream": ^3.2.1 "@smithy/util-utf8": ^3.0.0 - "@smithy/util-waiter": ^3.1.6 + "@smithy/util-waiter": ^3.1.7 tslib: ^2.6.2 - checksum: c7301c71a5e6a2f840229b2cddfdf42744ef20d2eba67ba79cd584b5da7bd4c4407e7a1bc7bb3b0bd193239551a08d0b8e6a3e698b7095ebbbabe7bd964c5a17 - languageName: node - linkType: hard - -"@aws-sdk/client-ses@npm:3.145.0": - version: 3.145.0 - resolution: "@aws-sdk/client-ses@npm:3.145.0" - dependencies: - "@aws-crypto/sha256-browser": 2.0.0 - "@aws-crypto/sha256-js": 2.0.0 - "@aws-sdk/client-sts": 3.145.0 - "@aws-sdk/config-resolver": 3.130.0 - "@aws-sdk/credential-provider-node": 3.145.0 - "@aws-sdk/fetch-http-handler": 3.131.0 - "@aws-sdk/hash-node": 3.127.0 - "@aws-sdk/invalid-dependency": 3.127.0 - "@aws-sdk/middleware-content-length": 3.127.0 - "@aws-sdk/middleware-host-header": 3.127.0 - "@aws-sdk/middleware-logger": 3.127.0 - "@aws-sdk/middleware-recursion-detection": 3.127.0 - "@aws-sdk/middleware-retry": 3.127.0 - "@aws-sdk/middleware-serde": 3.127.0 - "@aws-sdk/middleware-signing": 3.130.0 - "@aws-sdk/middleware-stack": 3.127.0 - "@aws-sdk/middleware-user-agent": 3.127.0 - "@aws-sdk/node-config-provider": 3.127.0 - "@aws-sdk/node-http-handler": 3.127.0 - "@aws-sdk/protocol-http": 3.127.0 - "@aws-sdk/smithy-client": 3.142.0 - "@aws-sdk/types": 3.127.0 - "@aws-sdk/url-parser": 3.127.0 - "@aws-sdk/util-base64-browser": 3.109.0 - "@aws-sdk/util-base64-node": 3.55.0 - "@aws-sdk/util-body-length-browser": 3.55.0 - "@aws-sdk/util-body-length-node": 3.55.0 - "@aws-sdk/util-defaults-mode-browser": 3.142.0 - "@aws-sdk/util-defaults-mode-node": 3.142.0 - "@aws-sdk/util-user-agent-browser": 3.127.0 - "@aws-sdk/util-user-agent-node": 3.127.0 - "@aws-sdk/util-utf8-browser": 3.109.0 - "@aws-sdk/util-utf8-node": 3.109.0 - "@aws-sdk/util-waiter": 3.127.0 - entities: 2.2.0 - fast-xml-parser: 3.19.0 - tslib: ^2.3.1 - checksum: f8239e413c13566d6dc87816cc7263a4d60725f4a69138b9327d32f5c31174805b47f904bcfa6d6e50ad400924a34769c8742821631f8da7fa87733990fc74cb + checksum: a763c9eb072b2a97f8f376f045beb15e44850dc395af991cbd4374143b630b936dcea00bdb9e78e2f7d5e8c2b85fac678998756efcb1255e863f5773a23e3bf2 languageName: node linkType: hard -"@aws-sdk/client-sqs@npm:3.662.0": - version: 3.662.0 - resolution: "@aws-sdk/client-sqs@npm:3.662.0" +"@aws-sdk/client-ses@npm:3.687.0": + version: 3.687.0 + resolution: "@aws-sdk/client-ses@npm:3.687.0" dependencies: "@aws-crypto/sha256-browser": 5.2.0 "@aws-crypto/sha256-js": 5.2.0 - "@aws-sdk/client-sso-oidc": 3.662.0 - "@aws-sdk/client-sts": 3.662.0 - "@aws-sdk/core": 3.662.0 - "@aws-sdk/credential-provider-node": 3.662.0 - "@aws-sdk/middleware-host-header": 3.662.0 - "@aws-sdk/middleware-logger": 3.662.0 - "@aws-sdk/middleware-recursion-detection": 3.662.0 - "@aws-sdk/middleware-sdk-sqs": 3.662.0 - "@aws-sdk/middleware-user-agent": 3.662.0 - "@aws-sdk/region-config-resolver": 3.662.0 - "@aws-sdk/types": 3.662.0 - "@aws-sdk/util-endpoints": 3.662.0 - "@aws-sdk/util-user-agent-browser": 3.662.0 - "@aws-sdk/util-user-agent-node": 3.662.0 - "@smithy/config-resolver": ^3.0.9 - "@smithy/core": ^2.4.7 - "@smithy/fetch-http-handler": ^3.2.9 - "@smithy/hash-node": ^3.0.7 - "@smithy/invalid-dependency": ^3.0.7 - "@smithy/md5-js": ^3.0.7 - "@smithy/middleware-content-length": ^3.0.9 - "@smithy/middleware-endpoint": ^3.1.4 - "@smithy/middleware-retry": ^3.0.22 - "@smithy/middleware-serde": ^3.0.7 - "@smithy/middleware-stack": ^3.0.7 - "@smithy/node-config-provider": ^3.1.8 - "@smithy/node-http-handler": ^3.2.4 - "@smithy/protocol-http": ^4.1.4 - "@smithy/smithy-client": ^3.3.6 - "@smithy/types": ^3.5.0 - "@smithy/url-parser": ^3.0.7 + "@aws-sdk/client-sso-oidc": 3.687.0 + "@aws-sdk/client-sts": 3.687.0 + "@aws-sdk/core": 3.686.0 + "@aws-sdk/credential-provider-node": 3.687.0 + "@aws-sdk/middleware-host-header": 3.686.0 + "@aws-sdk/middleware-logger": 3.686.0 + "@aws-sdk/middleware-recursion-detection": 3.686.0 + "@aws-sdk/middleware-user-agent": 3.687.0 + "@aws-sdk/region-config-resolver": 3.686.0 + "@aws-sdk/types": 3.686.0 + "@aws-sdk/util-endpoints": 3.686.0 + "@aws-sdk/util-user-agent-browser": 3.686.0 + "@aws-sdk/util-user-agent-node": 3.687.0 + "@smithy/config-resolver": ^3.0.10 + "@smithy/core": ^2.5.1 + "@smithy/fetch-http-handler": ^4.0.0 + "@smithy/hash-node": ^3.0.8 + "@smithy/invalid-dependency": ^3.0.8 + "@smithy/middleware-content-length": ^3.0.10 + "@smithy/middleware-endpoint": ^3.2.1 + "@smithy/middleware-retry": ^3.0.25 + "@smithy/middleware-serde": ^3.0.8 + "@smithy/middleware-stack": ^3.0.8 + "@smithy/node-config-provider": ^3.1.9 + "@smithy/node-http-handler": ^3.2.5 + "@smithy/protocol-http": ^4.1.5 + "@smithy/smithy-client": ^3.4.2 + "@smithy/types": ^3.6.0 + "@smithy/url-parser": ^3.0.8 "@smithy/util-base64": ^3.0.0 "@smithy/util-body-length-browser": ^3.0.0 "@smithy/util-body-length-node": ^3.0.0 - "@smithy/util-defaults-mode-browser": ^3.0.22 - "@smithy/util-defaults-mode-node": ^3.0.22 - "@smithy/util-endpoints": ^2.1.3 - "@smithy/util-middleware": ^3.0.7 - "@smithy/util-retry": ^3.0.7 + "@smithy/util-defaults-mode-browser": ^3.0.25 + "@smithy/util-defaults-mode-node": ^3.0.25 + "@smithy/util-endpoints": ^2.1.4 + "@smithy/util-middleware": ^3.0.8 + "@smithy/util-retry": ^3.0.8 "@smithy/util-utf8": ^3.0.0 + "@smithy/util-waiter": ^3.1.7 tslib: ^2.6.2 - checksum: 0fa12ea39c5c5804b754b4ff29c8a54a85623bd88324fdee3f6554114d25e80458b04a587eff8251ce156bd476804d04a06bca3e27f612a0325897c1dba7ffff - languageName: node - linkType: hard - -"@aws-sdk/client-ssm@npm:3.145.0": - version: 3.145.0 - resolution: "@aws-sdk/client-ssm@npm:3.145.0" - dependencies: - "@aws-crypto/sha256-browser": 2.0.0 - "@aws-crypto/sha256-js": 2.0.0 - "@aws-sdk/client-sts": 3.145.0 - "@aws-sdk/config-resolver": 3.130.0 - "@aws-sdk/credential-provider-node": 3.145.0 - "@aws-sdk/fetch-http-handler": 3.131.0 - "@aws-sdk/hash-node": 3.127.0 - "@aws-sdk/invalid-dependency": 3.127.0 - "@aws-sdk/middleware-content-length": 3.127.0 - "@aws-sdk/middleware-host-header": 3.127.0 - "@aws-sdk/middleware-logger": 3.127.0 - "@aws-sdk/middleware-recursion-detection": 3.127.0 - "@aws-sdk/middleware-retry": 3.127.0 - "@aws-sdk/middleware-serde": 3.127.0 - "@aws-sdk/middleware-signing": 3.130.0 - "@aws-sdk/middleware-stack": 3.127.0 - "@aws-sdk/middleware-user-agent": 3.127.0 - "@aws-sdk/node-config-provider": 3.127.0 - "@aws-sdk/node-http-handler": 3.127.0 - "@aws-sdk/protocol-http": 3.127.0 - "@aws-sdk/smithy-client": 3.142.0 - "@aws-sdk/types": 3.127.0 - "@aws-sdk/url-parser": 3.127.0 - "@aws-sdk/util-base64-browser": 3.109.0 - "@aws-sdk/util-base64-node": 3.55.0 - "@aws-sdk/util-body-length-browser": 3.55.0 - "@aws-sdk/util-body-length-node": 3.55.0 - "@aws-sdk/util-defaults-mode-browser": 3.142.0 - "@aws-sdk/util-defaults-mode-node": 3.142.0 - "@aws-sdk/util-user-agent-browser": 3.127.0 - "@aws-sdk/util-user-agent-node": 3.127.0 - "@aws-sdk/util-utf8-browser": 3.109.0 - "@aws-sdk/util-utf8-node": 3.109.0 - "@aws-sdk/util-waiter": 3.127.0 - tslib: ^2.3.1 - uuid: ^8.3.2 - checksum: 695fcad3f61fecffaf3f45f79e9e732bb3f219b1ce1aaf222ccbfc6c55ff9ff2cf3e323be03560dc3628a61748af7f7be51dde178e23e4ac4040de6117145ecb + checksum: fff9e32911e9dc4bec2cb2e8dc3a619a97ec7c9fd738b286b0ee3f1cc07dbed27452be5fa937fe02e53d3a88bd40c6662961bed192c701a1ba16588c68092851 languageName: node linkType: hard -"@aws-sdk/client-sso-oidc@npm:3.662.0": - version: 3.662.0 - resolution: "@aws-sdk/client-sso-oidc@npm:3.662.0" +"@aws-sdk/client-sqs@npm:3.687.0": + version: 3.687.0 + resolution: "@aws-sdk/client-sqs@npm:3.687.0" dependencies: "@aws-crypto/sha256-browser": 5.2.0 "@aws-crypto/sha256-js": 5.2.0 - "@aws-sdk/core": 3.662.0 - "@aws-sdk/credential-provider-node": 3.662.0 - "@aws-sdk/middleware-host-header": 3.662.0 - "@aws-sdk/middleware-logger": 3.662.0 - "@aws-sdk/middleware-recursion-detection": 3.662.0 - "@aws-sdk/middleware-user-agent": 3.662.0 - "@aws-sdk/region-config-resolver": 3.662.0 - "@aws-sdk/types": 3.662.0 - "@aws-sdk/util-endpoints": 3.662.0 - "@aws-sdk/util-user-agent-browser": 3.662.0 - "@aws-sdk/util-user-agent-node": 3.662.0 - "@smithy/config-resolver": ^3.0.9 - "@smithy/core": ^2.4.7 - "@smithy/fetch-http-handler": ^3.2.9 - "@smithy/hash-node": ^3.0.7 - "@smithy/invalid-dependency": ^3.0.7 - "@smithy/middleware-content-length": ^3.0.9 - "@smithy/middleware-endpoint": ^3.1.4 - "@smithy/middleware-retry": ^3.0.22 - "@smithy/middleware-serde": ^3.0.7 - "@smithy/middleware-stack": ^3.0.7 - "@smithy/node-config-provider": ^3.1.8 - "@smithy/node-http-handler": ^3.2.4 - "@smithy/protocol-http": ^4.1.4 - "@smithy/smithy-client": ^3.3.6 - "@smithy/types": ^3.5.0 - "@smithy/url-parser": ^3.0.7 + "@aws-sdk/client-sso-oidc": 3.687.0 + "@aws-sdk/client-sts": 3.687.0 + "@aws-sdk/core": 3.686.0 + "@aws-sdk/credential-provider-node": 3.687.0 + "@aws-sdk/middleware-host-header": 3.686.0 + "@aws-sdk/middleware-logger": 3.686.0 + "@aws-sdk/middleware-recursion-detection": 3.686.0 + "@aws-sdk/middleware-sdk-sqs": 3.686.0 + "@aws-sdk/middleware-user-agent": 3.687.0 + "@aws-sdk/region-config-resolver": 3.686.0 + "@aws-sdk/types": 3.686.0 + "@aws-sdk/util-endpoints": 3.686.0 + "@aws-sdk/util-user-agent-browser": 3.686.0 + "@aws-sdk/util-user-agent-node": 3.687.0 + "@smithy/config-resolver": ^3.0.10 + "@smithy/core": ^2.5.1 + "@smithy/fetch-http-handler": ^4.0.0 + "@smithy/hash-node": ^3.0.8 + "@smithy/invalid-dependency": ^3.0.8 + "@smithy/md5-js": ^3.0.8 + "@smithy/middleware-content-length": ^3.0.10 + "@smithy/middleware-endpoint": ^3.2.1 + "@smithy/middleware-retry": ^3.0.25 + "@smithy/middleware-serde": ^3.0.8 + "@smithy/middleware-stack": ^3.0.8 + "@smithy/node-config-provider": ^3.1.9 + "@smithy/node-http-handler": ^3.2.5 + "@smithy/protocol-http": ^4.1.5 + "@smithy/smithy-client": ^3.4.2 + "@smithy/types": ^3.6.0 + "@smithy/url-parser": ^3.0.8 "@smithy/util-base64": ^3.0.0 "@smithy/util-body-length-browser": ^3.0.0 "@smithy/util-body-length-node": ^3.0.0 - "@smithy/util-defaults-mode-browser": ^3.0.22 - "@smithy/util-defaults-mode-node": ^3.0.22 - "@smithy/util-endpoints": ^2.1.3 - "@smithy/util-middleware": ^3.0.7 - "@smithy/util-retry": ^3.0.7 + "@smithy/util-defaults-mode-browser": ^3.0.25 + "@smithy/util-defaults-mode-node": ^3.0.25 + "@smithy/util-endpoints": ^2.1.4 + "@smithy/util-middleware": ^3.0.8 + "@smithy/util-retry": ^3.0.8 "@smithy/util-utf8": ^3.0.0 tslib: ^2.6.2 - peerDependencies: - "@aws-sdk/client-sts": ^3.662.0 - checksum: e07de0d66691a00e1ac02374f94246d413b92662bf1fc16d69206888f5c4d8bc932b1e381f87c8f20d67556d6698b3a431a9dff1f60fbe3fb722f78b5ac92ff0 - languageName: node - linkType: hard - -"@aws-sdk/client-sso@npm:3.145.0": - version: 3.145.0 - resolution: "@aws-sdk/client-sso@npm:3.145.0" - dependencies: - "@aws-crypto/sha256-browser": 2.0.0 - "@aws-crypto/sha256-js": 2.0.0 - "@aws-sdk/config-resolver": 3.130.0 - "@aws-sdk/fetch-http-handler": 3.131.0 - "@aws-sdk/hash-node": 3.127.0 - "@aws-sdk/invalid-dependency": 3.127.0 - "@aws-sdk/middleware-content-length": 3.127.0 - "@aws-sdk/middleware-host-header": 3.127.0 - "@aws-sdk/middleware-logger": 3.127.0 - "@aws-sdk/middleware-recursion-detection": 3.127.0 - "@aws-sdk/middleware-retry": 3.127.0 - "@aws-sdk/middleware-serde": 3.127.0 - "@aws-sdk/middleware-stack": 3.127.0 - "@aws-sdk/middleware-user-agent": 3.127.0 - "@aws-sdk/node-config-provider": 3.127.0 - "@aws-sdk/node-http-handler": 3.127.0 - "@aws-sdk/protocol-http": 3.127.0 - "@aws-sdk/smithy-client": 3.142.0 - "@aws-sdk/types": 3.127.0 - "@aws-sdk/url-parser": 3.127.0 - "@aws-sdk/util-base64-browser": 3.109.0 - "@aws-sdk/util-base64-node": 3.55.0 - "@aws-sdk/util-body-length-browser": 3.55.0 - "@aws-sdk/util-body-length-node": 3.55.0 - "@aws-sdk/util-defaults-mode-browser": 3.142.0 - "@aws-sdk/util-defaults-mode-node": 3.142.0 - "@aws-sdk/util-user-agent-browser": 3.127.0 - "@aws-sdk/util-user-agent-node": 3.127.0 - "@aws-sdk/util-utf8-browser": 3.109.0 - "@aws-sdk/util-utf8-node": 3.109.0 - tslib: ^2.3.1 - checksum: c50b9ad2a096633d471161744de4a8940326c5357983f68602f8ebbdfe4b47e4b707050a99633b7e2ea0bb2438ce17d19bf22b2abc198e7385518e01d4cf5ca8 + checksum: 506571f865fafe398037c56964d10c411225a94b602ac74ab61dc954896fdfeac7c36019bf4c44986a72406c75f0eb93dda1b3087a8c508ed88d104dd92bf9da languageName: node linkType: hard -"@aws-sdk/client-sso@npm:3.662.0": - version: 3.662.0 - resolution: "@aws-sdk/client-sso@npm:3.662.0" +"@aws-sdk/client-ssm@npm:3.687.0": + version: 3.687.0 + resolution: "@aws-sdk/client-ssm@npm:3.687.0" dependencies: "@aws-crypto/sha256-browser": 5.2.0 "@aws-crypto/sha256-js": 5.2.0 - "@aws-sdk/core": 3.662.0 - "@aws-sdk/middleware-host-header": 3.662.0 - "@aws-sdk/middleware-logger": 3.662.0 - "@aws-sdk/middleware-recursion-detection": 3.662.0 - "@aws-sdk/middleware-user-agent": 3.662.0 - "@aws-sdk/region-config-resolver": 3.662.0 - "@aws-sdk/types": 3.662.0 - "@aws-sdk/util-endpoints": 3.662.0 - "@aws-sdk/util-user-agent-browser": 3.662.0 - "@aws-sdk/util-user-agent-node": 3.662.0 - "@smithy/config-resolver": ^3.0.9 - "@smithy/core": ^2.4.7 - "@smithy/fetch-http-handler": ^3.2.9 - "@smithy/hash-node": ^3.0.7 - "@smithy/invalid-dependency": ^3.0.7 - "@smithy/middleware-content-length": ^3.0.9 - "@smithy/middleware-endpoint": ^3.1.4 - "@smithy/middleware-retry": ^3.0.22 - "@smithy/middleware-serde": ^3.0.7 - "@smithy/middleware-stack": ^3.0.7 - "@smithy/node-config-provider": ^3.1.8 - "@smithy/node-http-handler": ^3.2.4 - "@smithy/protocol-http": ^4.1.4 - "@smithy/smithy-client": ^3.3.6 - "@smithy/types": ^3.5.0 - "@smithy/url-parser": ^3.0.7 + "@aws-sdk/client-sso-oidc": 3.687.0 + "@aws-sdk/client-sts": 3.687.0 + "@aws-sdk/core": 3.686.0 + "@aws-sdk/credential-provider-node": 3.687.0 + "@aws-sdk/middleware-host-header": 3.686.0 + "@aws-sdk/middleware-logger": 3.686.0 + "@aws-sdk/middleware-recursion-detection": 3.686.0 + "@aws-sdk/middleware-user-agent": 3.687.0 + "@aws-sdk/region-config-resolver": 3.686.0 + "@aws-sdk/types": 3.686.0 + "@aws-sdk/util-endpoints": 3.686.0 + "@aws-sdk/util-user-agent-browser": 3.686.0 + "@aws-sdk/util-user-agent-node": 3.687.0 + "@smithy/config-resolver": ^3.0.10 + "@smithy/core": ^2.5.1 + "@smithy/fetch-http-handler": ^4.0.0 + "@smithy/hash-node": ^3.0.8 + "@smithy/invalid-dependency": ^3.0.8 + "@smithy/middleware-content-length": ^3.0.10 + "@smithy/middleware-endpoint": ^3.2.1 + "@smithy/middleware-retry": ^3.0.25 + "@smithy/middleware-serde": ^3.0.8 + "@smithy/middleware-stack": ^3.0.8 + "@smithy/node-config-provider": ^3.1.9 + "@smithy/node-http-handler": ^3.2.5 + "@smithy/protocol-http": ^4.1.5 + "@smithy/smithy-client": ^3.4.2 + "@smithy/types": ^3.6.0 + "@smithy/url-parser": ^3.0.8 "@smithy/util-base64": ^3.0.0 "@smithy/util-body-length-browser": ^3.0.0 "@smithy/util-body-length-node": ^3.0.0 - "@smithy/util-defaults-mode-browser": ^3.0.22 - "@smithy/util-defaults-mode-node": ^3.0.22 - "@smithy/util-endpoints": ^2.1.3 - "@smithy/util-middleware": ^3.0.7 - "@smithy/util-retry": ^3.0.7 + "@smithy/util-defaults-mode-browser": ^3.0.25 + "@smithy/util-defaults-mode-node": ^3.0.25 + "@smithy/util-endpoints": ^2.1.4 + "@smithy/util-middleware": ^3.0.8 + "@smithy/util-retry": ^3.0.8 "@smithy/util-utf8": ^3.0.0 + "@smithy/util-waiter": ^3.1.7 + "@types/uuid": ^9.0.1 tslib: ^2.6.2 - checksum: f3e14b2b2f162e0898a2b2496a433c2b1d86e5979298aae0ef3fc86d6d996773fe48747d3a12303e1882f39a1d5e227292894f11be234dc547f3eb94f6ae4929 - languageName: node - linkType: hard - -"@aws-sdk/client-sts@npm:3.145.0": - version: 3.145.0 - resolution: "@aws-sdk/client-sts@npm:3.145.0" - dependencies: - "@aws-crypto/sha256-browser": 2.0.0 - "@aws-crypto/sha256-js": 2.0.0 - "@aws-sdk/config-resolver": 3.130.0 - "@aws-sdk/credential-provider-node": 3.145.0 - "@aws-sdk/fetch-http-handler": 3.131.0 - "@aws-sdk/hash-node": 3.127.0 - "@aws-sdk/invalid-dependency": 3.127.0 - "@aws-sdk/middleware-content-length": 3.127.0 - "@aws-sdk/middleware-host-header": 3.127.0 - "@aws-sdk/middleware-logger": 3.127.0 - "@aws-sdk/middleware-recursion-detection": 3.127.0 - "@aws-sdk/middleware-retry": 3.127.0 - "@aws-sdk/middleware-sdk-sts": 3.130.0 - "@aws-sdk/middleware-serde": 3.127.0 - "@aws-sdk/middleware-signing": 3.130.0 - "@aws-sdk/middleware-stack": 3.127.0 - "@aws-sdk/middleware-user-agent": 3.127.0 - "@aws-sdk/node-config-provider": 3.127.0 - "@aws-sdk/node-http-handler": 3.127.0 - "@aws-sdk/protocol-http": 3.127.0 - "@aws-sdk/smithy-client": 3.142.0 - "@aws-sdk/types": 3.127.0 - "@aws-sdk/url-parser": 3.127.0 - "@aws-sdk/util-base64-browser": 3.109.0 - "@aws-sdk/util-base64-node": 3.55.0 - "@aws-sdk/util-body-length-browser": 3.55.0 - "@aws-sdk/util-body-length-node": 3.55.0 - "@aws-sdk/util-defaults-mode-browser": 3.142.0 - "@aws-sdk/util-defaults-mode-node": 3.142.0 - "@aws-sdk/util-user-agent-browser": 3.127.0 - "@aws-sdk/util-user-agent-node": 3.127.0 - "@aws-sdk/util-utf8-browser": 3.109.0 - "@aws-sdk/util-utf8-node": 3.109.0 - entities: 2.2.0 - fast-xml-parser: 3.19.0 - tslib: ^2.3.1 - checksum: 4645c4902e0f32bd1e758ae7868150fd59000bc945979a9224a942c72cbc3418bbada9c21aa7162f7d42a232c0ba89faff948fa3efdbaff863fc89046d90c29d + uuid: ^9.0.1 + checksum: 40ec944db43e7749e639f9d338440ba2be65f8b0361b73cafb8c709aa1237b71b9c967bc26bfecb7012c56ce72c5b988e41a48a1d2a65f0b5b6b650adfdfd4df languageName: node linkType: hard -"@aws-sdk/client-sts@npm:3.662.0": - version: 3.662.0 - resolution: "@aws-sdk/client-sts@npm:3.662.0" +"@aws-sdk/client-sso-oidc@npm:3.687.0": + version: 3.687.0 + resolution: "@aws-sdk/client-sso-oidc@npm:3.687.0" dependencies: "@aws-crypto/sha256-browser": 5.2.0 "@aws-crypto/sha256-js": 5.2.0 - "@aws-sdk/client-sso-oidc": 3.662.0 - "@aws-sdk/core": 3.662.0 - "@aws-sdk/credential-provider-node": 3.662.0 - "@aws-sdk/middleware-host-header": 3.662.0 - "@aws-sdk/middleware-logger": 3.662.0 - "@aws-sdk/middleware-recursion-detection": 3.662.0 - "@aws-sdk/middleware-user-agent": 3.662.0 - "@aws-sdk/region-config-resolver": 3.662.0 - "@aws-sdk/types": 3.662.0 - "@aws-sdk/util-endpoints": 3.662.0 - "@aws-sdk/util-user-agent-browser": 3.662.0 - "@aws-sdk/util-user-agent-node": 3.662.0 - "@smithy/config-resolver": ^3.0.9 - "@smithy/core": ^2.4.7 - "@smithy/fetch-http-handler": ^3.2.9 - "@smithy/hash-node": ^3.0.7 - "@smithy/invalid-dependency": ^3.0.7 - "@smithy/middleware-content-length": ^3.0.9 - "@smithy/middleware-endpoint": ^3.1.4 - "@smithy/middleware-retry": ^3.0.22 - "@smithy/middleware-serde": ^3.0.7 - "@smithy/middleware-stack": ^3.0.7 - "@smithy/node-config-provider": ^3.1.8 - "@smithy/node-http-handler": ^3.2.4 - "@smithy/protocol-http": ^4.1.4 - "@smithy/smithy-client": ^3.3.6 - "@smithy/types": ^3.5.0 - "@smithy/url-parser": ^3.0.7 + "@aws-sdk/core": 3.686.0 + "@aws-sdk/credential-provider-node": 3.687.0 + "@aws-sdk/middleware-host-header": 3.686.0 + "@aws-sdk/middleware-logger": 3.686.0 + "@aws-sdk/middleware-recursion-detection": 3.686.0 + "@aws-sdk/middleware-user-agent": 3.687.0 + "@aws-sdk/region-config-resolver": 3.686.0 + "@aws-sdk/types": 3.686.0 + "@aws-sdk/util-endpoints": 3.686.0 + "@aws-sdk/util-user-agent-browser": 3.686.0 + "@aws-sdk/util-user-agent-node": 3.687.0 + "@smithy/config-resolver": ^3.0.10 + "@smithy/core": ^2.5.1 + "@smithy/fetch-http-handler": ^4.0.0 + "@smithy/hash-node": ^3.0.8 + "@smithy/invalid-dependency": ^3.0.8 + "@smithy/middleware-content-length": ^3.0.10 + "@smithy/middleware-endpoint": ^3.2.1 + "@smithy/middleware-retry": ^3.0.25 + "@smithy/middleware-serde": ^3.0.8 + "@smithy/middleware-stack": ^3.0.8 + "@smithy/node-config-provider": ^3.1.9 + "@smithy/node-http-handler": ^3.2.5 + "@smithy/protocol-http": ^4.1.5 + "@smithy/smithy-client": ^3.4.2 + "@smithy/types": ^3.6.0 + "@smithy/url-parser": ^3.0.8 "@smithy/util-base64": ^3.0.0 "@smithy/util-body-length-browser": ^3.0.0 "@smithy/util-body-length-node": ^3.0.0 - "@smithy/util-defaults-mode-browser": ^3.0.22 - "@smithy/util-defaults-mode-node": ^3.0.22 - "@smithy/util-endpoints": ^2.1.3 - "@smithy/util-middleware": ^3.0.7 - "@smithy/util-retry": ^3.0.7 + "@smithy/util-defaults-mode-browser": ^3.0.25 + "@smithy/util-defaults-mode-node": ^3.0.25 + "@smithy/util-endpoints": ^2.1.4 + "@smithy/util-middleware": ^3.0.8 + "@smithy/util-retry": ^3.0.8 "@smithy/util-utf8": ^3.0.0 tslib: ^2.6.2 - checksum: ab718b2e604971e995497220d61d0a19da42af0d01e525c1c77d3b9770f2b5c9ec5a8e73edff12a709f7f80edb765572d0170c8c9103c6dd98a3e9bcfddda450 - languageName: node - linkType: hard - -"@aws-sdk/config-resolver@npm:3.130.0": - version: 3.130.0 - resolution: "@aws-sdk/config-resolver@npm:3.130.0" - dependencies: - "@aws-sdk/signature-v4": 3.130.0 - "@aws-sdk/types": 3.127.0 - "@aws-sdk/util-config-provider": 3.109.0 - "@aws-sdk/util-middleware": 3.127.0 - tslib: ^2.3.1 - checksum: 33fa2be1c94fffa2a053a53a2db3402f02493cacade3aff65d70474d404d71c1825c35dd78a3d87f9434b0f4212437bc82f83f10ae7cebdcfcfb0891145ce1ce + peerDependencies: + "@aws-sdk/client-sts": ^3.687.0 + checksum: baa3a4ceb15ba2c88802d61fcbc757b4115cfaae8032ebe4a7cb4bd3790afb78fb291690dce31c0bdf80fc361b69e0e42b43c6bf412a1274844689bf49ac15b7 languageName: node linkType: hard -"@aws-sdk/core@npm:3.662.0": - version: 3.662.0 - resolution: "@aws-sdk/core@npm:3.662.0" +"@aws-sdk/client-sso@npm:3.687.0": + version: 3.687.0 + resolution: "@aws-sdk/client-sso@npm:3.687.0" dependencies: - "@smithy/core": ^2.4.7 - "@smithy/node-config-provider": ^3.1.8 - "@smithy/property-provider": ^3.1.7 - "@smithy/protocol-http": ^4.1.4 - "@smithy/signature-v4": ^4.2.0 - "@smithy/smithy-client": ^3.3.6 - "@smithy/types": ^3.5.0 - "@smithy/util-middleware": ^3.0.7 - fast-xml-parser: 4.4.1 + "@aws-crypto/sha256-browser": 5.2.0 + "@aws-crypto/sha256-js": 5.2.0 + "@aws-sdk/core": 3.686.0 + "@aws-sdk/middleware-host-header": 3.686.0 + "@aws-sdk/middleware-logger": 3.686.0 + "@aws-sdk/middleware-recursion-detection": 3.686.0 + "@aws-sdk/middleware-user-agent": 3.687.0 + "@aws-sdk/region-config-resolver": 3.686.0 + "@aws-sdk/types": 3.686.0 + "@aws-sdk/util-endpoints": 3.686.0 + "@aws-sdk/util-user-agent-browser": 3.686.0 + "@aws-sdk/util-user-agent-node": 3.687.0 + "@smithy/config-resolver": ^3.0.10 + "@smithy/core": ^2.5.1 + "@smithy/fetch-http-handler": ^4.0.0 + "@smithy/hash-node": ^3.0.8 + "@smithy/invalid-dependency": ^3.0.8 + "@smithy/middleware-content-length": ^3.0.10 + "@smithy/middleware-endpoint": ^3.2.1 + "@smithy/middleware-retry": ^3.0.25 + "@smithy/middleware-serde": ^3.0.8 + "@smithy/middleware-stack": ^3.0.8 + "@smithy/node-config-provider": ^3.1.9 + "@smithy/node-http-handler": ^3.2.5 + "@smithy/protocol-http": ^4.1.5 + "@smithy/smithy-client": ^3.4.2 + "@smithy/types": ^3.6.0 + "@smithy/url-parser": ^3.0.8 + "@smithy/util-base64": ^3.0.0 + "@smithy/util-body-length-browser": ^3.0.0 + "@smithy/util-body-length-node": ^3.0.0 + "@smithy/util-defaults-mode-browser": ^3.0.25 + "@smithy/util-defaults-mode-node": ^3.0.25 + "@smithy/util-endpoints": ^2.1.4 + "@smithy/util-middleware": ^3.0.8 + "@smithy/util-retry": ^3.0.8 + "@smithy/util-utf8": ^3.0.0 tslib: ^2.6.2 - checksum: 73af26a42cd34f2257762307af42e7e14bc267e21db0b686dc162eaa173dede7c557489078b414e1ac1651e275915d58cd188ec5af2332d3cb0f77508aec24c3 + checksum: 01c233165ba2ac84d9f288ba11f172afb8a039a37a10b571b8c99c5b9ece99f7b7eb63aa206d3cd9c81d9fb671c63e416af07e7aca04395e89e734a75ca1d5f5 languageName: node linkType: hard -"@aws-sdk/credential-provider-env@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/credential-provider-env@npm:3.127.0" +"@aws-sdk/client-sts@npm:3.687.0": + version: 3.687.0 + resolution: "@aws-sdk/client-sts@npm:3.687.0" dependencies: - "@aws-sdk/property-provider": 3.127.0 - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: e4cc8bd53b67d07f9ff0b1eae9193e8a1bffdc167a49f09d96334476f6d165652a6ff68ba306c044d4ceeb84be4181104f1452d59ff75c7a284a6fde1516556b + "@aws-crypto/sha256-browser": 5.2.0 + "@aws-crypto/sha256-js": 5.2.0 + "@aws-sdk/client-sso-oidc": 3.687.0 + "@aws-sdk/core": 3.686.0 + "@aws-sdk/credential-provider-node": 3.687.0 + "@aws-sdk/middleware-host-header": 3.686.0 + "@aws-sdk/middleware-logger": 3.686.0 + "@aws-sdk/middleware-recursion-detection": 3.686.0 + "@aws-sdk/middleware-user-agent": 3.687.0 + "@aws-sdk/region-config-resolver": 3.686.0 + "@aws-sdk/types": 3.686.0 + "@aws-sdk/util-endpoints": 3.686.0 + "@aws-sdk/util-user-agent-browser": 3.686.0 + "@aws-sdk/util-user-agent-node": 3.687.0 + "@smithy/config-resolver": ^3.0.10 + "@smithy/core": ^2.5.1 + "@smithy/fetch-http-handler": ^4.0.0 + "@smithy/hash-node": ^3.0.8 + "@smithy/invalid-dependency": ^3.0.8 + "@smithy/middleware-content-length": ^3.0.10 + "@smithy/middleware-endpoint": ^3.2.1 + "@smithy/middleware-retry": ^3.0.25 + "@smithy/middleware-serde": ^3.0.8 + "@smithy/middleware-stack": ^3.0.8 + "@smithy/node-config-provider": ^3.1.9 + "@smithy/node-http-handler": ^3.2.5 + "@smithy/protocol-http": ^4.1.5 + "@smithy/smithy-client": ^3.4.2 + "@smithy/types": ^3.6.0 + "@smithy/url-parser": ^3.0.8 + "@smithy/util-base64": ^3.0.0 + "@smithy/util-body-length-browser": ^3.0.0 + "@smithy/util-body-length-node": ^3.0.0 + "@smithy/util-defaults-mode-browser": ^3.0.25 + "@smithy/util-defaults-mode-node": ^3.0.25 + "@smithy/util-endpoints": ^2.1.4 + "@smithy/util-middleware": ^3.0.8 + "@smithy/util-retry": ^3.0.8 + "@smithy/util-utf8": ^3.0.0 + tslib: ^2.6.2 + checksum: 633ddab42f38b1803cd8bba671273378516d830e7398567076cb86bf1bb5827f722e7f12d03f16603c1e0ec61842f9687d7bfaefbde0737d79dfe50bd1605751 languageName: node linkType: hard -"@aws-sdk/credential-provider-env@npm:3.662.0": - version: 3.662.0 - resolution: "@aws-sdk/credential-provider-env@npm:3.662.0" +"@aws-sdk/core@npm:3.686.0": + version: 3.686.0 + resolution: "@aws-sdk/core@npm:3.686.0" dependencies: - "@aws-sdk/types": 3.662.0 + "@aws-sdk/types": 3.686.0 + "@smithy/core": ^2.5.1 + "@smithy/node-config-provider": ^3.1.9 "@smithy/property-provider": ^3.1.7 - "@smithy/types": ^3.5.0 + "@smithy/protocol-http": ^4.1.5 + "@smithy/signature-v4": ^4.2.0 + "@smithy/smithy-client": ^3.4.2 + "@smithy/types": ^3.6.0 + "@smithy/util-middleware": ^3.0.8 + fast-xml-parser: 4.4.1 tslib: ^2.6.2 - checksum: 17acc6f499c0f3093dac3420620ccad240a5eb4c9706019d9c9dbdbd860627ca6924801f08550443a71955558f4a3821c40c5c539589561b18852b06be9ac8e9 + checksum: c74ea67447efe74dc88a48e9b2c16745503a4323e91ff97a98e56b3ac49d34a0a57a44eed0054559a5c675e20216e02037a761d946fd8053f142f2d3a274c8a8 languageName: node linkType: hard -"@aws-sdk/credential-provider-http@npm:3.662.0": - version: 3.662.0 - resolution: "@aws-sdk/credential-provider-http@npm:3.662.0" +"@aws-sdk/credential-provider-env@npm:3.686.0": + version: 3.686.0 + resolution: "@aws-sdk/credential-provider-env@npm:3.686.0" dependencies: - "@aws-sdk/types": 3.662.0 - "@smithy/fetch-http-handler": ^3.2.9 - "@smithy/node-http-handler": ^3.2.4 + "@aws-sdk/core": 3.686.0 + "@aws-sdk/types": 3.686.0 "@smithy/property-provider": ^3.1.7 - "@smithy/protocol-http": ^4.1.4 - "@smithy/smithy-client": ^3.3.6 - "@smithy/types": ^3.5.0 - "@smithy/util-stream": ^3.1.9 + "@smithy/types": ^3.6.0 tslib: ^2.6.2 - checksum: 216b7f32a1663d7a375c181f923051fd10fdb0d9b4db109e1231bbb49fe7cc29232fd34760b317fad7c7523c6fe580032da85a6b059d0e67c27a72319ef18ef7 + checksum: 2c574da1ce5027998e5672162efa2264cbebb8bed61e1d7f8556aa76e98aeb7a0c6db7bb1edf213331466edcff9001300a6c9733a6d50c862ade6568acb3e8dd languageName: node linkType: hard -"@aws-sdk/credential-provider-imds@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/credential-provider-imds@npm:3.127.0" +"@aws-sdk/credential-provider-http@npm:3.686.0": + version: 3.686.0 + resolution: "@aws-sdk/credential-provider-http@npm:3.686.0" dependencies: - "@aws-sdk/node-config-provider": 3.127.0 - "@aws-sdk/property-provider": 3.127.0 - "@aws-sdk/types": 3.127.0 - "@aws-sdk/url-parser": 3.127.0 - tslib: ^2.3.1 - checksum: f117bd18114cfee7f9a0201cc53244957f489b780ab5f57ef1c9896a9838688ffb9c7d3a4a6db366629aff2f7a99dab95a6b149130ccb0deab25f6fc04cd9edd + "@aws-sdk/core": 3.686.0 + "@aws-sdk/types": 3.686.0 + "@smithy/fetch-http-handler": ^4.0.0 + "@smithy/node-http-handler": ^3.2.5 + "@smithy/property-provider": ^3.1.7 + "@smithy/protocol-http": ^4.1.5 + "@smithy/smithy-client": ^3.4.2 + "@smithy/types": ^3.6.0 + "@smithy/util-stream": ^3.2.1 + tslib: ^2.6.2 + checksum: b503ae6c86c7d884e41df75dbe36a58b13ccaa8ca1adb20996311e521d6967b3442f65de6442195d49bbaa868984e9d5579d5cb22c4bd47926a33dd7065a2e09 languageName: node linkType: hard -"@aws-sdk/credential-provider-ini@npm:3.145.0": - version: 3.145.0 - resolution: "@aws-sdk/credential-provider-ini@npm:3.145.0" +"@aws-sdk/credential-provider-ini@npm:3.687.0": + version: 3.687.0 + resolution: "@aws-sdk/credential-provider-ini@npm:3.687.0" dependencies: - "@aws-sdk/credential-provider-env": 3.127.0 - "@aws-sdk/credential-provider-imds": 3.127.0 - "@aws-sdk/credential-provider-sso": 3.145.0 - "@aws-sdk/credential-provider-web-identity": 3.127.0 - "@aws-sdk/property-provider": 3.127.0 - "@aws-sdk/shared-ini-file-loader": 3.127.0 - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: 1899ecf98373a60e4360873fab5ffd7b3f920f4762ff13e1f85ea2efa11e6201d13bd6f649b1090a0a57afbdba87fa3f35f66533bf3b34f8a6629363a6f86a76 - languageName: node - linkType: hard - -"@aws-sdk/credential-provider-ini@npm:3.662.0": - version: 3.662.0 - resolution: "@aws-sdk/credential-provider-ini@npm:3.662.0" - dependencies: - "@aws-sdk/credential-provider-env": 3.662.0 - "@aws-sdk/credential-provider-http": 3.662.0 - "@aws-sdk/credential-provider-process": 3.662.0 - "@aws-sdk/credential-provider-sso": 3.662.0 - "@aws-sdk/credential-provider-web-identity": 3.662.0 - "@aws-sdk/types": 3.662.0 + "@aws-sdk/core": 3.686.0 + "@aws-sdk/credential-provider-env": 3.686.0 + "@aws-sdk/credential-provider-http": 3.686.0 + "@aws-sdk/credential-provider-process": 3.686.0 + "@aws-sdk/credential-provider-sso": 3.687.0 + "@aws-sdk/credential-provider-web-identity": 3.686.0 + "@aws-sdk/types": 3.686.0 "@smithy/credential-provider-imds": ^3.2.4 "@smithy/property-provider": ^3.1.7 "@smithy/shared-ini-file-loader": ^3.1.8 - "@smithy/types": ^3.5.0 + "@smithy/types": ^3.6.0 tslib: ^2.6.2 peerDependencies: - "@aws-sdk/client-sts": ^3.662.0 - checksum: 2c64029d2296f733c40cf86f4ed9f3d01dccd4c332cd63755c5af8c5eff6e2efeb6a0d76c33a46dac79fbd59aa4b4308fac9e1cce4c60e59459610d831c2d302 + "@aws-sdk/client-sts": ^3.687.0 + checksum: 1718843c54292b040323c3fd6abc38168f81267f75f11922aa92a8941572a669e59d319902f9af33f2f94c7c37022de3de6d66618bede1476492018e42489327 languageName: node linkType: hard -"@aws-sdk/credential-provider-node@npm:3.145.0": - version: 3.145.0 - resolution: "@aws-sdk/credential-provider-node@npm:3.145.0" +"@aws-sdk/credential-provider-node@npm:3.687.0": + version: 3.687.0 + resolution: "@aws-sdk/credential-provider-node@npm:3.687.0" dependencies: - "@aws-sdk/credential-provider-env": 3.127.0 - "@aws-sdk/credential-provider-imds": 3.127.0 - "@aws-sdk/credential-provider-ini": 3.145.0 - "@aws-sdk/credential-provider-process": 3.127.0 - "@aws-sdk/credential-provider-sso": 3.145.0 - "@aws-sdk/credential-provider-web-identity": 3.127.0 - "@aws-sdk/property-provider": 3.127.0 - "@aws-sdk/shared-ini-file-loader": 3.127.0 - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: 3795e31ab3717140df38712d18e1f3fd9ef66dc92943131c0a4cc2b640372463769005e2a943b6ffdac4052773ac77dd45f7fb86d8256e9630936b6536ee3f93 - languageName: node - linkType: hard - -"@aws-sdk/credential-provider-node@npm:3.662.0": - version: 3.662.0 - resolution: "@aws-sdk/credential-provider-node@npm:3.662.0" - dependencies: - "@aws-sdk/credential-provider-env": 3.662.0 - "@aws-sdk/credential-provider-http": 3.662.0 - "@aws-sdk/credential-provider-ini": 3.662.0 - "@aws-sdk/credential-provider-process": 3.662.0 - "@aws-sdk/credential-provider-sso": 3.662.0 - "@aws-sdk/credential-provider-web-identity": 3.662.0 - "@aws-sdk/types": 3.662.0 + "@aws-sdk/credential-provider-env": 3.686.0 + "@aws-sdk/credential-provider-http": 3.686.0 + "@aws-sdk/credential-provider-ini": 3.687.0 + "@aws-sdk/credential-provider-process": 3.686.0 + "@aws-sdk/credential-provider-sso": 3.687.0 + "@aws-sdk/credential-provider-web-identity": 3.686.0 + "@aws-sdk/types": 3.686.0 "@smithy/credential-provider-imds": ^3.2.4 "@smithy/property-provider": ^3.1.7 "@smithy/shared-ini-file-loader": ^3.1.8 - "@smithy/types": ^3.5.0 + "@smithy/types": ^3.6.0 tslib: ^2.6.2 - checksum: 5b5bd370ac60faccb0d294a826ae46841f14544bb7bc40ff2baad70da8dccc5aec326ebe4fa438eb6333a17faa6937ecce6249cae8912d1152390b42a1353be1 + checksum: fc542feefdf04d81a426d1f9b4e95edab1d087af9fa2e2e77e0b7b0c676040aeac1b6e2631d448691d1e5f7dce5de0ff3e2566e6c2044ddf3b167a652b973288 languageName: node linkType: hard -"@aws-sdk/credential-provider-process@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/credential-provider-process@npm:3.127.0" +"@aws-sdk/credential-provider-process@npm:3.686.0": + version: 3.686.0 + resolution: "@aws-sdk/credential-provider-process@npm:3.686.0" dependencies: - "@aws-sdk/property-provider": 3.127.0 - "@aws-sdk/shared-ini-file-loader": 3.127.0 - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: 60becf9f7d939c11a7b8aa8b6116c37f7d8069d1049a39404ca1f839771c6da4226e58a0acea3830ec591df3949fe5c703b9cd11e42a4f0b6d4cc54c8b4127dd - languageName: node - linkType: hard - -"@aws-sdk/credential-provider-process@npm:3.662.0": - version: 3.662.0 - resolution: "@aws-sdk/credential-provider-process@npm:3.662.0" - dependencies: - "@aws-sdk/types": 3.662.0 + "@aws-sdk/core": 3.686.0 + "@aws-sdk/types": 3.686.0 "@smithy/property-provider": ^3.1.7 "@smithy/shared-ini-file-loader": ^3.1.8 - "@smithy/types": ^3.5.0 + "@smithy/types": ^3.6.0 tslib: ^2.6.2 - checksum: a340b3b0e53c47af9c48c4b31847a291e5a045660d692e3f24ccbd6c65032c889ed56311fcf755bfb35d7abf4861192998734e06efe5b01f9d28e112f59b28f7 - languageName: node - linkType: hard - -"@aws-sdk/credential-provider-sso@npm:3.145.0": - version: 3.145.0 - resolution: "@aws-sdk/credential-provider-sso@npm:3.145.0" - dependencies: - "@aws-sdk/client-sso": 3.145.0 - "@aws-sdk/property-provider": 3.127.0 - "@aws-sdk/shared-ini-file-loader": 3.127.0 - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: 3c59745d1ce896481bcef875e330b0629e70e952398174227eb3d73ff41c6921f0552a7fdfee2a2b1f609dac5d7ec26bfb648af1899dd56b4d8c6c2f90347c22 + checksum: 5b73373200c2f1bd5dc79e76507418c0e39902b8b861129a967ac915d89a26fbd4b5e5f068c4b9e96b78666558e9b3572e841be28dd0c10079b4f5148b461239 languageName: node linkType: hard -"@aws-sdk/credential-provider-sso@npm:3.662.0": - version: 3.662.0 - resolution: "@aws-sdk/credential-provider-sso@npm:3.662.0" +"@aws-sdk/credential-provider-sso@npm:3.687.0": + version: 3.687.0 + resolution: "@aws-sdk/credential-provider-sso@npm:3.687.0" dependencies: - "@aws-sdk/client-sso": 3.662.0 - "@aws-sdk/token-providers": 3.662.0 - "@aws-sdk/types": 3.662.0 + "@aws-sdk/client-sso": 3.687.0 + "@aws-sdk/core": 3.686.0 + "@aws-sdk/token-providers": 3.686.0 + "@aws-sdk/types": 3.686.0 "@smithy/property-provider": ^3.1.7 "@smithy/shared-ini-file-loader": ^3.1.8 - "@smithy/types": ^3.5.0 + "@smithy/types": ^3.6.0 tslib: ^2.6.2 - checksum: 7d148d832f62f3af4c297dc7e1efc7488e2b5a55023ce0fd3d31e5f79293ae606f722d983343ef176b1d4ef2b88be62bbbe850aed6f714cdf8e38150201e2be6 - languageName: node - linkType: hard - -"@aws-sdk/credential-provider-web-identity@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/credential-provider-web-identity@npm:3.127.0" - dependencies: - "@aws-sdk/property-provider": 3.127.0 - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: 359bc73eff0593e77e969a5e6506fedd93bd9e32f01043e044a5813dc445f7a5886bfac2676cabfc5c8a913dfc9c71e77fc68dfdd86ec5f1c293a342b42a13ee + checksum: 27435cc47d5fac002a98bcada8cf28a76cc0569b00e46637b05dd3e45bb6c2dc121969ccca54389864e4064d87607740c036535f65175f5f5e94c1c2410af3f6 languageName: node linkType: hard -"@aws-sdk/credential-provider-web-identity@npm:3.662.0": - version: 3.662.0 - resolution: "@aws-sdk/credential-provider-web-identity@npm:3.662.0" +"@aws-sdk/credential-provider-web-identity@npm:3.686.0": + version: 3.686.0 + resolution: "@aws-sdk/credential-provider-web-identity@npm:3.686.0" dependencies: - "@aws-sdk/types": 3.662.0 + "@aws-sdk/core": 3.686.0 + "@aws-sdk/types": 3.686.0 "@smithy/property-provider": ^3.1.7 - "@smithy/types": ^3.5.0 + "@smithy/types": ^3.6.0 tslib: ^2.6.2 peerDependencies: - "@aws-sdk/client-sts": ^3.662.0 - checksum: 0d649fe01abf83f4254a6040c1698c38babe23e0a681af22f5f8bea11a30d286017912c33594b6c4a77d63e2cd5931916f8e063580ca2adf4aaf5f6c13becc42 - languageName: node - linkType: hard - -"@aws-sdk/fetch-http-handler@npm:3.131.0": - version: 3.131.0 - resolution: "@aws-sdk/fetch-http-handler@npm:3.131.0" - dependencies: - "@aws-sdk/protocol-http": 3.127.0 - "@aws-sdk/querystring-builder": 3.127.0 - "@aws-sdk/types": 3.127.0 - "@aws-sdk/util-base64-browser": 3.109.0 - tslib: ^2.3.1 - checksum: 7bd5a83b929e59b86058c7a834daa8eedc7eab7a6bdb2016ff8898637c28bf7062830b108a45d70890062aa0f15271501290c18b06926a8af1bcb8d181817600 - languageName: node - linkType: hard - -"@aws-sdk/hash-node@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/hash-node@npm:3.127.0" - dependencies: - "@aws-sdk/types": 3.127.0 - "@aws-sdk/util-buffer-from": 3.55.0 - tslib: ^2.3.1 - checksum: fb07d9cd29cae316a1a4c0cd448489d6e14bd386fa49b08832d015c8bbcc59cad94e21fdd2f74f8dab08e0c01e1e0cddeac47f48d89dc766d10e95a0a62e7a23 + "@aws-sdk/client-sts": ^3.686.0 + checksum: dbe042d773acb6f51f8be763abb814be038217d1925961afb5c599bb825104d3162e83bc9133e2229a49f335fefebbc9dfd16d88ba3134dbba40de2505c4b9ca languageName: node linkType: hard -"@aws-sdk/invalid-dependency@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/invalid-dependency@npm:3.127.0" - dependencies: - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: 456b675fd05716050d2dfc325f92918cbd5bbd11c90096673eb7bc66f61ef55021459e893839b8b62ac09ee320ef77924c30cb25530fa1c74b848f3989695fbd - languageName: node - linkType: hard - -"@aws-sdk/is-array-buffer@npm:3.55.0": - version: 3.55.0 - resolution: "@aws-sdk/is-array-buffer@npm:3.55.0" - dependencies: - tslib: ^2.3.1 - checksum: 527481f024166197b84a2b4859b51df9b6da4396255c19832e8fdb2f6dfc914dab8ad89433602f8d797f3f8dacc312ab8a0073b2c8e20dc85a28ad9d27aceaa7 - languageName: node - linkType: hard - -"@aws-sdk/lib-storage@npm:3.662.0": - version: 3.662.0 - resolution: "@aws-sdk/lib-storage@npm:3.662.0" +"@aws-sdk/lib-storage@npm:3.687.0": + version: 3.687.0 + resolution: "@aws-sdk/lib-storage@npm:3.687.0" dependencies: "@smithy/abort-controller": ^3.1.5 - "@smithy/middleware-endpoint": ^3.1.4 - "@smithy/smithy-client": ^3.3.6 + "@smithy/middleware-endpoint": ^3.2.1 + "@smithy/smithy-client": ^3.4.2 buffer: 5.6.0 events: 3.3.0 stream-browserify: 3.0.0 tslib: ^2.6.2 peerDependencies: - "@aws-sdk/client-s3": ^3.662.0 - checksum: f9555d806c22886b564e882b128bee3615dbedc8454c4d71033e3d53f46a9f4525cc5b94f34275e0aa8fb352659940a520f00e58085bbe3c71934907c8126f27 + "@aws-sdk/client-s3": ^3.687.0 + checksum: 48121b1e8253807c949354b14106b615d84f127cf25302aac638d41e41efb2c2adfb1e6d27ef5aeec9b7ca897a36915d7dba037e590624ce0b3db07604a319e4 languageName: node linkType: hard -"@aws-sdk/middleware-bucket-endpoint@npm:3.662.0": - version: 3.662.0 - resolution: "@aws-sdk/middleware-bucket-endpoint@npm:3.662.0" +"@aws-sdk/middleware-bucket-endpoint@npm:3.686.0": + version: 3.686.0 + resolution: "@aws-sdk/middleware-bucket-endpoint@npm:3.686.0" dependencies: - "@aws-sdk/types": 3.662.0 - "@aws-sdk/util-arn-parser": 3.568.0 - "@smithy/node-config-provider": ^3.1.8 - "@smithy/protocol-http": ^4.1.4 - "@smithy/types": ^3.5.0 + "@aws-sdk/types": 3.686.0 + "@aws-sdk/util-arn-parser": 3.679.0 + "@smithy/node-config-provider": ^3.1.9 + "@smithy/protocol-http": ^4.1.5 + "@smithy/types": ^3.6.0 "@smithy/util-config-provider": ^3.0.0 tslib: ^2.6.2 - checksum: c82c7d462dcb0a23692327f3eb69d783ce938a5820d84252755a7fed620b4336c2d9797c282701dd32bdbe2775cd4cb058de390bab3e9ff1016d9d29298fb3cc - languageName: node - linkType: hard - -"@aws-sdk/middleware-content-length@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/middleware-content-length@npm:3.127.0" - dependencies: - "@aws-sdk/protocol-http": 3.127.0 - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: 817f74342e862bb10e871d09cf937d7bb7eb5189b2ec4b8ce7b0657c38c74b5d0b6be8143f6618e037c5a29bef624446dfd5fe0cc0ce8114d87d5eded4778074 + checksum: a90d97439453b15ff088568a04f96a5f3e7928b54ee796e2e3e7e07e750df83ab5fb9ad3f632069b3ac8388e7a0517cb284d30cbe5723fa828bf182b586c03b1 languageName: node linkType: hard -"@aws-sdk/middleware-expect-continue@npm:3.662.0": - version: 3.662.0 - resolution: "@aws-sdk/middleware-expect-continue@npm:3.662.0" +"@aws-sdk/middleware-expect-continue@npm:3.686.0": + version: 3.686.0 + resolution: "@aws-sdk/middleware-expect-continue@npm:3.686.0" dependencies: - "@aws-sdk/types": 3.662.0 - "@smithy/protocol-http": ^4.1.4 - "@smithy/types": ^3.5.0 + "@aws-sdk/types": 3.686.0 + "@smithy/protocol-http": ^4.1.5 + "@smithy/types": ^3.6.0 tslib: ^2.6.2 - checksum: 2a5867db3b1953abc4ef06c5665756ada105ef8a9a6fa63711d99bc69326b770db0e17e6dba324aed5c1ff3b750917c5944cb5273ccb427c5c3641fb9619fbb1 + checksum: 2c58b9f5fb6266dd59e3153dff3729cace0b984fc24addb8c8ba0fe4797799e05de7c3c470899b7c048955287fa910736df99b384bfd67fc54ff82fc76dfde97 languageName: node linkType: hard -"@aws-sdk/middleware-flexible-checksums@npm:3.662.0": - version: 3.662.0 - resolution: "@aws-sdk/middleware-flexible-checksums@npm:3.662.0" +"@aws-sdk/middleware-flexible-checksums@npm:3.687.0": + version: 3.687.0 + resolution: "@aws-sdk/middleware-flexible-checksums@npm:3.687.0" dependencies: "@aws-crypto/crc32": 5.2.0 "@aws-crypto/crc32c": 5.2.0 - "@aws-sdk/types": 3.662.0 + "@aws-sdk/core": 3.686.0 + "@aws-sdk/types": 3.686.0 "@smithy/is-array-buffer": ^3.0.0 - "@smithy/node-config-provider": ^3.1.8 - "@smithy/protocol-http": ^4.1.4 - "@smithy/types": ^3.5.0 - "@smithy/util-middleware": ^3.0.7 + "@smithy/node-config-provider": ^3.1.9 + "@smithy/protocol-http": ^4.1.5 + "@smithy/types": ^3.6.0 + "@smithy/util-middleware": ^3.0.8 + "@smithy/util-stream": ^3.2.1 "@smithy/util-utf8": ^3.0.0 tslib: ^2.6.2 - checksum: d28a691c8e6a029d19eab2415d78f4a8f4ac7a7ce60effb5593e65152b2955e23cfa66af368bdb8c92aa230824247cb4df1006bcf8d6929207cc65d8cbc2a46d + checksum: 12763cbc56f4cfa0d4bbbf2a3c414f7cc1a576d18c476bbd21570769aebf3caa278e672004a44dd8b9b2934457203f51306ab2dc625e10e8fca398d4bce480a0 languageName: node linkType: hard -"@aws-sdk/middleware-host-header@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/middleware-host-header@npm:3.127.0" +"@aws-sdk/middleware-host-header@npm:3.686.0": + version: 3.686.0 + resolution: "@aws-sdk/middleware-host-header@npm:3.686.0" dependencies: - "@aws-sdk/protocol-http": 3.127.0 - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: 8ec8a7f7b260c6f3608ba6500586aefd024ac859baaccca9cbea73dfa43fc95cf3a123e369798c6bbd36ed7f3eb36482b5b2a41f46b0eb1416f94d6829e92e9f - languageName: node - linkType: hard - -"@aws-sdk/middleware-host-header@npm:3.662.0": - version: 3.662.0 - resolution: "@aws-sdk/middleware-host-header@npm:3.662.0" - dependencies: - "@aws-sdk/types": 3.662.0 - "@smithy/protocol-http": ^4.1.4 - "@smithy/types": ^3.5.0 + "@aws-sdk/types": 3.686.0 + "@smithy/protocol-http": ^4.1.5 + "@smithy/types": ^3.6.0 tslib: ^2.6.2 - checksum: 2937810200e43faf0c693acc10ba017b14ff5d9d4d704b4c4d917edc4d512b7b8e46a7c9b510fd4d68c5711f711d177becbe3ffe378faf6b1dd19707e11d6d69 + checksum: ed423fadd10061c554be88e2dfe1ba66990dca363903325a114c59f8cc8d44414286360273ab5edf7f8cf7eb95668ff88e4fbebbad1bf6d859410363959e1304 languageName: node linkType: hard -"@aws-sdk/middleware-location-constraint@npm:3.662.0": - version: 3.662.0 - resolution: "@aws-sdk/middleware-location-constraint@npm:3.662.0" +"@aws-sdk/middleware-location-constraint@npm:3.686.0": + version: 3.686.0 + resolution: "@aws-sdk/middleware-location-constraint@npm:3.686.0" dependencies: - "@aws-sdk/types": 3.662.0 - "@smithy/types": ^3.5.0 + "@aws-sdk/types": 3.686.0 + "@smithy/types": ^3.6.0 tslib: ^2.6.2 - checksum: 13fbf2f8cde5e7fac5ab5793235a824dd7785d3db75b87466101b6e82d0f2a4728dfe8ea23f51845794049d3de448d8dae3f365449810c5028460fbcd8bc5fdc + checksum: 82e8550edb5e9d2726afa0ca1eef62cb315e3733865b6f436cc289c4b7ed704a22209c1ad89bb18224d56561c2ef3e256ff4800128d8a2b08c39fbbf38e25664 languageName: node linkType: hard -"@aws-sdk/middleware-logger@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/middleware-logger@npm:3.127.0" +"@aws-sdk/middleware-logger@npm:3.686.0": + version: 3.686.0 + resolution: "@aws-sdk/middleware-logger@npm:3.686.0" dependencies: - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: edc37f262bdab27bd0d1e26ed1ec1656d8257e9b9db58f45ccd0eb9ff9a39f71deb43955a843d440adce73a608a499ce7478780b774b5fb057bc4769dd7ee27d - languageName: node - linkType: hard - -"@aws-sdk/middleware-logger@npm:3.662.0": - version: 3.662.0 - resolution: "@aws-sdk/middleware-logger@npm:3.662.0" - dependencies: - "@aws-sdk/types": 3.662.0 - "@smithy/types": ^3.5.0 + "@aws-sdk/types": 3.686.0 + "@smithy/types": ^3.6.0 tslib: ^2.6.2 - checksum: 6802065adb29f8d31649361c0ec747dbcf458a688fae8599d4abae27a09ec084e0c878b08fb412e0c2543381a86205a239c14ea165c7d5870320293118e1c7f4 + checksum: 513e20d1194fb6d932241c2d6bbf1b6dd1aadd3f9105612f1b381c93dc2bc7057dc0d0a8b25ea5d6354f68fbf218170f2f3dec26daf0a6f5d1134e1d802855a1 languageName: node linkType: hard -"@aws-sdk/middleware-recursion-detection@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/middleware-recursion-detection@npm:3.127.0" +"@aws-sdk/middleware-recursion-detection@npm:3.686.0": + version: 3.686.0 + resolution: "@aws-sdk/middleware-recursion-detection@npm:3.686.0" dependencies: - "@aws-sdk/protocol-http": 3.127.0 - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: dd04f307c4501bc35fef048a748a5d668061725b10d7cc39143404773049687957fa046b406677ce625279c1d2161cba17b0c639cb59579fc091abd06b91a719 - languageName: node - linkType: hard - -"@aws-sdk/middleware-recursion-detection@npm:3.662.0": - version: 3.662.0 - resolution: "@aws-sdk/middleware-recursion-detection@npm:3.662.0" - dependencies: - "@aws-sdk/types": 3.662.0 - "@smithy/protocol-http": ^4.1.4 - "@smithy/types": ^3.5.0 + "@aws-sdk/types": 3.686.0 + "@smithy/protocol-http": ^4.1.5 + "@smithy/types": ^3.6.0 tslib: ^2.6.2 - checksum: 77c1efe7224dc75eb8c20033ce9dda74e7f1dd8c46ed6ed31cd9946339e164c100981c368205357311964f1134fe504389a29e8a3317a2caeff712a5fbec0e09 - languageName: node - linkType: hard - -"@aws-sdk/middleware-retry@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/middleware-retry@npm:3.127.0" - dependencies: - "@aws-sdk/protocol-http": 3.127.0 - "@aws-sdk/service-error-classification": 3.127.0 - "@aws-sdk/types": 3.127.0 - "@aws-sdk/util-middleware": 3.127.0 - tslib: ^2.3.1 - uuid: ^8.3.2 - checksum: 314800be7d2cc1f20314ae413c029f31ef47ffc35a0a555944c87ea278ab61dafdf63cdf339effae9de66cbde542f0e25c8c8b3acf2c0d6a9cfbe59b09f646af + checksum: fe30ad3d39dbbb2d0b492ee5329ef6e03eeaf59437b4af75aa90129d21fde6a7b0626bed00dd2dfa8b6f27eb44c941828e200471becc9d574526fc36f2484995 languageName: node linkType: hard -"@aws-sdk/middleware-sdk-s3@npm:3.662.0": - version: 3.662.0 - resolution: "@aws-sdk/middleware-sdk-s3@npm:3.662.0" +"@aws-sdk/middleware-sdk-s3@npm:3.687.0": + version: 3.687.0 + resolution: "@aws-sdk/middleware-sdk-s3@npm:3.687.0" dependencies: - "@aws-sdk/core": 3.662.0 - "@aws-sdk/types": 3.662.0 - "@aws-sdk/util-arn-parser": 3.568.0 - "@smithy/core": ^2.4.7 - "@smithy/node-config-provider": ^3.1.8 - "@smithy/protocol-http": ^4.1.4 + "@aws-sdk/core": 3.686.0 + "@aws-sdk/types": 3.686.0 + "@aws-sdk/util-arn-parser": 3.679.0 + "@smithy/core": ^2.5.1 + "@smithy/node-config-provider": ^3.1.9 + "@smithy/protocol-http": ^4.1.5 "@smithy/signature-v4": ^4.2.0 - "@smithy/smithy-client": ^3.3.6 - "@smithy/types": ^3.5.0 + "@smithy/smithy-client": ^3.4.2 + "@smithy/types": ^3.6.0 "@smithy/util-config-provider": ^3.0.0 - "@smithy/util-middleware": ^3.0.7 - "@smithy/util-stream": ^3.1.9 + "@smithy/util-middleware": ^3.0.8 + "@smithy/util-stream": ^3.2.1 "@smithy/util-utf8": ^3.0.0 tslib: ^2.6.2 - checksum: 1a22792d8a7bd71ecd1e5453f6b56bc309b4524e3599ea578584ebdfefc063b6481afde777e9a55b717be3ce3f06221a5b1043f9a3c6e73a8e01921acc325a86 + checksum: 1bc07e76916b85e38bbb9bf3b08799587177262ec2a66e3a4dddbaec09bf80bcb70cc82f2f63d83578e05cd39a3d9a0264394b630c4834ad8488c12fd48f037e languageName: node linkType: hard -"@aws-sdk/middleware-sdk-sqs@npm:3.662.0": - version: 3.662.0 - resolution: "@aws-sdk/middleware-sdk-sqs@npm:3.662.0" +"@aws-sdk/middleware-sdk-sqs@npm:3.686.0": + version: 3.686.0 + resolution: "@aws-sdk/middleware-sdk-sqs@npm:3.686.0" dependencies: - "@aws-sdk/types": 3.662.0 - "@smithy/smithy-client": ^3.3.6 - "@smithy/types": ^3.5.0 + "@aws-sdk/types": 3.686.0 + "@smithy/smithy-client": ^3.4.2 + "@smithy/types": ^3.6.0 "@smithy/util-hex-encoding": ^3.0.0 "@smithy/util-utf8": ^3.0.0 tslib: ^2.6.2 - checksum: 72ec999a8161a426cc367bac1b70c4ded7b0b70cbe7dac3dea55388e30d8c44d0bc344dad3e8ad4e36351c98b9f999e106b06caa34ebc1b9644f8561a3d9f18d - languageName: node - linkType: hard - -"@aws-sdk/middleware-sdk-sts@npm:3.130.0": - version: 3.130.0 - resolution: "@aws-sdk/middleware-sdk-sts@npm:3.130.0" - dependencies: - "@aws-sdk/middleware-signing": 3.130.0 - "@aws-sdk/property-provider": 3.127.0 - "@aws-sdk/protocol-http": 3.127.0 - "@aws-sdk/signature-v4": 3.130.0 - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: 4c83eb02d9b8f0b18d9d24704e660463d9d15cc7881c231a1ad315681e5bdd67f70d413f00ddedbcd8c5ed337df317fa6ce366e5314b4a440269bd44c0fad514 - languageName: node - linkType: hard - -"@aws-sdk/middleware-serde@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/middleware-serde@npm:3.127.0" - dependencies: - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: ff31988f06ef1b1d006ec4231d7dd8e72d60ba43d599952c504a9657308a7a0a7ef0d5610a5e73c58f66b8b168db1235c61d9276a1ef59b7ce9227d3e9eff026 + checksum: 23ca2d682a7158d2ce0b1f7d92093a73012304c08f4101f684ce119ffd321b48f7ddca11dd636e181492220f92fe4efd8ddfb1ff18785506eaba5a6e49c81e15 languageName: node linkType: hard -"@aws-sdk/middleware-signing@npm:3.130.0": - version: 3.130.0 - resolution: "@aws-sdk/middleware-signing@npm:3.130.0" +"@aws-sdk/middleware-ssec@npm:3.686.0": + version: 3.686.0 + resolution: "@aws-sdk/middleware-ssec@npm:3.686.0" dependencies: - "@aws-sdk/property-provider": 3.127.0 - "@aws-sdk/protocol-http": 3.127.0 - "@aws-sdk/signature-v4": 3.130.0 - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: 74e4e480a027967cb9b0e060246e98b5d134bcc5509619b57247196337e19ae31273086a9c00bedfcab22982d5d583568b99343e7f3ea7cb5b99a8dbb89c2cde - languageName: node - linkType: hard - -"@aws-sdk/middleware-ssec@npm:3.662.0": - version: 3.662.0 - resolution: "@aws-sdk/middleware-ssec@npm:3.662.0" - dependencies: - "@aws-sdk/types": 3.662.0 - "@smithy/types": ^3.5.0 + "@aws-sdk/types": 3.686.0 + "@smithy/types": ^3.6.0 tslib: ^2.6.2 - checksum: fedb69b5119b3e476c59b28b42f675957131d43d12c005ed81c855d69a7256af74ffcf1725e9b152b58f9d510cafb852420410cb6cd2c2546baf4aa7a2e04a56 + checksum: 3aec2e66d16b4941687e5e96217fb8f567e2e2924e4eee22ebdba54d318890d753cefda6ef4b7b74a23565ef2c3f39bf84a52db4c838b432c4b7e31db589ec6b languageName: node linkType: hard -"@aws-sdk/middleware-stack@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/middleware-stack@npm:3.127.0" +"@aws-sdk/middleware-user-agent@npm:3.687.0": + version: 3.687.0 + resolution: "@aws-sdk/middleware-user-agent@npm:3.687.0" dependencies: - tslib: ^2.3.1 - checksum: 145a44b74681590edc328bb128a8f17af2b13b3e3a0c3bd8803636bafee4370db385fdc132d20ec2b0b331f849a367cb9b8b5ec37b4a705b70156c184ca9f84c - languageName: node - linkType: hard - -"@aws-sdk/middleware-user-agent@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/middleware-user-agent@npm:3.127.0" - dependencies: - "@aws-sdk/protocol-http": 3.127.0 - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: 2967bc7fce3f4e2ec35ee650c4fad897a4bc454884ada00031a302bfdf6d53153332e5171cc760defad2bcd7acadf6549a398bf606674f642573f2786c3741e0 - languageName: node - linkType: hard - -"@aws-sdk/middleware-user-agent@npm:3.662.0": - version: 3.662.0 - resolution: "@aws-sdk/middleware-user-agent@npm:3.662.0" - dependencies: - "@aws-sdk/types": 3.662.0 - "@aws-sdk/util-endpoints": 3.662.0 - "@smithy/protocol-http": ^4.1.4 - "@smithy/types": ^3.5.0 + "@aws-sdk/core": 3.686.0 + "@aws-sdk/types": 3.686.0 + "@aws-sdk/util-endpoints": 3.686.0 + "@smithy/core": ^2.5.1 + "@smithy/protocol-http": ^4.1.5 + "@smithy/types": ^3.6.0 tslib: ^2.6.2 - checksum: 20f7b361f907cee3fbd0973bf3256f40c727770b3128aea009881e91cf25305f83e75c0e53348e0efa520cee6cb78ffe4a09ddbdfb9201a657e3398b0d17d919 - languageName: node - linkType: hard - -"@aws-sdk/node-config-provider@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/node-config-provider@npm:3.127.0" - dependencies: - "@aws-sdk/property-provider": 3.127.0 - "@aws-sdk/shared-ini-file-loader": 3.127.0 - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: 733a40d93a45258c8c94702c0c5fcd829c2fcc6e3ec4c3e4d63b77ee1b01ee6591b49216b9acd80388de238603ab0a92dd0e7a09b09c654997873e574e95e4d2 + checksum: ca17d118d34a5149c3a9cf21001e6af02ecf3bbeda167a25ab88f5f3bf156cccc7f271e4870e8aff26152d1e0efab92b43b136ff221b11c6418a1ac105209dc9 languageName: node linkType: hard -"@aws-sdk/node-http-handler@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/node-http-handler@npm:3.127.0" +"@aws-sdk/region-config-resolver@npm:3.686.0": + version: 3.686.0 + resolution: "@aws-sdk/region-config-resolver@npm:3.686.0" dependencies: - "@aws-sdk/abort-controller": 3.127.0 - "@aws-sdk/protocol-http": 3.127.0 - "@aws-sdk/querystring-builder": 3.127.0 - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: 55629edb90766ab5e62db4cd3a57751d719ddf79a1ebd9a8221fc9289509589535859337726b8ea942b96bcb356881ac1fc59707b9873270bde36da870092fab - languageName: node - linkType: hard - -"@aws-sdk/property-provider@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/property-provider@npm:3.127.0" - dependencies: - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: e78770762fb0d5d904c0d270266cb9ef580184c0aee25d1df389bff3e66f6c4cfa2c99104488539d22fa642c6102027772b85b42a07c2a90306b0c4751a81698 - languageName: node - linkType: hard - -"@aws-sdk/protocol-http@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/protocol-http@npm:3.127.0" - dependencies: - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: 2d34deb09bd1ba4316945f441f75600aa621d8fa9021c92a91582ac299d857a64572eeb87f7306e3a06c899635dccc717e1353aa290d38665be97487b13038ee - languageName: node - linkType: hard - -"@aws-sdk/querystring-builder@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/querystring-builder@npm:3.127.0" - dependencies: - "@aws-sdk/types": 3.127.0 - "@aws-sdk/util-uri-escape": 3.55.0 - tslib: ^2.3.1 - checksum: ac84867b038c530821987db9fac8aaab20dd4b0d0c9fe78caee2f5dd4e8d5b6a99b8cb7ea7816476b9b13149305aea46a2c176130b586882243a82478de35473 - languageName: node - linkType: hard - -"@aws-sdk/querystring-parser@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/querystring-parser@npm:3.127.0" - dependencies: - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: 1dcb87be1586e21cc4d98653211ab1d4f484c9a8d62be0acfbd8dde3629559e079e3ca67eb20ce6bc17a53262d5d3462eb3d701573380ea216a2dd77088cd2a5 - languageName: node - linkType: hard - -"@aws-sdk/region-config-resolver@npm:3.662.0": - version: 3.662.0 - resolution: "@aws-sdk/region-config-resolver@npm:3.662.0" - dependencies: - "@aws-sdk/types": 3.662.0 - "@smithy/node-config-provider": ^3.1.8 - "@smithy/types": ^3.5.0 + "@aws-sdk/types": 3.686.0 + "@smithy/node-config-provider": ^3.1.9 + "@smithy/types": ^3.6.0 "@smithy/util-config-provider": ^3.0.0 - "@smithy/util-middleware": ^3.0.7 + "@smithy/util-middleware": ^3.0.8 tslib: ^2.6.2 - checksum: 68b6d151e46987ec8f15b8ca4a6ae6e22c7594460a566d99a6d82128b2f7886e414d2038ce92de5ff4e2723945d709844c9c474553ff8ab717962beeed47dd61 + checksum: d9ea4e6715a994874bff6256af3cdf446762e67b3f65d4469ef2d43be8cbb639d5407a00f2254ce41ebf2b556fad31bb49d63083d0047086df831592a0d6d620 languageName: node linkType: hard -"@aws-sdk/s3-presigned-post@npm:3.662.0": - version: 3.662.0 - resolution: "@aws-sdk/s3-presigned-post@npm:3.662.0" +"@aws-sdk/s3-presigned-post@npm:3.687.0": + version: 3.687.0 + resolution: "@aws-sdk/s3-presigned-post@npm:3.687.0" dependencies: - "@aws-sdk/client-s3": 3.662.0 - "@aws-sdk/types": 3.662.0 - "@aws-sdk/util-format-url": 3.662.0 - "@smithy/middleware-endpoint": ^3.1.4 + "@aws-sdk/client-s3": 3.687.0 + "@aws-sdk/types": 3.686.0 + "@aws-sdk/util-format-url": 3.686.0 + "@smithy/middleware-endpoint": ^3.2.1 "@smithy/signature-v4": ^4.2.0 - "@smithy/types": ^3.5.0 + "@smithy/types": ^3.6.0 "@smithy/util-hex-encoding": ^3.0.0 "@smithy/util-utf8": ^3.0.0 tslib: ^2.6.2 - checksum: 5514900727f092ae46e7136acacc4baaa6949fc311bdef93b4fc29eb258c44397f2e49719c5b58796d45816242caa15ee3118011c02b8458b0749af910b89f91 + checksum: cfa7fe104d8a08cc01aef5dc578c3c4ab79a1c3cded260437d545eb9af05b9776fcc3d759c4ef39f166339287f10bb932a68f3a9eaa6011c48d542ea409a7f74 languageName: node linkType: hard -"@aws-sdk/s3-request-presigner@npm:3.662.0": - version: 3.662.0 - resolution: "@aws-sdk/s3-request-presigner@npm:3.662.0" +"@aws-sdk/s3-request-presigner@npm:3.687.0": + version: 3.687.0 + resolution: "@aws-sdk/s3-request-presigner@npm:3.687.0" dependencies: - "@aws-sdk/signature-v4-multi-region": 3.662.0 - "@aws-sdk/types": 3.662.0 - "@aws-sdk/util-format-url": 3.662.0 - "@smithy/middleware-endpoint": ^3.1.4 - "@smithy/protocol-http": ^4.1.4 - "@smithy/smithy-client": ^3.3.6 - "@smithy/types": ^3.5.0 + "@aws-sdk/signature-v4-multi-region": 3.687.0 + "@aws-sdk/types": 3.686.0 + "@aws-sdk/util-format-url": 3.686.0 + "@smithy/middleware-endpoint": ^3.2.1 + "@smithy/protocol-http": ^4.1.5 + "@smithy/smithy-client": ^3.4.2 + "@smithy/types": ^3.6.0 tslib: ^2.6.2 - checksum: 6f8bf09d7cd3cd025a179da8efa6e4ceaf010e1461fdbaf6c1a24e7aa52e4570c39409aeb41ad46c857ede861334373a723fae64efdbe72eb2d705396134b043 - languageName: node - linkType: hard - -"@aws-sdk/service-error-classification@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/service-error-classification@npm:3.127.0" - checksum: dcc743ac7a480edf56eac3861d575819edd5f181f67e603c4f6cc2291ae1f88c116dc2cab19da172a1f7dc5f62195875483c5105ac2f4076ba6caf518ab3867d - languageName: node - linkType: hard - -"@aws-sdk/shared-ini-file-loader@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/shared-ini-file-loader@npm:3.127.0" - dependencies: - tslib: ^2.3.1 - checksum: fa0c8ffa5d42940778b14e8f1d8998605b5d7ea43f3c19cc9dbb02f2d552c35dabc5850a5e6d3f6af68978b2171aaec435c05c648a1ecf1c2fb81fe9a60d9702 + checksum: f4aeab2c7d09685afc2930a44850d82fdcbea5e8075f1fbf19ee1ee6c0c3e51c0c7e74ba02ca83ced29ed3bfd96a43ab5512612126280335029e0140f938cf94 languageName: node linkType: hard -"@aws-sdk/signature-v4-multi-region@npm:3.662.0": - version: 3.662.0 - resolution: "@aws-sdk/signature-v4-multi-region@npm:3.662.0" +"@aws-sdk/signature-v4-multi-region@npm:3.687.0": + version: 3.687.0 + resolution: "@aws-sdk/signature-v4-multi-region@npm:3.687.0" dependencies: - "@aws-sdk/middleware-sdk-s3": 3.662.0 - "@aws-sdk/types": 3.662.0 - "@smithy/protocol-http": ^4.1.4 + "@aws-sdk/middleware-sdk-s3": 3.687.0 + "@aws-sdk/types": 3.686.0 + "@smithy/protocol-http": ^4.1.5 "@smithy/signature-v4": ^4.2.0 - "@smithy/types": ^3.5.0 + "@smithy/types": ^3.6.0 tslib: ^2.6.2 - checksum: 386ef9fb02efbeb86c55ac5bf3eb09e60ab38488d640f85c1323da1f7d30ab3a9c6eed0ef1e04190cf099888744efec70bcad7d79fe6da93724694b0d1579ad3 - languageName: node - linkType: hard - -"@aws-sdk/signature-v4@npm:3.130.0": - version: 3.130.0 - resolution: "@aws-sdk/signature-v4@npm:3.130.0" - dependencies: - "@aws-sdk/is-array-buffer": 3.55.0 - "@aws-sdk/types": 3.127.0 - "@aws-sdk/util-hex-encoding": 3.109.0 - "@aws-sdk/util-middleware": 3.127.0 - "@aws-sdk/util-uri-escape": 3.55.0 - tslib: ^2.3.1 - checksum: 10c63fa18db144eda63727006e812b1cd504b49e5c345c94ce45a0b4b072b82f1e5ca964468868a5351b0e795f1b2945bc2f4ef81a9fa2bad26485226958c33d + checksum: 3414b17017af3719caadef96fd913763787a769192fd9d0581bfcf1abf3fac4d0b4f9121f7f01675cb7c33aac0f9cd4c495f60078befdf52c5cc6f21e09b70cd languageName: node linkType: hard -"@aws-sdk/smithy-client@npm:3.142.0": - version: 3.142.0 - resolution: "@aws-sdk/smithy-client@npm:3.142.0" +"@aws-sdk/token-providers@npm:3.686.0": + version: 3.686.0 + resolution: "@aws-sdk/token-providers@npm:3.686.0" dependencies: - "@aws-sdk/middleware-stack": 3.127.0 - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: e87b04dc11b935ba6ae30d894f28cfb93894d96f19bfaa9f8656cdad85d6daf68f8067493a228e9dc4eee4fc91672254287ce2f37740d895d89806c151785280 - languageName: node - linkType: hard - -"@aws-sdk/token-providers@npm:3.662.0": - version: 3.662.0 - resolution: "@aws-sdk/token-providers@npm:3.662.0" - dependencies: - "@aws-sdk/types": 3.662.0 + "@aws-sdk/types": 3.686.0 "@smithy/property-provider": ^3.1.7 "@smithy/shared-ini-file-loader": ^3.1.8 - "@smithy/types": ^3.5.0 + "@smithy/types": ^3.6.0 tslib: ^2.6.2 peerDependencies: - "@aws-sdk/client-sso-oidc": ^3.662.0 - checksum: b5ea8cdca765a705c4a2659945e399b696c1002ce7113773167e41095ed725780f4eac90bcadd658605580be6682136e75f7fa8665e11847516b96c2de1e074b + "@aws-sdk/client-sso-oidc": ^3.686.0 + checksum: eae1cf27c76659ca1a802f4c99945cd17faec5310cde1e7cb795c64b7e8539a848a0b5ec906f3261fd2cf9f682fa4e21ab6542c2ebc4eb9655bdc795e653d4be languageName: node linkType: hard -"@aws-sdk/types@npm:3.127.0, @aws-sdk/types@npm:^3.1.0": - version: 3.127.0 - resolution: "@aws-sdk/types@npm:3.127.0" - checksum: 35467177421fb180ca73eb85a327c814e3aaee11a8eabbf9f048d58ec4133d7205400ce2e3c3ef70d78a64a2359f1df2926e1a0e6f169a415c2896ff6dfb66d9 +"@aws-sdk/types@npm:3.686.0": + version: 3.686.0 + resolution: "@aws-sdk/types@npm:3.686.0" + dependencies: + "@smithy/types": ^3.6.0 + tslib: ^2.6.2 + checksum: 59eda13ad391eb719ebec1cac06755c21d043d71681f1e8ecb3ea39f333c3c7e635bc11967c57d82472c74683be519703219290684d57d594189ca35eb7935cc languageName: node linkType: hard -"@aws-sdk/types@npm:3.662.0, @aws-sdk/types@npm:^3.222.0": +"@aws-sdk/types@npm:^3.222.0": version: 3.662.0 resolution: "@aws-sdk/types@npm:3.662.0" dependencies: @@ -2066,138 +1583,36 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/url-parser@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/url-parser@npm:3.127.0" - dependencies: - "@aws-sdk/querystring-parser": 3.127.0 - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: 5732f51d6fef2d26599cb186e230cd8e99c567f6efd7b3f27dc0ecdb660510a20a3384f00c5edb08d0e8e59fe3bcb5b8e368558aefbff2cf5201eaeb7caefa4a - languageName: node - linkType: hard - -"@aws-sdk/util-arn-parser@npm:3.568.0": - version: 3.568.0 - resolution: "@aws-sdk/util-arn-parser@npm:3.568.0" +"@aws-sdk/util-arn-parser@npm:3.679.0": + version: 3.679.0 + resolution: "@aws-sdk/util-arn-parser@npm:3.679.0" dependencies: tslib: ^2.6.2 - checksum: e3c45e5d524a772954d0a33614d397414185b9eb635423d01253cad1c1b9add625798ed9cf23343d156fae89c701f484bc062ab673f67e2e2edfe362fde6d170 - languageName: node - linkType: hard - -"@aws-sdk/util-base64-browser@npm:3.109.0": - version: 3.109.0 - resolution: "@aws-sdk/util-base64-browser@npm:3.109.0" - dependencies: - tslib: ^2.3.1 - checksum: e4fb1dc0e5ac60320d4ba05dcf03b8e641c7a304f918df3134bf46c8ccf5b09d07ee283924a4cc4e9250fef582a2636bb4dac6ba71ee36662b2678dfe49d46b2 - languageName: node - linkType: hard - -"@aws-sdk/util-base64-node@npm:3.55.0": - version: 3.55.0 - resolution: "@aws-sdk/util-base64-node@npm:3.55.0" - dependencies: - "@aws-sdk/util-buffer-from": 3.55.0 - tslib: ^2.3.1 - checksum: 4a2a58ae2e5d2d904271dd0433b9c15ca9a8e9d62e979c82159420ab8e1b573e96c8f223c951be2139cdfe49a09c478d165eff9468978883c4c5bcdfa7d9fd4b - languageName: node - linkType: hard - -"@aws-sdk/util-body-length-browser@npm:3.55.0": - version: 3.55.0 - resolution: "@aws-sdk/util-body-length-browser@npm:3.55.0" - dependencies: - tslib: ^2.3.1 - checksum: f10c9e1f052da751e762e807f23b768052e5d375d7e048d596ee1d607065ff0c0ef7004bd4fd136848b6a5646c1c69e43860aa7a3da80d90023b749530faad59 - languageName: node - linkType: hard - -"@aws-sdk/util-body-length-node@npm:3.55.0": - version: 3.55.0 - resolution: "@aws-sdk/util-body-length-node@npm:3.55.0" - dependencies: - tslib: ^2.3.1 - checksum: 35ae66271b7160c53b344a2bd933b5882e9fcef4a47c579a2a9e313657da8b896ca6c674489767f75d148ea5ffb8cbde2127eae55f5f39aaa4823a7c1d98ec69 - languageName: node - linkType: hard - -"@aws-sdk/util-buffer-from@npm:3.55.0": - version: 3.55.0 - resolution: "@aws-sdk/util-buffer-from@npm:3.55.0" - dependencies: - "@aws-sdk/is-array-buffer": 3.55.0 - tslib: ^2.3.1 - checksum: 0c1d72cf2369c13a8bff7d990f8e8da7f5584dcbdf1965cf50674d531b42d80661eebdbbaf968d6932760fc3f5708374a676d05485a1d02347655ea5f2423f57 - languageName: node - linkType: hard - -"@aws-sdk/util-config-provider@npm:3.109.0": - version: 3.109.0 - resolution: "@aws-sdk/util-config-provider@npm:3.109.0" - dependencies: - tslib: ^2.3.1 - checksum: 99c9ef24faa555a317b46b782e211474dd9d666611e1aa76b963e93a6e7c54e32d5c20b87d9a601b9de68dfa1c7310d72667a74c335b31edb776e8494e2541af + checksum: b748f2c86da0bcea419d6efaef58670b84e46485d5b39aa92308ebbd7ee11bc8c21a83c973d9a184deb48f251efc82c44e8a4e9f38801c2fb13464bd8b6921fb languageName: node linkType: hard -"@aws-sdk/util-defaults-mode-browser@npm:3.142.0": - version: 3.142.0 - resolution: "@aws-sdk/util-defaults-mode-browser@npm:3.142.0" +"@aws-sdk/util-endpoints@npm:3.686.0": + version: 3.686.0 + resolution: "@aws-sdk/util-endpoints@npm:3.686.0" dependencies: - "@aws-sdk/property-provider": 3.127.0 - "@aws-sdk/types": 3.127.0 - bowser: ^2.11.0 - tslib: ^2.3.1 - checksum: 6ead8f767c2dcc0e21be180784a9ca5b57daa905a426fac0d0aa12f79f026d2da55d83c8b29cbec5c6e7adaccad8219b300dc30913808770ff7a20f2aa45be15 - languageName: node - linkType: hard - -"@aws-sdk/util-defaults-mode-node@npm:3.142.0": - version: 3.142.0 - resolution: "@aws-sdk/util-defaults-mode-node@npm:3.142.0" - dependencies: - "@aws-sdk/config-resolver": 3.130.0 - "@aws-sdk/credential-provider-imds": 3.127.0 - "@aws-sdk/node-config-provider": 3.127.0 - "@aws-sdk/property-provider": 3.127.0 - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: 6025ea3359a16a312d1b9bdedc761f4eabd59d274bc96290514c3d8107e89da8c365db6bc23b4fb5143de5faa89ac082d435cbc655ca4457a6d9384a4bd5b643 - languageName: node - linkType: hard - -"@aws-sdk/util-endpoints@npm:3.662.0": - version: 3.662.0 - resolution: "@aws-sdk/util-endpoints@npm:3.662.0" - dependencies: - "@aws-sdk/types": 3.662.0 - "@smithy/types": ^3.5.0 - "@smithy/util-endpoints": ^2.1.3 + "@aws-sdk/types": 3.686.0 + "@smithy/types": ^3.6.0 + "@smithy/util-endpoints": ^2.1.4 tslib: ^2.6.2 - checksum: 4cafb100640e551d7ec4d37d1c080de2551581ad008bf55532b6841852358545013e6a42309f669222fd892e0e95cc34a9d0e9a6cb5d999c5c76233cfe02d38a + checksum: b6bfb0edba2b98dbb3004378d5ddcd455a506bcb68f5f40ddd1a807ff265c46cf3fa183f9aa8b987e9db7cb286c6d9b3d3a43bc625ea8a6e469392d7844fee06 languageName: node linkType: hard -"@aws-sdk/util-format-url@npm:3.662.0": - version: 3.662.0 - resolution: "@aws-sdk/util-format-url@npm:3.662.0" +"@aws-sdk/util-format-url@npm:3.686.0": + version: 3.686.0 + resolution: "@aws-sdk/util-format-url@npm:3.686.0" dependencies: - "@aws-sdk/types": 3.662.0 - "@smithy/querystring-builder": ^3.0.7 - "@smithy/types": ^3.5.0 + "@aws-sdk/types": 3.686.0 + "@smithy/querystring-builder": ^3.0.8 + "@smithy/types": ^3.6.0 tslib: ^2.6.2 - checksum: 4cd2fbb441dab18ec0352475c6c7abaa27268c726b3936e7929e7f3c06402acccf88a9dde5fc1a21cb7a44148ae659fa225c9e4fd3a08da43552903b9f1cb550 - languageName: node - linkType: hard - -"@aws-sdk/util-hex-encoding@npm:3.109.0": - version: 3.109.0 - resolution: "@aws-sdk/util-hex-encoding@npm:3.109.0" - dependencies: - tslib: ^2.3.1 - checksum: 1c166b53d7f84c0271cb71da8ac0ef4a9bfd78f2d2d70e4a903921dd3c355a79a446fa66ff64522d87aa9c738f445fdfd527043980bea642ae3acbc7dd758edf + checksum: ce1abedb7a94d6c9a2cae601ce9c7d9855d40d885e74617ad5c67ab426fa5ee267d0b475587cbdddeea9171558d6bb70c2e1a77fc7d2e59463b2508d1ca9be45 languageName: node linkType: hard @@ -2210,117 +1625,43 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/util-middleware@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/util-middleware@npm:3.127.0" +"@aws-sdk/util-user-agent-browser@npm:3.686.0": + version: 3.686.0 + resolution: "@aws-sdk/util-user-agent-browser@npm:3.686.0" dependencies: - tslib: ^2.3.1 - checksum: c845b1bf6339cdee9762f41c3578fafb780bf5341037d3381c4dc799ac31626031de2a80735a5edaf260da655b1ef054a950dda552aedeed4188dfe42c717e83 - languageName: node - linkType: hard - -"@aws-sdk/util-uri-escape@npm:3.55.0": - version: 3.55.0 - resolution: "@aws-sdk/util-uri-escape@npm:3.55.0" - dependencies: - tslib: ^2.3.1 - checksum: fad6780856f2b42a11ce7bb1e2ea5b7a966a8f564f3d09e83dca024291ae589a0cb2a1d294812cd626346addeb292c178f84867e40f8fab6fca067bc42ad360a - languageName: node - linkType: hard - -"@aws-sdk/util-user-agent-browser@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/util-user-agent-browser@npm:3.127.0" - dependencies: - "@aws-sdk/types": 3.127.0 - bowser: ^2.11.0 - tslib: ^2.3.1 - checksum: 42f08784b3f6f535516467e60897330e23b853e9ce134e9095170ef36c715aa04017b066fddf2b4830438bb00b630e7895dfcfbfaaa4d8de63d9983d9f205e25 - languageName: node - linkType: hard - -"@aws-sdk/util-user-agent-browser@npm:3.662.0": - version: 3.662.0 - resolution: "@aws-sdk/util-user-agent-browser@npm:3.662.0" - dependencies: - "@aws-sdk/types": 3.662.0 - "@smithy/types": ^3.5.0 + "@aws-sdk/types": 3.686.0 + "@smithy/types": ^3.6.0 bowser: ^2.11.0 tslib: ^2.6.2 - checksum: 46ff3751f5881038348dd3c56bd67536176b60162cf518d013968b443018d449de81748c4774900e5b7c78d47b0750e1a1cd0d6c34d95d51858f99f2820bc24c + checksum: 8a86a1123583f1cfbe3c0680222110786867cc6db2cc5583a08fc952483fc5147072e366033628cf88e224ddd3fb76cc8779f5716ccbafbfa09492a2e9b206d1 languageName: node linkType: hard -"@aws-sdk/util-user-agent-node@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/util-user-agent-node@npm:3.127.0" +"@aws-sdk/util-user-agent-node@npm:3.687.0": + version: 3.687.0 + resolution: "@aws-sdk/util-user-agent-node@npm:3.687.0" dependencies: - "@aws-sdk/node-config-provider": 3.127.0 - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - peerDependencies: - aws-crt: ">=1.0.0" - peerDependenciesMeta: - aws-crt: - optional: true - checksum: bba9cce7a775a3985b97960d64990d1b18ee39f0fdebcebd8d63f3eb951fe41f6808b9272ddafde2a4366f9e041bd10aec74aa8dba33d70101458dc8ce086ccf - languageName: node - linkType: hard - -"@aws-sdk/util-user-agent-node@npm:3.662.0": - version: 3.662.0 - resolution: "@aws-sdk/util-user-agent-node@npm:3.662.0" - dependencies: - "@aws-sdk/types": 3.662.0 - "@smithy/node-config-provider": ^3.1.8 - "@smithy/types": ^3.5.0 + "@aws-sdk/middleware-user-agent": 3.687.0 + "@aws-sdk/types": 3.686.0 + "@smithy/node-config-provider": ^3.1.9 + "@smithy/types": ^3.6.0 tslib: ^2.6.2 peerDependencies: aws-crt: ">=1.0.0" peerDependenciesMeta: aws-crt: optional: true - checksum: 46f08df64ba7d406b409703ae39e395eab35d43f21ca1c4df4e4f8462b10fe8a94842a8a22cc78bc8c2b1ebdf09b6fde4cf5eae0afa94be1f5e463cc88e50e0c + checksum: 2c6f282565e020dddee81eb1ebe020ca27289b4018ec2d6af8810d947a38323a51069d6b24fb9d67e67bdeed5539fcb8db9b91b4833e3ef02c640166ad31c3cf languageName: node linkType: hard -"@aws-sdk/util-utf8-browser@npm:3.109.0, @aws-sdk/util-utf8-browser@npm:^3.0.0": - version: 3.109.0 - resolution: "@aws-sdk/util-utf8-browser@npm:3.109.0" +"@aws-sdk/xml-builder@npm:3.686.0": + version: 3.686.0 + resolution: "@aws-sdk/xml-builder@npm:3.686.0" dependencies: - tslib: ^2.3.1 - checksum: 8311763b04261dab5995ec67abf31795f41e9c4b1ad635ed305735e14c7e3bc48e9ae349a06aab485390358a6a58e97190144ea51190983cec4ae665887b219b - languageName: node - linkType: hard - -"@aws-sdk/util-utf8-node@npm:3.109.0": - version: 3.109.0 - resolution: "@aws-sdk/util-utf8-node@npm:3.109.0" - dependencies: - "@aws-sdk/util-buffer-from": 3.55.0 - tslib: ^2.3.1 - checksum: ef706db8c0ceb014bc2fb9e5045b54369160648a9e919836132f98c5537eda82193f400fab607783ecf98a5df11b66c32256c4f2780bc689d7507ddaf2a0977b - languageName: node - linkType: hard - -"@aws-sdk/util-waiter@npm:3.127.0": - version: 3.127.0 - resolution: "@aws-sdk/util-waiter@npm:3.127.0" - dependencies: - "@aws-sdk/abort-controller": 3.127.0 - "@aws-sdk/types": 3.127.0 - tslib: ^2.3.1 - checksum: 3c27de00e943409a1fb927e450ecb7bd83cd6eb6329e0fbf51f20bd657a35571f181074f2ca1b612f87c07844be53129bf868c4acd4c734e22313197e6c70b1e - languageName: node - linkType: hard - -"@aws-sdk/xml-builder@npm:3.662.0": - version: 3.662.0 - resolution: "@aws-sdk/xml-builder@npm:3.662.0" - dependencies: - "@smithy/types": ^3.5.0 + "@smithy/types": ^3.6.0 tslib: ^2.6.2 - checksum: 4571dfe225133ccad480b20cf3f0887386e90579608b524e4e84447c1e995aea1df8d6ec0ce82e7d121ad3f0d9d94c6a85a2ce9db22440da46f3bcb3fb7351d7 + checksum: c6d6b0d1238786b7435f5432cadda837861db9b3bebc137f6159ba591d5e47a2640148adce32a3e15a894c37147b4f9a29984477c9de539b1f1739bdc97d1869 languageName: node linkType: hard @@ -17860,6 +17201,16 @@ __metadata: languageName: node linkType: hard +"@smithy/abort-controller@npm:^1.0.1": + version: 1.1.0 + resolution: "@smithy/abort-controller@npm:1.1.0" + dependencies: + "@smithy/types": ^1.2.0 + tslib: ^2.5.0 + checksum: 4299368f0b7dbeb8ffba00632b191ec39113fa9b9d29c3ff33c54d5a8663d42d769aa5d79ecd656fe8d09ccb23a7351095305524c27c5650ec7f96a312e5e522 + languageName: node + linkType: hard + "@smithy/abort-controller@npm:^3.1.5": version: 3.1.5 resolution: "@smithy/abort-controller@npm:3.1.5" @@ -17870,53 +17221,61 @@ __metadata: languageName: node linkType: hard -"@smithy/chunked-blob-reader-native@npm:^3.0.0": - version: 3.0.0 - resolution: "@smithy/chunked-blob-reader-native@npm:3.0.0" +"@smithy/abort-controller@npm:^3.1.6": + version: 3.1.6 + resolution: "@smithy/abort-controller@npm:3.1.6" + dependencies: + "@smithy/types": ^3.6.0 + tslib: ^2.6.2 + checksum: abba34cc47b6f7951402da1f94465616b84dedf55e0b0467b53f7848b9cb3e82b94869fa637278aa2f65809613e872582791053fd23299e026edada4a5ec1c1c + languageName: node + linkType: hard + +"@smithy/chunked-blob-reader-native@npm:^3.0.1": + version: 3.0.1 + resolution: "@smithy/chunked-blob-reader-native@npm:3.0.1" dependencies: "@smithy/util-base64": ^3.0.0 tslib: ^2.6.2 - checksum: f97c0c0ce5e9bd2350883df3c232311aa82eb87eb387125f685900326f86fc3aca208e9004291f742f6978abf91a0c1112cc9a803cd0caf0dffbcfa9b6d0239e + checksum: b133aebc7662923f88eb859acf3dee95d54fb99effef3ed34384e137d479a8e88549f7888d037919f2821480689ea57892c9d7eeb730fa622ee9f55e3bb9a684 languageName: node linkType: hard -"@smithy/chunked-blob-reader@npm:^3.0.0": - version: 3.0.0 - resolution: "@smithy/chunked-blob-reader@npm:3.0.0" +"@smithy/chunked-blob-reader@npm:^4.0.0": + version: 4.0.0 + resolution: "@smithy/chunked-blob-reader@npm:4.0.0" dependencies: tslib: ^2.6.2 - checksum: 6f520884ade14f1073adb640db2f03eb22a9920f342f37958df3e98327890b741cd909b16cbbc6f70c6c8dd250d6b3a8d76841b685d4871b0403f309267def4f + checksum: 45107be7b56efc598e445bf73e45694be10b933dcd5c0c38910311c463eff473e1eb82452b11ed6772986b518565ee8f3bec68cdfefe7c4a9a0c4b9968b582d8 languageName: node linkType: hard -"@smithy/config-resolver@npm:^3.0.9": - version: 3.0.9 - resolution: "@smithy/config-resolver@npm:3.0.9" +"@smithy/config-resolver@npm:^3.0.10": + version: 3.0.10 + resolution: "@smithy/config-resolver@npm:3.0.10" dependencies: - "@smithy/node-config-provider": ^3.1.8 - "@smithy/types": ^3.5.0 + "@smithy/node-config-provider": ^3.1.9 + "@smithy/types": ^3.6.0 "@smithy/util-config-provider": ^3.0.0 - "@smithy/util-middleware": ^3.0.7 + "@smithy/util-middleware": ^3.0.8 tslib: ^2.6.2 - checksum: 87e61be2ae1690a69974c0860d455a87c696c2da163384d22b582ee0fbee322b73f5d69dea754a2d8681d1b70fd4b0ca8d993ecb13eecf54f28ba3ffabfa0c40 + checksum: 55c2355db7eabfd70f0bf288d58cb0238f43b754d91f46febf7fd04617e6107d26e2899ede2b37fbd977980bb12fdbdb688fc5f53654202e946fe3c258cef5d1 languageName: node linkType: hard -"@smithy/core@npm:^2.4.7": - version: 2.4.7 - resolution: "@smithy/core@npm:2.4.7" +"@smithy/core@npm:^2.5.1": + version: 2.5.1 + resolution: "@smithy/core@npm:2.5.1" dependencies: - "@smithy/middleware-endpoint": ^3.1.4 - "@smithy/middleware-retry": ^3.0.22 - "@smithy/middleware-serde": ^3.0.7 - "@smithy/protocol-http": ^4.1.4 - "@smithy/smithy-client": ^3.3.6 - "@smithy/types": ^3.5.0 + "@smithy/middleware-serde": ^3.0.8 + "@smithy/protocol-http": ^4.1.5 + "@smithy/types": ^3.6.0 "@smithy/util-body-length-browser": ^3.0.0 - "@smithy/util-middleware": ^3.0.7 + "@smithy/util-middleware": ^3.0.8 + "@smithy/util-stream": ^3.2.1 "@smithy/util-utf8": ^3.0.0 tslib: ^2.6.2 - checksum: da0ed899f2e64f4221a943f2c641a81df955316639cb52ecf3fa99b3e0fcde447a531aa9e58f959cc153ef78ec562fcc6f9b41261f8f331585583f1efa51efa5 + checksum: 9175f48eca64f6b304335e32e09c6276aadf7d26cb9180da0a120a2b07c12d8dbe51de2ccce78e98c60729ce4eefe28e7ca95c169432a8049560564d780d1a81 languageName: node linkType: hard @@ -17933,116 +17292,129 @@ __metadata: languageName: node linkType: hard -"@smithy/eventstream-codec@npm:^3.1.6": - version: 3.1.6 - resolution: "@smithy/eventstream-codec@npm:3.1.6" +"@smithy/credential-provider-imds@npm:^3.2.5": + version: 3.2.5 + resolution: "@smithy/credential-provider-imds@npm:3.2.5" + dependencies: + "@smithy/node-config-provider": ^3.1.9 + "@smithy/property-provider": ^3.1.8 + "@smithy/types": ^3.6.0 + "@smithy/url-parser": ^3.0.8 + tslib: ^2.6.2 + checksum: 4c8941e3c3806f605930c31e461b0b0fd6384f782c7df92b35e30581eca02d7c4c6d6f2b1c5cdb08fcf4823d98f0ceadc8481def968f1266f761df5dac672d8f + languageName: node + linkType: hard + +"@smithy/eventstream-codec@npm:^3.1.7": + version: 3.1.7 + resolution: "@smithy/eventstream-codec@npm:3.1.7" dependencies: "@aws-crypto/crc32": 5.2.0 - "@smithy/types": ^3.5.0 + "@smithy/types": ^3.6.0 "@smithy/util-hex-encoding": ^3.0.0 tslib: ^2.6.2 - checksum: 9b7ec78dd0b15c2950d5f89c1240adda5240cab252ecd0e68ed55ac4da5fca4802b237341d42e8fc638c4db93f31459c40c7eb79d8dfc0446e2a925c3fdc1ba2 + checksum: e0a3b187e984ca6a248dbd591f9c4d5b981df5018c46c4cb9ebf47cf5f354be124471a121e9dc9c25ce80e089f2ed5847a15666e89c83327d7e25ea4d46fb92e languageName: node linkType: hard -"@smithy/eventstream-serde-browser@npm:^3.0.10": - version: 3.0.10 - resolution: "@smithy/eventstream-serde-browser@npm:3.0.10" +"@smithy/eventstream-serde-browser@npm:^3.0.11": + version: 3.0.11 + resolution: "@smithy/eventstream-serde-browser@npm:3.0.11" dependencies: - "@smithy/eventstream-serde-universal": ^3.0.9 - "@smithy/types": ^3.5.0 + "@smithy/eventstream-serde-universal": ^3.0.10 + "@smithy/types": ^3.6.0 tslib: ^2.6.2 - checksum: 292382ae41f5ca0d9d6b1791de2d7d91f93c6957c08ac7179b91d05afa1f116c754b260def0ead1d23ea8fd0f4359969db024470b74be976edadc69c931cb254 + checksum: ca430cd9541889f1e22a508247c52f84387b51c1c580bdd7acd93ca74347bcaaf1cdfbf04709ce3667afcfa0e3602bbfcb018a6290b3966411a3aa48a38f3aa7 languageName: node linkType: hard -"@smithy/eventstream-serde-config-resolver@npm:^3.0.7": - version: 3.0.7 - resolution: "@smithy/eventstream-serde-config-resolver@npm:3.0.7" +"@smithy/eventstream-serde-config-resolver@npm:^3.0.8": + version: 3.0.8 + resolution: "@smithy/eventstream-serde-config-resolver@npm:3.0.8" dependencies: - "@smithy/types": ^3.5.0 + "@smithy/types": ^3.6.0 tslib: ^2.6.2 - checksum: c1762b21c665a580bb3c89e8811e9b0a22122ebd8633db2a78693f40910b5788c3e5603c905773bec6a1a72bf0e9785a4c011fded658f6f6f2ba616fc4ac5dd6 + checksum: 44da1b399e296c713643e60ff7fbd34a62c8bba147ea515e6ba98293df11275b62ada04307750d8f8015f717bbe13d317453f47e0d02dc714debc4e043eb7105 languageName: node linkType: hard -"@smithy/eventstream-serde-node@npm:^3.0.9": - version: 3.0.9 - resolution: "@smithy/eventstream-serde-node@npm:3.0.9" +"@smithy/eventstream-serde-node@npm:^3.0.10": + version: 3.0.10 + resolution: "@smithy/eventstream-serde-node@npm:3.0.10" dependencies: - "@smithy/eventstream-serde-universal": ^3.0.9 - "@smithy/types": ^3.5.0 + "@smithy/eventstream-serde-universal": ^3.0.10 + "@smithy/types": ^3.6.0 tslib: ^2.6.2 - checksum: 3f5dd216366f461d99c9100215d7e122fccf32ae78ffb6a5164277363ed1510c087bfcb3a31731f48368c179f57ea9b46ae2a19bbe3562da07cd6ada06a47e9c + checksum: 8e8f71bfa25d017f7914ad74258cf5f8c68a6bdc33ab32b126d95e0cb7ea796488d06405695f90e8af90668302e282ac8d4e66e70eca48d92d0cfa3b8e9592f2 languageName: node linkType: hard -"@smithy/eventstream-serde-universal@npm:^3.0.9": - version: 3.0.9 - resolution: "@smithy/eventstream-serde-universal@npm:3.0.9" +"@smithy/eventstream-serde-universal@npm:^3.0.10": + version: 3.0.10 + resolution: "@smithy/eventstream-serde-universal@npm:3.0.10" dependencies: - "@smithy/eventstream-codec": ^3.1.6 - "@smithy/types": ^3.5.0 + "@smithy/eventstream-codec": ^3.1.7 + "@smithy/types": ^3.6.0 tslib: ^2.6.2 - checksum: d247fdb9155063af562123dd1970f8d17a1871c3793355fc86c875bf3088aca44e6f3b17a704f4d9331a84ac9811b4592e3ecab54a90e600d6e717fc9f6781c6 + checksum: ee3717312841438f5e173866475f47aa7a56a9426657bc89fffc497c15356617688ed17d6a09533918c11fbff68ce6f7998fd9d746030a9bc25a5e353ca8e9c0 languageName: node linkType: hard -"@smithy/fetch-http-handler@npm:^3.2.9": - version: 3.2.9 - resolution: "@smithy/fetch-http-handler@npm:3.2.9" +"@smithy/fetch-http-handler@npm:^4.0.0": + version: 4.0.0 + resolution: "@smithy/fetch-http-handler@npm:4.0.0" dependencies: - "@smithy/protocol-http": ^4.1.4 - "@smithy/querystring-builder": ^3.0.7 - "@smithy/types": ^3.5.0 + "@smithy/protocol-http": ^4.1.5 + "@smithy/querystring-builder": ^3.0.8 + "@smithy/types": ^3.6.0 "@smithy/util-base64": ^3.0.0 tslib: ^2.6.2 - checksum: 3b8eed12bff9d39e23989ea424e112530e01c81f983f15a3bfc4265baa06feb230267d095588705c5a8002cc4a2bfcd834b0341bff60a6236dcc24599ecf8327 + checksum: 43fc88515227e0d66b6b6a56a8e7a7f9c9690b32c51265859d40c1f4ace3a8a9ebba78e095715fe85a508d32c4f237c09f722e1e0c86d15a3fc81edc961a5051 languageName: node linkType: hard -"@smithy/hash-blob-browser@npm:^3.1.6": - version: 3.1.6 - resolution: "@smithy/hash-blob-browser@npm:3.1.6" +"@smithy/hash-blob-browser@npm:^3.1.7": + version: 3.1.7 + resolution: "@smithy/hash-blob-browser@npm:3.1.7" dependencies: - "@smithy/chunked-blob-reader": ^3.0.0 - "@smithy/chunked-blob-reader-native": ^3.0.0 - "@smithy/types": ^3.5.0 + "@smithy/chunked-blob-reader": ^4.0.0 + "@smithy/chunked-blob-reader-native": ^3.0.1 + "@smithy/types": ^3.6.0 tslib: ^2.6.2 - checksum: 4807ad388f552a5f27f168c4efa9cd88c14a2dc75a047137ccab88ef2dfb70729ef7800ca2ae12f2a41adb3149c5d4605eac81ef64880912766d6b59d258ad81 + checksum: d1e790e63147357f1c5b210cacf727f6ad75c78d8246c98a1d9af17a757ce9d2621a0a21e5171b4de9526ce731db15a1288c489c6f396d54314f74a29d667ae4 languageName: node linkType: hard -"@smithy/hash-node@npm:^3.0.7": - version: 3.0.7 - resolution: "@smithy/hash-node@npm:3.0.7" +"@smithy/hash-node@npm:^3.0.8": + version: 3.0.8 + resolution: "@smithy/hash-node@npm:3.0.8" dependencies: - "@smithy/types": ^3.5.0 + "@smithy/types": ^3.6.0 "@smithy/util-buffer-from": ^3.0.0 "@smithy/util-utf8": ^3.0.0 tslib: ^2.6.2 - checksum: 7a3b432e498efc1d8f229d58a760fae92f1d8a434eb9865b2b4dccea521bd318a97a366e0fdd2e41e2eb02ee6c78c9d3a076a993d5c970e33b0051b4d209128b + checksum: 9a2e2e8ea044008345e64406a5ecbc23a507b00eae42e71455f0b05c638a21da57a68e43d73254236203187d7943b864c750fc62f95825cc5340dd95767530c3 languageName: node linkType: hard -"@smithy/hash-stream-node@npm:^3.1.6": - version: 3.1.6 - resolution: "@smithy/hash-stream-node@npm:3.1.6" +"@smithy/hash-stream-node@npm:^3.1.7": + version: 3.1.7 + resolution: "@smithy/hash-stream-node@npm:3.1.7" dependencies: - "@smithy/types": ^3.5.0 + "@smithy/types": ^3.6.0 "@smithy/util-utf8": ^3.0.0 tslib: ^2.6.2 - checksum: e6427f7865667ad3a72eb9aace0d19718100fd4b14fb9f1e85c09b68b0b7ed608e26d1c2b9c6829be2f89aaa3fa3c122b1a5d5beea43c1026a43f70e748d8483 + checksum: 2bd580a8759a68c991fa5817d47e828029648a870ad52da8ba175819d6324603934e0d34b83139ac21ddb265f9adcaffbd696105ca0783b193fd5805dc3e3ca3 languageName: node linkType: hard -"@smithy/invalid-dependency@npm:^3.0.7": - version: 3.0.7 - resolution: "@smithy/invalid-dependency@npm:3.0.7" +"@smithy/invalid-dependency@npm:^3.0.8": + version: 3.0.8 + resolution: "@smithy/invalid-dependency@npm:3.0.8" dependencies: - "@smithy/types": ^3.5.0 + "@smithy/types": ^3.6.0 tslib: ^2.6.2 - checksum: 6ccfd995686c12cceedf4408021d30e83b88785d77f5ab2e0ee2fab034828a782464f47828acf76d282d37daf20ffff9f27bdd1ce0499926299e560143b28cad + checksum: ad55921e703ea3396a7d03b4515c2c0100d3c494865594a8a73b160e2913cac442d61a2545bcb248fedf00bb150cce2c33827d1d12527e34070e7fd8e114d2d6 languageName: node linkType: hard @@ -18064,77 +17436,78 @@ __metadata: languageName: node linkType: hard -"@smithy/md5-js@npm:^3.0.7": - version: 3.0.7 - resolution: "@smithy/md5-js@npm:3.0.7" +"@smithy/md5-js@npm:^3.0.8": + version: 3.0.8 + resolution: "@smithy/md5-js@npm:3.0.8" dependencies: - "@smithy/types": ^3.5.0 + "@smithy/types": ^3.6.0 "@smithy/util-utf8": ^3.0.0 tslib: ^2.6.2 - checksum: d9badbd5361babc30103ef9e9a6c3b24b49d058de1ccd6765fbe1867753f9c8a97100e1ce88509fa50e1aec3135603b466c2ef21af5acba281f745a6eea0f034 + checksum: 3159a01ff4fab7ebbfa41c2ba6baa5f4c2333dafff6232dea956fc82a6354ad97a70c67f4a28e7c919a5e6be418a3c2427073948739941b194ab9bd238e13290 languageName: node linkType: hard -"@smithy/middleware-content-length@npm:^3.0.9": - version: 3.0.9 - resolution: "@smithy/middleware-content-length@npm:3.0.9" +"@smithy/middleware-content-length@npm:^3.0.10": + version: 3.0.10 + resolution: "@smithy/middleware-content-length@npm:3.0.10" dependencies: - "@smithy/protocol-http": ^4.1.4 - "@smithy/types": ^3.5.0 + "@smithy/protocol-http": ^4.1.5 + "@smithy/types": ^3.6.0 tslib: ^2.6.2 - checksum: 0299e2573942b5f073d5dadf45778b61db530f79356e08594eb947060c603202282f45e6fd8c8f5e64f6184ca6b987cd3e8f55dfc8d189809af3d7b47230a2d7 + checksum: 776fd9014240109328b6823be8649322390bde7aa468750920be3e6ed268a4e380f5b3fcfbe15b2b8af1b6e4b4fedda9a446b76cc247ca252b95380646ac80b5 languageName: node linkType: hard -"@smithy/middleware-endpoint@npm:^3.1.4": - version: 3.1.4 - resolution: "@smithy/middleware-endpoint@npm:3.1.4" - dependencies: - "@smithy/middleware-serde": ^3.0.7 - "@smithy/node-config-provider": ^3.1.8 - "@smithy/shared-ini-file-loader": ^3.1.8 - "@smithy/types": ^3.5.0 - "@smithy/url-parser": ^3.0.7 - "@smithy/util-middleware": ^3.0.7 +"@smithy/middleware-endpoint@npm:^3.2.1": + version: 3.2.1 + resolution: "@smithy/middleware-endpoint@npm:3.2.1" + dependencies: + "@smithy/core": ^2.5.1 + "@smithy/middleware-serde": ^3.0.8 + "@smithy/node-config-provider": ^3.1.9 + "@smithy/shared-ini-file-loader": ^3.1.9 + "@smithy/types": ^3.6.0 + "@smithy/url-parser": ^3.0.8 + "@smithy/util-middleware": ^3.0.8 tslib: ^2.6.2 - checksum: 34cc4115fc57c9db90e6b74f4039e35e9e3cec94411173a3c0c14bacf99d86712ee51423b98b4d62695a5425a53d108fc0a2e11510df4b17a36f0496af03ddc1 + checksum: acc41e1b665b6a0c3cf2952a44b4cd1ce980866b44fe4b0ed9208a6067c3aa15ebe646623b14375be6c04ab73fa74fb95eeeca6905fc27092ce93495c77d8b9b languageName: node linkType: hard -"@smithy/middleware-retry@npm:^3.0.22": - version: 3.0.22 - resolution: "@smithy/middleware-retry@npm:3.0.22" +"@smithy/middleware-retry@npm:^3.0.25": + version: 3.0.25 + resolution: "@smithy/middleware-retry@npm:3.0.25" dependencies: - "@smithy/node-config-provider": ^3.1.8 - "@smithy/protocol-http": ^4.1.4 - "@smithy/service-error-classification": ^3.0.7 - "@smithy/smithy-client": ^3.3.6 - "@smithy/types": ^3.5.0 - "@smithy/util-middleware": ^3.0.7 - "@smithy/util-retry": ^3.0.7 + "@smithy/node-config-provider": ^3.1.9 + "@smithy/protocol-http": ^4.1.5 + "@smithy/service-error-classification": ^3.0.8 + "@smithy/smithy-client": ^3.4.2 + "@smithy/types": ^3.6.0 + "@smithy/util-middleware": ^3.0.8 + "@smithy/util-retry": ^3.0.8 tslib: ^2.6.2 uuid: ^9.0.1 - checksum: 426c98789e64864cedfcc0f0d75eaca820c855c6282491ed1acb52cad451b68ea61247fbd5a85b47a719387625a0074171a05ffecdb49b85bfcd85117345ac40 + checksum: d10264cbff951b3b9585b54cc0e67de6099ed67461a34d83266e197fc48bea45fc7207ed7329c567390be6f08aeb84a6e7fef5f4fd770da9cad0028fc6f61d65 languageName: node linkType: hard -"@smithy/middleware-serde@npm:^3.0.7": - version: 3.0.7 - resolution: "@smithy/middleware-serde@npm:3.0.7" +"@smithy/middleware-serde@npm:^3.0.8": + version: 3.0.8 + resolution: "@smithy/middleware-serde@npm:3.0.8" dependencies: - "@smithy/types": ^3.5.0 + "@smithy/types": ^3.6.0 tslib: ^2.6.2 - checksum: 6ec3a000049a5e3212c5814b5500b562669a75ef42f4efecf13f0726614982488b89bb3d55fd163eb655a1e58bf490e387f8f5d5bfb4fc51bb63dffd550e15e6 + checksum: 3d1ba269680bcf0cea6ea1c0e6d20eaf9de3597a687533607cc1ec49dad8669424e41bf3498dcdd21613f7791b0406db1846c2cdd6571682e4be8cb8055a85da languageName: node linkType: hard -"@smithy/middleware-stack@npm:^3.0.7": - version: 3.0.7 - resolution: "@smithy/middleware-stack@npm:3.0.7" +"@smithy/middleware-stack@npm:^3.0.8": + version: 3.0.8 + resolution: "@smithy/middleware-stack@npm:3.0.8" dependencies: - "@smithy/types": ^3.5.0 + "@smithy/types": ^3.6.0 tslib: ^2.6.2 - checksum: f29af8abb52e58b9cbb59c5187e0758279dd7d50c350ae2ad3cf123277fb652976c72be44d0be459e6db42294a0dca24eaf0fa6aead33a9e4b7109437102246f + checksum: c4a24dcdb1db8f347d266ee97676daf1f5bb495aa6c1e59992378bebe39265be14be5c3f7cf9ae35a8ffe68476cfcfe9000a87e9b00062538359c4507f4060ea languageName: node linkType: hard @@ -18150,16 +17523,28 @@ __metadata: languageName: node linkType: hard -"@smithy/node-http-handler@npm:^3.2.4": - version: 3.2.4 - resolution: "@smithy/node-http-handler@npm:3.2.4" +"@smithy/node-config-provider@npm:^3.1.9": + version: 3.1.9 + resolution: "@smithy/node-config-provider@npm:3.1.9" dependencies: - "@smithy/abort-controller": ^3.1.5 - "@smithy/protocol-http": ^4.1.4 - "@smithy/querystring-builder": ^3.0.7 - "@smithy/types": ^3.5.0 + "@smithy/property-provider": ^3.1.8 + "@smithy/shared-ini-file-loader": ^3.1.9 + "@smithy/types": ^3.6.0 tslib: ^2.6.2 - checksum: 658934366953828af04e5f8d0229f24e8ff783c1bd34b179203099321e4b41b19dfd921c3ef431d8067fc2d49a0c806d0c758fff6ea10606e092480dcf6b0f26 + checksum: fc0d27ff620475f406cb0f3e8527e8dcf56449ec3faad96b9738d26ec825d1b75a55b2f28750efbde383d163c5e25bb32ad09ba59d7d40e491898b9cc6a2eb2a + languageName: node + linkType: hard + +"@smithy/node-http-handler@npm:^3.2.5": + version: 3.2.5 + resolution: "@smithy/node-http-handler@npm:3.2.5" + dependencies: + "@smithy/abort-controller": ^3.1.6 + "@smithy/protocol-http": ^4.1.5 + "@smithy/querystring-builder": ^3.0.8 + "@smithy/types": ^3.6.0 + tslib: ^2.6.2 + checksum: ea8d4148dd760f031f9eeb2aec2480685bb1a40d7ac9c482eb3170df0316cae58433a6c803d85b046c132a19b8b4874741fae054355b5584facbd46c18889c83 languageName: node linkType: hard @@ -18173,6 +17558,16 @@ __metadata: languageName: node linkType: hard +"@smithy/property-provider@npm:^3.1.8": + version: 3.1.8 + resolution: "@smithy/property-provider@npm:3.1.8" + dependencies: + "@smithy/types": ^3.6.0 + tslib: ^2.6.2 + checksum: acf8a3cc0cad53503870580e164b41d79e34f1129c5b6fcf99d8dc09a0a89055889430f9552bead9bafc82775fed5f5f4c8eb3f7e53d91f759bb164a3a68cea5 + languageName: node + linkType: hard + "@smithy/protocol-http@npm:^4.1.4": version: 4.1.4 resolution: "@smithy/protocol-http@npm:4.1.4" @@ -18183,14 +17578,24 @@ __metadata: languageName: node linkType: hard -"@smithy/querystring-builder@npm:^3.0.7": - version: 3.0.7 - resolution: "@smithy/querystring-builder@npm:3.0.7" +"@smithy/protocol-http@npm:^4.1.5": + version: 4.1.5 + resolution: "@smithy/protocol-http@npm:4.1.5" dependencies: - "@smithy/types": ^3.5.0 + "@smithy/types": ^3.6.0 + tslib: ^2.6.2 + checksum: 2e581594d03ff367ebc0a1ab0443e8b148f39a3ea810333861f4aed639239e5a261bedbb49f6555cfdb9682b88cd881715764c2dfe7e18a7a003385a0b6200d5 + languageName: node + linkType: hard + +"@smithy/querystring-builder@npm:^3.0.8": + version: 3.0.8 + resolution: "@smithy/querystring-builder@npm:3.0.8" + dependencies: + "@smithy/types": ^3.6.0 "@smithy/util-uri-escape": ^3.0.0 tslib: ^2.6.2 - checksum: 0c41ce1993ce4b7dc509bc1fa50c42000a1cb5801601fc28d9113494349c337e88f77bff998f0debf0be0eba41d67d653a6648eea0f5b3b1e0f8a3cd57229631 + checksum: b07a766fb1e94e06116aef6534a31bbd4bb1bb94844d61c67615316d19aac82f94781fab779655bc03a46d70dda9caf3ad991a3e41548fbbba92783103f4f43e languageName: node linkType: hard @@ -18204,12 +17609,22 @@ __metadata: languageName: node linkType: hard -"@smithy/service-error-classification@npm:^3.0.7": - version: 3.0.7 - resolution: "@smithy/service-error-classification@npm:3.0.7" +"@smithy/querystring-parser@npm:^3.0.8": + version: 3.0.8 + resolution: "@smithy/querystring-parser@npm:3.0.8" dependencies: - "@smithy/types": ^3.5.0 - checksum: a6370ee348f4b66698a193a680ab5c81e0ed4d5fac8204cbbd9967c869feceb0b6d129f8d0e4823538ab699d7f3ab3ff8151e791221ee5f97742423b0e76b321 + "@smithy/types": ^3.6.0 + tslib: ^2.6.2 + checksum: 4ad9edfd96f084432157abd4953840f051ca4678963193bdc0ec7b210c79a649ddc023e327c39bd835ef7f56447dfaf2e47210738799ba9d044befacbe316a25 + languageName: node + linkType: hard + +"@smithy/service-error-classification@npm:^3.0.8": + version: 3.0.8 + resolution: "@smithy/service-error-classification@npm:3.0.8" + dependencies: + "@smithy/types": ^3.6.0 + checksum: cba6d33eb0e7482e557c303638416ea8678f80fa5782c97dd67e5b72741f22e2446370dc0ef9b16802d73cdfb7a5e4e5587c1d4abb5aa5ca9c33525137b4cf2b languageName: node linkType: hard @@ -18223,6 +17638,16 @@ __metadata: languageName: node linkType: hard +"@smithy/shared-ini-file-loader@npm:^3.1.9": + version: 3.1.9 + resolution: "@smithy/shared-ini-file-loader@npm:3.1.9" + dependencies: + "@smithy/types": ^3.6.0 + tslib: ^2.6.2 + checksum: 571cc785659551d875fb76c53d116bf6f3978d1b698be096e9218dbbe1dd42efbfb174e151528103888faf7c9854e66f3e5ca395b9c359e37f876c20b22a4f97 + languageName: node + linkType: hard + "@smithy/signature-v4@npm:^4.2.0": version: 4.2.0 resolution: "@smithy/signature-v4@npm:4.2.0" @@ -18239,17 +17664,27 @@ __metadata: languageName: node linkType: hard -"@smithy/smithy-client@npm:^3.3.6": - version: 3.3.6 - resolution: "@smithy/smithy-client@npm:3.3.6" - dependencies: - "@smithy/middleware-endpoint": ^3.1.4 - "@smithy/middleware-stack": ^3.0.7 - "@smithy/protocol-http": ^4.1.4 - "@smithy/types": ^3.5.0 - "@smithy/util-stream": ^3.1.9 +"@smithy/smithy-client@npm:^3.4.2": + version: 3.4.2 + resolution: "@smithy/smithy-client@npm:3.4.2" + dependencies: + "@smithy/core": ^2.5.1 + "@smithy/middleware-endpoint": ^3.2.1 + "@smithy/middleware-stack": ^3.0.8 + "@smithy/protocol-http": ^4.1.5 + "@smithy/types": ^3.6.0 + "@smithy/util-stream": ^3.2.1 tslib: ^2.6.2 - checksum: ba570b8d75f985682aab956e83a97f7c884507b63afeda01d011ef33a3306380249a1a01f2e044dbebbe650f704f46bfeebe40d51cc568cf55f10e5e5dfe29ba + checksum: 4b53e695e18bf0ed4805dd66839e272129be5384f6de5356a2adc03311f5c372766b490a3c001086aec8728f6c9bb90ca625a09e9b4c3fe875c1ee7567118f34 + languageName: node + linkType: hard + +"@smithy/types@npm:^1.2.0": + version: 1.2.0 + resolution: "@smithy/types@npm:1.2.0" + dependencies: + tslib: ^2.5.0 + checksum: 376a1402d356a8dddd804af66ff2d273e57e332a3e9537a98039b47572684aae044d5fcd879ac6eee5cc08640ea00fbef0725a6a16026db5fb8d189473d44fe6 languageName: node linkType: hard @@ -18262,6 +17697,15 @@ __metadata: languageName: node linkType: hard +"@smithy/types@npm:^3.6.0": + version: 3.6.0 + resolution: "@smithy/types@npm:3.6.0" + dependencies: + tslib: ^2.6.2 + checksum: 4f581dc1c3e2dee8e1134fafb47de2c301330ea668214eb1a81d26b85acdb48a7e52008da0d15a402e998a79bed285a74b88949a5a4a3fe0aef38c28620ab795 + languageName: node + linkType: hard + "@smithy/url-parser@npm:^3.0.7": version: 3.0.7 resolution: "@smithy/url-parser@npm:3.0.7" @@ -18273,6 +17717,17 @@ __metadata: languageName: node linkType: hard +"@smithy/url-parser@npm:^3.0.8": + version: 3.0.8 + resolution: "@smithy/url-parser@npm:3.0.8" + dependencies: + "@smithy/querystring-parser": ^3.0.8 + "@smithy/types": ^3.6.0 + tslib: ^2.6.2 + checksum: 1bf2143b298a4afdf6a8fa40f7b018ad59eb79b717e2bafcd8634c20893485c456c12fe73659d342a3d3a51cdbb10afea61fac285e7ce5fa0f66d7695ad7d10b + languageName: node + linkType: hard + "@smithy/util-base64@npm:^3.0.0": version: 3.0.0 resolution: "@smithy/util-base64@npm:3.0.0" @@ -18331,42 +17786,42 @@ __metadata: languageName: node linkType: hard -"@smithy/util-defaults-mode-browser@npm:^3.0.22": - version: 3.0.22 - resolution: "@smithy/util-defaults-mode-browser@npm:3.0.22" +"@smithy/util-defaults-mode-browser@npm:^3.0.25": + version: 3.0.25 + resolution: "@smithy/util-defaults-mode-browser@npm:3.0.25" dependencies: - "@smithy/property-provider": ^3.1.7 - "@smithy/smithy-client": ^3.3.6 - "@smithy/types": ^3.5.0 + "@smithy/property-provider": ^3.1.8 + "@smithy/smithy-client": ^3.4.2 + "@smithy/types": ^3.6.0 bowser: ^2.11.0 tslib: ^2.6.2 - checksum: 28fdf977c70f5d973230dacdf5f7e81e3f4e8858ed8f7aa2a9f7c794ebdaddd2567c7765492dcaac4c745749b59d6771d4eac9c01e2eed9c0afd206b0308e843 + checksum: 87c4b346d753712f7fe501920c6bb9712d7ec56670e49aa5d6db40ebe0f0cfa58d9e1d27e96e40c6be1721cf81bd0b2f29c077efc3b8dece074e3a6d175fa1a4 languageName: node linkType: hard -"@smithy/util-defaults-mode-node@npm:^3.0.22": - version: 3.0.22 - resolution: "@smithy/util-defaults-mode-node@npm:3.0.22" +"@smithy/util-defaults-mode-node@npm:^3.0.25": + version: 3.0.25 + resolution: "@smithy/util-defaults-mode-node@npm:3.0.25" dependencies: - "@smithy/config-resolver": ^3.0.9 - "@smithy/credential-provider-imds": ^3.2.4 - "@smithy/node-config-provider": ^3.1.8 - "@smithy/property-provider": ^3.1.7 - "@smithy/smithy-client": ^3.3.6 - "@smithy/types": ^3.5.0 + "@smithy/config-resolver": ^3.0.10 + "@smithy/credential-provider-imds": ^3.2.5 + "@smithy/node-config-provider": ^3.1.9 + "@smithy/property-provider": ^3.1.8 + "@smithy/smithy-client": ^3.4.2 + "@smithy/types": ^3.6.0 tslib: ^2.6.2 - checksum: 015321d014254f2f8b8a8a7cb82d8ed4000afe0b740dfedff8f2b66498c34b3e42b985ae5a2af71fd82145f11ece75b2649877fe5f7b34979c213c52978332df + checksum: e34c44bb5cbc8036765aa4f52e648a753b477b6653834291f7a2e0d82b7b58c1e741eac9a9a95d39b6f751c05013909c36ac0818e0015c24201af9d2e2fb0f5a languageName: node linkType: hard -"@smithy/util-endpoints@npm:^2.1.3": - version: 2.1.3 - resolution: "@smithy/util-endpoints@npm:2.1.3" +"@smithy/util-endpoints@npm:^2.1.4": + version: 2.1.4 + resolution: "@smithy/util-endpoints@npm:2.1.4" dependencies: - "@smithy/node-config-provider": ^3.1.8 - "@smithy/types": ^3.5.0 + "@smithy/node-config-provider": ^3.1.9 + "@smithy/types": ^3.6.0 tslib: ^2.6.2 - checksum: 63a362e1b521a63d9f535f4cfd4e4168e08be51f4e44a406adf840427b96f7295eee9343648a51c472a8fefa603b0f3644f876bc241b0a487d05343819f7aacf + checksum: 523df0a35807f3493cccaf1b76f88e14dedd3d9f29fe26a6f8c73cdfe09e57c67a1d3029cc585995b0f7fe20e07afa8b4dfa5f1d631a0c4c06c9f68075b61bad languageName: node linkType: hard @@ -18389,30 +17844,40 @@ __metadata: languageName: node linkType: hard -"@smithy/util-retry@npm:^3.0.7": - version: 3.0.7 - resolution: "@smithy/util-retry@npm:3.0.7" +"@smithy/util-middleware@npm:^3.0.8": + version: 3.0.8 + resolution: "@smithy/util-middleware@npm:3.0.8" dependencies: - "@smithy/service-error-classification": ^3.0.7 - "@smithy/types": ^3.5.0 + "@smithy/types": ^3.6.0 tslib: ^2.6.2 - checksum: 8af7ed849a7db65e9229a885490cd843c3f9b35248c661d6197a31d7cc0aa33c1790734b716e80e19b569d8149b1f6d8a3dfab4d887a155e64a3ea03bd7d504d + checksum: 6933c012f47c8b547b4986133a9dc2b264e9d71def155c4a9bce1bd1afbd73cb8e936c50ebc80190fc1d5bb26aee73ba012c567766dcd8a13c3d06bef841ab3c languageName: node linkType: hard -"@smithy/util-stream@npm:^3.1.9": - version: 3.1.9 - resolution: "@smithy/util-stream@npm:3.1.9" +"@smithy/util-retry@npm:^3.0.8": + version: 3.0.8 + resolution: "@smithy/util-retry@npm:3.0.8" dependencies: - "@smithy/fetch-http-handler": ^3.2.9 - "@smithy/node-http-handler": ^3.2.4 - "@smithy/types": ^3.5.0 + "@smithy/service-error-classification": ^3.0.8 + "@smithy/types": ^3.6.0 + tslib: ^2.6.2 + checksum: 5c0c63beb867828e6fd54f5fd83de412180df02de42f678df0f5a4412d10bfb5a74c22aa83a6f364c8292b5c82be94fe7af35d1ebe4e50a2c05946520f2ea870 + languageName: node + linkType: hard + +"@smithy/util-stream@npm:^3.2.1": + version: 3.2.1 + resolution: "@smithy/util-stream@npm:3.2.1" + dependencies: + "@smithy/fetch-http-handler": ^4.0.0 + "@smithy/node-http-handler": ^3.2.5 + "@smithy/types": ^3.6.0 "@smithy/util-base64": ^3.0.0 "@smithy/util-buffer-from": ^3.0.0 "@smithy/util-hex-encoding": ^3.0.0 "@smithy/util-utf8": ^3.0.0 tslib: ^2.6.2 - checksum: 4a9777742034ce0f5a3403bbe99c54c84cb26aa55ad5255346a006a574e658ae36b9d001666e931ef485614d288c76e33e35c8966b0af52e3fa6a7ac9772de8b + checksum: 3dc2b005d48a2e5ccb0761e7a7869f8af24d34a93eaa34f0586ba42fe79f13d48efb676e4aacbf02a54f1a225eb851d2c706c016f5f9d0b4fc127d8be69f5d90 languageName: node linkType: hard @@ -18445,14 +17910,14 @@ __metadata: languageName: node linkType: hard -"@smithy/util-waiter@npm:^3.1.6": - version: 3.1.6 - resolution: "@smithy/util-waiter@npm:3.1.6" +"@smithy/util-waiter@npm:^3.1.7": + version: 3.1.7 + resolution: "@smithy/util-waiter@npm:3.1.7" dependencies: - "@smithy/abort-controller": ^3.1.5 - "@smithy/types": ^3.5.0 + "@smithy/abort-controller": ^3.1.6 + "@smithy/types": ^3.6.0 tslib: ^2.6.2 - checksum: 8375e3530c19565f98e3a6ccbf2a332939f3d01817f0d100d8fcf6033eac2233df9debef181572dce2589e76aae140a3cc713d8715d4b29f73a294a48f857575 + checksum: 190d992898d0c7d776c806657703c1ebd0ba2c24f4042ed0251dc8653799aefe12848a0445ee16cdbb05b76b5c81fc803b271957954aa614aaccb99dd3338caa languageName: node linkType: hard @@ -31846,13 +31311,6 @@ __metadata: languageName: node linkType: hard -"entities@npm:2.2.0, entities@npm:^2.0.0": - version: 2.2.0 - resolution: "entities@npm:2.2.0" - checksum: 19010dacaf0912c895ea262b4f6128574f9ccf8d4b3b65c7e8334ad0079b3706376360e28d8843ff50a78aabcb8f08f0a32dbfacdc77e47ed77ca08b713669b3 - languageName: node - linkType: hard - "entities@npm:^1.1.1": version: 1.1.2 resolution: "entities@npm:1.1.2" @@ -31860,6 +31318,13 @@ __metadata: languageName: node linkType: hard +"entities@npm:^2.0.0": + version: 2.2.0 + resolution: "entities@npm:2.2.0" + checksum: 19010dacaf0912c895ea262b4f6128574f9ccf8d4b3b65c7e8334ad0079b3706376360e28d8843ff50a78aabcb8f08f0a32dbfacdc77e47ed77ca08b713669b3 + languageName: node + linkType: hard + "entities@npm:^4.2.0, entities@npm:^4.4.0": version: 4.5.0 resolution: "entities@npm:4.5.0" @@ -34068,15 +33533,6 @@ __metadata: languageName: node linkType: hard -"fast-xml-parser@npm:3.19.0": - version: 3.19.0 - resolution: "fast-xml-parser@npm:3.19.0" - bin: - xml2js: cli.js - checksum: d9da9145f73d90c05ee2746d80c78eca4da0249dea8c81ea8f1a6e1245e62988ed4a040dbd1c7229b1e0bdcbf69d33c882e0ac337d10c7eedb159a4dc9779327 - languageName: node - linkType: hard - "fast-xml-parser@npm:4.4.1": version: 4.4.1 resolution: "fast-xml-parser@npm:4.4.1" @@ -38572,14 +38028,15 @@ __metadata: "@apollo/gateway": 2.1.1 "@apollo/subgraph": 2.1.1 "@apollo/utils.keyvadapter": 3.0.0 - "@aws-sdk/client-s3": 3.662.0 - "@aws-sdk/client-ses": 3.145.0 - "@aws-sdk/client-sqs": 3.662.0 - "@aws-sdk/client-ssm": 3.145.0 - "@aws-sdk/credential-provider-node": 3.662.0 - "@aws-sdk/lib-storage": 3.662.0 - "@aws-sdk/s3-presigned-post": 3.662.0 - "@aws-sdk/s3-request-presigner": 3.662.0 + "@aws-sdk/abort-controller": 3.374.0 + "@aws-sdk/client-s3": 3.687.0 + "@aws-sdk/client-ses": 3.687.0 + "@aws-sdk/client-sqs": 3.687.0 + "@aws-sdk/client-ssm": 3.687.0 + "@aws-sdk/credential-provider-node": 3.687.0 + "@aws-sdk/lib-storage": 3.687.0 + "@aws-sdk/s3-presigned-post": 3.687.0 + "@aws-sdk/s3-request-presigner": 3.687.0 "@azure/msal-node": 1.14.4 "@babel/core": 7.22.5 "@babel/plugin-proposal-decorators": 7.22.5 From 70a5f312aefdf6e8d8f8dd250eedb333a3060f50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81sd=C3=ADs=20Erna=20Gu=C3=B0mundsd=C3=B3ttir?= Date: Thu, 14 Nov 2024 17:54:22 +0000 Subject: [PATCH 08/66] fix(api): add correct scope (#16874) Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- .../src/lib/health-directorate.resolver.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libs/api/domains/health-directorate/src/lib/health-directorate.resolver.ts b/libs/api/domains/health-directorate/src/lib/health-directorate.resolver.ts index 9473cac0eca2..234bbb70ca56 100644 --- a/libs/api/domains/health-directorate/src/lib/health-directorate.resolver.ts +++ b/libs/api/domains/health-directorate/src/lib/health-directorate.resolver.ts @@ -28,7 +28,6 @@ import { Features, } from '@island.is/nest/feature-flags' @UseGuards(IdsUserGuard, ScopesGuard, FeatureFlagGuard) -@Scopes(ApiScope.internal) @Audit({ namespace: '@island.is/api/health-directorate' }) @Resolver(() => OrganDonation) export class HealthDirectorateResolver { @@ -39,6 +38,7 @@ export class HealthDirectorateResolver { name: 'healthDirectorateOrganDonation', }) @Audit() + @Scopes(ApiScope.healthOrganDonation) @FeatureFlag(Features.servicePortalHealthOrganDonationPageEnabled) async getDonorStatus( @Args('locale', { type: () => String, nullable: true }) @@ -48,6 +48,7 @@ export class HealthDirectorateResolver { const data = await this.api.getDonorStatus(user, locale) return { donor: data, locale: locale } } + @ResolveField('organList', () => [Organ], { nullable: true, }) @@ -63,6 +64,7 @@ export class HealthDirectorateResolver { name: 'healthDirectorateOrganDonationUpdateDonorStatus', }) @Audit() + @Scopes(ApiScope.healthOrganDonation) @FeatureFlag(Features.servicePortalHealthOrganDonationPageEnabled) async updateDonorStatus( @Args('input') input: DonorInput, @@ -78,6 +80,7 @@ export class HealthDirectorateResolver { name: 'healthDirectorateVaccinations', }) @Audit() + @Scopes(ApiScope.healthVaccinations) @FeatureFlag(Features.servicePortalHealthVaccinationsPageEnabled) getVaccinations( @Args('locale', { type: () => String, nullable: true }) From d06732da9ae3172fed1ddffdd645c4affb39c69e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=9E=C3=B3r=C3=B0ur=20H?= Date: Thu, 14 Nov 2024 18:25:56 +0000 Subject: [PATCH 09/66] fix(regulations-admin): Update text amending (#16859) Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- .../regulations-admin/src/utils/formatAmendingRegulation.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/portals/admin/regulations-admin/src/utils/formatAmendingRegulation.ts b/libs/portals/admin/regulations-admin/src/utils/formatAmendingRegulation.ts index 8d1be305a33c..d42974eb109f 100644 --- a/libs/portals/admin/regulations-admin/src/utils/formatAmendingRegulation.ts +++ b/libs/portals/admin/regulations-admin/src/utils/formatAmendingRegulation.ts @@ -23,7 +23,7 @@ import { getDeletionOrAddition } from './getDeletionOrAddition' // ---------------------------------------------------------------------- const PREFIX = 'Reglugerð um ' const PREFIX_AMENDING = 'breytingu á reglugerð nr. ' -const PREFIX_REPEALING = 'brottfellingu á reglugerð nr. ' +const PREFIX_REPEALING = 'brottfellingu reglugerðar nr. ' const formatAffectedAndPlaceAffectedAtEnd = ( groups: { From af1d53185915b1e1b2dad146ba3aa5ee441bdc0f Mon Sep 17 00:00:00 2001 From: lommi Date: Thu, 14 Nov 2024 19:58:01 +0000 Subject: [PATCH 10/66] Revert "chore(deps): Update `@aws-sdk` client libraries (#16839)" (#16884) This reverts commit 94f3f891240c04e9571c2740e11804a6ecce099a. --- infra/package.json | 2 +- infra/yarn.lock | 1674 ++++++++++++++----------------- package.json | 17 +- yarn.lock | 2357 +++++++++++++++++++++++++++----------------- 4 files changed, 2184 insertions(+), 1866 deletions(-) diff --git a/infra/package.json b/infra/package.json index 356fc8a12835..37b440fdd44c 100644 --- a/infra/package.json +++ b/infra/package.json @@ -25,7 +25,7 @@ "typescript": "4.6.4" }, "dependencies": { - "@aws-sdk/client-ssm": "3.687.0", + "@aws-sdk/client-ssm": "3.145.0", "@types/lodash": "4.14.160", "aws-sdk": "^2.1003.0", "glob": "10.3.3", diff --git a/infra/yarn.lock b/infra/yarn.lock index 513e351a079f..97bc475a7bec 100644 --- a/infra/yarn.lock +++ b/infra/yarn.lock @@ -25,482 +25,694 @@ __metadata: languageName: node linkType: hard -"@aws-crypto/sha256-browser@npm:5.2.0": - version: 5.2.0 - resolution: "@aws-crypto/sha256-browser@npm:5.2.0" +"@aws-crypto/ie11-detection@npm:^2.0.0": + version: 2.0.0 + resolution: "@aws-crypto/ie11-detection@npm:2.0.0" + dependencies: + tslib: ^1.11.1 + checksum: dd15daa1160ecdf28b9c930dcbd7f8bc96e74d7f791134974b672f5d36182274c76db4fff414385cdb8997a8b7ade991988a571aaac3184e226e2ed6428d895f + languageName: node + linkType: hard + +"@aws-crypto/sha256-browser@npm:2.0.0": + version: 2.0.0 + resolution: "@aws-crypto/sha256-browser@npm:2.0.0" dependencies: - "@aws-crypto/sha256-js": ^5.2.0 - "@aws-crypto/supports-web-crypto": ^5.2.0 - "@aws-crypto/util": ^5.2.0 - "@aws-sdk/types": ^3.222.0 + "@aws-crypto/ie11-detection": ^2.0.0 + "@aws-crypto/sha256-js": ^2.0.0 + "@aws-crypto/supports-web-crypto": ^2.0.0 + "@aws-crypto/util": ^2.0.0 + "@aws-sdk/types": ^3.1.0 "@aws-sdk/util-locate-window": ^3.0.0 - "@smithy/util-utf8": ^2.0.0 - tslib: ^2.6.2 - checksum: 773f12f2026d82a6bb4a23a8f491894a6d32525bd9b8bfbc12896526cf11882a7607a671c478c45f9cd7d6ba1caaed48a62b67c6f725244bd83a1275108f46c7 + "@aws-sdk/util-utf8-browser": ^3.0.0 + tslib: ^1.11.1 + checksum: 7bc1ff042d0c53a46c0fc3824bd97fb3ed1df7dc030b8a995889471052860b8c8ade469c97866fafd8249a3144d0f48b0f1054f357e2b403606009381c4b8f0e languageName: node linkType: hard -"@aws-crypto/sha256-js@npm:5.2.0, @aws-crypto/sha256-js@npm:^5.2.0": - version: 5.2.0 - resolution: "@aws-crypto/sha256-js@npm:5.2.0" +"@aws-crypto/sha256-js@npm:2.0.0": + version: 2.0.0 + resolution: "@aws-crypto/sha256-js@npm:2.0.0" dependencies: - "@aws-crypto/util": ^5.2.0 - "@aws-sdk/types": ^3.222.0 - tslib: ^2.6.2 - checksum: 007fbe0436d714d0d0d282e2b61c90e45adcb9ad75eac9ac7ba03d32b56624afd09b2a9ceb4d659661cf17c51d74d1900ab6b00eacafc002da1101664955ca53 + "@aws-crypto/util": ^2.0.0 + "@aws-sdk/types": ^3.1.0 + tslib: ^1.11.1 + checksum: e4abf9baec6bed19d380f92a999a41ac5bdd8890dfd45971d29054c298854c5b7087e7de633413f2e64618ef8238ccf4c0b75797c73063c74bbba3cb5d8b2581 languageName: node linkType: hard -"@aws-crypto/supports-web-crypto@npm:^5.2.0": - version: 5.2.0 - resolution: "@aws-crypto/supports-web-crypto@npm:5.2.0" +"@aws-crypto/sha256-js@npm:^2.0.0": + version: 2.0.1 + resolution: "@aws-crypto/sha256-js@npm:2.0.1" dependencies: - tslib: ^2.6.2 - checksum: 6ffc21de48b2b2c3e918193101d7e8fe949d47b37688892e1c39eaedaa938be80c0f404fe1c874c30cce16781026777a53bf47d5d90143ca91d0feb7c4a6f830 + "@aws-crypto/util": ^2.0.1 + "@aws-sdk/types": ^3.1.0 + tslib: ^1.11.1 + checksum: d5f07a5dde2cde277b63e781adc3fb0d04e202f56d159b50089f3bfd8bf657db1c35e18813e2ec6c3771dfdf0d0d6eb13f36a8ad021b5db7d2bb8fdc9f06dce3 languageName: node linkType: hard -"@aws-crypto/util@npm:^5.2.0": - version: 5.2.0 - resolution: "@aws-crypto/util@npm:5.2.0" - dependencies: - "@aws-sdk/types": ^3.222.0 - "@smithy/util-utf8": ^2.0.0 - tslib: ^2.6.2 - checksum: f0f81d9d2771c59946cfec48b86cb23d39f78a966c4a1f89d4753abdc3cb38de06f907d1e6450059b121d48ac65d612ab88bdb70014553a077fc3dabddfbf8d6 - languageName: node - linkType: hard - -"@aws-sdk/client-ssm@npm:3.687.0": - version: 3.687.0 - resolution: "@aws-sdk/client-ssm@npm:3.687.0" - dependencies: - "@aws-crypto/sha256-browser": 5.2.0 - "@aws-crypto/sha256-js": 5.2.0 - "@aws-sdk/client-sso-oidc": 3.687.0 - "@aws-sdk/client-sts": 3.687.0 - "@aws-sdk/core": 3.686.0 - "@aws-sdk/credential-provider-node": 3.687.0 - "@aws-sdk/middleware-host-header": 3.686.0 - "@aws-sdk/middleware-logger": 3.686.0 - "@aws-sdk/middleware-recursion-detection": 3.686.0 - "@aws-sdk/middleware-user-agent": 3.687.0 - "@aws-sdk/region-config-resolver": 3.686.0 - "@aws-sdk/types": 3.686.0 - "@aws-sdk/util-endpoints": 3.686.0 - "@aws-sdk/util-user-agent-browser": 3.686.0 - "@aws-sdk/util-user-agent-node": 3.687.0 - "@smithy/config-resolver": ^3.0.10 - "@smithy/core": ^2.5.1 - "@smithy/fetch-http-handler": ^4.0.0 - "@smithy/hash-node": ^3.0.8 - "@smithy/invalid-dependency": ^3.0.8 - "@smithy/middleware-content-length": ^3.0.10 - "@smithy/middleware-endpoint": ^3.2.1 - "@smithy/middleware-retry": ^3.0.25 - "@smithy/middleware-serde": ^3.0.8 - "@smithy/middleware-stack": ^3.0.8 - "@smithy/node-config-provider": ^3.1.9 - "@smithy/node-http-handler": ^3.2.5 - "@smithy/protocol-http": ^4.1.5 - "@smithy/smithy-client": ^3.4.2 - "@smithy/types": ^3.6.0 - "@smithy/url-parser": ^3.0.8 - "@smithy/util-base64": ^3.0.0 - "@smithy/util-body-length-browser": ^3.0.0 - "@smithy/util-body-length-node": ^3.0.0 - "@smithy/util-defaults-mode-browser": ^3.0.25 - "@smithy/util-defaults-mode-node": ^3.0.25 - "@smithy/util-endpoints": ^2.1.4 - "@smithy/util-middleware": ^3.0.8 - "@smithy/util-retry": ^3.0.8 - "@smithy/util-utf8": ^3.0.0 - "@smithy/util-waiter": ^3.1.7 - "@types/uuid": ^9.0.1 - tslib: ^2.6.2 - uuid: ^9.0.1 - checksum: 40ec944db43e7749e639f9d338440ba2be65f8b0361b73cafb8c709aa1237b71b9c967bc26bfecb7012c56ce72c5b988e41a48a1d2a65f0b5b6b650adfdfd4df - languageName: node - linkType: hard - -"@aws-sdk/client-sso-oidc@npm:3.687.0": - version: 3.687.0 - resolution: "@aws-sdk/client-sso-oidc@npm:3.687.0" - dependencies: - "@aws-crypto/sha256-browser": 5.2.0 - "@aws-crypto/sha256-js": 5.2.0 - "@aws-sdk/core": 3.686.0 - "@aws-sdk/credential-provider-node": 3.687.0 - "@aws-sdk/middleware-host-header": 3.686.0 - "@aws-sdk/middleware-logger": 3.686.0 - "@aws-sdk/middleware-recursion-detection": 3.686.0 - "@aws-sdk/middleware-user-agent": 3.687.0 - "@aws-sdk/region-config-resolver": 3.686.0 - "@aws-sdk/types": 3.686.0 - "@aws-sdk/util-endpoints": 3.686.0 - "@aws-sdk/util-user-agent-browser": 3.686.0 - "@aws-sdk/util-user-agent-node": 3.687.0 - "@smithy/config-resolver": ^3.0.10 - "@smithy/core": ^2.5.1 - "@smithy/fetch-http-handler": ^4.0.0 - "@smithy/hash-node": ^3.0.8 - "@smithy/invalid-dependency": ^3.0.8 - "@smithy/middleware-content-length": ^3.0.10 - "@smithy/middleware-endpoint": ^3.2.1 - "@smithy/middleware-retry": ^3.0.25 - "@smithy/middleware-serde": ^3.0.8 - "@smithy/middleware-stack": ^3.0.8 - "@smithy/node-config-provider": ^3.1.9 - "@smithy/node-http-handler": ^3.2.5 - "@smithy/protocol-http": ^4.1.5 - "@smithy/smithy-client": ^3.4.2 - "@smithy/types": ^3.6.0 - "@smithy/url-parser": ^3.0.8 - "@smithy/util-base64": ^3.0.0 - "@smithy/util-body-length-browser": ^3.0.0 - "@smithy/util-body-length-node": ^3.0.0 - "@smithy/util-defaults-mode-browser": ^3.0.25 - "@smithy/util-defaults-mode-node": ^3.0.25 - "@smithy/util-endpoints": ^2.1.4 - "@smithy/util-middleware": ^3.0.8 - "@smithy/util-retry": ^3.0.8 - "@smithy/util-utf8": ^3.0.0 - tslib: ^2.6.2 - peerDependencies: - "@aws-sdk/client-sts": ^3.687.0 - checksum: baa3a4ceb15ba2c88802d61fcbc757b4115cfaae8032ebe4a7cb4bd3790afb78fb291690dce31c0bdf80fc361b69e0e42b43c6bf412a1274844689bf49ac15b7 - languageName: node - linkType: hard - -"@aws-sdk/client-sso@npm:3.687.0": - version: 3.687.0 - resolution: "@aws-sdk/client-sso@npm:3.687.0" - dependencies: - "@aws-crypto/sha256-browser": 5.2.0 - "@aws-crypto/sha256-js": 5.2.0 - "@aws-sdk/core": 3.686.0 - "@aws-sdk/middleware-host-header": 3.686.0 - "@aws-sdk/middleware-logger": 3.686.0 - "@aws-sdk/middleware-recursion-detection": 3.686.0 - "@aws-sdk/middleware-user-agent": 3.687.0 - "@aws-sdk/region-config-resolver": 3.686.0 - "@aws-sdk/types": 3.686.0 - "@aws-sdk/util-endpoints": 3.686.0 - "@aws-sdk/util-user-agent-browser": 3.686.0 - "@aws-sdk/util-user-agent-node": 3.687.0 - "@smithy/config-resolver": ^3.0.10 - "@smithy/core": ^2.5.1 - "@smithy/fetch-http-handler": ^4.0.0 - "@smithy/hash-node": ^3.0.8 - "@smithy/invalid-dependency": ^3.0.8 - "@smithy/middleware-content-length": ^3.0.10 - "@smithy/middleware-endpoint": ^3.2.1 - "@smithy/middleware-retry": ^3.0.25 - "@smithy/middleware-serde": ^3.0.8 - "@smithy/middleware-stack": ^3.0.8 - "@smithy/node-config-provider": ^3.1.9 - "@smithy/node-http-handler": ^3.2.5 - "@smithy/protocol-http": ^4.1.5 - "@smithy/smithy-client": ^3.4.2 - "@smithy/types": ^3.6.0 - "@smithy/url-parser": ^3.0.8 - "@smithy/util-base64": ^3.0.0 - "@smithy/util-body-length-browser": ^3.0.0 - "@smithy/util-body-length-node": ^3.0.0 - "@smithy/util-defaults-mode-browser": ^3.0.25 - "@smithy/util-defaults-mode-node": ^3.0.25 - "@smithy/util-endpoints": ^2.1.4 - "@smithy/util-middleware": ^3.0.8 - "@smithy/util-retry": ^3.0.8 - "@smithy/util-utf8": ^3.0.0 - tslib: ^2.6.2 - checksum: 01c233165ba2ac84d9f288ba11f172afb8a039a37a10b571b8c99c5b9ece99f7b7eb63aa206d3cd9c81d9fb671c63e416af07e7aca04395e89e734a75ca1d5f5 - languageName: node - linkType: hard - -"@aws-sdk/client-sts@npm:3.687.0": - version: 3.687.0 - resolution: "@aws-sdk/client-sts@npm:3.687.0" - dependencies: - "@aws-crypto/sha256-browser": 5.2.0 - "@aws-crypto/sha256-js": 5.2.0 - "@aws-sdk/client-sso-oidc": 3.687.0 - "@aws-sdk/core": 3.686.0 - "@aws-sdk/credential-provider-node": 3.687.0 - "@aws-sdk/middleware-host-header": 3.686.0 - "@aws-sdk/middleware-logger": 3.686.0 - "@aws-sdk/middleware-recursion-detection": 3.686.0 - "@aws-sdk/middleware-user-agent": 3.687.0 - "@aws-sdk/region-config-resolver": 3.686.0 - "@aws-sdk/types": 3.686.0 - "@aws-sdk/util-endpoints": 3.686.0 - "@aws-sdk/util-user-agent-browser": 3.686.0 - "@aws-sdk/util-user-agent-node": 3.687.0 - "@smithy/config-resolver": ^3.0.10 - "@smithy/core": ^2.5.1 - "@smithy/fetch-http-handler": ^4.0.0 - "@smithy/hash-node": ^3.0.8 - "@smithy/invalid-dependency": ^3.0.8 - "@smithy/middleware-content-length": ^3.0.10 - "@smithy/middleware-endpoint": ^3.2.1 - "@smithy/middleware-retry": ^3.0.25 - "@smithy/middleware-serde": ^3.0.8 - "@smithy/middleware-stack": ^3.0.8 - "@smithy/node-config-provider": ^3.1.9 - "@smithy/node-http-handler": ^3.2.5 - "@smithy/protocol-http": ^4.1.5 - "@smithy/smithy-client": ^3.4.2 - "@smithy/types": ^3.6.0 - "@smithy/url-parser": ^3.0.8 - "@smithy/util-base64": ^3.0.0 - "@smithy/util-body-length-browser": ^3.0.0 - "@smithy/util-body-length-node": ^3.0.0 - "@smithy/util-defaults-mode-browser": ^3.0.25 - "@smithy/util-defaults-mode-node": ^3.0.25 - "@smithy/util-endpoints": ^2.1.4 - "@smithy/util-middleware": ^3.0.8 - "@smithy/util-retry": ^3.0.8 - "@smithy/util-utf8": ^3.0.0 - tslib: ^2.6.2 - checksum: 633ddab42f38b1803cd8bba671273378516d830e7398567076cb86bf1bb5827f722e7f12d03f16603c1e0ec61842f9687d7bfaefbde0737d79dfe50bd1605751 - languageName: node - linkType: hard - -"@aws-sdk/core@npm:3.686.0": - version: 3.686.0 - resolution: "@aws-sdk/core@npm:3.686.0" - dependencies: - "@aws-sdk/types": 3.686.0 - "@smithy/core": ^2.5.1 - "@smithy/node-config-provider": ^3.1.9 - "@smithy/property-provider": ^3.1.7 - "@smithy/protocol-http": ^4.1.5 - "@smithy/signature-v4": ^4.2.0 - "@smithy/smithy-client": ^3.4.2 - "@smithy/types": ^3.6.0 - "@smithy/util-middleware": ^3.0.8 - fast-xml-parser: 4.4.1 - tslib: ^2.6.2 - checksum: c74ea67447efe74dc88a48e9b2c16745503a4323e91ff97a98e56b3ac49d34a0a57a44eed0054559a5c675e20216e02037a761d946fd8053f142f2d3a274c8a8 - languageName: node - linkType: hard - -"@aws-sdk/credential-provider-env@npm:3.686.0": - version: 3.686.0 - resolution: "@aws-sdk/credential-provider-env@npm:3.686.0" - dependencies: - "@aws-sdk/core": 3.686.0 - "@aws-sdk/types": 3.686.0 - "@smithy/property-provider": ^3.1.7 - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: 2c574da1ce5027998e5672162efa2264cbebb8bed61e1d7f8556aa76e98aeb7a0c6db7bb1edf213331466edcff9001300a6c9733a6d50c862ade6568acb3e8dd - languageName: node - linkType: hard - -"@aws-sdk/credential-provider-http@npm:3.686.0": - version: 3.686.0 - resolution: "@aws-sdk/credential-provider-http@npm:3.686.0" - dependencies: - "@aws-sdk/core": 3.686.0 - "@aws-sdk/types": 3.686.0 - "@smithy/fetch-http-handler": ^4.0.0 - "@smithy/node-http-handler": ^3.2.5 - "@smithy/property-provider": ^3.1.7 - "@smithy/protocol-http": ^4.1.5 - "@smithy/smithy-client": ^3.4.2 - "@smithy/types": ^3.6.0 - "@smithy/util-stream": ^3.2.1 - tslib: ^2.6.2 - checksum: b503ae6c86c7d884e41df75dbe36a58b13ccaa8ca1adb20996311e521d6967b3442f65de6442195d49bbaa868984e9d5579d5cb22c4bd47926a33dd7065a2e09 - languageName: node - linkType: hard - -"@aws-sdk/credential-provider-ini@npm:3.687.0": - version: 3.687.0 - resolution: "@aws-sdk/credential-provider-ini@npm:3.687.0" - dependencies: - "@aws-sdk/core": 3.686.0 - "@aws-sdk/credential-provider-env": 3.686.0 - "@aws-sdk/credential-provider-http": 3.686.0 - "@aws-sdk/credential-provider-process": 3.686.0 - "@aws-sdk/credential-provider-sso": 3.687.0 - "@aws-sdk/credential-provider-web-identity": 3.686.0 - "@aws-sdk/types": 3.686.0 - "@smithy/credential-provider-imds": ^3.2.4 - "@smithy/property-provider": ^3.1.7 - "@smithy/shared-ini-file-loader": ^3.1.8 - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - peerDependencies: - "@aws-sdk/client-sts": ^3.687.0 - checksum: 1718843c54292b040323c3fd6abc38168f81267f75f11922aa92a8941572a669e59d319902f9af33f2f94c7c37022de3de6d66618bede1476492018e42489327 +"@aws-crypto/supports-web-crypto@npm:^2.0.0": + version: 2.0.0 + resolution: "@aws-crypto/supports-web-crypto@npm:2.0.0" + dependencies: + tslib: ^1.11.1 + checksum: 77fad3813a5d3c495296fb836293184d32aeddacd436bf7d1b59b93d87de4cf7c0dbf862d4eaf915259edfb7b424ea05e2ceeddbaa1588a154d0c19df455c475 languageName: node linkType: hard -"@aws-sdk/credential-provider-node@npm:3.687.0": - version: 3.687.0 - resolution: "@aws-sdk/credential-provider-node@npm:3.687.0" +"@aws-crypto/util@npm:^2.0.0, @aws-crypto/util@npm:^2.0.1": + version: 2.0.1 + resolution: "@aws-crypto/util@npm:2.0.1" + dependencies: + "@aws-sdk/types": ^3.1.0 + "@aws-sdk/util-utf8-browser": ^3.0.0 + tslib: ^1.11.1 + checksum: 83d7edea95336869854eb98bf53416a70ee824a03c8858779abcef7b7f35813ba3ba0aaa571d87c416bdcec78b620e825fe9e65769a15d2009af0ccb279ef981 + languageName: node + linkType: hard + +"@aws-sdk/abort-controller@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/abort-controller@npm:3.127.0" + dependencies: + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: 9768573f8788db6fbed2a72a431860f6edb70a0795b78f2400993f91f471ad543e61eaca7503be949052af4ca953b23cc9b11e8bed5a3735198b65701349d759 + languageName: node + linkType: hard + +"@aws-sdk/client-ssm@npm:3.145.0": + version: 3.145.0 + resolution: "@aws-sdk/client-ssm@npm:3.145.0" + dependencies: + "@aws-crypto/sha256-browser": 2.0.0 + "@aws-crypto/sha256-js": 2.0.0 + "@aws-sdk/client-sts": 3.145.0 + "@aws-sdk/config-resolver": 3.130.0 + "@aws-sdk/credential-provider-node": 3.145.0 + "@aws-sdk/fetch-http-handler": 3.131.0 + "@aws-sdk/hash-node": 3.127.0 + "@aws-sdk/invalid-dependency": 3.127.0 + "@aws-sdk/middleware-content-length": 3.127.0 + "@aws-sdk/middleware-host-header": 3.127.0 + "@aws-sdk/middleware-logger": 3.127.0 + "@aws-sdk/middleware-recursion-detection": 3.127.0 + "@aws-sdk/middleware-retry": 3.127.0 + "@aws-sdk/middleware-serde": 3.127.0 + "@aws-sdk/middleware-signing": 3.130.0 + "@aws-sdk/middleware-stack": 3.127.0 + "@aws-sdk/middleware-user-agent": 3.127.0 + "@aws-sdk/node-config-provider": 3.127.0 + "@aws-sdk/node-http-handler": 3.127.0 + "@aws-sdk/protocol-http": 3.127.0 + "@aws-sdk/smithy-client": 3.142.0 + "@aws-sdk/types": 3.127.0 + "@aws-sdk/url-parser": 3.127.0 + "@aws-sdk/util-base64-browser": 3.109.0 + "@aws-sdk/util-base64-node": 3.55.0 + "@aws-sdk/util-body-length-browser": 3.55.0 + "@aws-sdk/util-body-length-node": 3.55.0 + "@aws-sdk/util-defaults-mode-browser": 3.142.0 + "@aws-sdk/util-defaults-mode-node": 3.142.0 + "@aws-sdk/util-user-agent-browser": 3.127.0 + "@aws-sdk/util-user-agent-node": 3.127.0 + "@aws-sdk/util-utf8-browser": 3.109.0 + "@aws-sdk/util-utf8-node": 3.109.0 + "@aws-sdk/util-waiter": 3.127.0 + tslib: ^2.3.1 + uuid: ^8.3.2 + checksum: 695fcad3f61fecffaf3f45f79e9e732bb3f219b1ce1aaf222ccbfc6c55ff9ff2cf3e323be03560dc3628a61748af7f7be51dde178e23e4ac4040de6117145ecb + languageName: node + linkType: hard + +"@aws-sdk/client-sso@npm:3.145.0": + version: 3.145.0 + resolution: "@aws-sdk/client-sso@npm:3.145.0" + dependencies: + "@aws-crypto/sha256-browser": 2.0.0 + "@aws-crypto/sha256-js": 2.0.0 + "@aws-sdk/config-resolver": 3.130.0 + "@aws-sdk/fetch-http-handler": 3.131.0 + "@aws-sdk/hash-node": 3.127.0 + "@aws-sdk/invalid-dependency": 3.127.0 + "@aws-sdk/middleware-content-length": 3.127.0 + "@aws-sdk/middleware-host-header": 3.127.0 + "@aws-sdk/middleware-logger": 3.127.0 + "@aws-sdk/middleware-recursion-detection": 3.127.0 + "@aws-sdk/middleware-retry": 3.127.0 + "@aws-sdk/middleware-serde": 3.127.0 + "@aws-sdk/middleware-stack": 3.127.0 + "@aws-sdk/middleware-user-agent": 3.127.0 + "@aws-sdk/node-config-provider": 3.127.0 + "@aws-sdk/node-http-handler": 3.127.0 + "@aws-sdk/protocol-http": 3.127.0 + "@aws-sdk/smithy-client": 3.142.0 + "@aws-sdk/types": 3.127.0 + "@aws-sdk/url-parser": 3.127.0 + "@aws-sdk/util-base64-browser": 3.109.0 + "@aws-sdk/util-base64-node": 3.55.0 + "@aws-sdk/util-body-length-browser": 3.55.0 + "@aws-sdk/util-body-length-node": 3.55.0 + "@aws-sdk/util-defaults-mode-browser": 3.142.0 + "@aws-sdk/util-defaults-mode-node": 3.142.0 + "@aws-sdk/util-user-agent-browser": 3.127.0 + "@aws-sdk/util-user-agent-node": 3.127.0 + "@aws-sdk/util-utf8-browser": 3.109.0 + "@aws-sdk/util-utf8-node": 3.109.0 + tslib: ^2.3.1 + checksum: c50b9ad2a096633d471161744de4a8940326c5357983f68602f8ebbdfe4b47e4b707050a99633b7e2ea0bb2438ce17d19bf22b2abc198e7385518e01d4cf5ca8 + languageName: node + linkType: hard + +"@aws-sdk/client-sts@npm:3.145.0": + version: 3.145.0 + resolution: "@aws-sdk/client-sts@npm:3.145.0" + dependencies: + "@aws-crypto/sha256-browser": 2.0.0 + "@aws-crypto/sha256-js": 2.0.0 + "@aws-sdk/config-resolver": 3.130.0 + "@aws-sdk/credential-provider-node": 3.145.0 + "@aws-sdk/fetch-http-handler": 3.131.0 + "@aws-sdk/hash-node": 3.127.0 + "@aws-sdk/invalid-dependency": 3.127.0 + "@aws-sdk/middleware-content-length": 3.127.0 + "@aws-sdk/middleware-host-header": 3.127.0 + "@aws-sdk/middleware-logger": 3.127.0 + "@aws-sdk/middleware-recursion-detection": 3.127.0 + "@aws-sdk/middleware-retry": 3.127.0 + "@aws-sdk/middleware-sdk-sts": 3.130.0 + "@aws-sdk/middleware-serde": 3.127.0 + "@aws-sdk/middleware-signing": 3.130.0 + "@aws-sdk/middleware-stack": 3.127.0 + "@aws-sdk/middleware-user-agent": 3.127.0 + "@aws-sdk/node-config-provider": 3.127.0 + "@aws-sdk/node-http-handler": 3.127.0 + "@aws-sdk/protocol-http": 3.127.0 + "@aws-sdk/smithy-client": 3.142.0 + "@aws-sdk/types": 3.127.0 + "@aws-sdk/url-parser": 3.127.0 + "@aws-sdk/util-base64-browser": 3.109.0 + "@aws-sdk/util-base64-node": 3.55.0 + "@aws-sdk/util-body-length-browser": 3.55.0 + "@aws-sdk/util-body-length-node": 3.55.0 + "@aws-sdk/util-defaults-mode-browser": 3.142.0 + "@aws-sdk/util-defaults-mode-node": 3.142.0 + "@aws-sdk/util-user-agent-browser": 3.127.0 + "@aws-sdk/util-user-agent-node": 3.127.0 + "@aws-sdk/util-utf8-browser": 3.109.0 + "@aws-sdk/util-utf8-node": 3.109.0 + entities: 2.2.0 + fast-xml-parser: 3.19.0 + tslib: ^2.3.1 + checksum: 4645c4902e0f32bd1e758ae7868150fd59000bc945979a9224a942c72cbc3418bbada9c21aa7162f7d42a232c0ba89faff948fa3efdbaff863fc89046d90c29d + languageName: node + linkType: hard + +"@aws-sdk/config-resolver@npm:3.130.0": + version: 3.130.0 + resolution: "@aws-sdk/config-resolver@npm:3.130.0" + dependencies: + "@aws-sdk/signature-v4": 3.130.0 + "@aws-sdk/types": 3.127.0 + "@aws-sdk/util-config-provider": 3.109.0 + "@aws-sdk/util-middleware": 3.127.0 + tslib: ^2.3.1 + checksum: 33fa2be1c94fffa2a053a53a2db3402f02493cacade3aff65d70474d404d71c1825c35dd78a3d87f9434b0f4212437bc82f83f10ae7cebdcfcfb0891145ce1ce + languageName: node + linkType: hard + +"@aws-sdk/credential-provider-env@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/credential-provider-env@npm:3.127.0" + dependencies: + "@aws-sdk/property-provider": 3.127.0 + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: e4cc8bd53b67d07f9ff0b1eae9193e8a1bffdc167a49f09d96334476f6d165652a6ff68ba306c044d4ceeb84be4181104f1452d59ff75c7a284a6fde1516556b + languageName: node + linkType: hard + +"@aws-sdk/credential-provider-imds@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/credential-provider-imds@npm:3.127.0" + dependencies: + "@aws-sdk/node-config-provider": 3.127.0 + "@aws-sdk/property-provider": 3.127.0 + "@aws-sdk/types": 3.127.0 + "@aws-sdk/url-parser": 3.127.0 + tslib: ^2.3.1 + checksum: f117bd18114cfee7f9a0201cc53244957f489b780ab5f57ef1c9896a9838688ffb9c7d3a4a6db366629aff2f7a99dab95a6b149130ccb0deab25f6fc04cd9edd + languageName: node + linkType: hard + +"@aws-sdk/credential-provider-ini@npm:3.145.0": + version: 3.145.0 + resolution: "@aws-sdk/credential-provider-ini@npm:3.145.0" dependencies: - "@aws-sdk/credential-provider-env": 3.686.0 - "@aws-sdk/credential-provider-http": 3.686.0 - "@aws-sdk/credential-provider-ini": 3.687.0 - "@aws-sdk/credential-provider-process": 3.686.0 - "@aws-sdk/credential-provider-sso": 3.687.0 - "@aws-sdk/credential-provider-web-identity": 3.686.0 - "@aws-sdk/types": 3.686.0 - "@smithy/credential-provider-imds": ^3.2.4 - "@smithy/property-provider": ^3.1.7 - "@smithy/shared-ini-file-loader": ^3.1.8 - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: fc542feefdf04d81a426d1f9b4e95edab1d087af9fa2e2e77e0b7b0c676040aeac1b6e2631d448691d1e5f7dce5de0ff3e2566e6c2044ddf3b167a652b973288 + "@aws-sdk/credential-provider-env": 3.127.0 + "@aws-sdk/credential-provider-imds": 3.127.0 + "@aws-sdk/credential-provider-sso": 3.145.0 + "@aws-sdk/credential-provider-web-identity": 3.127.0 + "@aws-sdk/property-provider": 3.127.0 + "@aws-sdk/shared-ini-file-loader": 3.127.0 + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: 1899ecf98373a60e4360873fab5ffd7b3f920f4762ff13e1f85ea2efa11e6201d13bd6f649b1090a0a57afbdba87fa3f35f66533bf3b34f8a6629363a6f86a76 languageName: node linkType: hard -"@aws-sdk/credential-provider-process@npm:3.686.0": - version: 3.686.0 - resolution: "@aws-sdk/credential-provider-process@npm:3.686.0" +"@aws-sdk/credential-provider-node@npm:3.145.0": + version: 3.145.0 + resolution: "@aws-sdk/credential-provider-node@npm:3.145.0" dependencies: - "@aws-sdk/core": 3.686.0 - "@aws-sdk/types": 3.686.0 - "@smithy/property-provider": ^3.1.7 - "@smithy/shared-ini-file-loader": ^3.1.8 - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: 5b73373200c2f1bd5dc79e76507418c0e39902b8b861129a967ac915d89a26fbd4b5e5f068c4b9e96b78666558e9b3572e841be28dd0c10079b4f5148b461239 + "@aws-sdk/credential-provider-env": 3.127.0 + "@aws-sdk/credential-provider-imds": 3.127.0 + "@aws-sdk/credential-provider-ini": 3.145.0 + "@aws-sdk/credential-provider-process": 3.127.0 + "@aws-sdk/credential-provider-sso": 3.145.0 + "@aws-sdk/credential-provider-web-identity": 3.127.0 + "@aws-sdk/property-provider": 3.127.0 + "@aws-sdk/shared-ini-file-loader": 3.127.0 + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: 3795e31ab3717140df38712d18e1f3fd9ef66dc92943131c0a4cc2b640372463769005e2a943b6ffdac4052773ac77dd45f7fb86d8256e9630936b6536ee3f93 languageName: node linkType: hard -"@aws-sdk/credential-provider-sso@npm:3.687.0": - version: 3.687.0 - resolution: "@aws-sdk/credential-provider-sso@npm:3.687.0" +"@aws-sdk/credential-provider-process@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/credential-provider-process@npm:3.127.0" dependencies: - "@aws-sdk/client-sso": 3.687.0 - "@aws-sdk/core": 3.686.0 - "@aws-sdk/token-providers": 3.686.0 - "@aws-sdk/types": 3.686.0 - "@smithy/property-provider": ^3.1.7 - "@smithy/shared-ini-file-loader": ^3.1.8 - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: 27435cc47d5fac002a98bcada8cf28a76cc0569b00e46637b05dd3e45bb6c2dc121969ccca54389864e4064d87607740c036535f65175f5f5e94c1c2410af3f6 + "@aws-sdk/property-provider": 3.127.0 + "@aws-sdk/shared-ini-file-loader": 3.127.0 + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: 60becf9f7d939c11a7b8aa8b6116c37f7d8069d1049a39404ca1f839771c6da4226e58a0acea3830ec591df3949fe5c703b9cd11e42a4f0b6d4cc54c8b4127dd languageName: node linkType: hard -"@aws-sdk/credential-provider-web-identity@npm:3.686.0": - version: 3.686.0 - resolution: "@aws-sdk/credential-provider-web-identity@npm:3.686.0" +"@aws-sdk/credential-provider-sso@npm:3.145.0": + version: 3.145.0 + resolution: "@aws-sdk/credential-provider-sso@npm:3.145.0" dependencies: - "@aws-sdk/core": 3.686.0 - "@aws-sdk/types": 3.686.0 - "@smithy/property-provider": ^3.1.7 - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - peerDependencies: - "@aws-sdk/client-sts": ^3.686.0 - checksum: dbe042d773acb6f51f8be763abb814be038217d1925961afb5c599bb825104d3162e83bc9133e2229a49f335fefebbc9dfd16d88ba3134dbba40de2505c4b9ca + "@aws-sdk/client-sso": 3.145.0 + "@aws-sdk/property-provider": 3.127.0 + "@aws-sdk/shared-ini-file-loader": 3.127.0 + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: 3c59745d1ce896481bcef875e330b0629e70e952398174227eb3d73ff41c6921f0552a7fdfee2a2b1f609dac5d7ec26bfb648af1899dd56b4d8c6c2f90347c22 languageName: node linkType: hard -"@aws-sdk/middleware-host-header@npm:3.686.0": - version: 3.686.0 - resolution: "@aws-sdk/middleware-host-header@npm:3.686.0" +"@aws-sdk/credential-provider-web-identity@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/credential-provider-web-identity@npm:3.127.0" dependencies: - "@aws-sdk/types": 3.686.0 - "@smithy/protocol-http": ^4.1.5 - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: ed423fadd10061c554be88e2dfe1ba66990dca363903325a114c59f8cc8d44414286360273ab5edf7f8cf7eb95668ff88e4fbebbad1bf6d859410363959e1304 + "@aws-sdk/property-provider": 3.127.0 + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: 359bc73eff0593e77e969a5e6506fedd93bd9e32f01043e044a5813dc445f7a5886bfac2676cabfc5c8a913dfc9c71e77fc68dfdd86ec5f1c293a342b42a13ee languageName: node linkType: hard -"@aws-sdk/middleware-logger@npm:3.686.0": - version: 3.686.0 - resolution: "@aws-sdk/middleware-logger@npm:3.686.0" +"@aws-sdk/fetch-http-handler@npm:3.131.0": + version: 3.131.0 + resolution: "@aws-sdk/fetch-http-handler@npm:3.131.0" dependencies: - "@aws-sdk/types": 3.686.0 - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: 513e20d1194fb6d932241c2d6bbf1b6dd1aadd3f9105612f1b381c93dc2bc7057dc0d0a8b25ea5d6354f68fbf218170f2f3dec26daf0a6f5d1134e1d802855a1 + "@aws-sdk/protocol-http": 3.127.0 + "@aws-sdk/querystring-builder": 3.127.0 + "@aws-sdk/types": 3.127.0 + "@aws-sdk/util-base64-browser": 3.109.0 + tslib: ^2.3.1 + checksum: 7bd5a83b929e59b86058c7a834daa8eedc7eab7a6bdb2016ff8898637c28bf7062830b108a45d70890062aa0f15271501290c18b06926a8af1bcb8d181817600 languageName: node linkType: hard -"@aws-sdk/middleware-recursion-detection@npm:3.686.0": - version: 3.686.0 - resolution: "@aws-sdk/middleware-recursion-detection@npm:3.686.0" +"@aws-sdk/hash-node@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/hash-node@npm:3.127.0" dependencies: - "@aws-sdk/types": 3.686.0 - "@smithy/protocol-http": ^4.1.5 - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: fe30ad3d39dbbb2d0b492ee5329ef6e03eeaf59437b4af75aa90129d21fde6a7b0626bed00dd2dfa8b6f27eb44c941828e200471becc9d574526fc36f2484995 + "@aws-sdk/types": 3.127.0 + "@aws-sdk/util-buffer-from": 3.55.0 + tslib: ^2.3.1 + checksum: fb07d9cd29cae316a1a4c0cd448489d6e14bd386fa49b08832d015c8bbcc59cad94e21fdd2f74f8dab08e0c01e1e0cddeac47f48d89dc766d10e95a0a62e7a23 languageName: node linkType: hard -"@aws-sdk/middleware-user-agent@npm:3.687.0": - version: 3.687.0 - resolution: "@aws-sdk/middleware-user-agent@npm:3.687.0" +"@aws-sdk/invalid-dependency@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/invalid-dependency@npm:3.127.0" dependencies: - "@aws-sdk/core": 3.686.0 - "@aws-sdk/types": 3.686.0 - "@aws-sdk/util-endpoints": 3.686.0 - "@smithy/core": ^2.5.1 - "@smithy/protocol-http": ^4.1.5 - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: ca17d118d34a5149c3a9cf21001e6af02ecf3bbeda167a25ab88f5f3bf156cccc7f271e4870e8aff26152d1e0efab92b43b136ff221b11c6418a1ac105209dc9 + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: 456b675fd05716050d2dfc325f92918cbd5bbd11c90096673eb7bc66f61ef55021459e893839b8b62ac09ee320ef77924c30cb25530fa1c74b848f3989695fbd languageName: node linkType: hard -"@aws-sdk/region-config-resolver@npm:3.686.0": - version: 3.686.0 - resolution: "@aws-sdk/region-config-resolver@npm:3.686.0" +"@aws-sdk/is-array-buffer@npm:3.55.0": + version: 3.55.0 + resolution: "@aws-sdk/is-array-buffer@npm:3.55.0" dependencies: - "@aws-sdk/types": 3.686.0 - "@smithy/node-config-provider": ^3.1.9 - "@smithy/types": ^3.6.0 - "@smithy/util-config-provider": ^3.0.0 - "@smithy/util-middleware": ^3.0.8 - tslib: ^2.6.2 - checksum: d9ea4e6715a994874bff6256af3cdf446762e67b3f65d4469ef2d43be8cbb639d5407a00f2254ce41ebf2b556fad31bb49d63083d0047086df831592a0d6d620 + tslib: ^2.3.1 + checksum: 527481f024166197b84a2b4859b51df9b6da4396255c19832e8fdb2f6dfc914dab8ad89433602f8d797f3f8dacc312ab8a0073b2c8e20dc85a28ad9d27aceaa7 languageName: node linkType: hard -"@aws-sdk/token-providers@npm:3.686.0": - version: 3.686.0 - resolution: "@aws-sdk/token-providers@npm:3.686.0" +"@aws-sdk/middleware-content-length@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/middleware-content-length@npm:3.127.0" dependencies: - "@aws-sdk/types": 3.686.0 - "@smithy/property-provider": ^3.1.7 - "@smithy/shared-ini-file-loader": ^3.1.8 - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - peerDependencies: - "@aws-sdk/client-sso-oidc": ^3.686.0 - checksum: eae1cf27c76659ca1a802f4c99945cd17faec5310cde1e7cb795c64b7e8539a848a0b5ec906f3261fd2cf9f682fa4e21ab6542c2ebc4eb9655bdc795e653d4be + "@aws-sdk/protocol-http": 3.127.0 + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: 817f74342e862bb10e871d09cf937d7bb7eb5189b2ec4b8ce7b0657c38c74b5d0b6be8143f6618e037c5a29bef624446dfd5fe0cc0ce8114d87d5eded4778074 + languageName: node + linkType: hard + +"@aws-sdk/middleware-host-header@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/middleware-host-header@npm:3.127.0" + dependencies: + "@aws-sdk/protocol-http": 3.127.0 + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: 8ec8a7f7b260c6f3608ba6500586aefd024ac859baaccca9cbea73dfa43fc95cf3a123e369798c6bbd36ed7f3eb36482b5b2a41f46b0eb1416f94d6829e92e9f + languageName: node + linkType: hard + +"@aws-sdk/middleware-logger@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/middleware-logger@npm:3.127.0" + dependencies: + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: edc37f262bdab27bd0d1e26ed1ec1656d8257e9b9db58f45ccd0eb9ff9a39f71deb43955a843d440adce73a608a499ce7478780b774b5fb057bc4769dd7ee27d + languageName: node + linkType: hard + +"@aws-sdk/middleware-recursion-detection@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/middleware-recursion-detection@npm:3.127.0" + dependencies: + "@aws-sdk/protocol-http": 3.127.0 + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: dd04f307c4501bc35fef048a748a5d668061725b10d7cc39143404773049687957fa046b406677ce625279c1d2161cba17b0c639cb59579fc091abd06b91a719 + languageName: node + linkType: hard + +"@aws-sdk/middleware-retry@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/middleware-retry@npm:3.127.0" + dependencies: + "@aws-sdk/protocol-http": 3.127.0 + "@aws-sdk/service-error-classification": 3.127.0 + "@aws-sdk/types": 3.127.0 + "@aws-sdk/util-middleware": 3.127.0 + tslib: ^2.3.1 + uuid: ^8.3.2 + checksum: 314800be7d2cc1f20314ae413c029f31ef47ffc35a0a555944c87ea278ab61dafdf63cdf339effae9de66cbde542f0e25c8c8b3acf2c0d6a9cfbe59b09f646af + languageName: node + linkType: hard + +"@aws-sdk/middleware-sdk-sts@npm:3.130.0": + version: 3.130.0 + resolution: "@aws-sdk/middleware-sdk-sts@npm:3.130.0" + dependencies: + "@aws-sdk/middleware-signing": 3.130.0 + "@aws-sdk/property-provider": 3.127.0 + "@aws-sdk/protocol-http": 3.127.0 + "@aws-sdk/signature-v4": 3.130.0 + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: 4c83eb02d9b8f0b18d9d24704e660463d9d15cc7881c231a1ad315681e5bdd67f70d413f00ddedbcd8c5ed337df317fa6ce366e5314b4a440269bd44c0fad514 + languageName: node + linkType: hard + +"@aws-sdk/middleware-serde@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/middleware-serde@npm:3.127.0" + dependencies: + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: ff31988f06ef1b1d006ec4231d7dd8e72d60ba43d599952c504a9657308a7a0a7ef0d5610a5e73c58f66b8b168db1235c61d9276a1ef59b7ce9227d3e9eff026 + languageName: node + linkType: hard + +"@aws-sdk/middleware-signing@npm:3.130.0": + version: 3.130.0 + resolution: "@aws-sdk/middleware-signing@npm:3.130.0" + dependencies: + "@aws-sdk/property-provider": 3.127.0 + "@aws-sdk/protocol-http": 3.127.0 + "@aws-sdk/signature-v4": 3.130.0 + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: 74e4e480a027967cb9b0e060246e98b5d134bcc5509619b57247196337e19ae31273086a9c00bedfcab22982d5d583568b99343e7f3ea7cb5b99a8dbb89c2cde + languageName: node + linkType: hard + +"@aws-sdk/middleware-stack@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/middleware-stack@npm:3.127.0" + dependencies: + tslib: ^2.3.1 + checksum: 145a44b74681590edc328bb128a8f17af2b13b3e3a0c3bd8803636bafee4370db385fdc132d20ec2b0b331f849a367cb9b8b5ec37b4a705b70156c184ca9f84c + languageName: node + linkType: hard + +"@aws-sdk/middleware-user-agent@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/middleware-user-agent@npm:3.127.0" + dependencies: + "@aws-sdk/protocol-http": 3.127.0 + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: 2967bc7fce3f4e2ec35ee650c4fad897a4bc454884ada00031a302bfdf6d53153332e5171cc760defad2bcd7acadf6549a398bf606674f642573f2786c3741e0 + languageName: node + linkType: hard + +"@aws-sdk/node-config-provider@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/node-config-provider@npm:3.127.0" + dependencies: + "@aws-sdk/property-provider": 3.127.0 + "@aws-sdk/shared-ini-file-loader": 3.127.0 + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: 733a40d93a45258c8c94702c0c5fcd829c2fcc6e3ec4c3e4d63b77ee1b01ee6591b49216b9acd80388de238603ab0a92dd0e7a09b09c654997873e574e95e4d2 + languageName: node + linkType: hard + +"@aws-sdk/node-http-handler@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/node-http-handler@npm:3.127.0" + dependencies: + "@aws-sdk/abort-controller": 3.127.0 + "@aws-sdk/protocol-http": 3.127.0 + "@aws-sdk/querystring-builder": 3.127.0 + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: 55629edb90766ab5e62db4cd3a57751d719ddf79a1ebd9a8221fc9289509589535859337726b8ea942b96bcb356881ac1fc59707b9873270bde36da870092fab + languageName: node + linkType: hard + +"@aws-sdk/property-provider@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/property-provider@npm:3.127.0" + dependencies: + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: e78770762fb0d5d904c0d270266cb9ef580184c0aee25d1df389bff3e66f6c4cfa2c99104488539d22fa642c6102027772b85b42a07c2a90306b0c4751a81698 + languageName: node + linkType: hard + +"@aws-sdk/protocol-http@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/protocol-http@npm:3.127.0" + dependencies: + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: 2d34deb09bd1ba4316945f441f75600aa621d8fa9021c92a91582ac299d857a64572eeb87f7306e3a06c899635dccc717e1353aa290d38665be97487b13038ee + languageName: node + linkType: hard + +"@aws-sdk/querystring-builder@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/querystring-builder@npm:3.127.0" + dependencies: + "@aws-sdk/types": 3.127.0 + "@aws-sdk/util-uri-escape": 3.55.0 + tslib: ^2.3.1 + checksum: ac84867b038c530821987db9fac8aaab20dd4b0d0c9fe78caee2f5dd4e8d5b6a99b8cb7ea7816476b9b13149305aea46a2c176130b586882243a82478de35473 + languageName: node + linkType: hard + +"@aws-sdk/querystring-parser@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/querystring-parser@npm:3.127.0" + dependencies: + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: 1dcb87be1586e21cc4d98653211ab1d4f484c9a8d62be0acfbd8dde3629559e079e3ca67eb20ce6bc17a53262d5d3462eb3d701573380ea216a2dd77088cd2a5 + languageName: node + linkType: hard + +"@aws-sdk/service-error-classification@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/service-error-classification@npm:3.127.0" + checksum: dcc743ac7a480edf56eac3861d575819edd5f181f67e603c4f6cc2291ae1f88c116dc2cab19da172a1f7dc5f62195875483c5105ac2f4076ba6caf518ab3867d + languageName: node + linkType: hard + +"@aws-sdk/shared-ini-file-loader@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/shared-ini-file-loader@npm:3.127.0" + dependencies: + tslib: ^2.3.1 + checksum: fa0c8ffa5d42940778b14e8f1d8998605b5d7ea43f3c19cc9dbb02f2d552c35dabc5850a5e6d3f6af68978b2171aaec435c05c648a1ecf1c2fb81fe9a60d9702 + languageName: node + linkType: hard + +"@aws-sdk/signature-v4@npm:3.130.0": + version: 3.130.0 + resolution: "@aws-sdk/signature-v4@npm:3.130.0" + dependencies: + "@aws-sdk/is-array-buffer": 3.55.0 + "@aws-sdk/types": 3.127.0 + "@aws-sdk/util-hex-encoding": 3.109.0 + "@aws-sdk/util-middleware": 3.127.0 + "@aws-sdk/util-uri-escape": 3.55.0 + tslib: ^2.3.1 + checksum: 10c63fa18db144eda63727006e812b1cd504b49e5c345c94ce45a0b4b072b82f1e5ca964468868a5351b0e795f1b2945bc2f4ef81a9fa2bad26485226958c33d + languageName: node + linkType: hard + +"@aws-sdk/smithy-client@npm:3.142.0": + version: 3.142.0 + resolution: "@aws-sdk/smithy-client@npm:3.142.0" + dependencies: + "@aws-sdk/middleware-stack": 3.127.0 + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: e87b04dc11b935ba6ae30d894f28cfb93894d96f19bfaa9f8656cdad85d6daf68f8067493a228e9dc4eee4fc91672254287ce2f37740d895d89806c151785280 languageName: node linkType: hard -"@aws-sdk/types@npm:3.686.0, @aws-sdk/types@npm:^3.222.0": - version: 3.686.0 - resolution: "@aws-sdk/types@npm:3.686.0" +"@aws-sdk/types@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/types@npm:3.127.0" + checksum: 35467177421fb180ca73eb85a327c814e3aaee11a8eabbf9f048d58ec4133d7205400ce2e3c3ef70d78a64a2359f1df2926e1a0e6f169a415c2896ff6dfb66d9 + languageName: node + linkType: hard + +"@aws-sdk/types@npm:^3.1.0": + version: 3.49.0 + resolution: "@aws-sdk/types@npm:3.49.0" + checksum: 39f5689128f438e051f1787bb8c3c04bd534b83b279bea1341f245b41a7b26357a6954329320043ec8ef1c4e226367490a8f39d3adb346f605e56ff17ec3eab9 + languageName: node + linkType: hard + +"@aws-sdk/url-parser@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/url-parser@npm:3.127.0" + dependencies: + "@aws-sdk/querystring-parser": 3.127.0 + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: 5732f51d6fef2d26599cb186e230cd8e99c567f6efd7b3f27dc0ecdb660510a20a3384f00c5edb08d0e8e59fe3bcb5b8e368558aefbff2cf5201eaeb7caefa4a + languageName: node + linkType: hard + +"@aws-sdk/util-base64-browser@npm:3.109.0": + version: 3.109.0 + resolution: "@aws-sdk/util-base64-browser@npm:3.109.0" + dependencies: + tslib: ^2.3.1 + checksum: e4fb1dc0e5ac60320d4ba05dcf03b8e641c7a304f918df3134bf46c8ccf5b09d07ee283924a4cc4e9250fef582a2636bb4dac6ba71ee36662b2678dfe49d46b2 + languageName: node + linkType: hard + +"@aws-sdk/util-base64-node@npm:3.55.0": + version: 3.55.0 + resolution: "@aws-sdk/util-base64-node@npm:3.55.0" + dependencies: + "@aws-sdk/util-buffer-from": 3.55.0 + tslib: ^2.3.1 + checksum: 4a2a58ae2e5d2d904271dd0433b9c15ca9a8e9d62e979c82159420ab8e1b573e96c8f223c951be2139cdfe49a09c478d165eff9468978883c4c5bcdfa7d9fd4b + languageName: node + linkType: hard + +"@aws-sdk/util-body-length-browser@npm:3.55.0": + version: 3.55.0 + resolution: "@aws-sdk/util-body-length-browser@npm:3.55.0" + dependencies: + tslib: ^2.3.1 + checksum: f10c9e1f052da751e762e807f23b768052e5d375d7e048d596ee1d607065ff0c0ef7004bd4fd136848b6a5646c1c69e43860aa7a3da80d90023b749530faad59 + languageName: node + linkType: hard + +"@aws-sdk/util-body-length-node@npm:3.55.0": + version: 3.55.0 + resolution: "@aws-sdk/util-body-length-node@npm:3.55.0" dependencies: - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: 59eda13ad391eb719ebec1cac06755c21d043d71681f1e8ecb3ea39f333c3c7e635bc11967c57d82472c74683be519703219290684d57d594189ca35eb7935cc + tslib: ^2.3.1 + checksum: 35ae66271b7160c53b344a2bd933b5882e9fcef4a47c579a2a9e313657da8b896ca6c674489767f75d148ea5ffb8cbde2127eae55f5f39aaa4823a7c1d98ec69 languageName: node linkType: hard -"@aws-sdk/util-endpoints@npm:3.686.0": - version: 3.686.0 - resolution: "@aws-sdk/util-endpoints@npm:3.686.0" +"@aws-sdk/util-buffer-from@npm:3.55.0": + version: 3.55.0 + resolution: "@aws-sdk/util-buffer-from@npm:3.55.0" dependencies: - "@aws-sdk/types": 3.686.0 - "@smithy/types": ^3.6.0 - "@smithy/util-endpoints": ^2.1.4 - tslib: ^2.6.2 - checksum: b6bfb0edba2b98dbb3004378d5ddcd455a506bcb68f5f40ddd1a807ff265c46cf3fa183f9aa8b987e9db7cb286c6d9b3d3a43bc625ea8a6e469392d7844fee06 + "@aws-sdk/is-array-buffer": 3.55.0 + tslib: ^2.3.1 + checksum: 0c1d72cf2369c13a8bff7d990f8e8da7f5584dcbdf1965cf50674d531b42d80661eebdbbaf968d6932760fc3f5708374a676d05485a1d02347655ea5f2423f57 + languageName: node + linkType: hard + +"@aws-sdk/util-config-provider@npm:3.109.0": + version: 3.109.0 + resolution: "@aws-sdk/util-config-provider@npm:3.109.0" + dependencies: + tslib: ^2.3.1 + checksum: 99c9ef24faa555a317b46b782e211474dd9d666611e1aa76b963e93a6e7c54e32d5c20b87d9a601b9de68dfa1c7310d72667a74c335b31edb776e8494e2541af + languageName: node + linkType: hard + +"@aws-sdk/util-defaults-mode-browser@npm:3.142.0": + version: 3.142.0 + resolution: "@aws-sdk/util-defaults-mode-browser@npm:3.142.0" + dependencies: + "@aws-sdk/property-provider": 3.127.0 + "@aws-sdk/types": 3.127.0 + bowser: ^2.11.0 + tslib: ^2.3.1 + checksum: 6ead8f767c2dcc0e21be180784a9ca5b57daa905a426fac0d0aa12f79f026d2da55d83c8b29cbec5c6e7adaccad8219b300dc30913808770ff7a20f2aa45be15 + languageName: node + linkType: hard + +"@aws-sdk/util-defaults-mode-node@npm:3.142.0": + version: 3.142.0 + resolution: "@aws-sdk/util-defaults-mode-node@npm:3.142.0" + dependencies: + "@aws-sdk/config-resolver": 3.130.0 + "@aws-sdk/credential-provider-imds": 3.127.0 + "@aws-sdk/node-config-provider": 3.127.0 + "@aws-sdk/property-provider": 3.127.0 + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: 6025ea3359a16a312d1b9bdedc761f4eabd59d274bc96290514c3d8107e89da8c365db6bc23b4fb5143de5faa89ac082d435cbc655ca4457a6d9384a4bd5b643 + languageName: node + linkType: hard + +"@aws-sdk/util-hex-encoding@npm:3.109.0": + version: 3.109.0 + resolution: "@aws-sdk/util-hex-encoding@npm:3.109.0" + dependencies: + tslib: ^2.3.1 + checksum: 1c166b53d7f84c0271cb71da8ac0ef4a9bfd78f2d2d70e4a903921dd3c355a79a446fa66ff64522d87aa9c738f445fdfd527043980bea642ae3acbc7dd758edf languageName: node linkType: hard @@ -513,33 +725,87 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/util-user-agent-browser@npm:3.686.0": - version: 3.686.0 - resolution: "@aws-sdk/util-user-agent-browser@npm:3.686.0" +"@aws-sdk/util-middleware@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/util-middleware@npm:3.127.0" + dependencies: + tslib: ^2.3.1 + checksum: c845b1bf6339cdee9762f41c3578fafb780bf5341037d3381c4dc799ac31626031de2a80735a5edaf260da655b1ef054a950dda552aedeed4188dfe42c717e83 + languageName: node + linkType: hard + +"@aws-sdk/util-uri-escape@npm:3.55.0": + version: 3.55.0 + resolution: "@aws-sdk/util-uri-escape@npm:3.55.0" + dependencies: + tslib: ^2.3.1 + checksum: fad6780856f2b42a11ce7bb1e2ea5b7a966a8f564f3d09e83dca024291ae589a0cb2a1d294812cd626346addeb292c178f84867e40f8fab6fca067bc42ad360a + languageName: node + linkType: hard + +"@aws-sdk/util-user-agent-browser@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/util-user-agent-browser@npm:3.127.0" dependencies: - "@aws-sdk/types": 3.686.0 - "@smithy/types": ^3.6.0 + "@aws-sdk/types": 3.127.0 bowser: ^2.11.0 - tslib: ^2.6.2 - checksum: 8a86a1123583f1cfbe3c0680222110786867cc6db2cc5583a08fc952483fc5147072e366033628cf88e224ddd3fb76cc8779f5716ccbafbfa09492a2e9b206d1 + tslib: ^2.3.1 + checksum: 42f08784b3f6f535516467e60897330e23b853e9ce134e9095170ef36c715aa04017b066fddf2b4830438bb00b630e7895dfcfbfaaa4d8de63d9983d9f205e25 languageName: node linkType: hard -"@aws-sdk/util-user-agent-node@npm:3.687.0": - version: 3.687.0 - resolution: "@aws-sdk/util-user-agent-node@npm:3.687.0" +"@aws-sdk/util-user-agent-node@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/util-user-agent-node@npm:3.127.0" dependencies: - "@aws-sdk/middleware-user-agent": 3.687.0 - "@aws-sdk/types": 3.686.0 - "@smithy/node-config-provider": ^3.1.9 - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 + "@aws-sdk/node-config-provider": 3.127.0 + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 peerDependencies: aws-crt: ">=1.0.0" peerDependenciesMeta: aws-crt: optional: true - checksum: 2c6f282565e020dddee81eb1ebe020ca27289b4018ec2d6af8810d947a38323a51069d6b24fb9d67e67bdeed5539fcb8db9b91b4833e3ef02c640166ad31c3cf + checksum: bba9cce7a775a3985b97960d64990d1b18ee39f0fdebcebd8d63f3eb951fe41f6808b9272ddafde2a4366f9e041bd10aec74aa8dba33d70101458dc8ce086ccf + languageName: node + linkType: hard + +"@aws-sdk/util-utf8-browser@npm:3.109.0": + version: 3.109.0 + resolution: "@aws-sdk/util-utf8-browser@npm:3.109.0" + dependencies: + tslib: ^2.3.1 + checksum: 8311763b04261dab5995ec67abf31795f41e9c4b1ad635ed305735e14c7e3bc48e9ae349a06aab485390358a6a58e97190144ea51190983cec4ae665887b219b + languageName: node + linkType: hard + +"@aws-sdk/util-utf8-browser@npm:^3.0.0": + version: 3.49.0 + resolution: "@aws-sdk/util-utf8-browser@npm:3.49.0" + dependencies: + tslib: ^2.3.0 + checksum: 695ea2115b1ec75450cef456c18129a4032521a6e1ca7f0bfbd6d9ebf1666dd4d65dc3e8748307e2aca317f2b5d93de9333a3886dd3970707e6bce23f60be9a7 + languageName: node + linkType: hard + +"@aws-sdk/util-utf8-node@npm:3.109.0": + version: 3.109.0 + resolution: "@aws-sdk/util-utf8-node@npm:3.109.0" + dependencies: + "@aws-sdk/util-buffer-from": 3.55.0 + tslib: ^2.3.1 + checksum: ef706db8c0ceb014bc2fb9e5045b54369160648a9e919836132f98c5537eda82193f400fab607783ecf98a5df11b66c32256c4f2780bc689d7507ddaf2a0977b + languageName: node + linkType: hard + +"@aws-sdk/util-waiter@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/util-waiter@npm:3.127.0" + dependencies: + "@aws-sdk/abort-controller": 3.127.0 + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: 3c27de00e943409a1fb927e450ecb7bd83cd6eb6329e0fbf51f20bd657a35571f181074f2ca1b612f87c07844be53129bf868c4acd4c734e22313197e6c70b1e languageName: node linkType: hard @@ -3324,494 +3590,6 @@ __metadata: languageName: node linkType: hard -"@smithy/abort-controller@npm:^3.1.6": - version: 3.1.6 - resolution: "@smithy/abort-controller@npm:3.1.6" - dependencies: - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: abba34cc47b6f7951402da1f94465616b84dedf55e0b0467b53f7848b9cb3e82b94869fa637278aa2f65809613e872582791053fd23299e026edada4a5ec1c1c - languageName: node - linkType: hard - -"@smithy/config-resolver@npm:^3.0.10": - version: 3.0.10 - resolution: "@smithy/config-resolver@npm:3.0.10" - dependencies: - "@smithy/node-config-provider": ^3.1.9 - "@smithy/types": ^3.6.0 - "@smithy/util-config-provider": ^3.0.0 - "@smithy/util-middleware": ^3.0.8 - tslib: ^2.6.2 - checksum: 55c2355db7eabfd70f0bf288d58cb0238f43b754d91f46febf7fd04617e6107d26e2899ede2b37fbd977980bb12fdbdb688fc5f53654202e946fe3c258cef5d1 - languageName: node - linkType: hard - -"@smithy/core@npm:^2.5.1": - version: 2.5.1 - resolution: "@smithy/core@npm:2.5.1" - dependencies: - "@smithy/middleware-serde": ^3.0.8 - "@smithy/protocol-http": ^4.1.5 - "@smithy/types": ^3.6.0 - "@smithy/util-body-length-browser": ^3.0.0 - "@smithy/util-middleware": ^3.0.8 - "@smithy/util-stream": ^3.2.1 - "@smithy/util-utf8": ^3.0.0 - tslib: ^2.6.2 - checksum: 9175f48eca64f6b304335e32e09c6276aadf7d26cb9180da0a120a2b07c12d8dbe51de2ccce78e98c60729ce4eefe28e7ca95c169432a8049560564d780d1a81 - languageName: node - linkType: hard - -"@smithy/credential-provider-imds@npm:^3.2.4, @smithy/credential-provider-imds@npm:^3.2.5": - version: 3.2.5 - resolution: "@smithy/credential-provider-imds@npm:3.2.5" - dependencies: - "@smithy/node-config-provider": ^3.1.9 - "@smithy/property-provider": ^3.1.8 - "@smithy/types": ^3.6.0 - "@smithy/url-parser": ^3.0.8 - tslib: ^2.6.2 - checksum: 4c8941e3c3806f605930c31e461b0b0fd6384f782c7df92b35e30581eca02d7c4c6d6f2b1c5cdb08fcf4823d98f0ceadc8481def968f1266f761df5dac672d8f - languageName: node - linkType: hard - -"@smithy/fetch-http-handler@npm:^4.0.0": - version: 4.0.0 - resolution: "@smithy/fetch-http-handler@npm:4.0.0" - dependencies: - "@smithy/protocol-http": ^4.1.5 - "@smithy/querystring-builder": ^3.0.8 - "@smithy/types": ^3.6.0 - "@smithy/util-base64": ^3.0.0 - tslib: ^2.6.2 - checksum: 43fc88515227e0d66b6b6a56a8e7a7f9c9690b32c51265859d40c1f4ace3a8a9ebba78e095715fe85a508d32c4f237c09f722e1e0c86d15a3fc81edc961a5051 - languageName: node - linkType: hard - -"@smithy/hash-node@npm:^3.0.8": - version: 3.0.8 - resolution: "@smithy/hash-node@npm:3.0.8" - dependencies: - "@smithy/types": ^3.6.0 - "@smithy/util-buffer-from": ^3.0.0 - "@smithy/util-utf8": ^3.0.0 - tslib: ^2.6.2 - checksum: 9a2e2e8ea044008345e64406a5ecbc23a507b00eae42e71455f0b05c638a21da57a68e43d73254236203187d7943b864c750fc62f95825cc5340dd95767530c3 - languageName: node - linkType: hard - -"@smithy/invalid-dependency@npm:^3.0.8": - version: 3.0.8 - resolution: "@smithy/invalid-dependency@npm:3.0.8" - dependencies: - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: ad55921e703ea3396a7d03b4515c2c0100d3c494865594a8a73b160e2913cac442d61a2545bcb248fedf00bb150cce2c33827d1d12527e34070e7fd8e114d2d6 - languageName: node - linkType: hard - -"@smithy/is-array-buffer@npm:^2.2.0": - version: 2.2.0 - resolution: "@smithy/is-array-buffer@npm:2.2.0" - dependencies: - tslib: ^2.6.2 - checksum: cd12c2e27884fec89ca8966d33c9dc34d3234efe89b33a9b309c61ebcde463e6f15f6a02d31d4fddbfd6e5904743524ca5b95021b517b98fe10957c2da0cd5fc - languageName: node - linkType: hard - -"@smithy/is-array-buffer@npm:^3.0.0": - version: 3.0.0 - resolution: "@smithy/is-array-buffer@npm:3.0.0" - dependencies: - tslib: ^2.6.2 - checksum: ce7440fcb1ce3c46722cff11c33e2f62a9df86d74fa2054a8e6b540302a91211cf6e4e3b1b7aac7030c6c8909158c1b6867c394201fa8afc6b631979956610e5 - languageName: node - linkType: hard - -"@smithy/middleware-content-length@npm:^3.0.10": - version: 3.0.10 - resolution: "@smithy/middleware-content-length@npm:3.0.10" - dependencies: - "@smithy/protocol-http": ^4.1.5 - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: 776fd9014240109328b6823be8649322390bde7aa468750920be3e6ed268a4e380f5b3fcfbe15b2b8af1b6e4b4fedda9a446b76cc247ca252b95380646ac80b5 - languageName: node - linkType: hard - -"@smithy/middleware-endpoint@npm:^3.2.1": - version: 3.2.1 - resolution: "@smithy/middleware-endpoint@npm:3.2.1" - dependencies: - "@smithy/core": ^2.5.1 - "@smithy/middleware-serde": ^3.0.8 - "@smithy/node-config-provider": ^3.1.9 - "@smithy/shared-ini-file-loader": ^3.1.9 - "@smithy/types": ^3.6.0 - "@smithy/url-parser": ^3.0.8 - "@smithy/util-middleware": ^3.0.8 - tslib: ^2.6.2 - checksum: acc41e1b665b6a0c3cf2952a44b4cd1ce980866b44fe4b0ed9208a6067c3aa15ebe646623b14375be6c04ab73fa74fb95eeeca6905fc27092ce93495c77d8b9b - languageName: node - linkType: hard - -"@smithy/middleware-retry@npm:^3.0.25": - version: 3.0.25 - resolution: "@smithy/middleware-retry@npm:3.0.25" - dependencies: - "@smithy/node-config-provider": ^3.1.9 - "@smithy/protocol-http": ^4.1.5 - "@smithy/service-error-classification": ^3.0.8 - "@smithy/smithy-client": ^3.4.2 - "@smithy/types": ^3.6.0 - "@smithy/util-middleware": ^3.0.8 - "@smithy/util-retry": ^3.0.8 - tslib: ^2.6.2 - uuid: ^9.0.1 - checksum: d10264cbff951b3b9585b54cc0e67de6099ed67461a34d83266e197fc48bea45fc7207ed7329c567390be6f08aeb84a6e7fef5f4fd770da9cad0028fc6f61d65 - languageName: node - linkType: hard - -"@smithy/middleware-serde@npm:^3.0.8": - version: 3.0.8 - resolution: "@smithy/middleware-serde@npm:3.0.8" - dependencies: - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: 3d1ba269680bcf0cea6ea1c0e6d20eaf9de3597a687533607cc1ec49dad8669424e41bf3498dcdd21613f7791b0406db1846c2cdd6571682e4be8cb8055a85da - languageName: node - linkType: hard - -"@smithy/middleware-stack@npm:^3.0.8": - version: 3.0.8 - resolution: "@smithy/middleware-stack@npm:3.0.8" - dependencies: - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: c4a24dcdb1db8f347d266ee97676daf1f5bb495aa6c1e59992378bebe39265be14be5c3f7cf9ae35a8ffe68476cfcfe9000a87e9b00062538359c4507f4060ea - languageName: node - linkType: hard - -"@smithy/node-config-provider@npm:^3.1.9": - version: 3.1.9 - resolution: "@smithy/node-config-provider@npm:3.1.9" - dependencies: - "@smithy/property-provider": ^3.1.8 - "@smithy/shared-ini-file-loader": ^3.1.9 - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: fc0d27ff620475f406cb0f3e8527e8dcf56449ec3faad96b9738d26ec825d1b75a55b2f28750efbde383d163c5e25bb32ad09ba59d7d40e491898b9cc6a2eb2a - languageName: node - linkType: hard - -"@smithy/node-http-handler@npm:^3.2.5": - version: 3.2.5 - resolution: "@smithy/node-http-handler@npm:3.2.5" - dependencies: - "@smithy/abort-controller": ^3.1.6 - "@smithy/protocol-http": ^4.1.5 - "@smithy/querystring-builder": ^3.0.8 - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: ea8d4148dd760f031f9eeb2aec2480685bb1a40d7ac9c482eb3170df0316cae58433a6c803d85b046c132a19b8b4874741fae054355b5584facbd46c18889c83 - languageName: node - linkType: hard - -"@smithy/property-provider@npm:^3.1.7, @smithy/property-provider@npm:^3.1.8": - version: 3.1.8 - resolution: "@smithy/property-provider@npm:3.1.8" - dependencies: - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: acf8a3cc0cad53503870580e164b41d79e34f1129c5b6fcf99d8dc09a0a89055889430f9552bead9bafc82775fed5f5f4c8eb3f7e53d91f759bb164a3a68cea5 - languageName: node - linkType: hard - -"@smithy/protocol-http@npm:^4.1.5": - version: 4.1.5 - resolution: "@smithy/protocol-http@npm:4.1.5" - dependencies: - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: 2e581594d03ff367ebc0a1ab0443e8b148f39a3ea810333861f4aed639239e5a261bedbb49f6555cfdb9682b88cd881715764c2dfe7e18a7a003385a0b6200d5 - languageName: node - linkType: hard - -"@smithy/querystring-builder@npm:^3.0.8": - version: 3.0.8 - resolution: "@smithy/querystring-builder@npm:3.0.8" - dependencies: - "@smithy/types": ^3.6.0 - "@smithy/util-uri-escape": ^3.0.0 - tslib: ^2.6.2 - checksum: b07a766fb1e94e06116aef6534a31bbd4bb1bb94844d61c67615316d19aac82f94781fab779655bc03a46d70dda9caf3ad991a3e41548fbbba92783103f4f43e - languageName: node - linkType: hard - -"@smithy/querystring-parser@npm:^3.0.8": - version: 3.0.8 - resolution: "@smithy/querystring-parser@npm:3.0.8" - dependencies: - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: 4ad9edfd96f084432157abd4953840f051ca4678963193bdc0ec7b210c79a649ddc023e327c39bd835ef7f56447dfaf2e47210738799ba9d044befacbe316a25 - languageName: node - linkType: hard - -"@smithy/service-error-classification@npm:^3.0.8": - version: 3.0.8 - resolution: "@smithy/service-error-classification@npm:3.0.8" - dependencies: - "@smithy/types": ^3.6.0 - checksum: cba6d33eb0e7482e557c303638416ea8678f80fa5782c97dd67e5b72741f22e2446370dc0ef9b16802d73cdfb7a5e4e5587c1d4abb5aa5ca9c33525137b4cf2b - languageName: node - linkType: hard - -"@smithy/shared-ini-file-loader@npm:^3.1.8, @smithy/shared-ini-file-loader@npm:^3.1.9": - version: 3.1.9 - resolution: "@smithy/shared-ini-file-loader@npm:3.1.9" - dependencies: - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: 571cc785659551d875fb76c53d116bf6f3978d1b698be096e9218dbbe1dd42efbfb174e151528103888faf7c9854e66f3e5ca395b9c359e37f876c20b22a4f97 - languageName: node - linkType: hard - -"@smithy/signature-v4@npm:^4.2.0": - version: 4.2.1 - resolution: "@smithy/signature-v4@npm:4.2.1" - dependencies: - "@smithy/is-array-buffer": ^3.0.0 - "@smithy/protocol-http": ^4.1.5 - "@smithy/types": ^3.6.0 - "@smithy/util-hex-encoding": ^3.0.0 - "@smithy/util-middleware": ^3.0.8 - "@smithy/util-uri-escape": ^3.0.0 - "@smithy/util-utf8": ^3.0.0 - tslib: ^2.6.2 - checksum: 783d8c0a780fbb94084819ea624e75a72daf84c480fa3215b0edd7689041925dbbab3e2785acdfef564c5623631d09aae4915f27cfd1357d2bd0f26349041e56 - languageName: node - linkType: hard - -"@smithy/smithy-client@npm:^3.4.2": - version: 3.4.2 - resolution: "@smithy/smithy-client@npm:3.4.2" - dependencies: - "@smithy/core": ^2.5.1 - "@smithy/middleware-endpoint": ^3.2.1 - "@smithy/middleware-stack": ^3.0.8 - "@smithy/protocol-http": ^4.1.5 - "@smithy/types": ^3.6.0 - "@smithy/util-stream": ^3.2.1 - tslib: ^2.6.2 - checksum: 4b53e695e18bf0ed4805dd66839e272129be5384f6de5356a2adc03311f5c372766b490a3c001086aec8728f6c9bb90ca625a09e9b4c3fe875c1ee7567118f34 - languageName: node - linkType: hard - -"@smithy/types@npm:^3.6.0": - version: 3.6.0 - resolution: "@smithy/types@npm:3.6.0" - dependencies: - tslib: ^2.6.2 - checksum: 4f581dc1c3e2dee8e1134fafb47de2c301330ea668214eb1a81d26b85acdb48a7e52008da0d15a402e998a79bed285a74b88949a5a4a3fe0aef38c28620ab795 - languageName: node - linkType: hard - -"@smithy/url-parser@npm:^3.0.8": - version: 3.0.8 - resolution: "@smithy/url-parser@npm:3.0.8" - dependencies: - "@smithy/querystring-parser": ^3.0.8 - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: 1bf2143b298a4afdf6a8fa40f7b018ad59eb79b717e2bafcd8634c20893485c456c12fe73659d342a3d3a51cdbb10afea61fac285e7ce5fa0f66d7695ad7d10b - languageName: node - linkType: hard - -"@smithy/util-base64@npm:^3.0.0": - version: 3.0.0 - resolution: "@smithy/util-base64@npm:3.0.0" - dependencies: - "@smithy/util-buffer-from": ^3.0.0 - "@smithy/util-utf8": ^3.0.0 - tslib: ^2.6.2 - checksum: 413f26046a7e98b2661a078f218a8d040c820fc5a02f5e364aff58c3957e28fde1ac4048c2ebbad5d87b9da4b9aa98a8d4a7fb0d2ce97def33738bd7d8d79aa0 - languageName: node - linkType: hard - -"@smithy/util-body-length-browser@npm:^3.0.0": - version: 3.0.0 - resolution: "@smithy/util-body-length-browser@npm:3.0.0" - dependencies: - tslib: ^2.6.2 - checksum: b01d8258b9a25b262734fc49cefefe48583ba193c3eefd49a6f7fd5922c3015d23dda88b52f3dd9a16827cad16b5b9425eef01e91bd0c71bb5abc469d2952c07 - languageName: node - linkType: hard - -"@smithy/util-body-length-node@npm:^3.0.0": - version: 3.0.0 - resolution: "@smithy/util-body-length-node@npm:3.0.0" - dependencies: - tslib: ^2.6.2 - checksum: da1baf4790609d3dc28c88385c7274fdf9b91a641fe3c5af22b78e18156df17bd470181348f43b2c739680936b1dafb1526158dfd817c3d9ecb71e653b4cbe3f - languageName: node - linkType: hard - -"@smithy/util-buffer-from@npm:^2.2.0": - version: 2.2.0 - resolution: "@smithy/util-buffer-from@npm:2.2.0" - dependencies: - "@smithy/is-array-buffer": ^2.2.0 - tslib: ^2.6.2 - checksum: 424c5b7368ae5880a8f2732e298d17879a19ca925f24ca45e1c6c005f717bb15b76eb28174d308d81631ad457ea0088aab0fd3255dd42f45a535c81944ad64d3 - languageName: node - linkType: hard - -"@smithy/util-buffer-from@npm:^3.0.0": - version: 3.0.0 - resolution: "@smithy/util-buffer-from@npm:3.0.0" - dependencies: - "@smithy/is-array-buffer": ^3.0.0 - tslib: ^2.6.2 - checksum: 1bfc4ab093fe98132bbc1ccd36a0b9ad75a31ed26bac4b7e9350205513a2481eb190ae44679ab4fecc5e10d367b5e6592bbfbf792671579d17d17bd7f7f233f5 - languageName: node - linkType: hard - -"@smithy/util-config-provider@npm:^3.0.0": - version: 3.0.0 - resolution: "@smithy/util-config-provider@npm:3.0.0" - dependencies: - tslib: ^2.6.2 - checksum: fc0f5f57d30261cf3a6693d8e338b9d269332c478ee18d905309a769844188190caf0564855d7e84f6c61e56aa556195dda89f65e8c30791951cf4999e4a70e7 - languageName: node - linkType: hard - -"@smithy/util-defaults-mode-browser@npm:^3.0.25": - version: 3.0.25 - resolution: "@smithy/util-defaults-mode-browser@npm:3.0.25" - dependencies: - "@smithy/property-provider": ^3.1.8 - "@smithy/smithy-client": ^3.4.2 - "@smithy/types": ^3.6.0 - bowser: ^2.11.0 - tslib: ^2.6.2 - checksum: 87c4b346d753712f7fe501920c6bb9712d7ec56670e49aa5d6db40ebe0f0cfa58d9e1d27e96e40c6be1721cf81bd0b2f29c077efc3b8dece074e3a6d175fa1a4 - languageName: node - linkType: hard - -"@smithy/util-defaults-mode-node@npm:^3.0.25": - version: 3.0.25 - resolution: "@smithy/util-defaults-mode-node@npm:3.0.25" - dependencies: - "@smithy/config-resolver": ^3.0.10 - "@smithy/credential-provider-imds": ^3.2.5 - "@smithy/node-config-provider": ^3.1.9 - "@smithy/property-provider": ^3.1.8 - "@smithy/smithy-client": ^3.4.2 - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: e34c44bb5cbc8036765aa4f52e648a753b477b6653834291f7a2e0d82b7b58c1e741eac9a9a95d39b6f751c05013909c36ac0818e0015c24201af9d2e2fb0f5a - languageName: node - linkType: hard - -"@smithy/util-endpoints@npm:^2.1.4": - version: 2.1.4 - resolution: "@smithy/util-endpoints@npm:2.1.4" - dependencies: - "@smithy/node-config-provider": ^3.1.9 - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: 523df0a35807f3493cccaf1b76f88e14dedd3d9f29fe26a6f8c73cdfe09e57c67a1d3029cc585995b0f7fe20e07afa8b4dfa5f1d631a0c4c06c9f68075b61bad - languageName: node - linkType: hard - -"@smithy/util-hex-encoding@npm:^3.0.0": - version: 3.0.0 - resolution: "@smithy/util-hex-encoding@npm:3.0.0" - dependencies: - tslib: ^2.6.2 - checksum: dd32fd71e915825987a18bf7c0f8f0c4956d0b17a0ee71592b5563bb20e04f24dbf81d36161aac07caab3bb5e535cc609fce20aa4a38f66b457c4c6f5c7748d9 - languageName: node - linkType: hard - -"@smithy/util-middleware@npm:^3.0.8": - version: 3.0.8 - resolution: "@smithy/util-middleware@npm:3.0.8" - dependencies: - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: 6933c012f47c8b547b4986133a9dc2b264e9d71def155c4a9bce1bd1afbd73cb8e936c50ebc80190fc1d5bb26aee73ba012c567766dcd8a13c3d06bef841ab3c - languageName: node - linkType: hard - -"@smithy/util-retry@npm:^3.0.8": - version: 3.0.8 - resolution: "@smithy/util-retry@npm:3.0.8" - dependencies: - "@smithy/service-error-classification": ^3.0.8 - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: 5c0c63beb867828e6fd54f5fd83de412180df02de42f678df0f5a4412d10bfb5a74c22aa83a6f364c8292b5c82be94fe7af35d1ebe4e50a2c05946520f2ea870 - languageName: node - linkType: hard - -"@smithy/util-stream@npm:^3.2.1": - version: 3.2.1 - resolution: "@smithy/util-stream@npm:3.2.1" - dependencies: - "@smithy/fetch-http-handler": ^4.0.0 - "@smithy/node-http-handler": ^3.2.5 - "@smithy/types": ^3.6.0 - "@smithy/util-base64": ^3.0.0 - "@smithy/util-buffer-from": ^3.0.0 - "@smithy/util-hex-encoding": ^3.0.0 - "@smithy/util-utf8": ^3.0.0 - tslib: ^2.6.2 - checksum: 3dc2b005d48a2e5ccb0761e7a7869f8af24d34a93eaa34f0586ba42fe79f13d48efb676e4aacbf02a54f1a225eb851d2c706c016f5f9d0b4fc127d8be69f5d90 - languageName: node - linkType: hard - -"@smithy/util-uri-escape@npm:^3.0.0": - version: 3.0.0 - resolution: "@smithy/util-uri-escape@npm:3.0.0" - dependencies: - tslib: ^2.6.2 - checksum: d7ee01c978e2b08d0a89a3b678f5d5e5d5bb4ab4ab85567a238b1a6195dff1bdaf9ae62497e7f32ff5121b3dc007c370bcb6e8ef79b01fe5acdec5bbce8c7ce4 - languageName: node - linkType: hard - -"@smithy/util-utf8@npm:^2.0.0": - version: 2.3.0 - resolution: "@smithy/util-utf8@npm:2.3.0" - dependencies: - "@smithy/util-buffer-from": ^2.2.0 - tslib: ^2.6.2 - checksum: 00e55d4b4e37d48be0eef3599082402b933c52a1407fed7e8e8ad76d94d81a0b30b8bfaf2047c59d9c3af31e5f20e7a8c959cb7ae270f894255e05a2229964f0 - languageName: node - linkType: hard - -"@smithy/util-utf8@npm:^3.0.0": - version: 3.0.0 - resolution: "@smithy/util-utf8@npm:3.0.0" - dependencies: - "@smithy/util-buffer-from": ^3.0.0 - tslib: ^2.6.2 - checksum: d97be1748963263a1161ba80417d82318b977b38542f3fdf0379b0162461188be680e5bfb66a89d65652f0fad6ecf2ab23a43205979216e50602488f73434da3 - languageName: node - linkType: hard - -"@smithy/util-waiter@npm:^3.1.7": - version: 3.1.7 - resolution: "@smithy/util-waiter@npm:3.1.7" - dependencies: - "@smithy/abort-controller": ^3.1.6 - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: 190d992898d0c7d776c806657703c1ebd0ba2c24f4042ed0251dc8653799aefe12848a0445ee16cdbb05b76b5c81fc803b271957954aa614aaccb99dd3338caa - languageName: node - linkType: hard - "@tootallnate/once@npm:1": version: 1.1.2 resolution: "@tootallnate/once@npm:1.1.2" @@ -4023,13 +3801,6 @@ __metadata: languageName: node linkType: hard -"@types/uuid@npm:^9.0.1": - version: 9.0.8 - resolution: "@types/uuid@npm:9.0.8" - checksum: b8c60b7ba8250356b5088302583d1704a4e1a13558d143c549c408bf8920535602ffc12394ede77f8a8083511b023704bc66d1345792714002bfa261b17c5275 - languageName: node - linkType: hard - "@types/yargs-parser@npm:*": version: 15.0.0 resolution: "@types/yargs-parser@npm:15.0.0" @@ -5646,6 +5417,13 @@ __metadata: languageName: node linkType: hard +"entities@npm:2.2.0": + version: 2.2.0 + resolution: "entities@npm:2.2.0" + checksum: 19010dacaf0912c895ea262b4f6128574f9ccf8d4b3b65c7e8334ad0079b3706376360e28d8843ff50a78aabcb8f08f0a32dbfacdc77e47ed77ca08b713669b3 + languageName: node + linkType: hard + "env-paths@npm:^2.2.0": version: 2.2.1 resolution: "env-paths@npm:2.2.1" @@ -6132,14 +5910,12 @@ __metadata: languageName: node linkType: hard -"fast-xml-parser@npm:4.4.1": - version: 4.4.1 - resolution: "fast-xml-parser@npm:4.4.1" - dependencies: - strnum: ^1.0.5 +"fast-xml-parser@npm:3.19.0": + version: 3.19.0 + resolution: "fast-xml-parser@npm:3.19.0" bin: - fxparser: src/cli/cli.js - checksum: f440c01cd141b98789ae777503bcb6727393296094cc82924ae9f88a5b971baa4eec7e65306c7e07746534caa661fc83694ff437d9012dc84dee39dfbfaab947 + xml2js: cli.js + checksum: d9da9145f73d90c05ee2746d80c78eca4da0249dea8c81ea8f1a6e1245e62988ed4a040dbd1c7229b1e0bdcbf69d33c882e0ac337d10c7eedb159a4dc9779327 languageName: node linkType: hard @@ -6897,7 +6673,7 @@ __metadata: version: 0.0.0-use.local resolution: "infra@workspace:." dependencies: - "@aws-sdk/client-ssm": 3.687.0 + "@aws-sdk/client-ssm": 3.145.0 "@babel/core": 7.23.9 "@babel/plugin-transform-modules-commonjs": 7.23.3 "@nx/js": 16 @@ -10160,13 +9936,6 @@ __metadata: languageName: node linkType: hard -"strnum@npm:^1.0.5": - version: 1.0.5 - resolution: "strnum@npm:1.0.5" - checksum: 651b2031db5da1bf4a77fdd2f116a8ac8055157c5420f5569f64879133825915ad461513e7202a16d7fec63c54fd822410d0962f8ca12385c4334891b9ae6dd2 - languageName: node - linkType: hard - "strong-log-transformer@npm:^2.1.0": version: 2.1.0 resolution: "strong-log-transformer@npm:2.1.0" @@ -10445,6 +10214,13 @@ __metadata: languageName: node linkType: hard +"tslib@npm:^1.11.1": + version: 1.14.1 + resolution: "tslib@npm:1.14.1" + checksum: dbe628ef87f66691d5d2959b3e41b9ca0045c3ee3c7c7b906cc1e328b39f199bb1ad9e671c39025bd56122ac57dfbf7385a94843b1cc07c60a4db74795829acd + languageName: node + linkType: hard + "tslib@npm:^2.1.0, tslib@npm:^2.4.0": version: 2.6.2 resolution: "tslib@npm:2.6.2" @@ -10459,10 +10235,10 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^2.6.2": - version: 2.8.1 - resolution: "tslib@npm:2.8.1" - checksum: e4aba30e632b8c8902b47587fd13345e2827fa639e7c3121074d5ee0880723282411a8838f830b55100cbe4517672f84a2472667d355b81e8af165a55dc6203a +"tslib@npm:^2.3.1": + version: 2.4.1 + resolution: "tslib@npm:2.4.1" + checksum: 19480d6e0313292bd6505d4efe096a6b31c70e21cf08b5febf4da62e95c265c8f571f7b36fcc3d1a17e068032f59c269fab3459d6cd3ed6949eafecf64315fca languageName: node linkType: hard @@ -10680,12 +10456,12 @@ __metadata: languageName: node linkType: hard -"uuid@npm:^9.0.1": - version: 9.0.1 - resolution: "uuid@npm:9.0.1" +"uuid@npm:^8.3.2": + version: 8.3.2 + resolution: "uuid@npm:8.3.2" bin: uuid: dist/bin/uuid - checksum: 39931f6da74e307f51c0fb463dc2462807531dc80760a9bff1e35af4316131b4fc3203d16da60ae33f07fdca5b56f3f1dd662da0c99fea9aaeab2004780cc5f4 + checksum: 5575a8a75c13120e2f10e6ddc801b2c7ed7d8f3c8ac22c7ed0c7b2ba6383ec0abda88c905085d630e251719e0777045ae3236f04c812184b7c765f63a70e58df languageName: node linkType: hard diff --git a/package.json b/package.json index c0a86f7a5b63..0a9d57c78aec 100644 --- a/package.json +++ b/package.json @@ -69,13 +69,12 @@ "@apollo/gateway": "2.1.1", "@apollo/subgraph": "2.1.1", "@apollo/utils.keyvadapter": "3.0.0", - "@aws-sdk/abort-controller": "3.374.0", - "@aws-sdk/client-s3": "3.687.0", - "@aws-sdk/client-sqs": "3.687.0", - "@aws-sdk/credential-provider-node": "3.687.0", - "@aws-sdk/lib-storage": "3.687.0", - "@aws-sdk/s3-presigned-post": "3.687.0", - "@aws-sdk/s3-request-presigner": "3.687.0", + "@aws-sdk/client-s3": "3.662.0", + "@aws-sdk/client-sqs": "3.662.0", + "@aws-sdk/credential-provider-node": "3.662.0", + "@aws-sdk/lib-storage": "3.662.0", + "@aws-sdk/s3-presigned-post": "3.662.0", + "@aws-sdk/s3-request-presigner": "3.662.0", "@azure/msal-node": "1.14.4", "@contentful/app-sdk": "4.16.0", "@contentful/default-field-editors": "1.6.34", @@ -320,8 +319,8 @@ "@anatine/esbuild-decorators": "0.2.4", "@anatine/esbuildnx": "0.2.0", "@anev/ts-mountebank": "^1.6.0", - "@aws-sdk/client-ses": "3.687.0", - "@aws-sdk/client-ssm": "3.687.0", + "@aws-sdk/client-ses": "3.145.0", + "@aws-sdk/client-ssm": "3.145.0", "@babel/core": "7.22.5", "@babel/plugin-proposal-decorators": "7.22.5", "@babel/plugin-transform-class-properties": "7.22.5", diff --git a/yarn.lock b/yarn.lock index badd496cba21..89e37c725552 100644 --- a/yarn.lock +++ b/yarn.lock @@ -746,6 +746,15 @@ __metadata: languageName: node linkType: hard +"@aws-crypto/ie11-detection@npm:^2.0.0": + version: 2.0.0 + resolution: "@aws-crypto/ie11-detection@npm:2.0.0" + dependencies: + tslib: ^1.11.1 + checksum: dd15daa1160ecdf28b9c930dcbd7f8bc96e74d7f791134974b672f5d36182274c76db4fff414385cdb8997a8b7ade991988a571aaac3184e226e2ed6428d895f + languageName: node + linkType: hard + "@aws-crypto/sha1-browser@npm:5.2.0": version: 5.2.0 resolution: "@aws-crypto/sha1-browser@npm:5.2.0" @@ -760,6 +769,22 @@ __metadata: languageName: node linkType: hard +"@aws-crypto/sha256-browser@npm:2.0.0": + version: 2.0.0 + resolution: "@aws-crypto/sha256-browser@npm:2.0.0" + dependencies: + "@aws-crypto/ie11-detection": ^2.0.0 + "@aws-crypto/sha256-js": ^2.0.0 + "@aws-crypto/supports-web-crypto": ^2.0.0 + "@aws-crypto/util": ^2.0.0 + "@aws-sdk/types": ^3.1.0 + "@aws-sdk/util-locate-window": ^3.0.0 + "@aws-sdk/util-utf8-browser": ^3.0.0 + tslib: ^1.11.1 + checksum: 7bc1ff042d0c53a46c0fc3824bd97fb3ed1df7dc030b8a995889471052860b8c8ade469c97866fafd8249a3144d0f48b0f1054f357e2b403606009381c4b8f0e + languageName: node + linkType: hard + "@aws-crypto/sha256-browser@npm:5.2.0": version: 5.2.0 resolution: "@aws-crypto/sha256-browser@npm:5.2.0" @@ -775,6 +800,17 @@ __metadata: languageName: node linkType: hard +"@aws-crypto/sha256-js@npm:2.0.0, @aws-crypto/sha256-js@npm:^2.0.0": + version: 2.0.0 + resolution: "@aws-crypto/sha256-js@npm:2.0.0" + dependencies: + "@aws-crypto/util": ^2.0.0 + "@aws-sdk/types": ^3.1.0 + tslib: ^1.11.1 + checksum: e4abf9baec6bed19d380f92a999a41ac5bdd8890dfd45971d29054c298854c5b7087e7de633413f2e64618ef8238ccf4c0b75797c73063c74bbba3cb5d8b2581 + languageName: node + linkType: hard + "@aws-crypto/sha256-js@npm:5.2.0, @aws-crypto/sha256-js@npm:^5.2.0": version: 5.2.0 resolution: "@aws-crypto/sha256-js@npm:5.2.0" @@ -786,6 +822,15 @@ __metadata: languageName: node linkType: hard +"@aws-crypto/supports-web-crypto@npm:^2.0.0": + version: 2.0.0 + resolution: "@aws-crypto/supports-web-crypto@npm:2.0.0" + dependencies: + tslib: ^1.11.1 + checksum: 77fad3813a5d3c495296fb836293184d32aeddacd436bf7d1b59b93d87de4cf7c0dbf862d4eaf915259edfb7b424ea05e2ceeddbaa1588a154d0c19df455c475 + languageName: node + linkType: hard + "@aws-crypto/supports-web-crypto@npm:^5.2.0": version: 5.2.0 resolution: "@aws-crypto/supports-web-crypto@npm:5.2.0" @@ -795,6 +840,17 @@ __metadata: languageName: node linkType: hard +"@aws-crypto/util@npm:^2.0.0": + version: 2.0.0 + resolution: "@aws-crypto/util@npm:2.0.0" + dependencies: + "@aws-sdk/types": ^3.1.0 + "@aws-sdk/util-utf8-browser": ^3.0.0 + tslib: ^1.11.1 + checksum: afff771bf8023218df3b224f0ad6b8f1a4cded4bdc0a4f9ff7234e7089311034b2046f8ba29d2e94810a46d5c38a2103d4828b60325cb0c49aea4d6cbb741c6a + languageName: node + linkType: hard + "@aws-crypto/util@npm:^5.2.0": version: 5.2.0 resolution: "@aws-crypto/util@npm:5.2.0" @@ -806,774 +862,1201 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/abort-controller@npm:3.374.0": - version: 3.374.0 - resolution: "@aws-sdk/abort-controller@npm:3.374.0" +"@aws-sdk/abort-controller@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/abort-controller@npm:3.127.0" dependencies: - "@smithy/abort-controller": ^1.0.1 - tslib: ^2.5.0 - checksum: 0cd46e1da1e553568b863fe9b821bb853e9de3c74bbdbe9c03fba3cd864a5b9f4d340b4c69625ef665751b9ac8035fe229d23bb8322d418b48525a27ff6fa31d + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: 9768573f8788db6fbed2a72a431860f6edb70a0795b78f2400993f91f471ad543e61eaca7503be949052af4ca953b23cc9b11e8bed5a3735198b65701349d759 languageName: node linkType: hard -"@aws-sdk/client-s3@npm:3.687.0": - version: 3.687.0 - resolution: "@aws-sdk/client-s3@npm:3.687.0" +"@aws-sdk/client-s3@npm:3.662.0": + version: 3.662.0 + resolution: "@aws-sdk/client-s3@npm:3.662.0" dependencies: "@aws-crypto/sha1-browser": 5.2.0 "@aws-crypto/sha256-browser": 5.2.0 "@aws-crypto/sha256-js": 5.2.0 - "@aws-sdk/client-sso-oidc": 3.687.0 - "@aws-sdk/client-sts": 3.687.0 - "@aws-sdk/core": 3.686.0 - "@aws-sdk/credential-provider-node": 3.687.0 - "@aws-sdk/middleware-bucket-endpoint": 3.686.0 - "@aws-sdk/middleware-expect-continue": 3.686.0 - "@aws-sdk/middleware-flexible-checksums": 3.687.0 - "@aws-sdk/middleware-host-header": 3.686.0 - "@aws-sdk/middleware-location-constraint": 3.686.0 - "@aws-sdk/middleware-logger": 3.686.0 - "@aws-sdk/middleware-recursion-detection": 3.686.0 - "@aws-sdk/middleware-sdk-s3": 3.687.0 - "@aws-sdk/middleware-ssec": 3.686.0 - "@aws-sdk/middleware-user-agent": 3.687.0 - "@aws-sdk/region-config-resolver": 3.686.0 - "@aws-sdk/signature-v4-multi-region": 3.687.0 - "@aws-sdk/types": 3.686.0 - "@aws-sdk/util-endpoints": 3.686.0 - "@aws-sdk/util-user-agent-browser": 3.686.0 - "@aws-sdk/util-user-agent-node": 3.687.0 - "@aws-sdk/xml-builder": 3.686.0 - "@smithy/config-resolver": ^3.0.10 - "@smithy/core": ^2.5.1 - "@smithy/eventstream-serde-browser": ^3.0.11 - "@smithy/eventstream-serde-config-resolver": ^3.0.8 - "@smithy/eventstream-serde-node": ^3.0.10 - "@smithy/fetch-http-handler": ^4.0.0 - "@smithy/hash-blob-browser": ^3.1.7 - "@smithy/hash-node": ^3.0.8 - "@smithy/hash-stream-node": ^3.1.7 - "@smithy/invalid-dependency": ^3.0.8 - "@smithy/md5-js": ^3.0.8 - "@smithy/middleware-content-length": ^3.0.10 - "@smithy/middleware-endpoint": ^3.2.1 - "@smithy/middleware-retry": ^3.0.25 - "@smithy/middleware-serde": ^3.0.8 - "@smithy/middleware-stack": ^3.0.8 - "@smithy/node-config-provider": ^3.1.9 - "@smithy/node-http-handler": ^3.2.5 - "@smithy/protocol-http": ^4.1.5 - "@smithy/smithy-client": ^3.4.2 - "@smithy/types": ^3.6.0 - "@smithy/url-parser": ^3.0.8 + "@aws-sdk/client-sso-oidc": 3.662.0 + "@aws-sdk/client-sts": 3.662.0 + "@aws-sdk/core": 3.662.0 + "@aws-sdk/credential-provider-node": 3.662.0 + "@aws-sdk/middleware-bucket-endpoint": 3.662.0 + "@aws-sdk/middleware-expect-continue": 3.662.0 + "@aws-sdk/middleware-flexible-checksums": 3.662.0 + "@aws-sdk/middleware-host-header": 3.662.0 + "@aws-sdk/middleware-location-constraint": 3.662.0 + "@aws-sdk/middleware-logger": 3.662.0 + "@aws-sdk/middleware-recursion-detection": 3.662.0 + "@aws-sdk/middleware-sdk-s3": 3.662.0 + "@aws-sdk/middleware-ssec": 3.662.0 + "@aws-sdk/middleware-user-agent": 3.662.0 + "@aws-sdk/region-config-resolver": 3.662.0 + "@aws-sdk/signature-v4-multi-region": 3.662.0 + "@aws-sdk/types": 3.662.0 + "@aws-sdk/util-endpoints": 3.662.0 + "@aws-sdk/util-user-agent-browser": 3.662.0 + "@aws-sdk/util-user-agent-node": 3.662.0 + "@aws-sdk/xml-builder": 3.662.0 + "@smithy/config-resolver": ^3.0.9 + "@smithy/core": ^2.4.7 + "@smithy/eventstream-serde-browser": ^3.0.10 + "@smithy/eventstream-serde-config-resolver": ^3.0.7 + "@smithy/eventstream-serde-node": ^3.0.9 + "@smithy/fetch-http-handler": ^3.2.9 + "@smithy/hash-blob-browser": ^3.1.6 + "@smithy/hash-node": ^3.0.7 + "@smithy/hash-stream-node": ^3.1.6 + "@smithy/invalid-dependency": ^3.0.7 + "@smithy/md5-js": ^3.0.7 + "@smithy/middleware-content-length": ^3.0.9 + "@smithy/middleware-endpoint": ^3.1.4 + "@smithy/middleware-retry": ^3.0.22 + "@smithy/middleware-serde": ^3.0.7 + "@smithy/middleware-stack": ^3.0.7 + "@smithy/node-config-provider": ^3.1.8 + "@smithy/node-http-handler": ^3.2.4 + "@smithy/protocol-http": ^4.1.4 + "@smithy/smithy-client": ^3.3.6 + "@smithy/types": ^3.5.0 + "@smithy/url-parser": ^3.0.7 "@smithy/util-base64": ^3.0.0 "@smithy/util-body-length-browser": ^3.0.0 "@smithy/util-body-length-node": ^3.0.0 - "@smithy/util-defaults-mode-browser": ^3.0.25 - "@smithy/util-defaults-mode-node": ^3.0.25 - "@smithy/util-endpoints": ^2.1.4 - "@smithy/util-middleware": ^3.0.8 - "@smithy/util-retry": ^3.0.8 - "@smithy/util-stream": ^3.2.1 + "@smithy/util-defaults-mode-browser": ^3.0.22 + "@smithy/util-defaults-mode-node": ^3.0.22 + "@smithy/util-endpoints": ^2.1.3 + "@smithy/util-middleware": ^3.0.7 + "@smithy/util-retry": ^3.0.7 + "@smithy/util-stream": ^3.1.9 "@smithy/util-utf8": ^3.0.0 - "@smithy/util-waiter": ^3.1.7 + "@smithy/util-waiter": ^3.1.6 tslib: ^2.6.2 - checksum: a763c9eb072b2a97f8f376f045beb15e44850dc395af991cbd4374143b630b936dcea00bdb9e78e2f7d5e8c2b85fac678998756efcb1255e863f5773a23e3bf2 + checksum: c7301c71a5e6a2f840229b2cddfdf42744ef20d2eba67ba79cd584b5da7bd4c4407e7a1bc7bb3b0bd193239551a08d0b8e6a3e698b7095ebbbabe7bd964c5a17 + languageName: node + linkType: hard + +"@aws-sdk/client-ses@npm:3.145.0": + version: 3.145.0 + resolution: "@aws-sdk/client-ses@npm:3.145.0" + dependencies: + "@aws-crypto/sha256-browser": 2.0.0 + "@aws-crypto/sha256-js": 2.0.0 + "@aws-sdk/client-sts": 3.145.0 + "@aws-sdk/config-resolver": 3.130.0 + "@aws-sdk/credential-provider-node": 3.145.0 + "@aws-sdk/fetch-http-handler": 3.131.0 + "@aws-sdk/hash-node": 3.127.0 + "@aws-sdk/invalid-dependency": 3.127.0 + "@aws-sdk/middleware-content-length": 3.127.0 + "@aws-sdk/middleware-host-header": 3.127.0 + "@aws-sdk/middleware-logger": 3.127.0 + "@aws-sdk/middleware-recursion-detection": 3.127.0 + "@aws-sdk/middleware-retry": 3.127.0 + "@aws-sdk/middleware-serde": 3.127.0 + "@aws-sdk/middleware-signing": 3.130.0 + "@aws-sdk/middleware-stack": 3.127.0 + "@aws-sdk/middleware-user-agent": 3.127.0 + "@aws-sdk/node-config-provider": 3.127.0 + "@aws-sdk/node-http-handler": 3.127.0 + "@aws-sdk/protocol-http": 3.127.0 + "@aws-sdk/smithy-client": 3.142.0 + "@aws-sdk/types": 3.127.0 + "@aws-sdk/url-parser": 3.127.0 + "@aws-sdk/util-base64-browser": 3.109.0 + "@aws-sdk/util-base64-node": 3.55.0 + "@aws-sdk/util-body-length-browser": 3.55.0 + "@aws-sdk/util-body-length-node": 3.55.0 + "@aws-sdk/util-defaults-mode-browser": 3.142.0 + "@aws-sdk/util-defaults-mode-node": 3.142.0 + "@aws-sdk/util-user-agent-browser": 3.127.0 + "@aws-sdk/util-user-agent-node": 3.127.0 + "@aws-sdk/util-utf8-browser": 3.109.0 + "@aws-sdk/util-utf8-node": 3.109.0 + "@aws-sdk/util-waiter": 3.127.0 + entities: 2.2.0 + fast-xml-parser: 3.19.0 + tslib: ^2.3.1 + checksum: f8239e413c13566d6dc87816cc7263a4d60725f4a69138b9327d32f5c31174805b47f904bcfa6d6e50ad400924a34769c8742821631f8da7fa87733990fc74cb languageName: node linkType: hard -"@aws-sdk/client-ses@npm:3.687.0": - version: 3.687.0 - resolution: "@aws-sdk/client-ses@npm:3.687.0" +"@aws-sdk/client-sqs@npm:3.662.0": + version: 3.662.0 + resolution: "@aws-sdk/client-sqs@npm:3.662.0" dependencies: "@aws-crypto/sha256-browser": 5.2.0 "@aws-crypto/sha256-js": 5.2.0 - "@aws-sdk/client-sso-oidc": 3.687.0 - "@aws-sdk/client-sts": 3.687.0 - "@aws-sdk/core": 3.686.0 - "@aws-sdk/credential-provider-node": 3.687.0 - "@aws-sdk/middleware-host-header": 3.686.0 - "@aws-sdk/middleware-logger": 3.686.0 - "@aws-sdk/middleware-recursion-detection": 3.686.0 - "@aws-sdk/middleware-user-agent": 3.687.0 - "@aws-sdk/region-config-resolver": 3.686.0 - "@aws-sdk/types": 3.686.0 - "@aws-sdk/util-endpoints": 3.686.0 - "@aws-sdk/util-user-agent-browser": 3.686.0 - "@aws-sdk/util-user-agent-node": 3.687.0 - "@smithy/config-resolver": ^3.0.10 - "@smithy/core": ^2.5.1 - "@smithy/fetch-http-handler": ^4.0.0 - "@smithy/hash-node": ^3.0.8 - "@smithy/invalid-dependency": ^3.0.8 - "@smithy/middleware-content-length": ^3.0.10 - "@smithy/middleware-endpoint": ^3.2.1 - "@smithy/middleware-retry": ^3.0.25 - "@smithy/middleware-serde": ^3.0.8 - "@smithy/middleware-stack": ^3.0.8 - "@smithy/node-config-provider": ^3.1.9 - "@smithy/node-http-handler": ^3.2.5 - "@smithy/protocol-http": ^4.1.5 - "@smithy/smithy-client": ^3.4.2 - "@smithy/types": ^3.6.0 - "@smithy/url-parser": ^3.0.8 + "@aws-sdk/client-sso-oidc": 3.662.0 + "@aws-sdk/client-sts": 3.662.0 + "@aws-sdk/core": 3.662.0 + "@aws-sdk/credential-provider-node": 3.662.0 + "@aws-sdk/middleware-host-header": 3.662.0 + "@aws-sdk/middleware-logger": 3.662.0 + "@aws-sdk/middleware-recursion-detection": 3.662.0 + "@aws-sdk/middleware-sdk-sqs": 3.662.0 + "@aws-sdk/middleware-user-agent": 3.662.0 + "@aws-sdk/region-config-resolver": 3.662.0 + "@aws-sdk/types": 3.662.0 + "@aws-sdk/util-endpoints": 3.662.0 + "@aws-sdk/util-user-agent-browser": 3.662.0 + "@aws-sdk/util-user-agent-node": 3.662.0 + "@smithy/config-resolver": ^3.0.9 + "@smithy/core": ^2.4.7 + "@smithy/fetch-http-handler": ^3.2.9 + "@smithy/hash-node": ^3.0.7 + "@smithy/invalid-dependency": ^3.0.7 + "@smithy/md5-js": ^3.0.7 + "@smithy/middleware-content-length": ^3.0.9 + "@smithy/middleware-endpoint": ^3.1.4 + "@smithy/middleware-retry": ^3.0.22 + "@smithy/middleware-serde": ^3.0.7 + "@smithy/middleware-stack": ^3.0.7 + "@smithy/node-config-provider": ^3.1.8 + "@smithy/node-http-handler": ^3.2.4 + "@smithy/protocol-http": ^4.1.4 + "@smithy/smithy-client": ^3.3.6 + "@smithy/types": ^3.5.0 + "@smithy/url-parser": ^3.0.7 "@smithy/util-base64": ^3.0.0 "@smithy/util-body-length-browser": ^3.0.0 "@smithy/util-body-length-node": ^3.0.0 - "@smithy/util-defaults-mode-browser": ^3.0.25 - "@smithy/util-defaults-mode-node": ^3.0.25 - "@smithy/util-endpoints": ^2.1.4 - "@smithy/util-middleware": ^3.0.8 - "@smithy/util-retry": ^3.0.8 + "@smithy/util-defaults-mode-browser": ^3.0.22 + "@smithy/util-defaults-mode-node": ^3.0.22 + "@smithy/util-endpoints": ^2.1.3 + "@smithy/util-middleware": ^3.0.7 + "@smithy/util-retry": ^3.0.7 "@smithy/util-utf8": ^3.0.0 - "@smithy/util-waiter": ^3.1.7 tslib: ^2.6.2 - checksum: fff9e32911e9dc4bec2cb2e8dc3a619a97ec7c9fd738b286b0ee3f1cc07dbed27452be5fa937fe02e53d3a88bd40c6662961bed192c701a1ba16588c68092851 + checksum: 0fa12ea39c5c5804b754b4ff29c8a54a85623bd88324fdee3f6554114d25e80458b04a587eff8251ce156bd476804d04a06bca3e27f612a0325897c1dba7ffff + languageName: node + linkType: hard + +"@aws-sdk/client-ssm@npm:3.145.0": + version: 3.145.0 + resolution: "@aws-sdk/client-ssm@npm:3.145.0" + dependencies: + "@aws-crypto/sha256-browser": 2.0.0 + "@aws-crypto/sha256-js": 2.0.0 + "@aws-sdk/client-sts": 3.145.0 + "@aws-sdk/config-resolver": 3.130.0 + "@aws-sdk/credential-provider-node": 3.145.0 + "@aws-sdk/fetch-http-handler": 3.131.0 + "@aws-sdk/hash-node": 3.127.0 + "@aws-sdk/invalid-dependency": 3.127.0 + "@aws-sdk/middleware-content-length": 3.127.0 + "@aws-sdk/middleware-host-header": 3.127.0 + "@aws-sdk/middleware-logger": 3.127.0 + "@aws-sdk/middleware-recursion-detection": 3.127.0 + "@aws-sdk/middleware-retry": 3.127.0 + "@aws-sdk/middleware-serde": 3.127.0 + "@aws-sdk/middleware-signing": 3.130.0 + "@aws-sdk/middleware-stack": 3.127.0 + "@aws-sdk/middleware-user-agent": 3.127.0 + "@aws-sdk/node-config-provider": 3.127.0 + "@aws-sdk/node-http-handler": 3.127.0 + "@aws-sdk/protocol-http": 3.127.0 + "@aws-sdk/smithy-client": 3.142.0 + "@aws-sdk/types": 3.127.0 + "@aws-sdk/url-parser": 3.127.0 + "@aws-sdk/util-base64-browser": 3.109.0 + "@aws-sdk/util-base64-node": 3.55.0 + "@aws-sdk/util-body-length-browser": 3.55.0 + "@aws-sdk/util-body-length-node": 3.55.0 + "@aws-sdk/util-defaults-mode-browser": 3.142.0 + "@aws-sdk/util-defaults-mode-node": 3.142.0 + "@aws-sdk/util-user-agent-browser": 3.127.0 + "@aws-sdk/util-user-agent-node": 3.127.0 + "@aws-sdk/util-utf8-browser": 3.109.0 + "@aws-sdk/util-utf8-node": 3.109.0 + "@aws-sdk/util-waiter": 3.127.0 + tslib: ^2.3.1 + uuid: ^8.3.2 + checksum: 695fcad3f61fecffaf3f45f79e9e732bb3f219b1ce1aaf222ccbfc6c55ff9ff2cf3e323be03560dc3628a61748af7f7be51dde178e23e4ac4040de6117145ecb languageName: node linkType: hard -"@aws-sdk/client-sqs@npm:3.687.0": - version: 3.687.0 - resolution: "@aws-sdk/client-sqs@npm:3.687.0" +"@aws-sdk/client-sso-oidc@npm:3.662.0": + version: 3.662.0 + resolution: "@aws-sdk/client-sso-oidc@npm:3.662.0" dependencies: "@aws-crypto/sha256-browser": 5.2.0 "@aws-crypto/sha256-js": 5.2.0 - "@aws-sdk/client-sso-oidc": 3.687.0 - "@aws-sdk/client-sts": 3.687.0 - "@aws-sdk/core": 3.686.0 - "@aws-sdk/credential-provider-node": 3.687.0 - "@aws-sdk/middleware-host-header": 3.686.0 - "@aws-sdk/middleware-logger": 3.686.0 - "@aws-sdk/middleware-recursion-detection": 3.686.0 - "@aws-sdk/middleware-sdk-sqs": 3.686.0 - "@aws-sdk/middleware-user-agent": 3.687.0 - "@aws-sdk/region-config-resolver": 3.686.0 - "@aws-sdk/types": 3.686.0 - "@aws-sdk/util-endpoints": 3.686.0 - "@aws-sdk/util-user-agent-browser": 3.686.0 - "@aws-sdk/util-user-agent-node": 3.687.0 - "@smithy/config-resolver": ^3.0.10 - "@smithy/core": ^2.5.1 - "@smithy/fetch-http-handler": ^4.0.0 - "@smithy/hash-node": ^3.0.8 - "@smithy/invalid-dependency": ^3.0.8 - "@smithy/md5-js": ^3.0.8 - "@smithy/middleware-content-length": ^3.0.10 - "@smithy/middleware-endpoint": ^3.2.1 - "@smithy/middleware-retry": ^3.0.25 - "@smithy/middleware-serde": ^3.0.8 - "@smithy/middleware-stack": ^3.0.8 - "@smithy/node-config-provider": ^3.1.9 - "@smithy/node-http-handler": ^3.2.5 - "@smithy/protocol-http": ^4.1.5 - "@smithy/smithy-client": ^3.4.2 - "@smithy/types": ^3.6.0 - "@smithy/url-parser": ^3.0.8 + "@aws-sdk/core": 3.662.0 + "@aws-sdk/credential-provider-node": 3.662.0 + "@aws-sdk/middleware-host-header": 3.662.0 + "@aws-sdk/middleware-logger": 3.662.0 + "@aws-sdk/middleware-recursion-detection": 3.662.0 + "@aws-sdk/middleware-user-agent": 3.662.0 + "@aws-sdk/region-config-resolver": 3.662.0 + "@aws-sdk/types": 3.662.0 + "@aws-sdk/util-endpoints": 3.662.0 + "@aws-sdk/util-user-agent-browser": 3.662.0 + "@aws-sdk/util-user-agent-node": 3.662.0 + "@smithy/config-resolver": ^3.0.9 + "@smithy/core": ^2.4.7 + "@smithy/fetch-http-handler": ^3.2.9 + "@smithy/hash-node": ^3.0.7 + "@smithy/invalid-dependency": ^3.0.7 + "@smithy/middleware-content-length": ^3.0.9 + "@smithy/middleware-endpoint": ^3.1.4 + "@smithy/middleware-retry": ^3.0.22 + "@smithy/middleware-serde": ^3.0.7 + "@smithy/middleware-stack": ^3.0.7 + "@smithy/node-config-provider": ^3.1.8 + "@smithy/node-http-handler": ^3.2.4 + "@smithy/protocol-http": ^4.1.4 + "@smithy/smithy-client": ^3.3.6 + "@smithy/types": ^3.5.0 + "@smithy/url-parser": ^3.0.7 "@smithy/util-base64": ^3.0.0 "@smithy/util-body-length-browser": ^3.0.0 "@smithy/util-body-length-node": ^3.0.0 - "@smithy/util-defaults-mode-browser": ^3.0.25 - "@smithy/util-defaults-mode-node": ^3.0.25 - "@smithy/util-endpoints": ^2.1.4 - "@smithy/util-middleware": ^3.0.8 - "@smithy/util-retry": ^3.0.8 + "@smithy/util-defaults-mode-browser": ^3.0.22 + "@smithy/util-defaults-mode-node": ^3.0.22 + "@smithy/util-endpoints": ^2.1.3 + "@smithy/util-middleware": ^3.0.7 + "@smithy/util-retry": ^3.0.7 "@smithy/util-utf8": ^3.0.0 tslib: ^2.6.2 - checksum: 506571f865fafe398037c56964d10c411225a94b602ac74ab61dc954896fdfeac7c36019bf4c44986a72406c75f0eb93dda1b3087a8c508ed88d104dd92bf9da + peerDependencies: + "@aws-sdk/client-sts": ^3.662.0 + checksum: e07de0d66691a00e1ac02374f94246d413b92662bf1fc16d69206888f5c4d8bc932b1e381f87c8f20d67556d6698b3a431a9dff1f60fbe3fb722f78b5ac92ff0 + languageName: node + linkType: hard + +"@aws-sdk/client-sso@npm:3.145.0": + version: 3.145.0 + resolution: "@aws-sdk/client-sso@npm:3.145.0" + dependencies: + "@aws-crypto/sha256-browser": 2.0.0 + "@aws-crypto/sha256-js": 2.0.0 + "@aws-sdk/config-resolver": 3.130.0 + "@aws-sdk/fetch-http-handler": 3.131.0 + "@aws-sdk/hash-node": 3.127.0 + "@aws-sdk/invalid-dependency": 3.127.0 + "@aws-sdk/middleware-content-length": 3.127.0 + "@aws-sdk/middleware-host-header": 3.127.0 + "@aws-sdk/middleware-logger": 3.127.0 + "@aws-sdk/middleware-recursion-detection": 3.127.0 + "@aws-sdk/middleware-retry": 3.127.0 + "@aws-sdk/middleware-serde": 3.127.0 + "@aws-sdk/middleware-stack": 3.127.0 + "@aws-sdk/middleware-user-agent": 3.127.0 + "@aws-sdk/node-config-provider": 3.127.0 + "@aws-sdk/node-http-handler": 3.127.0 + "@aws-sdk/protocol-http": 3.127.0 + "@aws-sdk/smithy-client": 3.142.0 + "@aws-sdk/types": 3.127.0 + "@aws-sdk/url-parser": 3.127.0 + "@aws-sdk/util-base64-browser": 3.109.0 + "@aws-sdk/util-base64-node": 3.55.0 + "@aws-sdk/util-body-length-browser": 3.55.0 + "@aws-sdk/util-body-length-node": 3.55.0 + "@aws-sdk/util-defaults-mode-browser": 3.142.0 + "@aws-sdk/util-defaults-mode-node": 3.142.0 + "@aws-sdk/util-user-agent-browser": 3.127.0 + "@aws-sdk/util-user-agent-node": 3.127.0 + "@aws-sdk/util-utf8-browser": 3.109.0 + "@aws-sdk/util-utf8-node": 3.109.0 + tslib: ^2.3.1 + checksum: c50b9ad2a096633d471161744de4a8940326c5357983f68602f8ebbdfe4b47e4b707050a99633b7e2ea0bb2438ce17d19bf22b2abc198e7385518e01d4cf5ca8 languageName: node linkType: hard -"@aws-sdk/client-ssm@npm:3.687.0": - version: 3.687.0 - resolution: "@aws-sdk/client-ssm@npm:3.687.0" +"@aws-sdk/client-sso@npm:3.662.0": + version: 3.662.0 + resolution: "@aws-sdk/client-sso@npm:3.662.0" dependencies: "@aws-crypto/sha256-browser": 5.2.0 "@aws-crypto/sha256-js": 5.2.0 - "@aws-sdk/client-sso-oidc": 3.687.0 - "@aws-sdk/client-sts": 3.687.0 - "@aws-sdk/core": 3.686.0 - "@aws-sdk/credential-provider-node": 3.687.0 - "@aws-sdk/middleware-host-header": 3.686.0 - "@aws-sdk/middleware-logger": 3.686.0 - "@aws-sdk/middleware-recursion-detection": 3.686.0 - "@aws-sdk/middleware-user-agent": 3.687.0 - "@aws-sdk/region-config-resolver": 3.686.0 - "@aws-sdk/types": 3.686.0 - "@aws-sdk/util-endpoints": 3.686.0 - "@aws-sdk/util-user-agent-browser": 3.686.0 - "@aws-sdk/util-user-agent-node": 3.687.0 - "@smithy/config-resolver": ^3.0.10 - "@smithy/core": ^2.5.1 - "@smithy/fetch-http-handler": ^4.0.0 - "@smithy/hash-node": ^3.0.8 - "@smithy/invalid-dependency": ^3.0.8 - "@smithy/middleware-content-length": ^3.0.10 - "@smithy/middleware-endpoint": ^3.2.1 - "@smithy/middleware-retry": ^3.0.25 - "@smithy/middleware-serde": ^3.0.8 - "@smithy/middleware-stack": ^3.0.8 - "@smithy/node-config-provider": ^3.1.9 - "@smithy/node-http-handler": ^3.2.5 - "@smithy/protocol-http": ^4.1.5 - "@smithy/smithy-client": ^3.4.2 - "@smithy/types": ^3.6.0 - "@smithy/url-parser": ^3.0.8 + "@aws-sdk/core": 3.662.0 + "@aws-sdk/middleware-host-header": 3.662.0 + "@aws-sdk/middleware-logger": 3.662.0 + "@aws-sdk/middleware-recursion-detection": 3.662.0 + "@aws-sdk/middleware-user-agent": 3.662.0 + "@aws-sdk/region-config-resolver": 3.662.0 + "@aws-sdk/types": 3.662.0 + "@aws-sdk/util-endpoints": 3.662.0 + "@aws-sdk/util-user-agent-browser": 3.662.0 + "@aws-sdk/util-user-agent-node": 3.662.0 + "@smithy/config-resolver": ^3.0.9 + "@smithy/core": ^2.4.7 + "@smithy/fetch-http-handler": ^3.2.9 + "@smithy/hash-node": ^3.0.7 + "@smithy/invalid-dependency": ^3.0.7 + "@smithy/middleware-content-length": ^3.0.9 + "@smithy/middleware-endpoint": ^3.1.4 + "@smithy/middleware-retry": ^3.0.22 + "@smithy/middleware-serde": ^3.0.7 + "@smithy/middleware-stack": ^3.0.7 + "@smithy/node-config-provider": ^3.1.8 + "@smithy/node-http-handler": ^3.2.4 + "@smithy/protocol-http": ^4.1.4 + "@smithy/smithy-client": ^3.3.6 + "@smithy/types": ^3.5.0 + "@smithy/url-parser": ^3.0.7 "@smithy/util-base64": ^3.0.0 "@smithy/util-body-length-browser": ^3.0.0 "@smithy/util-body-length-node": ^3.0.0 - "@smithy/util-defaults-mode-browser": ^3.0.25 - "@smithy/util-defaults-mode-node": ^3.0.25 - "@smithy/util-endpoints": ^2.1.4 - "@smithy/util-middleware": ^3.0.8 - "@smithy/util-retry": ^3.0.8 + "@smithy/util-defaults-mode-browser": ^3.0.22 + "@smithy/util-defaults-mode-node": ^3.0.22 + "@smithy/util-endpoints": ^2.1.3 + "@smithy/util-middleware": ^3.0.7 + "@smithy/util-retry": ^3.0.7 "@smithy/util-utf8": ^3.0.0 - "@smithy/util-waiter": ^3.1.7 - "@types/uuid": ^9.0.1 tslib: ^2.6.2 - uuid: ^9.0.1 - checksum: 40ec944db43e7749e639f9d338440ba2be65f8b0361b73cafb8c709aa1237b71b9c967bc26bfecb7012c56ce72c5b988e41a48a1d2a65f0b5b6b650adfdfd4df + checksum: f3e14b2b2f162e0898a2b2496a433c2b1d86e5979298aae0ef3fc86d6d996773fe48747d3a12303e1882f39a1d5e227292894f11be234dc547f3eb94f6ae4929 + languageName: node + linkType: hard + +"@aws-sdk/client-sts@npm:3.145.0": + version: 3.145.0 + resolution: "@aws-sdk/client-sts@npm:3.145.0" + dependencies: + "@aws-crypto/sha256-browser": 2.0.0 + "@aws-crypto/sha256-js": 2.0.0 + "@aws-sdk/config-resolver": 3.130.0 + "@aws-sdk/credential-provider-node": 3.145.0 + "@aws-sdk/fetch-http-handler": 3.131.0 + "@aws-sdk/hash-node": 3.127.0 + "@aws-sdk/invalid-dependency": 3.127.0 + "@aws-sdk/middleware-content-length": 3.127.0 + "@aws-sdk/middleware-host-header": 3.127.0 + "@aws-sdk/middleware-logger": 3.127.0 + "@aws-sdk/middleware-recursion-detection": 3.127.0 + "@aws-sdk/middleware-retry": 3.127.0 + "@aws-sdk/middleware-sdk-sts": 3.130.0 + "@aws-sdk/middleware-serde": 3.127.0 + "@aws-sdk/middleware-signing": 3.130.0 + "@aws-sdk/middleware-stack": 3.127.0 + "@aws-sdk/middleware-user-agent": 3.127.0 + "@aws-sdk/node-config-provider": 3.127.0 + "@aws-sdk/node-http-handler": 3.127.0 + "@aws-sdk/protocol-http": 3.127.0 + "@aws-sdk/smithy-client": 3.142.0 + "@aws-sdk/types": 3.127.0 + "@aws-sdk/url-parser": 3.127.0 + "@aws-sdk/util-base64-browser": 3.109.0 + "@aws-sdk/util-base64-node": 3.55.0 + "@aws-sdk/util-body-length-browser": 3.55.0 + "@aws-sdk/util-body-length-node": 3.55.0 + "@aws-sdk/util-defaults-mode-browser": 3.142.0 + "@aws-sdk/util-defaults-mode-node": 3.142.0 + "@aws-sdk/util-user-agent-browser": 3.127.0 + "@aws-sdk/util-user-agent-node": 3.127.0 + "@aws-sdk/util-utf8-browser": 3.109.0 + "@aws-sdk/util-utf8-node": 3.109.0 + entities: 2.2.0 + fast-xml-parser: 3.19.0 + tslib: ^2.3.1 + checksum: 4645c4902e0f32bd1e758ae7868150fd59000bc945979a9224a942c72cbc3418bbada9c21aa7162f7d42a232c0ba89faff948fa3efdbaff863fc89046d90c29d languageName: node linkType: hard -"@aws-sdk/client-sso-oidc@npm:3.687.0": - version: 3.687.0 - resolution: "@aws-sdk/client-sso-oidc@npm:3.687.0" +"@aws-sdk/client-sts@npm:3.662.0": + version: 3.662.0 + resolution: "@aws-sdk/client-sts@npm:3.662.0" dependencies: "@aws-crypto/sha256-browser": 5.2.0 "@aws-crypto/sha256-js": 5.2.0 - "@aws-sdk/core": 3.686.0 - "@aws-sdk/credential-provider-node": 3.687.0 - "@aws-sdk/middleware-host-header": 3.686.0 - "@aws-sdk/middleware-logger": 3.686.0 - "@aws-sdk/middleware-recursion-detection": 3.686.0 - "@aws-sdk/middleware-user-agent": 3.687.0 - "@aws-sdk/region-config-resolver": 3.686.0 - "@aws-sdk/types": 3.686.0 - "@aws-sdk/util-endpoints": 3.686.0 - "@aws-sdk/util-user-agent-browser": 3.686.0 - "@aws-sdk/util-user-agent-node": 3.687.0 - "@smithy/config-resolver": ^3.0.10 - "@smithy/core": ^2.5.1 - "@smithy/fetch-http-handler": ^4.0.0 - "@smithy/hash-node": ^3.0.8 - "@smithy/invalid-dependency": ^3.0.8 - "@smithy/middleware-content-length": ^3.0.10 - "@smithy/middleware-endpoint": ^3.2.1 - "@smithy/middleware-retry": ^3.0.25 - "@smithy/middleware-serde": ^3.0.8 - "@smithy/middleware-stack": ^3.0.8 - "@smithy/node-config-provider": ^3.1.9 - "@smithy/node-http-handler": ^3.2.5 - "@smithy/protocol-http": ^4.1.5 - "@smithy/smithy-client": ^3.4.2 - "@smithy/types": ^3.6.0 - "@smithy/url-parser": ^3.0.8 + "@aws-sdk/client-sso-oidc": 3.662.0 + "@aws-sdk/core": 3.662.0 + "@aws-sdk/credential-provider-node": 3.662.0 + "@aws-sdk/middleware-host-header": 3.662.0 + "@aws-sdk/middleware-logger": 3.662.0 + "@aws-sdk/middleware-recursion-detection": 3.662.0 + "@aws-sdk/middleware-user-agent": 3.662.0 + "@aws-sdk/region-config-resolver": 3.662.0 + "@aws-sdk/types": 3.662.0 + "@aws-sdk/util-endpoints": 3.662.0 + "@aws-sdk/util-user-agent-browser": 3.662.0 + "@aws-sdk/util-user-agent-node": 3.662.0 + "@smithy/config-resolver": ^3.0.9 + "@smithy/core": ^2.4.7 + "@smithy/fetch-http-handler": ^3.2.9 + "@smithy/hash-node": ^3.0.7 + "@smithy/invalid-dependency": ^3.0.7 + "@smithy/middleware-content-length": ^3.0.9 + "@smithy/middleware-endpoint": ^3.1.4 + "@smithy/middleware-retry": ^3.0.22 + "@smithy/middleware-serde": ^3.0.7 + "@smithy/middleware-stack": ^3.0.7 + "@smithy/node-config-provider": ^3.1.8 + "@smithy/node-http-handler": ^3.2.4 + "@smithy/protocol-http": ^4.1.4 + "@smithy/smithy-client": ^3.3.6 + "@smithy/types": ^3.5.0 + "@smithy/url-parser": ^3.0.7 "@smithy/util-base64": ^3.0.0 "@smithy/util-body-length-browser": ^3.0.0 "@smithy/util-body-length-node": ^3.0.0 - "@smithy/util-defaults-mode-browser": ^3.0.25 - "@smithy/util-defaults-mode-node": ^3.0.25 - "@smithy/util-endpoints": ^2.1.4 - "@smithy/util-middleware": ^3.0.8 - "@smithy/util-retry": ^3.0.8 + "@smithy/util-defaults-mode-browser": ^3.0.22 + "@smithy/util-defaults-mode-node": ^3.0.22 + "@smithy/util-endpoints": ^2.1.3 + "@smithy/util-middleware": ^3.0.7 + "@smithy/util-retry": ^3.0.7 "@smithy/util-utf8": ^3.0.0 tslib: ^2.6.2 - peerDependencies: - "@aws-sdk/client-sts": ^3.687.0 - checksum: baa3a4ceb15ba2c88802d61fcbc757b4115cfaae8032ebe4a7cb4bd3790afb78fb291690dce31c0bdf80fc361b69e0e42b43c6bf412a1274844689bf49ac15b7 + checksum: ab718b2e604971e995497220d61d0a19da42af0d01e525c1c77d3b9770f2b5c9ec5a8e73edff12a709f7f80edb765572d0170c8c9103c6dd98a3e9bcfddda450 languageName: node linkType: hard -"@aws-sdk/client-sso@npm:3.687.0": - version: 3.687.0 - resolution: "@aws-sdk/client-sso@npm:3.687.0" +"@aws-sdk/config-resolver@npm:3.130.0": + version: 3.130.0 + resolution: "@aws-sdk/config-resolver@npm:3.130.0" dependencies: - "@aws-crypto/sha256-browser": 5.2.0 - "@aws-crypto/sha256-js": 5.2.0 - "@aws-sdk/core": 3.686.0 - "@aws-sdk/middleware-host-header": 3.686.0 - "@aws-sdk/middleware-logger": 3.686.0 - "@aws-sdk/middleware-recursion-detection": 3.686.0 - "@aws-sdk/middleware-user-agent": 3.687.0 - "@aws-sdk/region-config-resolver": 3.686.0 - "@aws-sdk/types": 3.686.0 - "@aws-sdk/util-endpoints": 3.686.0 - "@aws-sdk/util-user-agent-browser": 3.686.0 - "@aws-sdk/util-user-agent-node": 3.687.0 - "@smithy/config-resolver": ^3.0.10 - "@smithy/core": ^2.5.1 - "@smithy/fetch-http-handler": ^4.0.0 - "@smithy/hash-node": ^3.0.8 - "@smithy/invalid-dependency": ^3.0.8 - "@smithy/middleware-content-length": ^3.0.10 - "@smithy/middleware-endpoint": ^3.2.1 - "@smithy/middleware-retry": ^3.0.25 - "@smithy/middleware-serde": ^3.0.8 - "@smithy/middleware-stack": ^3.0.8 - "@smithy/node-config-provider": ^3.1.9 - "@smithy/node-http-handler": ^3.2.5 - "@smithy/protocol-http": ^4.1.5 - "@smithy/smithy-client": ^3.4.2 - "@smithy/types": ^3.6.0 - "@smithy/url-parser": ^3.0.8 - "@smithy/util-base64": ^3.0.0 - "@smithy/util-body-length-browser": ^3.0.0 - "@smithy/util-body-length-node": ^3.0.0 - "@smithy/util-defaults-mode-browser": ^3.0.25 - "@smithy/util-defaults-mode-node": ^3.0.25 - "@smithy/util-endpoints": ^2.1.4 - "@smithy/util-middleware": ^3.0.8 - "@smithy/util-retry": ^3.0.8 - "@smithy/util-utf8": ^3.0.0 - tslib: ^2.6.2 - checksum: 01c233165ba2ac84d9f288ba11f172afb8a039a37a10b571b8c99c5b9ece99f7b7eb63aa206d3cd9c81d9fb671c63e416af07e7aca04395e89e734a75ca1d5f5 + "@aws-sdk/signature-v4": 3.130.0 + "@aws-sdk/types": 3.127.0 + "@aws-sdk/util-config-provider": 3.109.0 + "@aws-sdk/util-middleware": 3.127.0 + tslib: ^2.3.1 + checksum: 33fa2be1c94fffa2a053a53a2db3402f02493cacade3aff65d70474d404d71c1825c35dd78a3d87f9434b0f4212437bc82f83f10ae7cebdcfcfb0891145ce1ce languageName: node linkType: hard -"@aws-sdk/client-sts@npm:3.687.0": - version: 3.687.0 - resolution: "@aws-sdk/client-sts@npm:3.687.0" +"@aws-sdk/core@npm:3.662.0": + version: 3.662.0 + resolution: "@aws-sdk/core@npm:3.662.0" dependencies: - "@aws-crypto/sha256-browser": 5.2.0 - "@aws-crypto/sha256-js": 5.2.0 - "@aws-sdk/client-sso-oidc": 3.687.0 - "@aws-sdk/core": 3.686.0 - "@aws-sdk/credential-provider-node": 3.687.0 - "@aws-sdk/middleware-host-header": 3.686.0 - "@aws-sdk/middleware-logger": 3.686.0 - "@aws-sdk/middleware-recursion-detection": 3.686.0 - "@aws-sdk/middleware-user-agent": 3.687.0 - "@aws-sdk/region-config-resolver": 3.686.0 - "@aws-sdk/types": 3.686.0 - "@aws-sdk/util-endpoints": 3.686.0 - "@aws-sdk/util-user-agent-browser": 3.686.0 - "@aws-sdk/util-user-agent-node": 3.687.0 - "@smithy/config-resolver": ^3.0.10 - "@smithy/core": ^2.5.1 - "@smithy/fetch-http-handler": ^4.0.0 - "@smithy/hash-node": ^3.0.8 - "@smithy/invalid-dependency": ^3.0.8 - "@smithy/middleware-content-length": ^3.0.10 - "@smithy/middleware-endpoint": ^3.2.1 - "@smithy/middleware-retry": ^3.0.25 - "@smithy/middleware-serde": ^3.0.8 - "@smithy/middleware-stack": ^3.0.8 - "@smithy/node-config-provider": ^3.1.9 - "@smithy/node-http-handler": ^3.2.5 - "@smithy/protocol-http": ^4.1.5 - "@smithy/smithy-client": ^3.4.2 - "@smithy/types": ^3.6.0 - "@smithy/url-parser": ^3.0.8 - "@smithy/util-base64": ^3.0.0 - "@smithy/util-body-length-browser": ^3.0.0 - "@smithy/util-body-length-node": ^3.0.0 - "@smithy/util-defaults-mode-browser": ^3.0.25 - "@smithy/util-defaults-mode-node": ^3.0.25 - "@smithy/util-endpoints": ^2.1.4 - "@smithy/util-middleware": ^3.0.8 - "@smithy/util-retry": ^3.0.8 - "@smithy/util-utf8": ^3.0.0 + "@smithy/core": ^2.4.7 + "@smithy/node-config-provider": ^3.1.8 + "@smithy/property-provider": ^3.1.7 + "@smithy/protocol-http": ^4.1.4 + "@smithy/signature-v4": ^4.2.0 + "@smithy/smithy-client": ^3.3.6 + "@smithy/types": ^3.5.0 + "@smithy/util-middleware": ^3.0.7 + fast-xml-parser: 4.4.1 tslib: ^2.6.2 - checksum: 633ddab42f38b1803cd8bba671273378516d830e7398567076cb86bf1bb5827f722e7f12d03f16603c1e0ec61842f9687d7bfaefbde0737d79dfe50bd1605751 + checksum: 73af26a42cd34f2257762307af42e7e14bc267e21db0b686dc162eaa173dede7c557489078b414e1ac1651e275915d58cd188ec5af2332d3cb0f77508aec24c3 languageName: node linkType: hard -"@aws-sdk/core@npm:3.686.0": - version: 3.686.0 - resolution: "@aws-sdk/core@npm:3.686.0" +"@aws-sdk/credential-provider-env@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/credential-provider-env@npm:3.127.0" dependencies: - "@aws-sdk/types": 3.686.0 - "@smithy/core": ^2.5.1 - "@smithy/node-config-provider": ^3.1.9 - "@smithy/property-provider": ^3.1.7 - "@smithy/protocol-http": ^4.1.5 - "@smithy/signature-v4": ^4.2.0 - "@smithy/smithy-client": ^3.4.2 - "@smithy/types": ^3.6.0 - "@smithy/util-middleware": ^3.0.8 - fast-xml-parser: 4.4.1 - tslib: ^2.6.2 - checksum: c74ea67447efe74dc88a48e9b2c16745503a4323e91ff97a98e56b3ac49d34a0a57a44eed0054559a5c675e20216e02037a761d946fd8053f142f2d3a274c8a8 + "@aws-sdk/property-provider": 3.127.0 + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: e4cc8bd53b67d07f9ff0b1eae9193e8a1bffdc167a49f09d96334476f6d165652a6ff68ba306c044d4ceeb84be4181104f1452d59ff75c7a284a6fde1516556b languageName: node linkType: hard -"@aws-sdk/credential-provider-env@npm:3.686.0": - version: 3.686.0 - resolution: "@aws-sdk/credential-provider-env@npm:3.686.0" +"@aws-sdk/credential-provider-env@npm:3.662.0": + version: 3.662.0 + resolution: "@aws-sdk/credential-provider-env@npm:3.662.0" dependencies: - "@aws-sdk/core": 3.686.0 - "@aws-sdk/types": 3.686.0 + "@aws-sdk/types": 3.662.0 "@smithy/property-provider": ^3.1.7 - "@smithy/types": ^3.6.0 + "@smithy/types": ^3.5.0 tslib: ^2.6.2 - checksum: 2c574da1ce5027998e5672162efa2264cbebb8bed61e1d7f8556aa76e98aeb7a0c6db7bb1edf213331466edcff9001300a6c9733a6d50c862ade6568acb3e8dd + checksum: 17acc6f499c0f3093dac3420620ccad240a5eb4c9706019d9c9dbdbd860627ca6924801f08550443a71955558f4a3821c40c5c539589561b18852b06be9ac8e9 languageName: node linkType: hard -"@aws-sdk/credential-provider-http@npm:3.686.0": - version: 3.686.0 - resolution: "@aws-sdk/credential-provider-http@npm:3.686.0" +"@aws-sdk/credential-provider-http@npm:3.662.0": + version: 3.662.0 + resolution: "@aws-sdk/credential-provider-http@npm:3.662.0" dependencies: - "@aws-sdk/core": 3.686.0 - "@aws-sdk/types": 3.686.0 - "@smithy/fetch-http-handler": ^4.0.0 - "@smithy/node-http-handler": ^3.2.5 + "@aws-sdk/types": 3.662.0 + "@smithy/fetch-http-handler": ^3.2.9 + "@smithy/node-http-handler": ^3.2.4 "@smithy/property-provider": ^3.1.7 - "@smithy/protocol-http": ^4.1.5 - "@smithy/smithy-client": ^3.4.2 - "@smithy/types": ^3.6.0 - "@smithy/util-stream": ^3.2.1 + "@smithy/protocol-http": ^4.1.4 + "@smithy/smithy-client": ^3.3.6 + "@smithy/types": ^3.5.0 + "@smithy/util-stream": ^3.1.9 tslib: ^2.6.2 - checksum: b503ae6c86c7d884e41df75dbe36a58b13ccaa8ca1adb20996311e521d6967b3442f65de6442195d49bbaa868984e9d5579d5cb22c4bd47926a33dd7065a2e09 + checksum: 216b7f32a1663d7a375c181f923051fd10fdb0d9b4db109e1231bbb49fe7cc29232fd34760b317fad7c7523c6fe580032da85a6b059d0e67c27a72319ef18ef7 languageName: node linkType: hard -"@aws-sdk/credential-provider-ini@npm:3.687.0": - version: 3.687.0 - resolution: "@aws-sdk/credential-provider-ini@npm:3.687.0" +"@aws-sdk/credential-provider-imds@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/credential-provider-imds@npm:3.127.0" dependencies: - "@aws-sdk/core": 3.686.0 - "@aws-sdk/credential-provider-env": 3.686.0 - "@aws-sdk/credential-provider-http": 3.686.0 - "@aws-sdk/credential-provider-process": 3.686.0 - "@aws-sdk/credential-provider-sso": 3.687.0 - "@aws-sdk/credential-provider-web-identity": 3.686.0 - "@aws-sdk/types": 3.686.0 + "@aws-sdk/node-config-provider": 3.127.0 + "@aws-sdk/property-provider": 3.127.0 + "@aws-sdk/types": 3.127.0 + "@aws-sdk/url-parser": 3.127.0 + tslib: ^2.3.1 + checksum: f117bd18114cfee7f9a0201cc53244957f489b780ab5f57ef1c9896a9838688ffb9c7d3a4a6db366629aff2f7a99dab95a6b149130ccb0deab25f6fc04cd9edd + languageName: node + linkType: hard + +"@aws-sdk/credential-provider-ini@npm:3.145.0": + version: 3.145.0 + resolution: "@aws-sdk/credential-provider-ini@npm:3.145.0" + dependencies: + "@aws-sdk/credential-provider-env": 3.127.0 + "@aws-sdk/credential-provider-imds": 3.127.0 + "@aws-sdk/credential-provider-sso": 3.145.0 + "@aws-sdk/credential-provider-web-identity": 3.127.0 + "@aws-sdk/property-provider": 3.127.0 + "@aws-sdk/shared-ini-file-loader": 3.127.0 + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: 1899ecf98373a60e4360873fab5ffd7b3f920f4762ff13e1f85ea2efa11e6201d13bd6f649b1090a0a57afbdba87fa3f35f66533bf3b34f8a6629363a6f86a76 + languageName: node + linkType: hard + +"@aws-sdk/credential-provider-ini@npm:3.662.0": + version: 3.662.0 + resolution: "@aws-sdk/credential-provider-ini@npm:3.662.0" + dependencies: + "@aws-sdk/credential-provider-env": 3.662.0 + "@aws-sdk/credential-provider-http": 3.662.0 + "@aws-sdk/credential-provider-process": 3.662.0 + "@aws-sdk/credential-provider-sso": 3.662.0 + "@aws-sdk/credential-provider-web-identity": 3.662.0 + "@aws-sdk/types": 3.662.0 "@smithy/credential-provider-imds": ^3.2.4 "@smithy/property-provider": ^3.1.7 "@smithy/shared-ini-file-loader": ^3.1.8 - "@smithy/types": ^3.6.0 + "@smithy/types": ^3.5.0 tslib: ^2.6.2 peerDependencies: - "@aws-sdk/client-sts": ^3.687.0 - checksum: 1718843c54292b040323c3fd6abc38168f81267f75f11922aa92a8941572a669e59d319902f9af33f2f94c7c37022de3de6d66618bede1476492018e42489327 + "@aws-sdk/client-sts": ^3.662.0 + checksum: 2c64029d2296f733c40cf86f4ed9f3d01dccd4c332cd63755c5af8c5eff6e2efeb6a0d76c33a46dac79fbd59aa4b4308fac9e1cce4c60e59459610d831c2d302 languageName: node linkType: hard -"@aws-sdk/credential-provider-node@npm:3.687.0": - version: 3.687.0 - resolution: "@aws-sdk/credential-provider-node@npm:3.687.0" +"@aws-sdk/credential-provider-node@npm:3.145.0": + version: 3.145.0 + resolution: "@aws-sdk/credential-provider-node@npm:3.145.0" dependencies: - "@aws-sdk/credential-provider-env": 3.686.0 - "@aws-sdk/credential-provider-http": 3.686.0 - "@aws-sdk/credential-provider-ini": 3.687.0 - "@aws-sdk/credential-provider-process": 3.686.0 - "@aws-sdk/credential-provider-sso": 3.687.0 - "@aws-sdk/credential-provider-web-identity": 3.686.0 - "@aws-sdk/types": 3.686.0 + "@aws-sdk/credential-provider-env": 3.127.0 + "@aws-sdk/credential-provider-imds": 3.127.0 + "@aws-sdk/credential-provider-ini": 3.145.0 + "@aws-sdk/credential-provider-process": 3.127.0 + "@aws-sdk/credential-provider-sso": 3.145.0 + "@aws-sdk/credential-provider-web-identity": 3.127.0 + "@aws-sdk/property-provider": 3.127.0 + "@aws-sdk/shared-ini-file-loader": 3.127.0 + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: 3795e31ab3717140df38712d18e1f3fd9ef66dc92943131c0a4cc2b640372463769005e2a943b6ffdac4052773ac77dd45f7fb86d8256e9630936b6536ee3f93 + languageName: node + linkType: hard + +"@aws-sdk/credential-provider-node@npm:3.662.0": + version: 3.662.0 + resolution: "@aws-sdk/credential-provider-node@npm:3.662.0" + dependencies: + "@aws-sdk/credential-provider-env": 3.662.0 + "@aws-sdk/credential-provider-http": 3.662.0 + "@aws-sdk/credential-provider-ini": 3.662.0 + "@aws-sdk/credential-provider-process": 3.662.0 + "@aws-sdk/credential-provider-sso": 3.662.0 + "@aws-sdk/credential-provider-web-identity": 3.662.0 + "@aws-sdk/types": 3.662.0 "@smithy/credential-provider-imds": ^3.2.4 "@smithy/property-provider": ^3.1.7 "@smithy/shared-ini-file-loader": ^3.1.8 - "@smithy/types": ^3.6.0 + "@smithy/types": ^3.5.0 tslib: ^2.6.2 - checksum: fc542feefdf04d81a426d1f9b4e95edab1d087af9fa2e2e77e0b7b0c676040aeac1b6e2631d448691d1e5f7dce5de0ff3e2566e6c2044ddf3b167a652b973288 + checksum: 5b5bd370ac60faccb0d294a826ae46841f14544bb7bc40ff2baad70da8dccc5aec326ebe4fa438eb6333a17faa6937ecce6249cae8912d1152390b42a1353be1 languageName: node linkType: hard -"@aws-sdk/credential-provider-process@npm:3.686.0": - version: 3.686.0 - resolution: "@aws-sdk/credential-provider-process@npm:3.686.0" +"@aws-sdk/credential-provider-process@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/credential-provider-process@npm:3.127.0" dependencies: - "@aws-sdk/core": 3.686.0 - "@aws-sdk/types": 3.686.0 + "@aws-sdk/property-provider": 3.127.0 + "@aws-sdk/shared-ini-file-loader": 3.127.0 + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: 60becf9f7d939c11a7b8aa8b6116c37f7d8069d1049a39404ca1f839771c6da4226e58a0acea3830ec591df3949fe5c703b9cd11e42a4f0b6d4cc54c8b4127dd + languageName: node + linkType: hard + +"@aws-sdk/credential-provider-process@npm:3.662.0": + version: 3.662.0 + resolution: "@aws-sdk/credential-provider-process@npm:3.662.0" + dependencies: + "@aws-sdk/types": 3.662.0 "@smithy/property-provider": ^3.1.7 "@smithy/shared-ini-file-loader": ^3.1.8 - "@smithy/types": ^3.6.0 + "@smithy/types": ^3.5.0 tslib: ^2.6.2 - checksum: 5b73373200c2f1bd5dc79e76507418c0e39902b8b861129a967ac915d89a26fbd4b5e5f068c4b9e96b78666558e9b3572e841be28dd0c10079b4f5148b461239 + checksum: a340b3b0e53c47af9c48c4b31847a291e5a045660d692e3f24ccbd6c65032c889ed56311fcf755bfb35d7abf4861192998734e06efe5b01f9d28e112f59b28f7 + languageName: node + linkType: hard + +"@aws-sdk/credential-provider-sso@npm:3.145.0": + version: 3.145.0 + resolution: "@aws-sdk/credential-provider-sso@npm:3.145.0" + dependencies: + "@aws-sdk/client-sso": 3.145.0 + "@aws-sdk/property-provider": 3.127.0 + "@aws-sdk/shared-ini-file-loader": 3.127.0 + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: 3c59745d1ce896481bcef875e330b0629e70e952398174227eb3d73ff41c6921f0552a7fdfee2a2b1f609dac5d7ec26bfb648af1899dd56b4d8c6c2f90347c22 languageName: node linkType: hard -"@aws-sdk/credential-provider-sso@npm:3.687.0": - version: 3.687.0 - resolution: "@aws-sdk/credential-provider-sso@npm:3.687.0" +"@aws-sdk/credential-provider-sso@npm:3.662.0": + version: 3.662.0 + resolution: "@aws-sdk/credential-provider-sso@npm:3.662.0" dependencies: - "@aws-sdk/client-sso": 3.687.0 - "@aws-sdk/core": 3.686.0 - "@aws-sdk/token-providers": 3.686.0 - "@aws-sdk/types": 3.686.0 + "@aws-sdk/client-sso": 3.662.0 + "@aws-sdk/token-providers": 3.662.0 + "@aws-sdk/types": 3.662.0 "@smithy/property-provider": ^3.1.7 "@smithy/shared-ini-file-loader": ^3.1.8 - "@smithy/types": ^3.6.0 + "@smithy/types": ^3.5.0 tslib: ^2.6.2 - checksum: 27435cc47d5fac002a98bcada8cf28a76cc0569b00e46637b05dd3e45bb6c2dc121969ccca54389864e4064d87607740c036535f65175f5f5e94c1c2410af3f6 + checksum: 7d148d832f62f3af4c297dc7e1efc7488e2b5a55023ce0fd3d31e5f79293ae606f722d983343ef176b1d4ef2b88be62bbbe850aed6f714cdf8e38150201e2be6 + languageName: node + linkType: hard + +"@aws-sdk/credential-provider-web-identity@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/credential-provider-web-identity@npm:3.127.0" + dependencies: + "@aws-sdk/property-provider": 3.127.0 + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: 359bc73eff0593e77e969a5e6506fedd93bd9e32f01043e044a5813dc445f7a5886bfac2676cabfc5c8a913dfc9c71e77fc68dfdd86ec5f1c293a342b42a13ee languageName: node linkType: hard -"@aws-sdk/credential-provider-web-identity@npm:3.686.0": - version: 3.686.0 - resolution: "@aws-sdk/credential-provider-web-identity@npm:3.686.0" +"@aws-sdk/credential-provider-web-identity@npm:3.662.0": + version: 3.662.0 + resolution: "@aws-sdk/credential-provider-web-identity@npm:3.662.0" dependencies: - "@aws-sdk/core": 3.686.0 - "@aws-sdk/types": 3.686.0 + "@aws-sdk/types": 3.662.0 "@smithy/property-provider": ^3.1.7 - "@smithy/types": ^3.6.0 + "@smithy/types": ^3.5.0 tslib: ^2.6.2 peerDependencies: - "@aws-sdk/client-sts": ^3.686.0 - checksum: dbe042d773acb6f51f8be763abb814be038217d1925961afb5c599bb825104d3162e83bc9133e2229a49f335fefebbc9dfd16d88ba3134dbba40de2505c4b9ca + "@aws-sdk/client-sts": ^3.662.0 + checksum: 0d649fe01abf83f4254a6040c1698c38babe23e0a681af22f5f8bea11a30d286017912c33594b6c4a77d63e2cd5931916f8e063580ca2adf4aaf5f6c13becc42 + languageName: node + linkType: hard + +"@aws-sdk/fetch-http-handler@npm:3.131.0": + version: 3.131.0 + resolution: "@aws-sdk/fetch-http-handler@npm:3.131.0" + dependencies: + "@aws-sdk/protocol-http": 3.127.0 + "@aws-sdk/querystring-builder": 3.127.0 + "@aws-sdk/types": 3.127.0 + "@aws-sdk/util-base64-browser": 3.109.0 + tslib: ^2.3.1 + checksum: 7bd5a83b929e59b86058c7a834daa8eedc7eab7a6bdb2016ff8898637c28bf7062830b108a45d70890062aa0f15271501290c18b06926a8af1bcb8d181817600 + languageName: node + linkType: hard + +"@aws-sdk/hash-node@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/hash-node@npm:3.127.0" + dependencies: + "@aws-sdk/types": 3.127.0 + "@aws-sdk/util-buffer-from": 3.55.0 + tslib: ^2.3.1 + checksum: fb07d9cd29cae316a1a4c0cd448489d6e14bd386fa49b08832d015c8bbcc59cad94e21fdd2f74f8dab08e0c01e1e0cddeac47f48d89dc766d10e95a0a62e7a23 languageName: node linkType: hard -"@aws-sdk/lib-storage@npm:3.687.0": - version: 3.687.0 - resolution: "@aws-sdk/lib-storage@npm:3.687.0" +"@aws-sdk/invalid-dependency@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/invalid-dependency@npm:3.127.0" + dependencies: + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: 456b675fd05716050d2dfc325f92918cbd5bbd11c90096673eb7bc66f61ef55021459e893839b8b62ac09ee320ef77924c30cb25530fa1c74b848f3989695fbd + languageName: node + linkType: hard + +"@aws-sdk/is-array-buffer@npm:3.55.0": + version: 3.55.0 + resolution: "@aws-sdk/is-array-buffer@npm:3.55.0" + dependencies: + tslib: ^2.3.1 + checksum: 527481f024166197b84a2b4859b51df9b6da4396255c19832e8fdb2f6dfc914dab8ad89433602f8d797f3f8dacc312ab8a0073b2c8e20dc85a28ad9d27aceaa7 + languageName: node + linkType: hard + +"@aws-sdk/lib-storage@npm:3.662.0": + version: 3.662.0 + resolution: "@aws-sdk/lib-storage@npm:3.662.0" dependencies: "@smithy/abort-controller": ^3.1.5 - "@smithy/middleware-endpoint": ^3.2.1 - "@smithy/smithy-client": ^3.4.2 + "@smithy/middleware-endpoint": ^3.1.4 + "@smithy/smithy-client": ^3.3.6 buffer: 5.6.0 events: 3.3.0 stream-browserify: 3.0.0 tslib: ^2.6.2 peerDependencies: - "@aws-sdk/client-s3": ^3.687.0 - checksum: 48121b1e8253807c949354b14106b615d84f127cf25302aac638d41e41efb2c2adfb1e6d27ef5aeec9b7ca897a36915d7dba037e590624ce0b3db07604a319e4 + "@aws-sdk/client-s3": ^3.662.0 + checksum: f9555d806c22886b564e882b128bee3615dbedc8454c4d71033e3d53f46a9f4525cc5b94f34275e0aa8fb352659940a520f00e58085bbe3c71934907c8126f27 languageName: node linkType: hard -"@aws-sdk/middleware-bucket-endpoint@npm:3.686.0": - version: 3.686.0 - resolution: "@aws-sdk/middleware-bucket-endpoint@npm:3.686.0" +"@aws-sdk/middleware-bucket-endpoint@npm:3.662.0": + version: 3.662.0 + resolution: "@aws-sdk/middleware-bucket-endpoint@npm:3.662.0" dependencies: - "@aws-sdk/types": 3.686.0 - "@aws-sdk/util-arn-parser": 3.679.0 - "@smithy/node-config-provider": ^3.1.9 - "@smithy/protocol-http": ^4.1.5 - "@smithy/types": ^3.6.0 + "@aws-sdk/types": 3.662.0 + "@aws-sdk/util-arn-parser": 3.568.0 + "@smithy/node-config-provider": ^3.1.8 + "@smithy/protocol-http": ^4.1.4 + "@smithy/types": ^3.5.0 "@smithy/util-config-provider": ^3.0.0 tslib: ^2.6.2 - checksum: a90d97439453b15ff088568a04f96a5f3e7928b54ee796e2e3e7e07e750df83ab5fb9ad3f632069b3ac8388e7a0517cb284d30cbe5723fa828bf182b586c03b1 + checksum: c82c7d462dcb0a23692327f3eb69d783ce938a5820d84252755a7fed620b4336c2d9797c282701dd32bdbe2775cd4cb058de390bab3e9ff1016d9d29298fb3cc + languageName: node + linkType: hard + +"@aws-sdk/middleware-content-length@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/middleware-content-length@npm:3.127.0" + dependencies: + "@aws-sdk/protocol-http": 3.127.0 + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: 817f74342e862bb10e871d09cf937d7bb7eb5189b2ec4b8ce7b0657c38c74b5d0b6be8143f6618e037c5a29bef624446dfd5fe0cc0ce8114d87d5eded4778074 languageName: node linkType: hard -"@aws-sdk/middleware-expect-continue@npm:3.686.0": - version: 3.686.0 - resolution: "@aws-sdk/middleware-expect-continue@npm:3.686.0" +"@aws-sdk/middleware-expect-continue@npm:3.662.0": + version: 3.662.0 + resolution: "@aws-sdk/middleware-expect-continue@npm:3.662.0" dependencies: - "@aws-sdk/types": 3.686.0 - "@smithy/protocol-http": ^4.1.5 - "@smithy/types": ^3.6.0 + "@aws-sdk/types": 3.662.0 + "@smithy/protocol-http": ^4.1.4 + "@smithy/types": ^3.5.0 tslib: ^2.6.2 - checksum: 2c58b9f5fb6266dd59e3153dff3729cace0b984fc24addb8c8ba0fe4797799e05de7c3c470899b7c048955287fa910736df99b384bfd67fc54ff82fc76dfde97 + checksum: 2a5867db3b1953abc4ef06c5665756ada105ef8a9a6fa63711d99bc69326b770db0e17e6dba324aed5c1ff3b750917c5944cb5273ccb427c5c3641fb9619fbb1 languageName: node linkType: hard -"@aws-sdk/middleware-flexible-checksums@npm:3.687.0": - version: 3.687.0 - resolution: "@aws-sdk/middleware-flexible-checksums@npm:3.687.0" +"@aws-sdk/middleware-flexible-checksums@npm:3.662.0": + version: 3.662.0 + resolution: "@aws-sdk/middleware-flexible-checksums@npm:3.662.0" dependencies: "@aws-crypto/crc32": 5.2.0 "@aws-crypto/crc32c": 5.2.0 - "@aws-sdk/core": 3.686.0 - "@aws-sdk/types": 3.686.0 + "@aws-sdk/types": 3.662.0 "@smithy/is-array-buffer": ^3.0.0 - "@smithy/node-config-provider": ^3.1.9 - "@smithy/protocol-http": ^4.1.5 - "@smithy/types": ^3.6.0 - "@smithy/util-middleware": ^3.0.8 - "@smithy/util-stream": ^3.2.1 + "@smithy/node-config-provider": ^3.1.8 + "@smithy/protocol-http": ^4.1.4 + "@smithy/types": ^3.5.0 + "@smithy/util-middleware": ^3.0.7 "@smithy/util-utf8": ^3.0.0 tslib: ^2.6.2 - checksum: 12763cbc56f4cfa0d4bbbf2a3c414f7cc1a576d18c476bbd21570769aebf3caa278e672004a44dd8b9b2934457203f51306ab2dc625e10e8fca398d4bce480a0 + checksum: d28a691c8e6a029d19eab2415d78f4a8f4ac7a7ce60effb5593e65152b2955e23cfa66af368bdb8c92aa230824247cb4df1006bcf8d6929207cc65d8cbc2a46d languageName: node linkType: hard -"@aws-sdk/middleware-host-header@npm:3.686.0": - version: 3.686.0 - resolution: "@aws-sdk/middleware-host-header@npm:3.686.0" +"@aws-sdk/middleware-host-header@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/middleware-host-header@npm:3.127.0" dependencies: - "@aws-sdk/types": 3.686.0 - "@smithy/protocol-http": ^4.1.5 - "@smithy/types": ^3.6.0 + "@aws-sdk/protocol-http": 3.127.0 + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: 8ec8a7f7b260c6f3608ba6500586aefd024ac859baaccca9cbea73dfa43fc95cf3a123e369798c6bbd36ed7f3eb36482b5b2a41f46b0eb1416f94d6829e92e9f + languageName: node + linkType: hard + +"@aws-sdk/middleware-host-header@npm:3.662.0": + version: 3.662.0 + resolution: "@aws-sdk/middleware-host-header@npm:3.662.0" + dependencies: + "@aws-sdk/types": 3.662.0 + "@smithy/protocol-http": ^4.1.4 + "@smithy/types": ^3.5.0 tslib: ^2.6.2 - checksum: ed423fadd10061c554be88e2dfe1ba66990dca363903325a114c59f8cc8d44414286360273ab5edf7f8cf7eb95668ff88e4fbebbad1bf6d859410363959e1304 + checksum: 2937810200e43faf0c693acc10ba017b14ff5d9d4d704b4c4d917edc4d512b7b8e46a7c9b510fd4d68c5711f711d177becbe3ffe378faf6b1dd19707e11d6d69 languageName: node linkType: hard -"@aws-sdk/middleware-location-constraint@npm:3.686.0": - version: 3.686.0 - resolution: "@aws-sdk/middleware-location-constraint@npm:3.686.0" +"@aws-sdk/middleware-location-constraint@npm:3.662.0": + version: 3.662.0 + resolution: "@aws-sdk/middleware-location-constraint@npm:3.662.0" dependencies: - "@aws-sdk/types": 3.686.0 - "@smithy/types": ^3.6.0 + "@aws-sdk/types": 3.662.0 + "@smithy/types": ^3.5.0 tslib: ^2.6.2 - checksum: 82e8550edb5e9d2726afa0ca1eef62cb315e3733865b6f436cc289c4b7ed704a22209c1ad89bb18224d56561c2ef3e256ff4800128d8a2b08c39fbbf38e25664 + checksum: 13fbf2f8cde5e7fac5ab5793235a824dd7785d3db75b87466101b6e82d0f2a4728dfe8ea23f51845794049d3de448d8dae3f365449810c5028460fbcd8bc5fdc languageName: node linkType: hard -"@aws-sdk/middleware-logger@npm:3.686.0": - version: 3.686.0 - resolution: "@aws-sdk/middleware-logger@npm:3.686.0" +"@aws-sdk/middleware-logger@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/middleware-logger@npm:3.127.0" dependencies: - "@aws-sdk/types": 3.686.0 - "@smithy/types": ^3.6.0 + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: edc37f262bdab27bd0d1e26ed1ec1656d8257e9b9db58f45ccd0eb9ff9a39f71deb43955a843d440adce73a608a499ce7478780b774b5fb057bc4769dd7ee27d + languageName: node + linkType: hard + +"@aws-sdk/middleware-logger@npm:3.662.0": + version: 3.662.0 + resolution: "@aws-sdk/middleware-logger@npm:3.662.0" + dependencies: + "@aws-sdk/types": 3.662.0 + "@smithy/types": ^3.5.0 tslib: ^2.6.2 - checksum: 513e20d1194fb6d932241c2d6bbf1b6dd1aadd3f9105612f1b381c93dc2bc7057dc0d0a8b25ea5d6354f68fbf218170f2f3dec26daf0a6f5d1134e1d802855a1 + checksum: 6802065adb29f8d31649361c0ec747dbcf458a688fae8599d4abae27a09ec084e0c878b08fb412e0c2543381a86205a239c14ea165c7d5870320293118e1c7f4 languageName: node linkType: hard -"@aws-sdk/middleware-recursion-detection@npm:3.686.0": - version: 3.686.0 - resolution: "@aws-sdk/middleware-recursion-detection@npm:3.686.0" +"@aws-sdk/middleware-recursion-detection@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/middleware-recursion-detection@npm:3.127.0" dependencies: - "@aws-sdk/types": 3.686.0 - "@smithy/protocol-http": ^4.1.5 - "@smithy/types": ^3.6.0 + "@aws-sdk/protocol-http": 3.127.0 + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: dd04f307c4501bc35fef048a748a5d668061725b10d7cc39143404773049687957fa046b406677ce625279c1d2161cba17b0c639cb59579fc091abd06b91a719 + languageName: node + linkType: hard + +"@aws-sdk/middleware-recursion-detection@npm:3.662.0": + version: 3.662.0 + resolution: "@aws-sdk/middleware-recursion-detection@npm:3.662.0" + dependencies: + "@aws-sdk/types": 3.662.0 + "@smithy/protocol-http": ^4.1.4 + "@smithy/types": ^3.5.0 tslib: ^2.6.2 - checksum: fe30ad3d39dbbb2d0b492ee5329ef6e03eeaf59437b4af75aa90129d21fde6a7b0626bed00dd2dfa8b6f27eb44c941828e200471becc9d574526fc36f2484995 + checksum: 77c1efe7224dc75eb8c20033ce9dda74e7f1dd8c46ed6ed31cd9946339e164c100981c368205357311964f1134fe504389a29e8a3317a2caeff712a5fbec0e09 + languageName: node + linkType: hard + +"@aws-sdk/middleware-retry@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/middleware-retry@npm:3.127.0" + dependencies: + "@aws-sdk/protocol-http": 3.127.0 + "@aws-sdk/service-error-classification": 3.127.0 + "@aws-sdk/types": 3.127.0 + "@aws-sdk/util-middleware": 3.127.0 + tslib: ^2.3.1 + uuid: ^8.3.2 + checksum: 314800be7d2cc1f20314ae413c029f31ef47ffc35a0a555944c87ea278ab61dafdf63cdf339effae9de66cbde542f0e25c8c8b3acf2c0d6a9cfbe59b09f646af languageName: node linkType: hard -"@aws-sdk/middleware-sdk-s3@npm:3.687.0": - version: 3.687.0 - resolution: "@aws-sdk/middleware-sdk-s3@npm:3.687.0" +"@aws-sdk/middleware-sdk-s3@npm:3.662.0": + version: 3.662.0 + resolution: "@aws-sdk/middleware-sdk-s3@npm:3.662.0" dependencies: - "@aws-sdk/core": 3.686.0 - "@aws-sdk/types": 3.686.0 - "@aws-sdk/util-arn-parser": 3.679.0 - "@smithy/core": ^2.5.1 - "@smithy/node-config-provider": ^3.1.9 - "@smithy/protocol-http": ^4.1.5 + "@aws-sdk/core": 3.662.0 + "@aws-sdk/types": 3.662.0 + "@aws-sdk/util-arn-parser": 3.568.0 + "@smithy/core": ^2.4.7 + "@smithy/node-config-provider": ^3.1.8 + "@smithy/protocol-http": ^4.1.4 "@smithy/signature-v4": ^4.2.0 - "@smithy/smithy-client": ^3.4.2 - "@smithy/types": ^3.6.0 + "@smithy/smithy-client": ^3.3.6 + "@smithy/types": ^3.5.0 "@smithy/util-config-provider": ^3.0.0 - "@smithy/util-middleware": ^3.0.8 - "@smithy/util-stream": ^3.2.1 + "@smithy/util-middleware": ^3.0.7 + "@smithy/util-stream": ^3.1.9 "@smithy/util-utf8": ^3.0.0 tslib: ^2.6.2 - checksum: 1bc07e76916b85e38bbb9bf3b08799587177262ec2a66e3a4dddbaec09bf80bcb70cc82f2f63d83578e05cd39a3d9a0264394b630c4834ad8488c12fd48f037e + checksum: 1a22792d8a7bd71ecd1e5453f6b56bc309b4524e3599ea578584ebdfefc063b6481afde777e9a55b717be3ce3f06221a5b1043f9a3c6e73a8e01921acc325a86 languageName: node linkType: hard -"@aws-sdk/middleware-sdk-sqs@npm:3.686.0": - version: 3.686.0 - resolution: "@aws-sdk/middleware-sdk-sqs@npm:3.686.0" +"@aws-sdk/middleware-sdk-sqs@npm:3.662.0": + version: 3.662.0 + resolution: "@aws-sdk/middleware-sdk-sqs@npm:3.662.0" dependencies: - "@aws-sdk/types": 3.686.0 - "@smithy/smithy-client": ^3.4.2 - "@smithy/types": ^3.6.0 + "@aws-sdk/types": 3.662.0 + "@smithy/smithy-client": ^3.3.6 + "@smithy/types": ^3.5.0 "@smithy/util-hex-encoding": ^3.0.0 "@smithy/util-utf8": ^3.0.0 tslib: ^2.6.2 - checksum: 23ca2d682a7158d2ce0b1f7d92093a73012304c08f4101f684ce119ffd321b48f7ddca11dd636e181492220f92fe4efd8ddfb1ff18785506eaba5a6e49c81e15 + checksum: 72ec999a8161a426cc367bac1b70c4ded7b0b70cbe7dac3dea55388e30d8c44d0bc344dad3e8ad4e36351c98b9f999e106b06caa34ebc1b9644f8561a3d9f18d + languageName: node + linkType: hard + +"@aws-sdk/middleware-sdk-sts@npm:3.130.0": + version: 3.130.0 + resolution: "@aws-sdk/middleware-sdk-sts@npm:3.130.0" + dependencies: + "@aws-sdk/middleware-signing": 3.130.0 + "@aws-sdk/property-provider": 3.127.0 + "@aws-sdk/protocol-http": 3.127.0 + "@aws-sdk/signature-v4": 3.130.0 + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: 4c83eb02d9b8f0b18d9d24704e660463d9d15cc7881c231a1ad315681e5bdd67f70d413f00ddedbcd8c5ed337df317fa6ce366e5314b4a440269bd44c0fad514 + languageName: node + linkType: hard + +"@aws-sdk/middleware-serde@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/middleware-serde@npm:3.127.0" + dependencies: + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: ff31988f06ef1b1d006ec4231d7dd8e72d60ba43d599952c504a9657308a7a0a7ef0d5610a5e73c58f66b8b168db1235c61d9276a1ef59b7ce9227d3e9eff026 languageName: node linkType: hard -"@aws-sdk/middleware-ssec@npm:3.686.0": - version: 3.686.0 - resolution: "@aws-sdk/middleware-ssec@npm:3.686.0" +"@aws-sdk/middleware-signing@npm:3.130.0": + version: 3.130.0 + resolution: "@aws-sdk/middleware-signing@npm:3.130.0" dependencies: - "@aws-sdk/types": 3.686.0 - "@smithy/types": ^3.6.0 + "@aws-sdk/property-provider": 3.127.0 + "@aws-sdk/protocol-http": 3.127.0 + "@aws-sdk/signature-v4": 3.130.0 + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: 74e4e480a027967cb9b0e060246e98b5d134bcc5509619b57247196337e19ae31273086a9c00bedfcab22982d5d583568b99343e7f3ea7cb5b99a8dbb89c2cde + languageName: node + linkType: hard + +"@aws-sdk/middleware-ssec@npm:3.662.0": + version: 3.662.0 + resolution: "@aws-sdk/middleware-ssec@npm:3.662.0" + dependencies: + "@aws-sdk/types": 3.662.0 + "@smithy/types": ^3.5.0 tslib: ^2.6.2 - checksum: 3aec2e66d16b4941687e5e96217fb8f567e2e2924e4eee22ebdba54d318890d753cefda6ef4b7b74a23565ef2c3f39bf84a52db4c838b432c4b7e31db589ec6b + checksum: fedb69b5119b3e476c59b28b42f675957131d43d12c005ed81c855d69a7256af74ffcf1725e9b152b58f9d510cafb852420410cb6cd2c2546baf4aa7a2e04a56 languageName: node linkType: hard -"@aws-sdk/middleware-user-agent@npm:3.687.0": - version: 3.687.0 - resolution: "@aws-sdk/middleware-user-agent@npm:3.687.0" +"@aws-sdk/middleware-stack@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/middleware-stack@npm:3.127.0" dependencies: - "@aws-sdk/core": 3.686.0 - "@aws-sdk/types": 3.686.0 - "@aws-sdk/util-endpoints": 3.686.0 - "@smithy/core": ^2.5.1 - "@smithy/protocol-http": ^4.1.5 - "@smithy/types": ^3.6.0 + tslib: ^2.3.1 + checksum: 145a44b74681590edc328bb128a8f17af2b13b3e3a0c3bd8803636bafee4370db385fdc132d20ec2b0b331f849a367cb9b8b5ec37b4a705b70156c184ca9f84c + languageName: node + linkType: hard + +"@aws-sdk/middleware-user-agent@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/middleware-user-agent@npm:3.127.0" + dependencies: + "@aws-sdk/protocol-http": 3.127.0 + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: 2967bc7fce3f4e2ec35ee650c4fad897a4bc454884ada00031a302bfdf6d53153332e5171cc760defad2bcd7acadf6549a398bf606674f642573f2786c3741e0 + languageName: node + linkType: hard + +"@aws-sdk/middleware-user-agent@npm:3.662.0": + version: 3.662.0 + resolution: "@aws-sdk/middleware-user-agent@npm:3.662.0" + dependencies: + "@aws-sdk/types": 3.662.0 + "@aws-sdk/util-endpoints": 3.662.0 + "@smithy/protocol-http": ^4.1.4 + "@smithy/types": ^3.5.0 tslib: ^2.6.2 - checksum: ca17d118d34a5149c3a9cf21001e6af02ecf3bbeda167a25ab88f5f3bf156cccc7f271e4870e8aff26152d1e0efab92b43b136ff221b11c6418a1ac105209dc9 + checksum: 20f7b361f907cee3fbd0973bf3256f40c727770b3128aea009881e91cf25305f83e75c0e53348e0efa520cee6cb78ffe4a09ddbdfb9201a657e3398b0d17d919 + languageName: node + linkType: hard + +"@aws-sdk/node-config-provider@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/node-config-provider@npm:3.127.0" + dependencies: + "@aws-sdk/property-provider": 3.127.0 + "@aws-sdk/shared-ini-file-loader": 3.127.0 + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: 733a40d93a45258c8c94702c0c5fcd829c2fcc6e3ec4c3e4d63b77ee1b01ee6591b49216b9acd80388de238603ab0a92dd0e7a09b09c654997873e574e95e4d2 languageName: node linkType: hard -"@aws-sdk/region-config-resolver@npm:3.686.0": - version: 3.686.0 - resolution: "@aws-sdk/region-config-resolver@npm:3.686.0" +"@aws-sdk/node-http-handler@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/node-http-handler@npm:3.127.0" dependencies: - "@aws-sdk/types": 3.686.0 - "@smithy/node-config-provider": ^3.1.9 - "@smithy/types": ^3.6.0 + "@aws-sdk/abort-controller": 3.127.0 + "@aws-sdk/protocol-http": 3.127.0 + "@aws-sdk/querystring-builder": 3.127.0 + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: 55629edb90766ab5e62db4cd3a57751d719ddf79a1ebd9a8221fc9289509589535859337726b8ea942b96bcb356881ac1fc59707b9873270bde36da870092fab + languageName: node + linkType: hard + +"@aws-sdk/property-provider@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/property-provider@npm:3.127.0" + dependencies: + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: e78770762fb0d5d904c0d270266cb9ef580184c0aee25d1df389bff3e66f6c4cfa2c99104488539d22fa642c6102027772b85b42a07c2a90306b0c4751a81698 + languageName: node + linkType: hard + +"@aws-sdk/protocol-http@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/protocol-http@npm:3.127.0" + dependencies: + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: 2d34deb09bd1ba4316945f441f75600aa621d8fa9021c92a91582ac299d857a64572eeb87f7306e3a06c899635dccc717e1353aa290d38665be97487b13038ee + languageName: node + linkType: hard + +"@aws-sdk/querystring-builder@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/querystring-builder@npm:3.127.0" + dependencies: + "@aws-sdk/types": 3.127.0 + "@aws-sdk/util-uri-escape": 3.55.0 + tslib: ^2.3.1 + checksum: ac84867b038c530821987db9fac8aaab20dd4b0d0c9fe78caee2f5dd4e8d5b6a99b8cb7ea7816476b9b13149305aea46a2c176130b586882243a82478de35473 + languageName: node + linkType: hard + +"@aws-sdk/querystring-parser@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/querystring-parser@npm:3.127.0" + dependencies: + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: 1dcb87be1586e21cc4d98653211ab1d4f484c9a8d62be0acfbd8dde3629559e079e3ca67eb20ce6bc17a53262d5d3462eb3d701573380ea216a2dd77088cd2a5 + languageName: node + linkType: hard + +"@aws-sdk/region-config-resolver@npm:3.662.0": + version: 3.662.0 + resolution: "@aws-sdk/region-config-resolver@npm:3.662.0" + dependencies: + "@aws-sdk/types": 3.662.0 + "@smithy/node-config-provider": ^3.1.8 + "@smithy/types": ^3.5.0 "@smithy/util-config-provider": ^3.0.0 - "@smithy/util-middleware": ^3.0.8 + "@smithy/util-middleware": ^3.0.7 tslib: ^2.6.2 - checksum: d9ea4e6715a994874bff6256af3cdf446762e67b3f65d4469ef2d43be8cbb639d5407a00f2254ce41ebf2b556fad31bb49d63083d0047086df831592a0d6d620 + checksum: 68b6d151e46987ec8f15b8ca4a6ae6e22c7594460a566d99a6d82128b2f7886e414d2038ce92de5ff4e2723945d709844c9c474553ff8ab717962beeed47dd61 languageName: node linkType: hard -"@aws-sdk/s3-presigned-post@npm:3.687.0": - version: 3.687.0 - resolution: "@aws-sdk/s3-presigned-post@npm:3.687.0" +"@aws-sdk/s3-presigned-post@npm:3.662.0": + version: 3.662.0 + resolution: "@aws-sdk/s3-presigned-post@npm:3.662.0" dependencies: - "@aws-sdk/client-s3": 3.687.0 - "@aws-sdk/types": 3.686.0 - "@aws-sdk/util-format-url": 3.686.0 - "@smithy/middleware-endpoint": ^3.2.1 + "@aws-sdk/client-s3": 3.662.0 + "@aws-sdk/types": 3.662.0 + "@aws-sdk/util-format-url": 3.662.0 + "@smithy/middleware-endpoint": ^3.1.4 "@smithy/signature-v4": ^4.2.0 - "@smithy/types": ^3.6.0 + "@smithy/types": ^3.5.0 "@smithy/util-hex-encoding": ^3.0.0 "@smithy/util-utf8": ^3.0.0 tslib: ^2.6.2 - checksum: cfa7fe104d8a08cc01aef5dc578c3c4ab79a1c3cded260437d545eb9af05b9776fcc3d759c4ef39f166339287f10bb932a68f3a9eaa6011c48d542ea409a7f74 + checksum: 5514900727f092ae46e7136acacc4baaa6949fc311bdef93b4fc29eb258c44397f2e49719c5b58796d45816242caa15ee3118011c02b8458b0749af910b89f91 languageName: node linkType: hard -"@aws-sdk/s3-request-presigner@npm:3.687.0": - version: 3.687.0 - resolution: "@aws-sdk/s3-request-presigner@npm:3.687.0" +"@aws-sdk/s3-request-presigner@npm:3.662.0": + version: 3.662.0 + resolution: "@aws-sdk/s3-request-presigner@npm:3.662.0" dependencies: - "@aws-sdk/signature-v4-multi-region": 3.687.0 - "@aws-sdk/types": 3.686.0 - "@aws-sdk/util-format-url": 3.686.0 - "@smithy/middleware-endpoint": ^3.2.1 - "@smithy/protocol-http": ^4.1.5 - "@smithy/smithy-client": ^3.4.2 - "@smithy/types": ^3.6.0 + "@aws-sdk/signature-v4-multi-region": 3.662.0 + "@aws-sdk/types": 3.662.0 + "@aws-sdk/util-format-url": 3.662.0 + "@smithy/middleware-endpoint": ^3.1.4 + "@smithy/protocol-http": ^4.1.4 + "@smithy/smithy-client": ^3.3.6 + "@smithy/types": ^3.5.0 tslib: ^2.6.2 - checksum: f4aeab2c7d09685afc2930a44850d82fdcbea5e8075f1fbf19ee1ee6c0c3e51c0c7e74ba02ca83ced29ed3bfd96a43ab5512612126280335029e0140f938cf94 + checksum: 6f8bf09d7cd3cd025a179da8efa6e4ceaf010e1461fdbaf6c1a24e7aa52e4570c39409aeb41ad46c857ede861334373a723fae64efdbe72eb2d705396134b043 + languageName: node + linkType: hard + +"@aws-sdk/service-error-classification@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/service-error-classification@npm:3.127.0" + checksum: dcc743ac7a480edf56eac3861d575819edd5f181f67e603c4f6cc2291ae1f88c116dc2cab19da172a1f7dc5f62195875483c5105ac2f4076ba6caf518ab3867d + languageName: node + linkType: hard + +"@aws-sdk/shared-ini-file-loader@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/shared-ini-file-loader@npm:3.127.0" + dependencies: + tslib: ^2.3.1 + checksum: fa0c8ffa5d42940778b14e8f1d8998605b5d7ea43f3c19cc9dbb02f2d552c35dabc5850a5e6d3f6af68978b2171aaec435c05c648a1ecf1c2fb81fe9a60d9702 languageName: node linkType: hard -"@aws-sdk/signature-v4-multi-region@npm:3.687.0": - version: 3.687.0 - resolution: "@aws-sdk/signature-v4-multi-region@npm:3.687.0" +"@aws-sdk/signature-v4-multi-region@npm:3.662.0": + version: 3.662.0 + resolution: "@aws-sdk/signature-v4-multi-region@npm:3.662.0" dependencies: - "@aws-sdk/middleware-sdk-s3": 3.687.0 - "@aws-sdk/types": 3.686.0 - "@smithy/protocol-http": ^4.1.5 + "@aws-sdk/middleware-sdk-s3": 3.662.0 + "@aws-sdk/types": 3.662.0 + "@smithy/protocol-http": ^4.1.4 "@smithy/signature-v4": ^4.2.0 - "@smithy/types": ^3.6.0 + "@smithy/types": ^3.5.0 tslib: ^2.6.2 - checksum: 3414b17017af3719caadef96fd913763787a769192fd9d0581bfcf1abf3fac4d0b4f9121f7f01675cb7c33aac0f9cd4c495f60078befdf52c5cc6f21e09b70cd + checksum: 386ef9fb02efbeb86c55ac5bf3eb09e60ab38488d640f85c1323da1f7d30ab3a9c6eed0ef1e04190cf099888744efec70bcad7d79fe6da93724694b0d1579ad3 + languageName: node + linkType: hard + +"@aws-sdk/signature-v4@npm:3.130.0": + version: 3.130.0 + resolution: "@aws-sdk/signature-v4@npm:3.130.0" + dependencies: + "@aws-sdk/is-array-buffer": 3.55.0 + "@aws-sdk/types": 3.127.0 + "@aws-sdk/util-hex-encoding": 3.109.0 + "@aws-sdk/util-middleware": 3.127.0 + "@aws-sdk/util-uri-escape": 3.55.0 + tslib: ^2.3.1 + checksum: 10c63fa18db144eda63727006e812b1cd504b49e5c345c94ce45a0b4b072b82f1e5ca964468868a5351b0e795f1b2945bc2f4ef81a9fa2bad26485226958c33d languageName: node linkType: hard -"@aws-sdk/token-providers@npm:3.686.0": - version: 3.686.0 - resolution: "@aws-sdk/token-providers@npm:3.686.0" +"@aws-sdk/smithy-client@npm:3.142.0": + version: 3.142.0 + resolution: "@aws-sdk/smithy-client@npm:3.142.0" dependencies: - "@aws-sdk/types": 3.686.0 + "@aws-sdk/middleware-stack": 3.127.0 + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: e87b04dc11b935ba6ae30d894f28cfb93894d96f19bfaa9f8656cdad85d6daf68f8067493a228e9dc4eee4fc91672254287ce2f37740d895d89806c151785280 + languageName: node + linkType: hard + +"@aws-sdk/token-providers@npm:3.662.0": + version: 3.662.0 + resolution: "@aws-sdk/token-providers@npm:3.662.0" + dependencies: + "@aws-sdk/types": 3.662.0 "@smithy/property-provider": ^3.1.7 "@smithy/shared-ini-file-loader": ^3.1.8 - "@smithy/types": ^3.6.0 + "@smithy/types": ^3.5.0 tslib: ^2.6.2 peerDependencies: - "@aws-sdk/client-sso-oidc": ^3.686.0 - checksum: eae1cf27c76659ca1a802f4c99945cd17faec5310cde1e7cb795c64b7e8539a848a0b5ec906f3261fd2cf9f682fa4e21ab6542c2ebc4eb9655bdc795e653d4be + "@aws-sdk/client-sso-oidc": ^3.662.0 + checksum: b5ea8cdca765a705c4a2659945e399b696c1002ce7113773167e41095ed725780f4eac90bcadd658605580be6682136e75f7fa8665e11847516b96c2de1e074b languageName: node linkType: hard -"@aws-sdk/types@npm:3.686.0": - version: 3.686.0 - resolution: "@aws-sdk/types@npm:3.686.0" - dependencies: - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: 59eda13ad391eb719ebec1cac06755c21d043d71681f1e8ecb3ea39f333c3c7e635bc11967c57d82472c74683be519703219290684d57d594189ca35eb7935cc +"@aws-sdk/types@npm:3.127.0, @aws-sdk/types@npm:^3.1.0": + version: 3.127.0 + resolution: "@aws-sdk/types@npm:3.127.0" + checksum: 35467177421fb180ca73eb85a327c814e3aaee11a8eabbf9f048d58ec4133d7205400ce2e3c3ef70d78a64a2359f1df2926e1a0e6f169a415c2896ff6dfb66d9 languageName: node linkType: hard -"@aws-sdk/types@npm:^3.222.0": +"@aws-sdk/types@npm:3.662.0, @aws-sdk/types@npm:^3.222.0": version: 3.662.0 resolution: "@aws-sdk/types@npm:3.662.0" dependencies: @@ -1583,36 +2066,138 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/util-arn-parser@npm:3.679.0": - version: 3.679.0 - resolution: "@aws-sdk/util-arn-parser@npm:3.679.0" +"@aws-sdk/url-parser@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/url-parser@npm:3.127.0" + dependencies: + "@aws-sdk/querystring-parser": 3.127.0 + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: 5732f51d6fef2d26599cb186e230cd8e99c567f6efd7b3f27dc0ecdb660510a20a3384f00c5edb08d0e8e59fe3bcb5b8e368558aefbff2cf5201eaeb7caefa4a + languageName: node + linkType: hard + +"@aws-sdk/util-arn-parser@npm:3.568.0": + version: 3.568.0 + resolution: "@aws-sdk/util-arn-parser@npm:3.568.0" dependencies: tslib: ^2.6.2 - checksum: b748f2c86da0bcea419d6efaef58670b84e46485d5b39aa92308ebbd7ee11bc8c21a83c973d9a184deb48f251efc82c44e8a4e9f38801c2fb13464bd8b6921fb + checksum: e3c45e5d524a772954d0a33614d397414185b9eb635423d01253cad1c1b9add625798ed9cf23343d156fae89c701f484bc062ab673f67e2e2edfe362fde6d170 + languageName: node + linkType: hard + +"@aws-sdk/util-base64-browser@npm:3.109.0": + version: 3.109.0 + resolution: "@aws-sdk/util-base64-browser@npm:3.109.0" + dependencies: + tslib: ^2.3.1 + checksum: e4fb1dc0e5ac60320d4ba05dcf03b8e641c7a304f918df3134bf46c8ccf5b09d07ee283924a4cc4e9250fef582a2636bb4dac6ba71ee36662b2678dfe49d46b2 + languageName: node + linkType: hard + +"@aws-sdk/util-base64-node@npm:3.55.0": + version: 3.55.0 + resolution: "@aws-sdk/util-base64-node@npm:3.55.0" + dependencies: + "@aws-sdk/util-buffer-from": 3.55.0 + tslib: ^2.3.1 + checksum: 4a2a58ae2e5d2d904271dd0433b9c15ca9a8e9d62e979c82159420ab8e1b573e96c8f223c951be2139cdfe49a09c478d165eff9468978883c4c5bcdfa7d9fd4b + languageName: node + linkType: hard + +"@aws-sdk/util-body-length-browser@npm:3.55.0": + version: 3.55.0 + resolution: "@aws-sdk/util-body-length-browser@npm:3.55.0" + dependencies: + tslib: ^2.3.1 + checksum: f10c9e1f052da751e762e807f23b768052e5d375d7e048d596ee1d607065ff0c0ef7004bd4fd136848b6a5646c1c69e43860aa7a3da80d90023b749530faad59 + languageName: node + linkType: hard + +"@aws-sdk/util-body-length-node@npm:3.55.0": + version: 3.55.0 + resolution: "@aws-sdk/util-body-length-node@npm:3.55.0" + dependencies: + tslib: ^2.3.1 + checksum: 35ae66271b7160c53b344a2bd933b5882e9fcef4a47c579a2a9e313657da8b896ca6c674489767f75d148ea5ffb8cbde2127eae55f5f39aaa4823a7c1d98ec69 + languageName: node + linkType: hard + +"@aws-sdk/util-buffer-from@npm:3.55.0": + version: 3.55.0 + resolution: "@aws-sdk/util-buffer-from@npm:3.55.0" + dependencies: + "@aws-sdk/is-array-buffer": 3.55.0 + tslib: ^2.3.1 + checksum: 0c1d72cf2369c13a8bff7d990f8e8da7f5584dcbdf1965cf50674d531b42d80661eebdbbaf968d6932760fc3f5708374a676d05485a1d02347655ea5f2423f57 + languageName: node + linkType: hard + +"@aws-sdk/util-config-provider@npm:3.109.0": + version: 3.109.0 + resolution: "@aws-sdk/util-config-provider@npm:3.109.0" + dependencies: + tslib: ^2.3.1 + checksum: 99c9ef24faa555a317b46b782e211474dd9d666611e1aa76b963e93a6e7c54e32d5c20b87d9a601b9de68dfa1c7310d72667a74c335b31edb776e8494e2541af languageName: node linkType: hard -"@aws-sdk/util-endpoints@npm:3.686.0": - version: 3.686.0 - resolution: "@aws-sdk/util-endpoints@npm:3.686.0" +"@aws-sdk/util-defaults-mode-browser@npm:3.142.0": + version: 3.142.0 + resolution: "@aws-sdk/util-defaults-mode-browser@npm:3.142.0" dependencies: - "@aws-sdk/types": 3.686.0 - "@smithy/types": ^3.6.0 - "@smithy/util-endpoints": ^2.1.4 + "@aws-sdk/property-provider": 3.127.0 + "@aws-sdk/types": 3.127.0 + bowser: ^2.11.0 + tslib: ^2.3.1 + checksum: 6ead8f767c2dcc0e21be180784a9ca5b57daa905a426fac0d0aa12f79f026d2da55d83c8b29cbec5c6e7adaccad8219b300dc30913808770ff7a20f2aa45be15 + languageName: node + linkType: hard + +"@aws-sdk/util-defaults-mode-node@npm:3.142.0": + version: 3.142.0 + resolution: "@aws-sdk/util-defaults-mode-node@npm:3.142.0" + dependencies: + "@aws-sdk/config-resolver": 3.130.0 + "@aws-sdk/credential-provider-imds": 3.127.0 + "@aws-sdk/node-config-provider": 3.127.0 + "@aws-sdk/property-provider": 3.127.0 + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: 6025ea3359a16a312d1b9bdedc761f4eabd59d274bc96290514c3d8107e89da8c365db6bc23b4fb5143de5faa89ac082d435cbc655ca4457a6d9384a4bd5b643 + languageName: node + linkType: hard + +"@aws-sdk/util-endpoints@npm:3.662.0": + version: 3.662.0 + resolution: "@aws-sdk/util-endpoints@npm:3.662.0" + dependencies: + "@aws-sdk/types": 3.662.0 + "@smithy/types": ^3.5.0 + "@smithy/util-endpoints": ^2.1.3 tslib: ^2.6.2 - checksum: b6bfb0edba2b98dbb3004378d5ddcd455a506bcb68f5f40ddd1a807ff265c46cf3fa183f9aa8b987e9db7cb286c6d9b3d3a43bc625ea8a6e469392d7844fee06 + checksum: 4cafb100640e551d7ec4d37d1c080de2551581ad008bf55532b6841852358545013e6a42309f669222fd892e0e95cc34a9d0e9a6cb5d999c5c76233cfe02d38a languageName: node linkType: hard -"@aws-sdk/util-format-url@npm:3.686.0": - version: 3.686.0 - resolution: "@aws-sdk/util-format-url@npm:3.686.0" +"@aws-sdk/util-format-url@npm:3.662.0": + version: 3.662.0 + resolution: "@aws-sdk/util-format-url@npm:3.662.0" dependencies: - "@aws-sdk/types": 3.686.0 - "@smithy/querystring-builder": ^3.0.8 - "@smithy/types": ^3.6.0 + "@aws-sdk/types": 3.662.0 + "@smithy/querystring-builder": ^3.0.7 + "@smithy/types": ^3.5.0 tslib: ^2.6.2 - checksum: ce1abedb7a94d6c9a2cae601ce9c7d9855d40d885e74617ad5c67ab426fa5ee267d0b475587cbdddeea9171558d6bb70c2e1a77fc7d2e59463b2508d1ca9be45 + checksum: 4cd2fbb441dab18ec0352475c6c7abaa27268c726b3936e7929e7f3c06402acccf88a9dde5fc1a21cb7a44148ae659fa225c9e4fd3a08da43552903b9f1cb550 + languageName: node + linkType: hard + +"@aws-sdk/util-hex-encoding@npm:3.109.0": + version: 3.109.0 + resolution: "@aws-sdk/util-hex-encoding@npm:3.109.0" + dependencies: + tslib: ^2.3.1 + checksum: 1c166b53d7f84c0271cb71da8ac0ef4a9bfd78f2d2d70e4a903921dd3c355a79a446fa66ff64522d87aa9c738f445fdfd527043980bea642ae3acbc7dd758edf languageName: node linkType: hard @@ -1625,43 +2210,117 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/util-user-agent-browser@npm:3.686.0": - version: 3.686.0 - resolution: "@aws-sdk/util-user-agent-browser@npm:3.686.0" +"@aws-sdk/util-middleware@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/util-middleware@npm:3.127.0" dependencies: - "@aws-sdk/types": 3.686.0 - "@smithy/types": ^3.6.0 + tslib: ^2.3.1 + checksum: c845b1bf6339cdee9762f41c3578fafb780bf5341037d3381c4dc799ac31626031de2a80735a5edaf260da655b1ef054a950dda552aedeed4188dfe42c717e83 + languageName: node + linkType: hard + +"@aws-sdk/util-uri-escape@npm:3.55.0": + version: 3.55.0 + resolution: "@aws-sdk/util-uri-escape@npm:3.55.0" + dependencies: + tslib: ^2.3.1 + checksum: fad6780856f2b42a11ce7bb1e2ea5b7a966a8f564f3d09e83dca024291ae589a0cb2a1d294812cd626346addeb292c178f84867e40f8fab6fca067bc42ad360a + languageName: node + linkType: hard + +"@aws-sdk/util-user-agent-browser@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/util-user-agent-browser@npm:3.127.0" + dependencies: + "@aws-sdk/types": 3.127.0 + bowser: ^2.11.0 + tslib: ^2.3.1 + checksum: 42f08784b3f6f535516467e60897330e23b853e9ce134e9095170ef36c715aa04017b066fddf2b4830438bb00b630e7895dfcfbfaaa4d8de63d9983d9f205e25 + languageName: node + linkType: hard + +"@aws-sdk/util-user-agent-browser@npm:3.662.0": + version: 3.662.0 + resolution: "@aws-sdk/util-user-agent-browser@npm:3.662.0" + dependencies: + "@aws-sdk/types": 3.662.0 + "@smithy/types": ^3.5.0 bowser: ^2.11.0 tslib: ^2.6.2 - checksum: 8a86a1123583f1cfbe3c0680222110786867cc6db2cc5583a08fc952483fc5147072e366033628cf88e224ddd3fb76cc8779f5716ccbafbfa09492a2e9b206d1 + checksum: 46ff3751f5881038348dd3c56bd67536176b60162cf518d013968b443018d449de81748c4774900e5b7c78d47b0750e1a1cd0d6c34d95d51858f99f2820bc24c languageName: node linkType: hard -"@aws-sdk/util-user-agent-node@npm:3.687.0": - version: 3.687.0 - resolution: "@aws-sdk/util-user-agent-node@npm:3.687.0" +"@aws-sdk/util-user-agent-node@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/util-user-agent-node@npm:3.127.0" dependencies: - "@aws-sdk/middleware-user-agent": 3.687.0 - "@aws-sdk/types": 3.686.0 - "@smithy/node-config-provider": ^3.1.9 - "@smithy/types": ^3.6.0 + "@aws-sdk/node-config-provider": 3.127.0 + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + peerDependencies: + aws-crt: ">=1.0.0" + peerDependenciesMeta: + aws-crt: + optional: true + checksum: bba9cce7a775a3985b97960d64990d1b18ee39f0fdebcebd8d63f3eb951fe41f6808b9272ddafde2a4366f9e041bd10aec74aa8dba33d70101458dc8ce086ccf + languageName: node + linkType: hard + +"@aws-sdk/util-user-agent-node@npm:3.662.0": + version: 3.662.0 + resolution: "@aws-sdk/util-user-agent-node@npm:3.662.0" + dependencies: + "@aws-sdk/types": 3.662.0 + "@smithy/node-config-provider": ^3.1.8 + "@smithy/types": ^3.5.0 tslib: ^2.6.2 peerDependencies: aws-crt: ">=1.0.0" peerDependenciesMeta: aws-crt: optional: true - checksum: 2c6f282565e020dddee81eb1ebe020ca27289b4018ec2d6af8810d947a38323a51069d6b24fb9d67e67bdeed5539fcb8db9b91b4833e3ef02c640166ad31c3cf + checksum: 46f08df64ba7d406b409703ae39e395eab35d43f21ca1c4df4e4f8462b10fe8a94842a8a22cc78bc8c2b1ebdf09b6fde4cf5eae0afa94be1f5e463cc88e50e0c languageName: node linkType: hard -"@aws-sdk/xml-builder@npm:3.686.0": - version: 3.686.0 - resolution: "@aws-sdk/xml-builder@npm:3.686.0" +"@aws-sdk/util-utf8-browser@npm:3.109.0, @aws-sdk/util-utf8-browser@npm:^3.0.0": + version: 3.109.0 + resolution: "@aws-sdk/util-utf8-browser@npm:3.109.0" dependencies: - "@smithy/types": ^3.6.0 + tslib: ^2.3.1 + checksum: 8311763b04261dab5995ec67abf31795f41e9c4b1ad635ed305735e14c7e3bc48e9ae349a06aab485390358a6a58e97190144ea51190983cec4ae665887b219b + languageName: node + linkType: hard + +"@aws-sdk/util-utf8-node@npm:3.109.0": + version: 3.109.0 + resolution: "@aws-sdk/util-utf8-node@npm:3.109.0" + dependencies: + "@aws-sdk/util-buffer-from": 3.55.0 + tslib: ^2.3.1 + checksum: ef706db8c0ceb014bc2fb9e5045b54369160648a9e919836132f98c5537eda82193f400fab607783ecf98a5df11b66c32256c4f2780bc689d7507ddaf2a0977b + languageName: node + linkType: hard + +"@aws-sdk/util-waiter@npm:3.127.0": + version: 3.127.0 + resolution: "@aws-sdk/util-waiter@npm:3.127.0" + dependencies: + "@aws-sdk/abort-controller": 3.127.0 + "@aws-sdk/types": 3.127.0 + tslib: ^2.3.1 + checksum: 3c27de00e943409a1fb927e450ecb7bd83cd6eb6329e0fbf51f20bd657a35571f181074f2ca1b612f87c07844be53129bf868c4acd4c734e22313197e6c70b1e + languageName: node + linkType: hard + +"@aws-sdk/xml-builder@npm:3.662.0": + version: 3.662.0 + resolution: "@aws-sdk/xml-builder@npm:3.662.0" + dependencies: + "@smithy/types": ^3.5.0 tslib: ^2.6.2 - checksum: c6d6b0d1238786b7435f5432cadda837861db9b3bebc137f6159ba591d5e47a2640148adce32a3e15a894c37147b4f9a29984477c9de539b1f1739bdc97d1869 + checksum: 4571dfe225133ccad480b20cf3f0887386e90579608b524e4e84447c1e995aea1df8d6ec0ce82e7d121ad3f0d9d94c6a85a2ce9db22440da46f3bcb3fb7351d7 languageName: node linkType: hard @@ -17201,16 +17860,6 @@ __metadata: languageName: node linkType: hard -"@smithy/abort-controller@npm:^1.0.1": - version: 1.1.0 - resolution: "@smithy/abort-controller@npm:1.1.0" - dependencies: - "@smithy/types": ^1.2.0 - tslib: ^2.5.0 - checksum: 4299368f0b7dbeb8ffba00632b191ec39113fa9b9d29c3ff33c54d5a8663d42d769aa5d79ecd656fe8d09ccb23a7351095305524c27c5650ec7f96a312e5e522 - languageName: node - linkType: hard - "@smithy/abort-controller@npm:^3.1.5": version: 3.1.5 resolution: "@smithy/abort-controller@npm:3.1.5" @@ -17221,61 +17870,53 @@ __metadata: languageName: node linkType: hard -"@smithy/abort-controller@npm:^3.1.6": - version: 3.1.6 - resolution: "@smithy/abort-controller@npm:3.1.6" - dependencies: - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: abba34cc47b6f7951402da1f94465616b84dedf55e0b0467b53f7848b9cb3e82b94869fa637278aa2f65809613e872582791053fd23299e026edada4a5ec1c1c - languageName: node - linkType: hard - -"@smithy/chunked-blob-reader-native@npm:^3.0.1": - version: 3.0.1 - resolution: "@smithy/chunked-blob-reader-native@npm:3.0.1" +"@smithy/chunked-blob-reader-native@npm:^3.0.0": + version: 3.0.0 + resolution: "@smithy/chunked-blob-reader-native@npm:3.0.0" dependencies: "@smithy/util-base64": ^3.0.0 tslib: ^2.6.2 - checksum: b133aebc7662923f88eb859acf3dee95d54fb99effef3ed34384e137d479a8e88549f7888d037919f2821480689ea57892c9d7eeb730fa622ee9f55e3bb9a684 + checksum: f97c0c0ce5e9bd2350883df3c232311aa82eb87eb387125f685900326f86fc3aca208e9004291f742f6978abf91a0c1112cc9a803cd0caf0dffbcfa9b6d0239e languageName: node linkType: hard -"@smithy/chunked-blob-reader@npm:^4.0.0": - version: 4.0.0 - resolution: "@smithy/chunked-blob-reader@npm:4.0.0" +"@smithy/chunked-blob-reader@npm:^3.0.0": + version: 3.0.0 + resolution: "@smithy/chunked-blob-reader@npm:3.0.0" dependencies: tslib: ^2.6.2 - checksum: 45107be7b56efc598e445bf73e45694be10b933dcd5c0c38910311c463eff473e1eb82452b11ed6772986b518565ee8f3bec68cdfefe7c4a9a0c4b9968b582d8 + checksum: 6f520884ade14f1073adb640db2f03eb22a9920f342f37958df3e98327890b741cd909b16cbbc6f70c6c8dd250d6b3a8d76841b685d4871b0403f309267def4f languageName: node linkType: hard -"@smithy/config-resolver@npm:^3.0.10": - version: 3.0.10 - resolution: "@smithy/config-resolver@npm:3.0.10" +"@smithy/config-resolver@npm:^3.0.9": + version: 3.0.9 + resolution: "@smithy/config-resolver@npm:3.0.9" dependencies: - "@smithy/node-config-provider": ^3.1.9 - "@smithy/types": ^3.6.0 + "@smithy/node-config-provider": ^3.1.8 + "@smithy/types": ^3.5.0 "@smithy/util-config-provider": ^3.0.0 - "@smithy/util-middleware": ^3.0.8 + "@smithy/util-middleware": ^3.0.7 tslib: ^2.6.2 - checksum: 55c2355db7eabfd70f0bf288d58cb0238f43b754d91f46febf7fd04617e6107d26e2899ede2b37fbd977980bb12fdbdb688fc5f53654202e946fe3c258cef5d1 + checksum: 87e61be2ae1690a69974c0860d455a87c696c2da163384d22b582ee0fbee322b73f5d69dea754a2d8681d1b70fd4b0ca8d993ecb13eecf54f28ba3ffabfa0c40 languageName: node linkType: hard -"@smithy/core@npm:^2.5.1": - version: 2.5.1 - resolution: "@smithy/core@npm:2.5.1" +"@smithy/core@npm:^2.4.7": + version: 2.4.7 + resolution: "@smithy/core@npm:2.4.7" dependencies: - "@smithy/middleware-serde": ^3.0.8 - "@smithy/protocol-http": ^4.1.5 - "@smithy/types": ^3.6.0 + "@smithy/middleware-endpoint": ^3.1.4 + "@smithy/middleware-retry": ^3.0.22 + "@smithy/middleware-serde": ^3.0.7 + "@smithy/protocol-http": ^4.1.4 + "@smithy/smithy-client": ^3.3.6 + "@smithy/types": ^3.5.0 "@smithy/util-body-length-browser": ^3.0.0 - "@smithy/util-middleware": ^3.0.8 - "@smithy/util-stream": ^3.2.1 + "@smithy/util-middleware": ^3.0.7 "@smithy/util-utf8": ^3.0.0 tslib: ^2.6.2 - checksum: 9175f48eca64f6b304335e32e09c6276aadf7d26cb9180da0a120a2b07c12d8dbe51de2ccce78e98c60729ce4eefe28e7ca95c169432a8049560564d780d1a81 + checksum: da0ed899f2e64f4221a943f2c641a81df955316639cb52ecf3fa99b3e0fcde447a531aa9e58f959cc153ef78ec562fcc6f9b41261f8f331585583f1efa51efa5 languageName: node linkType: hard @@ -17292,129 +17933,116 @@ __metadata: languageName: node linkType: hard -"@smithy/credential-provider-imds@npm:^3.2.5": - version: 3.2.5 - resolution: "@smithy/credential-provider-imds@npm:3.2.5" - dependencies: - "@smithy/node-config-provider": ^3.1.9 - "@smithy/property-provider": ^3.1.8 - "@smithy/types": ^3.6.0 - "@smithy/url-parser": ^3.0.8 - tslib: ^2.6.2 - checksum: 4c8941e3c3806f605930c31e461b0b0fd6384f782c7df92b35e30581eca02d7c4c6d6f2b1c5cdb08fcf4823d98f0ceadc8481def968f1266f761df5dac672d8f - languageName: node - linkType: hard - -"@smithy/eventstream-codec@npm:^3.1.7": - version: 3.1.7 - resolution: "@smithy/eventstream-codec@npm:3.1.7" +"@smithy/eventstream-codec@npm:^3.1.6": + version: 3.1.6 + resolution: "@smithy/eventstream-codec@npm:3.1.6" dependencies: "@aws-crypto/crc32": 5.2.0 - "@smithy/types": ^3.6.0 + "@smithy/types": ^3.5.0 "@smithy/util-hex-encoding": ^3.0.0 tslib: ^2.6.2 - checksum: e0a3b187e984ca6a248dbd591f9c4d5b981df5018c46c4cb9ebf47cf5f354be124471a121e9dc9c25ce80e089f2ed5847a15666e89c83327d7e25ea4d46fb92e + checksum: 9b7ec78dd0b15c2950d5f89c1240adda5240cab252ecd0e68ed55ac4da5fca4802b237341d42e8fc638c4db93f31459c40c7eb79d8dfc0446e2a925c3fdc1ba2 languageName: node linkType: hard -"@smithy/eventstream-serde-browser@npm:^3.0.11": - version: 3.0.11 - resolution: "@smithy/eventstream-serde-browser@npm:3.0.11" +"@smithy/eventstream-serde-browser@npm:^3.0.10": + version: 3.0.10 + resolution: "@smithy/eventstream-serde-browser@npm:3.0.10" dependencies: - "@smithy/eventstream-serde-universal": ^3.0.10 - "@smithy/types": ^3.6.0 + "@smithy/eventstream-serde-universal": ^3.0.9 + "@smithy/types": ^3.5.0 tslib: ^2.6.2 - checksum: ca430cd9541889f1e22a508247c52f84387b51c1c580bdd7acd93ca74347bcaaf1cdfbf04709ce3667afcfa0e3602bbfcb018a6290b3966411a3aa48a38f3aa7 + checksum: 292382ae41f5ca0d9d6b1791de2d7d91f93c6957c08ac7179b91d05afa1f116c754b260def0ead1d23ea8fd0f4359969db024470b74be976edadc69c931cb254 languageName: node linkType: hard -"@smithy/eventstream-serde-config-resolver@npm:^3.0.8": - version: 3.0.8 - resolution: "@smithy/eventstream-serde-config-resolver@npm:3.0.8" +"@smithy/eventstream-serde-config-resolver@npm:^3.0.7": + version: 3.0.7 + resolution: "@smithy/eventstream-serde-config-resolver@npm:3.0.7" dependencies: - "@smithy/types": ^3.6.0 + "@smithy/types": ^3.5.0 tslib: ^2.6.2 - checksum: 44da1b399e296c713643e60ff7fbd34a62c8bba147ea515e6ba98293df11275b62ada04307750d8f8015f717bbe13d317453f47e0d02dc714debc4e043eb7105 + checksum: c1762b21c665a580bb3c89e8811e9b0a22122ebd8633db2a78693f40910b5788c3e5603c905773bec6a1a72bf0e9785a4c011fded658f6f6f2ba616fc4ac5dd6 languageName: node linkType: hard -"@smithy/eventstream-serde-node@npm:^3.0.10": - version: 3.0.10 - resolution: "@smithy/eventstream-serde-node@npm:3.0.10" +"@smithy/eventstream-serde-node@npm:^3.0.9": + version: 3.0.9 + resolution: "@smithy/eventstream-serde-node@npm:3.0.9" dependencies: - "@smithy/eventstream-serde-universal": ^3.0.10 - "@smithy/types": ^3.6.0 + "@smithy/eventstream-serde-universal": ^3.0.9 + "@smithy/types": ^3.5.0 tslib: ^2.6.2 - checksum: 8e8f71bfa25d017f7914ad74258cf5f8c68a6bdc33ab32b126d95e0cb7ea796488d06405695f90e8af90668302e282ac8d4e66e70eca48d92d0cfa3b8e9592f2 + checksum: 3f5dd216366f461d99c9100215d7e122fccf32ae78ffb6a5164277363ed1510c087bfcb3a31731f48368c179f57ea9b46ae2a19bbe3562da07cd6ada06a47e9c languageName: node linkType: hard -"@smithy/eventstream-serde-universal@npm:^3.0.10": - version: 3.0.10 - resolution: "@smithy/eventstream-serde-universal@npm:3.0.10" +"@smithy/eventstream-serde-universal@npm:^3.0.9": + version: 3.0.9 + resolution: "@smithy/eventstream-serde-universal@npm:3.0.9" dependencies: - "@smithy/eventstream-codec": ^3.1.7 - "@smithy/types": ^3.6.0 + "@smithy/eventstream-codec": ^3.1.6 + "@smithy/types": ^3.5.0 tslib: ^2.6.2 - checksum: ee3717312841438f5e173866475f47aa7a56a9426657bc89fffc497c15356617688ed17d6a09533918c11fbff68ce6f7998fd9d746030a9bc25a5e353ca8e9c0 + checksum: d247fdb9155063af562123dd1970f8d17a1871c3793355fc86c875bf3088aca44e6f3b17a704f4d9331a84ac9811b4592e3ecab54a90e600d6e717fc9f6781c6 languageName: node linkType: hard -"@smithy/fetch-http-handler@npm:^4.0.0": - version: 4.0.0 - resolution: "@smithy/fetch-http-handler@npm:4.0.0" +"@smithy/fetch-http-handler@npm:^3.2.9": + version: 3.2.9 + resolution: "@smithy/fetch-http-handler@npm:3.2.9" dependencies: - "@smithy/protocol-http": ^4.1.5 - "@smithy/querystring-builder": ^3.0.8 - "@smithy/types": ^3.6.0 + "@smithy/protocol-http": ^4.1.4 + "@smithy/querystring-builder": ^3.0.7 + "@smithy/types": ^3.5.0 "@smithy/util-base64": ^3.0.0 tslib: ^2.6.2 - checksum: 43fc88515227e0d66b6b6a56a8e7a7f9c9690b32c51265859d40c1f4ace3a8a9ebba78e095715fe85a508d32c4f237c09f722e1e0c86d15a3fc81edc961a5051 + checksum: 3b8eed12bff9d39e23989ea424e112530e01c81f983f15a3bfc4265baa06feb230267d095588705c5a8002cc4a2bfcd834b0341bff60a6236dcc24599ecf8327 languageName: node linkType: hard -"@smithy/hash-blob-browser@npm:^3.1.7": - version: 3.1.7 - resolution: "@smithy/hash-blob-browser@npm:3.1.7" +"@smithy/hash-blob-browser@npm:^3.1.6": + version: 3.1.6 + resolution: "@smithy/hash-blob-browser@npm:3.1.6" dependencies: - "@smithy/chunked-blob-reader": ^4.0.0 - "@smithy/chunked-blob-reader-native": ^3.0.1 - "@smithy/types": ^3.6.0 + "@smithy/chunked-blob-reader": ^3.0.0 + "@smithy/chunked-blob-reader-native": ^3.0.0 + "@smithy/types": ^3.5.0 tslib: ^2.6.2 - checksum: d1e790e63147357f1c5b210cacf727f6ad75c78d8246c98a1d9af17a757ce9d2621a0a21e5171b4de9526ce731db15a1288c489c6f396d54314f74a29d667ae4 + checksum: 4807ad388f552a5f27f168c4efa9cd88c14a2dc75a047137ccab88ef2dfb70729ef7800ca2ae12f2a41adb3149c5d4605eac81ef64880912766d6b59d258ad81 languageName: node linkType: hard -"@smithy/hash-node@npm:^3.0.8": - version: 3.0.8 - resolution: "@smithy/hash-node@npm:3.0.8" +"@smithy/hash-node@npm:^3.0.7": + version: 3.0.7 + resolution: "@smithy/hash-node@npm:3.0.7" dependencies: - "@smithy/types": ^3.6.0 + "@smithy/types": ^3.5.0 "@smithy/util-buffer-from": ^3.0.0 "@smithy/util-utf8": ^3.0.0 tslib: ^2.6.2 - checksum: 9a2e2e8ea044008345e64406a5ecbc23a507b00eae42e71455f0b05c638a21da57a68e43d73254236203187d7943b864c750fc62f95825cc5340dd95767530c3 + checksum: 7a3b432e498efc1d8f229d58a760fae92f1d8a434eb9865b2b4dccea521bd318a97a366e0fdd2e41e2eb02ee6c78c9d3a076a993d5c970e33b0051b4d209128b languageName: node linkType: hard -"@smithy/hash-stream-node@npm:^3.1.7": - version: 3.1.7 - resolution: "@smithy/hash-stream-node@npm:3.1.7" +"@smithy/hash-stream-node@npm:^3.1.6": + version: 3.1.6 + resolution: "@smithy/hash-stream-node@npm:3.1.6" dependencies: - "@smithy/types": ^3.6.0 + "@smithy/types": ^3.5.0 "@smithy/util-utf8": ^3.0.0 tslib: ^2.6.2 - checksum: 2bd580a8759a68c991fa5817d47e828029648a870ad52da8ba175819d6324603934e0d34b83139ac21ddb265f9adcaffbd696105ca0783b193fd5805dc3e3ca3 + checksum: e6427f7865667ad3a72eb9aace0d19718100fd4b14fb9f1e85c09b68b0b7ed608e26d1c2b9c6829be2f89aaa3fa3c122b1a5d5beea43c1026a43f70e748d8483 languageName: node linkType: hard -"@smithy/invalid-dependency@npm:^3.0.8": - version: 3.0.8 - resolution: "@smithy/invalid-dependency@npm:3.0.8" +"@smithy/invalid-dependency@npm:^3.0.7": + version: 3.0.7 + resolution: "@smithy/invalid-dependency@npm:3.0.7" dependencies: - "@smithy/types": ^3.6.0 + "@smithy/types": ^3.5.0 tslib: ^2.6.2 - checksum: ad55921e703ea3396a7d03b4515c2c0100d3c494865594a8a73b160e2913cac442d61a2545bcb248fedf00bb150cce2c33827d1d12527e34070e7fd8e114d2d6 + checksum: 6ccfd995686c12cceedf4408021d30e83b88785d77f5ab2e0ee2fab034828a782464f47828acf76d282d37daf20ffff9f27bdd1ce0499926299e560143b28cad languageName: node linkType: hard @@ -17436,78 +18064,77 @@ __metadata: languageName: node linkType: hard -"@smithy/md5-js@npm:^3.0.8": - version: 3.0.8 - resolution: "@smithy/md5-js@npm:3.0.8" +"@smithy/md5-js@npm:^3.0.7": + version: 3.0.7 + resolution: "@smithy/md5-js@npm:3.0.7" dependencies: - "@smithy/types": ^3.6.0 + "@smithy/types": ^3.5.0 "@smithy/util-utf8": ^3.0.0 tslib: ^2.6.2 - checksum: 3159a01ff4fab7ebbfa41c2ba6baa5f4c2333dafff6232dea956fc82a6354ad97a70c67f4a28e7c919a5e6be418a3c2427073948739941b194ab9bd238e13290 + checksum: d9badbd5361babc30103ef9e9a6c3b24b49d058de1ccd6765fbe1867753f9c8a97100e1ce88509fa50e1aec3135603b466c2ef21af5acba281f745a6eea0f034 languageName: node linkType: hard -"@smithy/middleware-content-length@npm:^3.0.10": - version: 3.0.10 - resolution: "@smithy/middleware-content-length@npm:3.0.10" +"@smithy/middleware-content-length@npm:^3.0.9": + version: 3.0.9 + resolution: "@smithy/middleware-content-length@npm:3.0.9" dependencies: - "@smithy/protocol-http": ^4.1.5 - "@smithy/types": ^3.6.0 + "@smithy/protocol-http": ^4.1.4 + "@smithy/types": ^3.5.0 tslib: ^2.6.2 - checksum: 776fd9014240109328b6823be8649322390bde7aa468750920be3e6ed268a4e380f5b3fcfbe15b2b8af1b6e4b4fedda9a446b76cc247ca252b95380646ac80b5 + checksum: 0299e2573942b5f073d5dadf45778b61db530f79356e08594eb947060c603202282f45e6fd8c8f5e64f6184ca6b987cd3e8f55dfc8d189809af3d7b47230a2d7 languageName: node linkType: hard -"@smithy/middleware-endpoint@npm:^3.2.1": - version: 3.2.1 - resolution: "@smithy/middleware-endpoint@npm:3.2.1" - dependencies: - "@smithy/core": ^2.5.1 - "@smithy/middleware-serde": ^3.0.8 - "@smithy/node-config-provider": ^3.1.9 - "@smithy/shared-ini-file-loader": ^3.1.9 - "@smithy/types": ^3.6.0 - "@smithy/url-parser": ^3.0.8 - "@smithy/util-middleware": ^3.0.8 +"@smithy/middleware-endpoint@npm:^3.1.4": + version: 3.1.4 + resolution: "@smithy/middleware-endpoint@npm:3.1.4" + dependencies: + "@smithy/middleware-serde": ^3.0.7 + "@smithy/node-config-provider": ^3.1.8 + "@smithy/shared-ini-file-loader": ^3.1.8 + "@smithy/types": ^3.5.0 + "@smithy/url-parser": ^3.0.7 + "@smithy/util-middleware": ^3.0.7 tslib: ^2.6.2 - checksum: acc41e1b665b6a0c3cf2952a44b4cd1ce980866b44fe4b0ed9208a6067c3aa15ebe646623b14375be6c04ab73fa74fb95eeeca6905fc27092ce93495c77d8b9b + checksum: 34cc4115fc57c9db90e6b74f4039e35e9e3cec94411173a3c0c14bacf99d86712ee51423b98b4d62695a5425a53d108fc0a2e11510df4b17a36f0496af03ddc1 languageName: node linkType: hard -"@smithy/middleware-retry@npm:^3.0.25": - version: 3.0.25 - resolution: "@smithy/middleware-retry@npm:3.0.25" +"@smithy/middleware-retry@npm:^3.0.22": + version: 3.0.22 + resolution: "@smithy/middleware-retry@npm:3.0.22" dependencies: - "@smithy/node-config-provider": ^3.1.9 - "@smithy/protocol-http": ^4.1.5 - "@smithy/service-error-classification": ^3.0.8 - "@smithy/smithy-client": ^3.4.2 - "@smithy/types": ^3.6.0 - "@smithy/util-middleware": ^3.0.8 - "@smithy/util-retry": ^3.0.8 + "@smithy/node-config-provider": ^3.1.8 + "@smithy/protocol-http": ^4.1.4 + "@smithy/service-error-classification": ^3.0.7 + "@smithy/smithy-client": ^3.3.6 + "@smithy/types": ^3.5.0 + "@smithy/util-middleware": ^3.0.7 + "@smithy/util-retry": ^3.0.7 tslib: ^2.6.2 uuid: ^9.0.1 - checksum: d10264cbff951b3b9585b54cc0e67de6099ed67461a34d83266e197fc48bea45fc7207ed7329c567390be6f08aeb84a6e7fef5f4fd770da9cad0028fc6f61d65 + checksum: 426c98789e64864cedfcc0f0d75eaca820c855c6282491ed1acb52cad451b68ea61247fbd5a85b47a719387625a0074171a05ffecdb49b85bfcd85117345ac40 languageName: node linkType: hard -"@smithy/middleware-serde@npm:^3.0.8": - version: 3.0.8 - resolution: "@smithy/middleware-serde@npm:3.0.8" +"@smithy/middleware-serde@npm:^3.0.7": + version: 3.0.7 + resolution: "@smithy/middleware-serde@npm:3.0.7" dependencies: - "@smithy/types": ^3.6.0 + "@smithy/types": ^3.5.0 tslib: ^2.6.2 - checksum: 3d1ba269680bcf0cea6ea1c0e6d20eaf9de3597a687533607cc1ec49dad8669424e41bf3498dcdd21613f7791b0406db1846c2cdd6571682e4be8cb8055a85da + checksum: 6ec3a000049a5e3212c5814b5500b562669a75ef42f4efecf13f0726614982488b89bb3d55fd163eb655a1e58bf490e387f8f5d5bfb4fc51bb63dffd550e15e6 languageName: node linkType: hard -"@smithy/middleware-stack@npm:^3.0.8": - version: 3.0.8 - resolution: "@smithy/middleware-stack@npm:3.0.8" +"@smithy/middleware-stack@npm:^3.0.7": + version: 3.0.7 + resolution: "@smithy/middleware-stack@npm:3.0.7" dependencies: - "@smithy/types": ^3.6.0 + "@smithy/types": ^3.5.0 tslib: ^2.6.2 - checksum: c4a24dcdb1db8f347d266ee97676daf1f5bb495aa6c1e59992378bebe39265be14be5c3f7cf9ae35a8ffe68476cfcfe9000a87e9b00062538359c4507f4060ea + checksum: f29af8abb52e58b9cbb59c5187e0758279dd7d50c350ae2ad3cf123277fb652976c72be44d0be459e6db42294a0dca24eaf0fa6aead33a9e4b7109437102246f languageName: node linkType: hard @@ -17523,28 +18150,16 @@ __metadata: languageName: node linkType: hard -"@smithy/node-config-provider@npm:^3.1.9": - version: 3.1.9 - resolution: "@smithy/node-config-provider@npm:3.1.9" - dependencies: - "@smithy/property-provider": ^3.1.8 - "@smithy/shared-ini-file-loader": ^3.1.9 - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: fc0d27ff620475f406cb0f3e8527e8dcf56449ec3faad96b9738d26ec825d1b75a55b2f28750efbde383d163c5e25bb32ad09ba59d7d40e491898b9cc6a2eb2a - languageName: node - linkType: hard - -"@smithy/node-http-handler@npm:^3.2.5": - version: 3.2.5 - resolution: "@smithy/node-http-handler@npm:3.2.5" +"@smithy/node-http-handler@npm:^3.2.4": + version: 3.2.4 + resolution: "@smithy/node-http-handler@npm:3.2.4" dependencies: - "@smithy/abort-controller": ^3.1.6 - "@smithy/protocol-http": ^4.1.5 - "@smithy/querystring-builder": ^3.0.8 - "@smithy/types": ^3.6.0 + "@smithy/abort-controller": ^3.1.5 + "@smithy/protocol-http": ^4.1.4 + "@smithy/querystring-builder": ^3.0.7 + "@smithy/types": ^3.5.0 tslib: ^2.6.2 - checksum: ea8d4148dd760f031f9eeb2aec2480685bb1a40d7ac9c482eb3170df0316cae58433a6c803d85b046c132a19b8b4874741fae054355b5584facbd46c18889c83 + checksum: 658934366953828af04e5f8d0229f24e8ff783c1bd34b179203099321e4b41b19dfd921c3ef431d8067fc2d49a0c806d0c758fff6ea10606e092480dcf6b0f26 languageName: node linkType: hard @@ -17558,16 +18173,6 @@ __metadata: languageName: node linkType: hard -"@smithy/property-provider@npm:^3.1.8": - version: 3.1.8 - resolution: "@smithy/property-provider@npm:3.1.8" - dependencies: - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: acf8a3cc0cad53503870580e164b41d79e34f1129c5b6fcf99d8dc09a0a89055889430f9552bead9bafc82775fed5f5f4c8eb3f7e53d91f759bb164a3a68cea5 - languageName: node - linkType: hard - "@smithy/protocol-http@npm:^4.1.4": version: 4.1.4 resolution: "@smithy/protocol-http@npm:4.1.4" @@ -17578,24 +18183,14 @@ __metadata: languageName: node linkType: hard -"@smithy/protocol-http@npm:^4.1.5": - version: 4.1.5 - resolution: "@smithy/protocol-http@npm:4.1.5" - dependencies: - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: 2e581594d03ff367ebc0a1ab0443e8b148f39a3ea810333861f4aed639239e5a261bedbb49f6555cfdb9682b88cd881715764c2dfe7e18a7a003385a0b6200d5 - languageName: node - linkType: hard - -"@smithy/querystring-builder@npm:^3.0.8": - version: 3.0.8 - resolution: "@smithy/querystring-builder@npm:3.0.8" +"@smithy/querystring-builder@npm:^3.0.7": + version: 3.0.7 + resolution: "@smithy/querystring-builder@npm:3.0.7" dependencies: - "@smithy/types": ^3.6.0 + "@smithy/types": ^3.5.0 "@smithy/util-uri-escape": ^3.0.0 tslib: ^2.6.2 - checksum: b07a766fb1e94e06116aef6534a31bbd4bb1bb94844d61c67615316d19aac82f94781fab779655bc03a46d70dda9caf3ad991a3e41548fbbba92783103f4f43e + checksum: 0c41ce1993ce4b7dc509bc1fa50c42000a1cb5801601fc28d9113494349c337e88f77bff998f0debf0be0eba41d67d653a6648eea0f5b3b1e0f8a3cd57229631 languageName: node linkType: hard @@ -17609,22 +18204,12 @@ __metadata: languageName: node linkType: hard -"@smithy/querystring-parser@npm:^3.0.8": - version: 3.0.8 - resolution: "@smithy/querystring-parser@npm:3.0.8" - dependencies: - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: 4ad9edfd96f084432157abd4953840f051ca4678963193bdc0ec7b210c79a649ddc023e327c39bd835ef7f56447dfaf2e47210738799ba9d044befacbe316a25 - languageName: node - linkType: hard - -"@smithy/service-error-classification@npm:^3.0.8": - version: 3.0.8 - resolution: "@smithy/service-error-classification@npm:3.0.8" +"@smithy/service-error-classification@npm:^3.0.7": + version: 3.0.7 + resolution: "@smithy/service-error-classification@npm:3.0.7" dependencies: - "@smithy/types": ^3.6.0 - checksum: cba6d33eb0e7482e557c303638416ea8678f80fa5782c97dd67e5b72741f22e2446370dc0ef9b16802d73cdfb7a5e4e5587c1d4abb5aa5ca9c33525137b4cf2b + "@smithy/types": ^3.5.0 + checksum: a6370ee348f4b66698a193a680ab5c81e0ed4d5fac8204cbbd9967c869feceb0b6d129f8d0e4823538ab699d7f3ab3ff8151e791221ee5f97742423b0e76b321 languageName: node linkType: hard @@ -17638,16 +18223,6 @@ __metadata: languageName: node linkType: hard -"@smithy/shared-ini-file-loader@npm:^3.1.9": - version: 3.1.9 - resolution: "@smithy/shared-ini-file-loader@npm:3.1.9" - dependencies: - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: 571cc785659551d875fb76c53d116bf6f3978d1b698be096e9218dbbe1dd42efbfb174e151528103888faf7c9854e66f3e5ca395b9c359e37f876c20b22a4f97 - languageName: node - linkType: hard - "@smithy/signature-v4@npm:^4.2.0": version: 4.2.0 resolution: "@smithy/signature-v4@npm:4.2.0" @@ -17664,27 +18239,17 @@ __metadata: languageName: node linkType: hard -"@smithy/smithy-client@npm:^3.4.2": - version: 3.4.2 - resolution: "@smithy/smithy-client@npm:3.4.2" - dependencies: - "@smithy/core": ^2.5.1 - "@smithy/middleware-endpoint": ^3.2.1 - "@smithy/middleware-stack": ^3.0.8 - "@smithy/protocol-http": ^4.1.5 - "@smithy/types": ^3.6.0 - "@smithy/util-stream": ^3.2.1 - tslib: ^2.6.2 - checksum: 4b53e695e18bf0ed4805dd66839e272129be5384f6de5356a2adc03311f5c372766b490a3c001086aec8728f6c9bb90ca625a09e9b4c3fe875c1ee7567118f34 - languageName: node - linkType: hard - -"@smithy/types@npm:^1.2.0": - version: 1.2.0 - resolution: "@smithy/types@npm:1.2.0" +"@smithy/smithy-client@npm:^3.3.6": + version: 3.3.6 + resolution: "@smithy/smithy-client@npm:3.3.6" dependencies: - tslib: ^2.5.0 - checksum: 376a1402d356a8dddd804af66ff2d273e57e332a3e9537a98039b47572684aae044d5fcd879ac6eee5cc08640ea00fbef0725a6a16026db5fb8d189473d44fe6 + "@smithy/middleware-endpoint": ^3.1.4 + "@smithy/middleware-stack": ^3.0.7 + "@smithy/protocol-http": ^4.1.4 + "@smithy/types": ^3.5.0 + "@smithy/util-stream": ^3.1.9 + tslib: ^2.6.2 + checksum: ba570b8d75f985682aab956e83a97f7c884507b63afeda01d011ef33a3306380249a1a01f2e044dbebbe650f704f46bfeebe40d51cc568cf55f10e5e5dfe29ba languageName: node linkType: hard @@ -17697,15 +18262,6 @@ __metadata: languageName: node linkType: hard -"@smithy/types@npm:^3.6.0": - version: 3.6.0 - resolution: "@smithy/types@npm:3.6.0" - dependencies: - tslib: ^2.6.2 - checksum: 4f581dc1c3e2dee8e1134fafb47de2c301330ea668214eb1a81d26b85acdb48a7e52008da0d15a402e998a79bed285a74b88949a5a4a3fe0aef38c28620ab795 - languageName: node - linkType: hard - "@smithy/url-parser@npm:^3.0.7": version: 3.0.7 resolution: "@smithy/url-parser@npm:3.0.7" @@ -17717,17 +18273,6 @@ __metadata: languageName: node linkType: hard -"@smithy/url-parser@npm:^3.0.8": - version: 3.0.8 - resolution: "@smithy/url-parser@npm:3.0.8" - dependencies: - "@smithy/querystring-parser": ^3.0.8 - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: 1bf2143b298a4afdf6a8fa40f7b018ad59eb79b717e2bafcd8634c20893485c456c12fe73659d342a3d3a51cdbb10afea61fac285e7ce5fa0f66d7695ad7d10b - languageName: node - linkType: hard - "@smithy/util-base64@npm:^3.0.0": version: 3.0.0 resolution: "@smithy/util-base64@npm:3.0.0" @@ -17786,42 +18331,42 @@ __metadata: languageName: node linkType: hard -"@smithy/util-defaults-mode-browser@npm:^3.0.25": - version: 3.0.25 - resolution: "@smithy/util-defaults-mode-browser@npm:3.0.25" +"@smithy/util-defaults-mode-browser@npm:^3.0.22": + version: 3.0.22 + resolution: "@smithy/util-defaults-mode-browser@npm:3.0.22" dependencies: - "@smithy/property-provider": ^3.1.8 - "@smithy/smithy-client": ^3.4.2 - "@smithy/types": ^3.6.0 + "@smithy/property-provider": ^3.1.7 + "@smithy/smithy-client": ^3.3.6 + "@smithy/types": ^3.5.0 bowser: ^2.11.0 tslib: ^2.6.2 - checksum: 87c4b346d753712f7fe501920c6bb9712d7ec56670e49aa5d6db40ebe0f0cfa58d9e1d27e96e40c6be1721cf81bd0b2f29c077efc3b8dece074e3a6d175fa1a4 + checksum: 28fdf977c70f5d973230dacdf5f7e81e3f4e8858ed8f7aa2a9f7c794ebdaddd2567c7765492dcaac4c745749b59d6771d4eac9c01e2eed9c0afd206b0308e843 languageName: node linkType: hard -"@smithy/util-defaults-mode-node@npm:^3.0.25": - version: 3.0.25 - resolution: "@smithy/util-defaults-mode-node@npm:3.0.25" +"@smithy/util-defaults-mode-node@npm:^3.0.22": + version: 3.0.22 + resolution: "@smithy/util-defaults-mode-node@npm:3.0.22" dependencies: - "@smithy/config-resolver": ^3.0.10 - "@smithy/credential-provider-imds": ^3.2.5 - "@smithy/node-config-provider": ^3.1.9 - "@smithy/property-provider": ^3.1.8 - "@smithy/smithy-client": ^3.4.2 - "@smithy/types": ^3.6.0 + "@smithy/config-resolver": ^3.0.9 + "@smithy/credential-provider-imds": ^3.2.4 + "@smithy/node-config-provider": ^3.1.8 + "@smithy/property-provider": ^3.1.7 + "@smithy/smithy-client": ^3.3.6 + "@smithy/types": ^3.5.0 tslib: ^2.6.2 - checksum: e34c44bb5cbc8036765aa4f52e648a753b477b6653834291f7a2e0d82b7b58c1e741eac9a9a95d39b6f751c05013909c36ac0818e0015c24201af9d2e2fb0f5a + checksum: 015321d014254f2f8b8a8a7cb82d8ed4000afe0b740dfedff8f2b66498c34b3e42b985ae5a2af71fd82145f11ece75b2649877fe5f7b34979c213c52978332df languageName: node linkType: hard -"@smithy/util-endpoints@npm:^2.1.4": - version: 2.1.4 - resolution: "@smithy/util-endpoints@npm:2.1.4" +"@smithy/util-endpoints@npm:^2.1.3": + version: 2.1.3 + resolution: "@smithy/util-endpoints@npm:2.1.3" dependencies: - "@smithy/node-config-provider": ^3.1.9 - "@smithy/types": ^3.6.0 + "@smithy/node-config-provider": ^3.1.8 + "@smithy/types": ^3.5.0 tslib: ^2.6.2 - checksum: 523df0a35807f3493cccaf1b76f88e14dedd3d9f29fe26a6f8c73cdfe09e57c67a1d3029cc585995b0f7fe20e07afa8b4dfa5f1d631a0c4c06c9f68075b61bad + checksum: 63a362e1b521a63d9f535f4cfd4e4168e08be51f4e44a406adf840427b96f7295eee9343648a51c472a8fefa603b0f3644f876bc241b0a487d05343819f7aacf languageName: node linkType: hard @@ -17844,40 +18389,30 @@ __metadata: languageName: node linkType: hard -"@smithy/util-middleware@npm:^3.0.8": - version: 3.0.8 - resolution: "@smithy/util-middleware@npm:3.0.8" - dependencies: - "@smithy/types": ^3.6.0 - tslib: ^2.6.2 - checksum: 6933c012f47c8b547b4986133a9dc2b264e9d71def155c4a9bce1bd1afbd73cb8e936c50ebc80190fc1d5bb26aee73ba012c567766dcd8a13c3d06bef841ab3c - languageName: node - linkType: hard - -"@smithy/util-retry@npm:^3.0.8": - version: 3.0.8 - resolution: "@smithy/util-retry@npm:3.0.8" +"@smithy/util-retry@npm:^3.0.7": + version: 3.0.7 + resolution: "@smithy/util-retry@npm:3.0.7" dependencies: - "@smithy/service-error-classification": ^3.0.8 - "@smithy/types": ^3.6.0 + "@smithy/service-error-classification": ^3.0.7 + "@smithy/types": ^3.5.0 tslib: ^2.6.2 - checksum: 5c0c63beb867828e6fd54f5fd83de412180df02de42f678df0f5a4412d10bfb5a74c22aa83a6f364c8292b5c82be94fe7af35d1ebe4e50a2c05946520f2ea870 + checksum: 8af7ed849a7db65e9229a885490cd843c3f9b35248c661d6197a31d7cc0aa33c1790734b716e80e19b569d8149b1f6d8a3dfab4d887a155e64a3ea03bd7d504d languageName: node linkType: hard -"@smithy/util-stream@npm:^3.2.1": - version: 3.2.1 - resolution: "@smithy/util-stream@npm:3.2.1" +"@smithy/util-stream@npm:^3.1.9": + version: 3.1.9 + resolution: "@smithy/util-stream@npm:3.1.9" dependencies: - "@smithy/fetch-http-handler": ^4.0.0 - "@smithy/node-http-handler": ^3.2.5 - "@smithy/types": ^3.6.0 + "@smithy/fetch-http-handler": ^3.2.9 + "@smithy/node-http-handler": ^3.2.4 + "@smithy/types": ^3.5.0 "@smithy/util-base64": ^3.0.0 "@smithy/util-buffer-from": ^3.0.0 "@smithy/util-hex-encoding": ^3.0.0 "@smithy/util-utf8": ^3.0.0 tslib: ^2.6.2 - checksum: 3dc2b005d48a2e5ccb0761e7a7869f8af24d34a93eaa34f0586ba42fe79f13d48efb676e4aacbf02a54f1a225eb851d2c706c016f5f9d0b4fc127d8be69f5d90 + checksum: 4a9777742034ce0f5a3403bbe99c54c84cb26aa55ad5255346a006a574e658ae36b9d001666e931ef485614d288c76e33e35c8966b0af52e3fa6a7ac9772de8b languageName: node linkType: hard @@ -17910,14 +18445,14 @@ __metadata: languageName: node linkType: hard -"@smithy/util-waiter@npm:^3.1.7": - version: 3.1.7 - resolution: "@smithy/util-waiter@npm:3.1.7" +"@smithy/util-waiter@npm:^3.1.6": + version: 3.1.6 + resolution: "@smithy/util-waiter@npm:3.1.6" dependencies: - "@smithy/abort-controller": ^3.1.6 - "@smithy/types": ^3.6.0 + "@smithy/abort-controller": ^3.1.5 + "@smithy/types": ^3.5.0 tslib: ^2.6.2 - checksum: 190d992898d0c7d776c806657703c1ebd0ba2c24f4042ed0251dc8653799aefe12848a0445ee16cdbb05b76b5c81fc803b271957954aa614aaccb99dd3338caa + checksum: 8375e3530c19565f98e3a6ccbf2a332939f3d01817f0d100d8fcf6033eac2233df9debef181572dce2589e76aae140a3cc713d8715d4b29f73a294a48f857575 languageName: node linkType: hard @@ -31311,6 +31846,13 @@ __metadata: languageName: node linkType: hard +"entities@npm:2.2.0, entities@npm:^2.0.0": + version: 2.2.0 + resolution: "entities@npm:2.2.0" + checksum: 19010dacaf0912c895ea262b4f6128574f9ccf8d4b3b65c7e8334ad0079b3706376360e28d8843ff50a78aabcb8f08f0a32dbfacdc77e47ed77ca08b713669b3 + languageName: node + linkType: hard + "entities@npm:^1.1.1": version: 1.1.2 resolution: "entities@npm:1.1.2" @@ -31318,13 +31860,6 @@ __metadata: languageName: node linkType: hard -"entities@npm:^2.0.0": - version: 2.2.0 - resolution: "entities@npm:2.2.0" - checksum: 19010dacaf0912c895ea262b4f6128574f9ccf8d4b3b65c7e8334ad0079b3706376360e28d8843ff50a78aabcb8f08f0a32dbfacdc77e47ed77ca08b713669b3 - languageName: node - linkType: hard - "entities@npm:^4.2.0, entities@npm:^4.4.0": version: 4.5.0 resolution: "entities@npm:4.5.0" @@ -33533,6 +34068,15 @@ __metadata: languageName: node linkType: hard +"fast-xml-parser@npm:3.19.0": + version: 3.19.0 + resolution: "fast-xml-parser@npm:3.19.0" + bin: + xml2js: cli.js + checksum: d9da9145f73d90c05ee2746d80c78eca4da0249dea8c81ea8f1a6e1245e62988ed4a040dbd1c7229b1e0bdcbf69d33c882e0ac337d10c7eedb159a4dc9779327 + languageName: node + linkType: hard + "fast-xml-parser@npm:4.4.1": version: 4.4.1 resolution: "fast-xml-parser@npm:4.4.1" @@ -38028,15 +38572,14 @@ __metadata: "@apollo/gateway": 2.1.1 "@apollo/subgraph": 2.1.1 "@apollo/utils.keyvadapter": 3.0.0 - "@aws-sdk/abort-controller": 3.374.0 - "@aws-sdk/client-s3": 3.687.0 - "@aws-sdk/client-ses": 3.687.0 - "@aws-sdk/client-sqs": 3.687.0 - "@aws-sdk/client-ssm": 3.687.0 - "@aws-sdk/credential-provider-node": 3.687.0 - "@aws-sdk/lib-storage": 3.687.0 - "@aws-sdk/s3-presigned-post": 3.687.0 - "@aws-sdk/s3-request-presigner": 3.687.0 + "@aws-sdk/client-s3": 3.662.0 + "@aws-sdk/client-ses": 3.145.0 + "@aws-sdk/client-sqs": 3.662.0 + "@aws-sdk/client-ssm": 3.145.0 + "@aws-sdk/credential-provider-node": 3.662.0 + "@aws-sdk/lib-storage": 3.662.0 + "@aws-sdk/s3-presigned-post": 3.662.0 + "@aws-sdk/s3-request-presigner": 3.662.0 "@azure/msal-node": 1.14.4 "@babel/core": 7.22.5 "@babel/plugin-proposal-decorators": 7.22.5 From c6d5367b94934dc3aa11bb9b6eea7900de55c2db Mon Sep 17 00:00:00 2001 From: lommi Date: Thu, 14 Nov 2024 20:39:42 +0000 Subject: [PATCH 11/66] chore: force rebuild (#16886) --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 0a9d57c78aec..553c48f20402 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,7 @@ "name": "island.is", "version": "0.0.2", "license": "MIT", + "forceRebuild": true, "engines": { "npm": "please-use-yarn", "node": "20.15.0", From f39e470ff74d0ab30d2ce0077825c697b46f04a4 Mon Sep 17 00:00:00 2001 From: lommi Date: Thu, 14 Nov 2024 21:01:31 +0000 Subject: [PATCH 12/66] chore: force rebuild (#16888) * chore: bump version * fix: version --- nx.json | 1 + package.json | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/nx.json b/nx.json index 2c273e35a623..cd70478459f6 100644 --- a/nx.json +++ b/nx.json @@ -1,4 +1,5 @@ { + "everythingIsAffected": true, "tasksRunnerOptions": { "default": { "runner": "nx/tasks-runners/default", diff --git a/package.json b/package.json index 553c48f20402..0a9d57c78aec 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,6 @@ "name": "island.is", "version": "0.0.2", "license": "MIT", - "forceRebuild": true, "engines": { "npm": "please-use-yarn", "node": "20.15.0", From a1056546da73fda23aa53cffba583ceaff181190 Mon Sep 17 00:00:00 2001 From: lommi Date: Thu, 14 Nov 2024 21:46:07 +0000 Subject: [PATCH 13/66] fix: remove hack (#16889) --- nx.json | 1 - 1 file changed, 1 deletion(-) diff --git a/nx.json b/nx.json index cd70478459f6..2c273e35a623 100644 --- a/nx.json +++ b/nx.json @@ -1,5 +1,4 @@ { - "everythingIsAffected": true, "tasksRunnerOptions": { "default": { "runner": "nx/tasks-runners/default", From 3249c7731d7504b5e45c18d182a5e510467bd905 Mon Sep 17 00:00:00 2001 From: norda-gunni <161026627+norda-gunni@users.noreply.github.com> Date: Fri, 15 Nov 2024 08:34:35 +0000 Subject: [PATCH 14/66] chore(application-system): Increase cpu and mem limit and request to avoid crashloops (#16792) * chore(application-system): Increase cpu and mem limit and request to avoid crashloops * chore: charts update dirty files * Decrease cpu resources and return memory to original value * chore: charts update dirty files * chore: charts update dirty files --------- Co-authored-by: andes-it Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- apps/application-system/api/infra/application-system-api.ts | 4 ++-- charts/islandis/values.dev.yaml | 4 ++-- charts/islandis/values.prod.yaml | 4 ++-- charts/islandis/values.staging.yaml | 4 ++-- charts/services/application-system-api/values.dev.yaml | 4 ++-- charts/services/application-system-api/values.prod.yaml | 4 ++-- charts/services/application-system-api/values.staging.yaml | 4 ++-- 7 files changed, 14 insertions(+), 14 deletions(-) diff --git a/apps/application-system/api/infra/application-system-api.ts b/apps/application-system/api/infra/application-system-api.ts index ce7360862365..2237e5f28fa7 100644 --- a/apps/application-system/api/infra/application-system-api.ts +++ b/apps/application-system/api/infra/application-system-api.ts @@ -349,8 +349,8 @@ export const serviceSetup = (services: { .liveness('/liveness') .readiness('/liveness') .resources({ - limits: { cpu: '400m', memory: '1024Mi' }, - requests: { cpu: '75m', memory: '512Mi' }, + limits: { cpu: '600m', memory: '1024Mi' }, + requests: { cpu: '200m', memory: '512Mi' }, }) .replicaCount({ default: 2, diff --git a/charts/islandis/values.dev.yaml b/charts/islandis/values.dev.yaml index be98e9b1790d..15db17909f43 100644 --- a/charts/islandis/values.dev.yaml +++ b/charts/islandis/values.dev.yaml @@ -768,10 +768,10 @@ application-system-api: min: 2 resources: limits: - cpu: '400m' + cpu: '600m' memory: '1024Mi' requests: - cpu: '75m' + cpu: '200m' memory: '512Mi' secrets: ALTHINGI_OMBUDSMAN_XROAD_PASSWORD: '/k8s/api/ALTHINGI_OMBUDSMAN_XROAD_PASSWORD' diff --git a/charts/islandis/values.prod.yaml b/charts/islandis/values.prod.yaml index 82318dd89853..7dadafd54288 100644 --- a/charts/islandis/values.prod.yaml +++ b/charts/islandis/values.prod.yaml @@ -755,10 +755,10 @@ application-system-api: min: 2 resources: limits: - cpu: '400m' + cpu: '600m' memory: '1024Mi' requests: - cpu: '75m' + cpu: '200m' memory: '512Mi' secrets: ALTHINGI_OMBUDSMAN_XROAD_PASSWORD: '/k8s/api/ALTHINGI_OMBUDSMAN_XROAD_PASSWORD' diff --git a/charts/islandis/values.staging.yaml b/charts/islandis/values.staging.yaml index 6d70c4ca2bc1..93de70b4f5fa 100644 --- a/charts/islandis/values.staging.yaml +++ b/charts/islandis/values.staging.yaml @@ -764,10 +764,10 @@ application-system-api: min: 2 resources: limits: - cpu: '400m' + cpu: '600m' memory: '1024Mi' requests: - cpu: '75m' + cpu: '200m' memory: '512Mi' secrets: ALTHINGI_OMBUDSMAN_XROAD_PASSWORD: '/k8s/api/ALTHINGI_OMBUDSMAN_XROAD_PASSWORD' diff --git a/charts/services/application-system-api/values.dev.yaml b/charts/services/application-system-api/values.dev.yaml index 1afae5cc210e..e33af8f0d9db 100644 --- a/charts/services/application-system-api/values.dev.yaml +++ b/charts/services/application-system-api/values.dev.yaml @@ -210,10 +210,10 @@ replicaCount: min: 2 resources: limits: - cpu: '400m' + cpu: '600m' memory: '1024Mi' requests: - cpu: '75m' + cpu: '200m' memory: '512Mi' secrets: ALTHINGI_OMBUDSMAN_XROAD_PASSWORD: '/k8s/api/ALTHINGI_OMBUDSMAN_XROAD_PASSWORD' diff --git a/charts/services/application-system-api/values.prod.yaml b/charts/services/application-system-api/values.prod.yaml index d38991ed8318..ab5bbb090d3c 100644 --- a/charts/services/application-system-api/values.prod.yaml +++ b/charts/services/application-system-api/values.prod.yaml @@ -210,10 +210,10 @@ replicaCount: min: 2 resources: limits: - cpu: '400m' + cpu: '600m' memory: '1024Mi' requests: - cpu: '75m' + cpu: '200m' memory: '512Mi' secrets: ALTHINGI_OMBUDSMAN_XROAD_PASSWORD: '/k8s/api/ALTHINGI_OMBUDSMAN_XROAD_PASSWORD' diff --git a/charts/services/application-system-api/values.staging.yaml b/charts/services/application-system-api/values.staging.yaml index c1b6c19b7099..d5fc37a23616 100644 --- a/charts/services/application-system-api/values.staging.yaml +++ b/charts/services/application-system-api/values.staging.yaml @@ -210,10 +210,10 @@ replicaCount: min: 2 resources: limits: - cpu: '400m' + cpu: '600m' memory: '1024Mi' requests: - cpu: '75m' + cpu: '200m' memory: '512Mi' secrets: ALTHINGI_OMBUDSMAN_XROAD_PASSWORD: '/k8s/api/ALTHINGI_OMBUDSMAN_XROAD_PASSWORD' From 8e051c55ce4cffa550417b268ba800233e539b6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=9E=C3=B3rey=20J=C3=B3na?= Date: Fri, 15 Nov 2024 09:18:06 +0000 Subject: [PATCH 15/66] feat(native-app): disable tracking of user interactions in app (#16878) Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- apps/native/app/src/utils/lifecycle/setup-globals.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/apps/native/app/src/utils/lifecycle/setup-globals.ts b/apps/native/app/src/utils/lifecycle/setup-globals.ts index a7cc08f279ff..ece34480d3c5 100644 --- a/apps/native/app/src/utils/lifecycle/setup-globals.ts +++ b/apps/native/app/src/utils/lifecycle/setup-globals.ts @@ -98,13 +98,12 @@ if (__DEV__) { getConfig().datadog ?? '', 'production', '2736367a-a841-492d-adef-6f5a509d6ec2', - true, // track User interactions (e.g.: Tap on buttons. You can use 'accessibilityLabel' element property to give tap action the name, otherwise element type will be reported) + false, // do not track User interactions (e.g.: Tap on buttons.) true, // track XHR Resources true, // track Errors ) ddconfig.nativeCrashReportEnabled = true - ddconfig.nativeViewTracking = true ddconfig.site = 'EU' ddconfig.serviceName = 'mobile-app' From a6fa99233e86cd677f8a8f81db3d5ded48f06869 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=9E=C3=B3rey=20J=C3=B3na?= Date: Fri, 15 Nov 2024 09:40:41 +0000 Subject: [PATCH 16/66] feat(native-app): log confirm actions of subpoena to backend (#16862) * feat: log confirm actions of subpoena to backend * fix: better comment * fix: confirm action can not be null * feat: make sure to await actions --------- Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- .../app/src/graphql/queries/inbox.graphql | 7 ++++++ .../document-detail/document-detail.tsx | 22 +++++++++++++++++-- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/apps/native/app/src/graphql/queries/inbox.graphql b/apps/native/app/src/graphql/queries/inbox.graphql index 73209b4263fc..ff129a3e424a 100644 --- a/apps/native/app/src/graphql/queries/inbox.graphql +++ b/apps/native/app/src/graphql/queries/inbox.graphql @@ -48,3 +48,10 @@ mutation PostMailActionMutation($input: DocumentsV2MailActionInput!) { success } } + +query DocumentConfirmActions($input: DocumentConfirmActionsInput!) { + documentV2ConfirmActions(input: $input) { + id + confirmed + } +} diff --git a/apps/native/app/src/screens/document-detail/document-detail.tsx b/apps/native/app/src/screens/document-detail/document-detail.tsx index e70d6f884bfc..9914b0937f78 100644 --- a/apps/native/app/src/screens/document-detail/document-detail.tsx +++ b/apps/native/app/src/screens/document-detail/document-detail.tsx @@ -27,6 +27,7 @@ import { DocumentV2Action, ListDocumentFragmentDoc, useGetDocumentQuery, + useDocumentConfirmActionsLazyQuery, } from '../../graphql/types/schema' import { createNavigationOptionHooks } from '../../hooks/create-navigation-option-hooks' import { useConnectivityIndicator } from '../../hooks/use-connectivity-indicator' @@ -248,6 +249,17 @@ export const DocumentDetailScreen: NavigationFunctionComponent<{ const [pdfUrl, setPdfUrl] = useState('') const [refetching, setRefetching] = useState(false) + const [logConfirmedAction] = useDocumentConfirmActionsLazyQuery({ + fetchPolicy: 'no-cache', + }) + + const confirmAction = async (confirmed: boolean) => { + // Adding a suffix '_app' to the id since the backend is currently not distinguishing between the app and the web + await logConfirmedAction({ + variables: { input: { id: `${docId}_app`, confirmed: confirmed } }, + }) + } + const refetchDocumentContent = async () => { setRefetching(true) try { @@ -268,11 +280,17 @@ export const DocumentDetailScreen: NavigationFunctionComponent<{ { text: intl.formatMessage({ id: 'inbox.markAllAsReadPromptCancel' }), style: 'cancel', - onPress: () => Navigation.pop(componentId), + onPress: async () => { + await confirmAction(false) + Navigation.pop(componentId) + }, }, { text: intl.formatMessage({ id: 'inbox.openDocument' }), - onPress: refetchDocumentContent, + onPress: async () => { + await confirmAction(true) + await refetchDocumentContent() + }, }, ]) } From 5b6280c8916e8a369466362d19e5c16450095c2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A6ring=20Gunnar=20Stein=C3=BE=C3=B3rsson?= Date: Fri, 15 Nov 2024 10:00:32 +0000 Subject: [PATCH 17/66] chore(clients-cms): Define code owners for cms client (#16894) --- .github/CODEOWNERS | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 6caaa1782adf..7aa4c0b9d758 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -30,6 +30,7 @@ /apps/icelandic-names-registry*/ @island-is/juni /apps/web/screens/PetitionView/ @island-is/juni /libs/cms/ @island-is/juni @island-is/stefna +/libs/clients/cms/ @island-is/juni @island-is/aranja /libs/residence-history @island-is/juni /libs/api/domains/endorsement-system @island-is/juni /libs/api/domains/icelandic-names-registry/ @island-is/juni From 3a99c331802e2ededb1c3e49767d35b8c96bc49e Mon Sep 17 00:00:00 2001 From: norda-gunni <161026627+norda-gunni@users.noreply.github.com> Date: Fri, 15 Nov 2024 10:35:55 +0000 Subject: [PATCH 18/66] chore(application-system): Set initialDelay to 20 seconds (#16893) * chore(application-system): Set initialDelay to 20 seconds * chore: charts update dirty files --------- Co-authored-by: andes-it Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- apps/application-system/api/infra/application-system-api.ts | 4 ++-- charts/islandis/values.dev.yaml | 4 ++-- charts/islandis/values.prod.yaml | 4 ++-- charts/islandis/values.staging.yaml | 4 ++-- charts/services/application-system-api/values.dev.yaml | 4 ++-- charts/services/application-system-api/values.prod.yaml | 4 ++-- charts/services/application-system-api/values.staging.yaml | 4 ++-- 7 files changed, 14 insertions(+), 14 deletions(-) diff --git a/apps/application-system/api/infra/application-system-api.ts b/apps/application-system/api/infra/application-system-api.ts index 2237e5f28fa7..e4c51330e256 100644 --- a/apps/application-system/api/infra/application-system-api.ts +++ b/apps/application-system/api/infra/application-system-api.ts @@ -346,8 +346,8 @@ export const serviceSetup = (services: { }) .db() .migrations() - .liveness('/liveness') - .readiness('/liveness') + .liveness({ path: '/liveness', initialDelaySeconds: 20 }) + .readiness({ path: '/liveness', initialDelaySeconds: 20 }) .resources({ limits: { cpu: '600m', memory: '1024Mi' }, requests: { cpu: '200m', memory: '512Mi' }, diff --git a/charts/islandis/values.dev.yaml b/charts/islandis/values.dev.yaml index 15db17909f43..e0b594249329 100644 --- a/charts/islandis/values.dev.yaml +++ b/charts/islandis/values.dev.yaml @@ -700,11 +700,11 @@ application-system-api: grantNamespacesEnabled: true healthCheck: liveness: - initialDelaySeconds: 3 + initialDelaySeconds: 20 path: '/liveness' timeoutSeconds: 3 readiness: - initialDelaySeconds: 3 + initialDelaySeconds: 20 path: '/liveness' timeoutSeconds: 3 hpa: diff --git a/charts/islandis/values.prod.yaml b/charts/islandis/values.prod.yaml index 7dadafd54288..516fc583a8ec 100644 --- a/charts/islandis/values.prod.yaml +++ b/charts/islandis/values.prod.yaml @@ -687,11 +687,11 @@ application-system-api: grantNamespacesEnabled: true healthCheck: liveness: - initialDelaySeconds: 3 + initialDelaySeconds: 20 path: '/liveness' timeoutSeconds: 3 readiness: - initialDelaySeconds: 3 + initialDelaySeconds: 20 path: '/liveness' timeoutSeconds: 3 hpa: diff --git a/charts/islandis/values.staging.yaml b/charts/islandis/values.staging.yaml index 93de70b4f5fa..a522f4f6e697 100644 --- a/charts/islandis/values.staging.yaml +++ b/charts/islandis/values.staging.yaml @@ -696,11 +696,11 @@ application-system-api: grantNamespacesEnabled: true healthCheck: liveness: - initialDelaySeconds: 3 + initialDelaySeconds: 20 path: '/liveness' timeoutSeconds: 3 readiness: - initialDelaySeconds: 3 + initialDelaySeconds: 20 path: '/liveness' timeoutSeconds: 3 hpa: diff --git a/charts/services/application-system-api/values.dev.yaml b/charts/services/application-system-api/values.dev.yaml index e33af8f0d9db..9cabf0c60fd2 100644 --- a/charts/services/application-system-api/values.dev.yaml +++ b/charts/services/application-system-api/values.dev.yaml @@ -142,11 +142,11 @@ grantNamespaces: grantNamespacesEnabled: true healthCheck: liveness: - initialDelaySeconds: 3 + initialDelaySeconds: 20 path: '/liveness' timeoutSeconds: 3 readiness: - initialDelaySeconds: 3 + initialDelaySeconds: 20 path: '/liveness' timeoutSeconds: 3 hpa: diff --git a/charts/services/application-system-api/values.prod.yaml b/charts/services/application-system-api/values.prod.yaml index ab5bbb090d3c..bb8e6388c85d 100644 --- a/charts/services/application-system-api/values.prod.yaml +++ b/charts/services/application-system-api/values.prod.yaml @@ -142,11 +142,11 @@ grantNamespaces: grantNamespacesEnabled: true healthCheck: liveness: - initialDelaySeconds: 3 + initialDelaySeconds: 20 path: '/liveness' timeoutSeconds: 3 readiness: - initialDelaySeconds: 3 + initialDelaySeconds: 20 path: '/liveness' timeoutSeconds: 3 hpa: diff --git a/charts/services/application-system-api/values.staging.yaml b/charts/services/application-system-api/values.staging.yaml index d5fc37a23616..4be6d8efdc8e 100644 --- a/charts/services/application-system-api/values.staging.yaml +++ b/charts/services/application-system-api/values.staging.yaml @@ -142,11 +142,11 @@ grantNamespaces: grantNamespacesEnabled: true healthCheck: liveness: - initialDelaySeconds: 3 + initialDelaySeconds: 20 path: '/liveness' timeoutSeconds: 3 readiness: - initialDelaySeconds: 3 + initialDelaySeconds: 20 path: '/liveness' timeoutSeconds: 3 hpa: From 9c94bef718eb6c5492032aded0cd5d0f653fa0d1 Mon Sep 17 00:00:00 2001 From: albinagu <47886428+albinagu@users.noreply.github.com> Date: Fri, 15 Nov 2024 11:27:07 +0000 Subject: [PATCH 19/66] fix(portals-admin): petition - export list (#16866) * fix(portals-admin): petition - export list * revert * f * test * test * yarn lock * revert lock * image path * Restore yarn --------- Co-authored-by: kksteini <77672665+kksteini@users.noreply.github.com> Co-authored-by: kksteini --- .../ExportList/MyPdfDocument/index.tsx | 162 ------------------ .../ExportList/MyPdfDocument/island.png | Bin 6368 -> 0 bytes .../ExportList/MyPdfDocument/thjodskra.png | Bin 7465 -> 0 bytes .../src/components/ExportList/downloadCSV.ts | 37 ---- .../components/ExportList/exportList.graphql | 5 + .../src/components/ExportList/index.tsx | 83 +++++---- .../src/components/ExportList/styles.css.ts | 6 + .../src/components/ListSignersTable/index.tsx | 8 +- .../PetitionsTable/ExportPetition/index.tsx | 2 - .../src/screens/PetitionsTable/index.tsx | 6 +- 10 files changed, 66 insertions(+), 243 deletions(-) delete mode 100644 libs/portals/admin/petition/src/components/ExportList/MyPdfDocument/index.tsx delete mode 100644 libs/portals/admin/petition/src/components/ExportList/MyPdfDocument/island.png delete mode 100644 libs/portals/admin/petition/src/components/ExportList/MyPdfDocument/thjodskra.png delete mode 100644 libs/portals/admin/petition/src/components/ExportList/downloadCSV.ts create mode 100644 libs/portals/admin/petition/src/components/ExportList/exportList.graphql diff --git a/libs/portals/admin/petition/src/components/ExportList/MyPdfDocument/index.tsx b/libs/portals/admin/petition/src/components/ExportList/MyPdfDocument/index.tsx deleted file mode 100644 index b7885ba5aa48..000000000000 --- a/libs/portals/admin/petition/src/components/ExportList/MyPdfDocument/index.tsx +++ /dev/null @@ -1,162 +0,0 @@ -import { - Page, - Text, - Document, - Image, - View, - Font, - StyleSheet, -} from '@react-pdf/renderer' -import { - Endorsement, - EndorsementList, - PaginatedEndorsementResponse, -} from '@island.is/api/schema' -import { dark200 } from '@island.is/island-ui/theme' -import { formatDate } from '../../../lib/utils/utils' -import { format as formatNationalId } from 'kennitala' -import island from './island.png' -import thjodskra from './thjodskra.png' - -const MyPdfDocument = (data: { - petition?: EndorsementList - petitionSigners: PaginatedEndorsementResponse -}) => { - const { petition, petitionSigners } = data - return ( - - - {/* Header */} - - - {/* Body */} - - Upplýsingar um undirskriftalista - Heiti undirskriftalista - {petition?.title} - Um undirskriftalista - {petition?.description} - - - Opinn til: - {formatDate(petition?.closedDate)} - - - Fjöldi undirskrifta: - {petitionSigners?.totalCount} - - - - - Ábyrgðarmaður: - {petition?.ownerName} - - - Kennitala ábyrgðarmanns: - {formatNationalId(petition?.owner as string)} - - - - - - Dags. skráð - Nafn - Sveitarfélag - - - {petitionSigners?.data?.map((sign: Endorsement) => { - return ( - - - {formatDate(sign.created)} - - - {sign.meta.fullName ? sign.meta.fullName : ''} - - - {sign.meta.locality ? sign.meta.locality : ''} - - - ) - })} - - - - {/* Footer */} - - - - ) -} - -export const pdfStyles = StyleSheet.create({ - body: { - paddingTop: 40, - paddingBottom: 70, - paddingHorizontal: 60, - fontFamily: 'IBM Plex Sans', - fontSize: 10, - }, - title: { - fontSize: 24, - }, - header: { - fontSize: 14, - fontWeight: 600, - marginTop: 20, - marginBottom: 5, - }, - tableHeaderDate: { - fontWeight: 600, - marginBottom: 5, - width: '17%', - }, - tableHeader: { - fontWeight: 600, - marginBottom: 5, - width: '33%', - }, - row: { - flexDirection: 'row', - }, - widthHalf: { - width: '50%', - }, - listInfo: { - paddingBottom: 30, - }, - tableView: { - paddingTop: 25, - borderTop: `1px solid ${dark200}`, - }, - tableRow: { - flexDirection: 'row', - marginVertical: 5, - }, - image: { - width: 120, - marginBottom: 20, - marginLeft: -9, - }, - footerImage: { - position: 'absolute', - left: 60, - bottom: 40, - width: 120, - }, -}) - -Font.register({ - family: 'IBM Plex Sans', - fonts: [ - { - src: './assets/fonts/ibm-plex-sans-v7-latin-regular.ttf', - }, - { - src: './assets/fonts/ibm-plex-sans-v7-latin-600.ttf', - fontWeight: 600, - }, - ], -}) - -export default MyPdfDocument diff --git a/libs/portals/admin/petition/src/components/ExportList/MyPdfDocument/island.png b/libs/portals/admin/petition/src/components/ExportList/MyPdfDocument/island.png deleted file mode 100644 index c67725fe2eb90ab79e7f50007e154465e310801f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6368 zcmbW6^;Z(S@aJ=~w|px|ePcX@M1_L%K_( z1OdN1@1OAgGBfAQoH^Ir_vbz{=bC6e9d$}F7BU7A;e!!PTeC1!@~M+f66*AX)}HtBNfp{-s62$MdN7^+P#A766tg8PW*&9aiL)YQ~e zJq1n@2G_cSPDuU%ljBY9P9VIJAb$bR5dJg-I5;bN*=?TTu&RD{qJ67MdoFrVG;O%~ z%@5mCmSsnSpSt8fik8I-W^Q1)Gu>yj{mGft_5;C+*=U7F)q`i_5&+F@2nn#j<~hu^ zIB(cZ{(XbE)W3@a@FH#Hzl)8+t9899rmo}8zQr34JA!Ep0sh+N-c`C=0Il(v*{ajE z(9^|V?=+xl*lX#XHH<&py^pkvGAdzoLvC$@7m4DxCY)Meh3!!ts9nvq6t+)}*izVMtw37C|lN4RhZ z?-G;A^nR9x{|NKTBLfRshz9$?7k`Pgi8B)m%C3+rcTPDd;E%~E$JTkG@0vF7>{qTO z^YKC#y6f)5vRxUS{?D!R57P+``1Uq(@ZVjcH(iwOmF~&cGmkS)?sr$9q?THyR2s$X{ z%f+J(I(GQ)Kce^1PkSG$W?4)rVollg8{k-Jivl5|ch*{J^0gJj2OHWMKo>J0P{l9oKgbbs?oVcWqJXI#z8-h6D;GOYO*gR)EXEytS+(=-414qPT} zXdcZv;$Eb*sroa~y|ZsFQj(#orAS;4aA_*Hh=+&=J<46n@|i4boY+z%Xxi`zZf|{A zQSinq0K&4c$b} z29MKU+|(w2e}S%0=@Di@V|j2Tg8%u8UQ7#_VZkju(+`zyRuUl^+d^;P84X4zufv!W zced0(WPI=ODtAW-zU(6iRL&fPpo8y^YTZ}}wycr!5fnx{S5(NhfPVu|H^y43z$ zc~HAuS2d=L_Z4qy&Y^i60Enc4kc?ZSGTu4S;VzZWalVKdw+K!08O&kx6cu}51tkG0 zM=NMD2iSKJSK+*&(c<6eZSg4~Y&~#jK*S)3)FwYQe}Z;nd%B$=B&6RY?{`hRji`As znB19eIQ$vK7tC%ZTo{daMo+LInl@(Lr;CHj;u=SHpMkANTT+NOw>%8xTkspUBf_l5 zZk|J~Sgno%7f#6kjCvAgd#{d;Iq=6rfRXEHw_!jp*RjT7-}k!i8i0Li37vn4+97!E z%k&q>$mf}1^%e*2ZHND=5fAl4C*`2PJv{T&9AQc^HKr8*URIIOT@9-`n!?Dw-=L}e zn9awlM!CcRt4erwuHm2j9}%n{4(wjSXWC~(lX8>DMMNV$3y|gG=J*K;D|xGuQO^WK zq!N+N*Gt@Pi2X_MMp_yme6fKr%ht}L8J$QP$lmtx+eW|KlG*qZ`dy%ie?`rE%FDv` z?P0&N*VIrzRN~-(S6VjqOix-xeDY?;Mw2#Rmta6NX)G-IK^nuSorO&WcRV_X#;XxJ zAyCys&|%Iq>Xsxfh8!FZ1~;#bwCtJA+~Pfc8WS2x^FC>thtl}4M$V!Goa@~i#9#J> zGkS%{CDJp3UNtk?*4=p2O^XfWh2eeGc8t*3e#J}|qHpD?a4AY{mc37n&GN+77lz}Q5MOvy-Dec?*HwkxLR@D z(dIvQiPs~T0V5Am7;_=ZWLZVe6p!?( zu$_unkP^2F+n>N6<-o=V44QSuL?!|OhxNoD?RhK1)uI0(>BK17 z^PJ>9|M>*r{|9Ll9fR?I6F@CJQ`-9uDX46759j}DfvcVfOuv*FMG0x|Gk4zMA?9GTsi!bzv;P~ zi%YfBHvlEe%SFZGAh8c2Oyj2D?TK^$l$aW(^&Ro5{@RD*jEXKpfAPJYh`VRChy~he&~JeOvZ%uJ!v)B~tH|WPQProyaV(qtS;~NQz>nU}C;d*6s?T^C+BrYQ76okw8 zT|TN^tWRLDs7l*DaX`bL3;9s3lKD-33AfFlv^`DkFTr#6S?5{c2%+c)_>2_~jbY7+ zqwbm3OJLa`qhK^=TuO(D2)I2ue=i$g6aK}G^#E5jYfJUqjXrKr$!u_CwMQb2&@I2Y zjLM}Mb1Do(YWmiM=F^xGLzG-CyISL6>=z_1eQRO$)}MHN@U}_%HQ|C{Kqlkq@{}m5 zV*hTm!1N!!HLQ-f-Q)SkQ~u4Tz+M>Pv{R=OPkK)ZM^D>3CU9zg zm8skWiv&M$C96P74NGne2aRNPFK7JaAO_NJKr_dlQ}i&Q#fxfmN{CXrC5-oS^1A^H z^YfP4rbqS-40`AS+-S2NWltx?FUvuA4LE}oW^u2WMfV@D#EN74$P0Y+js>vbq&7@H z8e_Qe)KoWqji`#8>jO_g^8|@3@D``|$>Ab1s||oKTeW#rKm7o+Q@76a51>lW7uP_B zIQ%jFVIbuRqIv#v^EJ^T8MWuGx=4GNH%H(&Z+bcmX~gJg;_ih?@eY=|HbLnQ};2CYg#DR)I$vQ7hg)k!30Uv0}E3 z%&(xAnJai+UPx2y?fAd+B{_jCy4Z|*AG=2tL{Wu(k1@tv@|3+{U|lVAJ7$xC&*0%q{Fw4mnXD zKYjgd#E(S8Jk(A&z*?b`wk;~Hvcox1MyP`2*<<6HRb~O*y)rDh^hh9S81^p_9jiU` z`Aa`>Jc)vu38*sabJ4o!rxIsLiOf0`o;8lv z%9zJ6h>C^(((5-QHC`%(cR1wKm{NGsMm&A|;(>SGfxyXn?GfHwn1yRWJ{kN*Aru$G zzlUg7Un5Kiug5y_h_A%=5^^PjPgv!;SXgUKpWq&V;D;=!ItGsz)9&igYbroHp8WYf zUyh^>!|eAsDb_neFr|y%Hy`hfoReQx zeXjuN*N=rB;9z1jC#9}$@gA}8Y=6)EcKGWm|Cb+f?XbP_Vhk&*8E;0Ma!APs#0UEVYL87}*; zrL-pQW_!qb)->}0`|z|L{gu$BqQFQsGHy02t6*<%djO(=f1j^+{2Z|LSK;H8841SB znwkRkUwr9Iouu4CBe9LU8@XWR;Ji(@CmWUN-yMtkYv%IbNu`|fKpCBcq~=)DChRg= z1-J^>DFBZE-4QC*+6v9EePB%N@@wx)MS$j=YiJYZ*}M^s@86yLmr2&p2~6N8uZZ>P zCL=CaXO|z7!Aq%NT949)F#WGY$2vJ|7bU^oS7`W)`5J3VQ?p2sDn0j%AEyrJ2)*LTJ7J^(wtO^u{eWH4&_a(-Io zuH|H?v;#SO{(`R8cz_N$74HeGt>$hNE{S!yEa*TER<}^i^17gP;yWZ8ojtP`-d4wxgadX3 z!NvMh>ZB(zgOU!{@8m1?o_EQvoI><~;7XAp@X&=S8HZ&2f=xk39K$msH-dgwjQ(9Q zRxPV1#+$*fQmq7SoZ<1)CpY^GG1CoI(v*+xbT3;Mm0(E}9X?sPatiqt{Ut*H!-_9DYyS;DT)WFmeT1s`pn4YhZL0=}^6`KrJKZhswX5 zl*KjN?8F&lDBDUQM9s|1J1Z@RZXF#upei8EuDalSgsyN{f^1f1yqBb6F|2`uOk@Io zrA62?K`Nq`owji)(0*YVn504C#4*S!8}R)j-QXjJ zqH}c7_=`*+|Aj;(a1A4A_GSJpPZf*Dm@5g5g+niQAkirh;vAVcu|rOf>Jbj%CTLSIKbMTsSh8OWDsEGd4BK1q z)m|)4l69WUfVD@u%@w>XBlWCTtmJ(?9_|abFuBFRP9If2S7c|k^-@Jl!4FQK!mGKs z%lTr5l-4u(>xog5L|a3uau1$9T}c1zL1}GJrKiSs$MPBO;)aONG;X?pQlE?B(x*T(-p4r_o!J9DtO@CRb;Jf@H;w5!cWo4)iQ9Sp>_-RO1HU$mqRQ1}cP4%|Yz7wl{qyMPt z+2->oe0qixQ{F2rr;%b8R z0&KSg2Q3ijCZ(gkbhBrN{O;_}in=*0MT!5`X@790YAW`QVZtVzg=4Y!@Y`{t*e}DY zBC{4olf_hj8x{GW0XJYp#VIou$Yw>op(|vo4Xib&GI0e zdcrK^J4w~gq0=@WhJAZ2RYH*}KbAG^GflY%&3#K-0pEL1S79~w^C?4h+Qykqt%XnD zNL*`K?QPv^-V<5f+_ED+dt2`MIM??w^BWnkPxie}-Drb4T4^h1%XVe>MG1%qlNTu% zwGt&C|Ho@wpf@l%U^kjcZ67Y;JG;dHl=dCG^?{0=i<=IV9j)~~m7gV6AWZH&kOU@_ z__{O>z^K4cY^7pPvE?EiB?1wnq zC`je5ymdZJD8s0__*JI+F2cu;&zF2-SagAZ|0Sijoy|fjnLdBjuQK>!IBV+j-4fIF z%u2eq`!1q)yjP+Ac8qB9)2r><;a8LPs7H>;F=PGS0=gjUZxK-)g0-2EqbAJBdZc=> zJQs~vU?6^1s2=XdCyN9xWtLd!xlKWf=Nk70OSm?Q-$rnu2t}Q7UUT*Z+5ST3_C(%L znm#&lgX4se_O%%8r2 zc~iNo#4IKHC3gaqs(hEaX>6px%h2`1INMFu&`K|_e!*$N>ky(uqauB{H9H46au~2A zMPVRx@6~K@gwnvG6BbMg780yDNRug*v>OFcZtgr6g7Qclt?FU?+L$+r=@RKv6$jVxCwU)&g%12u3USRFKz5! zMYyXnVToM`QJ&}^Vl*6wp94aIt2s|9T;4QlZiK^H>&G3p&&B#s<&*iLRB<5%y?&0g z+gX4wZpC)v`#QcZfXp-1!xD1p=~A$wTJ)Ou9}S0^QX*>(4?G&oI%)o1`{saCl#0dC z4=*U#7A_cvrC*wT)Ye?5D^g5jWHob|=1qQY^r($9&#aQ`7Qiuj~39R3+^M@E$6 z=h~izdQftDO6$pF8V1M1ep@uLd5CC)uI@+<^^=p5`(ni0&hn?lq9$J^<;kzr(GV+I z<3Ggv!&-$55=EbbmljB%XsuWgsJ_uk!z1b7l#cK2^iB^-PhYHR6jYjhKF0I92-;KN zv~?N`wr-#Oten_TOn&eGh*i0o4ynYHX=(N)%+00vWN)j5eutsd%?UoQZRZP&Wkxiw zIZ;Z%rPR%%vJ4j^b$Ce%;ajDwH*ntx{KpB%;h$@+c5fOdqn!`FJK(k(b~+gx01jJ9 z5ZFj;%VXQ0{Xgn8mC_q*SuQ~DDbGhU4Eus06e9iPTk5Q;{!wg(b#~9FIr@jkpCm@p z@fq*~{N_@N`dsqm9a<>=jmJ;5fp(zF??C2VB4GE6x}eJC$V?RMlT0c270w>#CseH% zoBUm)wj`5D+d;(|IR4ec(E}&Td}~pw1@F~)B&6Wg>2udmc11pN=f4SJH%I21+3+Kf zi(zB00p`yvZ#`5T+`J7co70@1kBUweUO<8qEhF6>^t))KCh{>?{kop7!hYN}34rI0 ziilcjY^9gK+Ahv{T138R^)?m^+*_#XLth^-#Y`@ognESfXn3^0*X|$DwrRPMzae^% zx4`HfdCT@~1}pE27A(-bUNsHfD*ufUvfiOp59*jsH0ktDyuA>|W-K6$SS_pIyZ`X* Y5JV|*XAWuiKNmQfP#x7Oh;``y0Ee6nPyhe` diff --git a/libs/portals/admin/petition/src/components/ExportList/MyPdfDocument/thjodskra.png b/libs/portals/admin/petition/src/components/ExportList/MyPdfDocument/thjodskra.png deleted file mode 100644 index 96058703b270a392060ac3ccff445232c7434785..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7465 zcmd6Mp4EZ=iB=aykE|BcCCBuz1EKFzT!L1MPnAEQ`nmnr9Y~xqP?k2&egk zTV5-b%c1LQO41!<9{Lb}{dn+_Dl(b+o*!2^;WOdw7VWRPv=44yd$5Cxe?!dfUSa>GynkdjiZ|p>~jP_g#WGG`q%&3W|Yyh z_rEg(z|>6zjLI!M0JPiR-Zgo|M4}pxuDbB$2i;**Lc4VE&T&Oc0YD{JbaT(O;Hb!E zYK|>8QQ6Y*;iMh#(#dixYd@(jk{j#Zgg_qs}u^P+Ti>6dDhSQ-o%O1>b@w zJr$y*qB;fuM^-kRL6K{@ z0cX}kc?OunFEXb!Df{&#oqyhwXn=uz%Yi-k2npCSL(UHQd)_@9itYUK3;^UllR{f) zk_Lqz*DTdKTr#3?CMMwp2tPKsvRz*Sj0R{kEi;-U(9M}+1rGZ$<#HxF;93&{Y0^F1t7U}}Av zJ+b<5KrYM}UqB83>g-sktMD!JX5n;ZholWkmG25S0e~0m+E3x-?m(C5&w1E7q6or_ zkwWuKD8_@jyS#ZpfIA9#ap}Pw$=wg#$%8q9{o<40%-`FA4y}q)-d57A!?~fXWs}=pML#6w!NV@;$-Ja! ze-Hu-I>9-5;w;kv69Bh8DKrfFAk-RL2jeeG4Yd zH)Zr*m(@rcOoFNUm=K8IkCqPKcV7`zE5#B3uoxIFrD~tj=ieYXbSGYPR|1Tt%Wbd> zNGqYil-|C@M%l#ouI<`?rh3gzaSCAGnnX)$(~q~o=olrzh*i?E4O1s7QxXjqW=v>+ ztH_2uu@P*c*6kw#?h&yKGZqYK=V)kivcLP!*-xCi@cn2tY}0?mlrEwhMLegzmIOd) z6b$zsE}Y6zOQS|5#h;5Y1OQkh440$yG!d6%{S@3G%HYDUb_&}!!>B=DQKZn;s?N;3 z3hCVVXrKQoSk#l+(ge!_0pPOcme(ULt&zV>7o@e$Zzzjb=IL~Uk&{-) z8(!Rw;z<;?-?2NE2eaHMT6%c365+zq{CR)M*p&c~^NW_=irKTh?_qmA;JeXKXK=SL z7_*7nyQhCdrBmLL2T4UmTnE~hZtb2f@+Q5Sew%+@@l z-4i8E!*xN{DX>Y60z`U@b~jpel`NS5F!L}g>Uw_8zVa_7%(@@gX;g4u@N%P20GBKUt1KZ+Bs^-7QN}b)T-S zo;=P>40&toz{Dv@r*hcZoQgqOb_f5lN$X8lXVDdRUA^VbzbUTmpC;7;VHV{6Lr^*Z z$+=8z(cWn%DOT$Y_IEJY;eXh0klLVY`iSo2;_HRvp#$gM;yRE2Pn(@h`zidNTu5M} z_Q|IDq7XmDv~lk=-Kx)~OVJAR}tiEyl>G`%DtzoN{1i@4=@|R3tgjRvtUu zZER9yYI;zGvnsG&xV=D~lVRFj)8^3mgGN(<<<~gL5BAgKg;4emqu6R$VbQ9{O&-(a zaoJNF#!LM9&g7+kp|%nS?yy>RQEBLJJjDO1gk0uYJHAT4a83gHa5`{n@JrX6)VLMb za7_6(a_u$B@$#kbi|?5Ila&^i&V}Lf9-B5ctSMbAlZJ<97#T@@>Cor!wyb;Df@n`c z@~qj9{nJiLy|K(Yfa>zV=x=O`58ET zYLy3Th7)z#Jy%7aVX-y^j1ESfzeJq$ZMUk5FL^c9mKo7S=ZMv(QZ3Z28xnIF05}2riGT`@t_mg-&1tN%wvP6rdLCGYYcF= zv%#ZA!>yZf@-U=;+c`~Q^E>4!DBXM74itM~g71_;+eBP;T96#9`X!76bD-NWKgqb0UzdE25wqqtcHDS%=Xo*Ht*_~ z_U?@nn_GO7UC=Hj`zwZ~QNeGk7;(0Fv-*_0sZ1$*IEV2^i#E>&YZBLdmTj(DkVU_T zWB9shZ@Kf^pIKJseiST6Ri_wxe<)uxfa4}Ea5H6V7q0~I=M;PhBo`Li^QJ^` zBH%(3IJOT*S>-Fq`Op;Yoc6CZ59ab81+|nldi$s1b+;Ff@gGs#NER7kB01M7E$F>&uSG~^-6}^mKB5jciJp=Fvho0$4wWk%7fqc;4!Dr`s#qK|B4x(iHkXovli9QZc6O_e5yvZWXLBSAd{Rl5i!XyVOims_73bgEb$`7ENe`Nx@z@gC z4_Og$FO#fc33$;yPAuET+PCE4()^89>kCzY`+?^3wAMJ|;zNf}jd1&?;2zCa9PrAb ztFZs@^-@n1!RosIv~A?XkBcZewzb>15%-l*Fxk7D>DhxL_{$V=b4*FPx$;R$0mVWJ z_pW2nciWz$RS|=kI3&7kH#ZS{;FhlI&wM}*sGjq?88z3}T)72{#cH}ZO8-GThZ}Ot zZ(HiMWS7!BL~Ni2H^T=}i`HJAzc8+EV_{q^+CnDBC_X`@ z*G&|54Zh%;Svs(3EVZ5&ah&LnDfH?&!VAPb)!=6zRoB~{;!SC3iM;&ydqc#Im<&;@ zye{O8v*Dk1ea6@_7$z+`+^ZH0$?_vm9G&Yx_I0yXtn2TXX?GejG<{e(`H7p3JHY)S zRzm14>nr#WN&h=2tsBV>PNc7tUk1n3{o?)Vh%u9YJSyq=zBHd*@`1ah_k4BH8-sui z)EhS%x5}GDCh{8Y*HikcQ!_eZ+LC6yCy*N+X`{m@k->G$8Re(VPaE7wn&a=dJC&TZ zi_h2wUt!uf)Zp24tFY}lF`Qb;(xo8RWGC9E4=Wg4V|MdlU#o?G1P^vI+6wi^eEHDB zf)l9Rn z@#3h(xNvu(vSPe8Gy#(yh9NmRrV)7j*r_UDLCycKz_4@E6G%`aQ{k9!b-hLw)+|r5 zB{GICmv#d}(y?Q8Uv{IH=giCg%6!?J71%%)hS~U;lbmGmd@6cmSd{2p4tvP?&AR&z zguz8@Bh-s#GoFGxgOvG-rQ)iw??#+Gf7;4UNUpkz;9kA=O96vhehaY6jmB}(M?Ynt z_VAw`We|=goUuik_+H4Z-6sz+Gp#-C73V)4YGU-2uDES(FWLk)zc!^+&zT_=>BbRO)+=Tr)OnChMb?UXPqqbw@DB%3k zrI7dpUudgQw)TaIou<->BdqVIWm%Gcx9JHDrxG;uviDrre%biS=xE(9aw*uv?PtW} zCmtSLwcaui?LC}O_SZiI3YcHlY#8wrHv;O;xd8u6a#Lb92a${(gm~2NFUMPyZOi_0 z=$z{k6?EB)d*{$FZkyj84R1J8y*Zx2*Qb7%RG;tv2xD@j*>Ct;7>#=5FrD0!v{#Y7 zQii$P5ty@oWMv&rx#$&i^?ayx1OG&qhRtKi_nAR5Lo#AGuSu4gpt32!Ak7)=RD01) ziwIp1479OC@;xJQtI$2Guo)#AVn17r!;=+6jvh?p^e=5@wB^-%o;*p@^6~Jb81MN3 zmtcnfj%n^K4{Coo&^McT&#Kj2k!q5LseQMZLMq3P}HMC_8EW6@E9O>c8kfc_IH=>t z`dgu~U&(^6O0AKq0de6CA0xx~6Xv}_*1wn(&Imd zf9sWBc(nb!tTPE^x|q-Nsk!`&xkJJWh0s$(eKx|vQ2vb8;cN=p+_pqWKIrWBkAbuL zTjlr-mqx5X&2s2V4T2&q)4NB31Nbmaq7V2yky_R&MD}XEiT%etMPI%3ck)|76^3W@ zT2H@_OIHuQ*Mf|Aa%m2Vgj|!6&C+)bwp=uH6BI2>HJo+suaYwi3SQ1fi1STE_cu!zz?Y4qIO2 z?Bzt5^X0=t|Kn#EkMI(Tme7Yot<8g9Z#+=2uOW3K?bjX z>vWaj5#|xfaEbK(Ko1@CbXDc2FDGtPx>#0To?$a1|%UX;~xe(2AElmva1$lT= z-KlBqOVuTKFr(gsYj_PvbaNg4umL{la92}<3KF2&zloyC~5E~OKpeo=J%_yc)P+)3{)SE||F?Saw3Hb1SLdUj(8 zy~bZ&mzxdxh>2XW@>Vr}BaCV6szkL{W45G3p!S!a2Cn!Wgg%We@-W%zdq@*rG?teo zf_vq%48`Z>Heu_Pewc8ELy#p5O^)~NUq7r4rT^8; zx@}Sa*d91E3;MVoT3!iJyi|2f^Js`J*b z&Ww_aS4+w>Y&mK6?_tf48ph)bOp>|hHt8kwg1dDDBI-kOiy>JqZ|PSO8z6L@4k@hZ zX3VOaWtd%~R{W$CEpww^lcDsorXS}jp6lf_QkTuK`UC^Ldwu|sn*b0gQTU1AV3vgy z&9vU$aY^WEh?Hs7xLSfuhnB{3zD`mgVKt<%S)zyWV;4r8F2SM*&g@6kbfQ)r{C@Q! zdE+3groi#nhHY2?ld5>)b7euIV5W+U-gi5X9X;ul`sF+?k8Mz)XNi5)(|ep}hx4eB zwIckV+Y@srPMpViV@voRGM!gdciPdtO=zo*J5|*Scd+VRpfMyl(L27PMPGoxtGI+E z=WTs99Zs41uAh~aBZYMjm)aTUw}|$r5v)}llkKXpViek^i@FTFzk9CQ^JN>|x~-Q< znu6~S`DTZzKKS}bB_I`fx8#${tr4A?QRXKGz1EiFmolwRPnuV4yf$ARx(_KEW}9wR z&khR&JjH3s=2__P4(McLxyUjF+N!h@Rmuo<4cM(0>UX>5G*qzq$Scl-yFsb=7MRa-!JmJ|)q!Yyw=Ew3B0G_1KmFz73 z?^z(v#M* zL_|ZlRG0&ckS8S@<$ONDR)Vz&K)J%ybkZs0^4H%h&;63ZidliBeu!c`Oq+H=5BL)) zba&V2Il<5N@8qr%-YhI<5F%hi80^wR(oD{{Z6QJllEKTjcPqu>-!)v52HA3Xbf-aP zBqT5q1{DW@+GtqZ+wq77q%9Xn0lKkctv{23%%m%cfL`To_jlcL7_=Sz4UmTi*?oj* zy&9Cm>)E(2Na2Iy3{Wb)<&-RNM*?7qQ-Nj125VDI`WvLFryeV?+zpVq!Y7=78j349 z+-0=1E4hDWVY=j>3-yWWEO!@Z4IQIw{s|zta$J-tg^D$=uw4dQdAGMgNrZwITB_Wc z%dqmD>;%@e5CamiTHxYS{p;Qo35(OEdWR-yw&Y4@0F{miJO`F-yxRFllJ-WH2gqBx zvtbt~7&nI8D$fRqo0RFfs=)EgO6a{LW`hfNrJkblobn_Y36<8~c%|w}Rw|2I8=%jj zAWh0i4)uujw(i8p?*A6w9^|^fRy?l%#K^co;w_kQdf@AB4vJ0f5+HpVy%)%)3J*s> zJjp>;H}5lpD2VZY;s`s)T?2t{{$JJP|L=wdn?OZ0J@DmhKhOZu z`feQ9x{aV`{v9w-(VAjXuplot&7ayaTAl?(E4O=Cu{X5$K{lF?6beC3dp}qBUmcB5 z0mCsu2%7VyVXG)K70|I~2d{Skc=85jNVT^K22PL-OM{#zj1lMs3+4B)c9jc)wF`KT z{~Fn`^WW2Lz!th_X|Dx*$n<|5Bj|#dcc;8To#nVJfNd+NUxec!>gF(r)2`TZ16nHw p20L^y6x}rK&Hr)qAO3##6_K+mVF!PiO$mq(s3~hHl`B}i{vY9|Ehqp0 diff --git a/libs/portals/admin/petition/src/components/ExportList/downloadCSV.ts b/libs/portals/admin/petition/src/components/ExportList/downloadCSV.ts deleted file mode 100644 index 13f4ee0c5a82..000000000000 --- a/libs/portals/admin/petition/src/components/ExportList/downloadCSV.ts +++ /dev/null @@ -1,37 +0,0 @@ -import CSVStringify from 'csv-stringify' -import { formatDate } from '../../lib/utils/utils' -import { - Endorsement, - PaginatedEndorsementResponse, -} from '@island.is/api/schema' - -export const getCSV = async ( - signers: PaginatedEndorsementResponse, - fileName: string, -) => { - const name = `${fileName}` - const dataArray = signers.data.map((item: Endorsement) => [ - formatDate(item.created) ?? '', - item.meta.fullName ?? '', - item.meta.locality ?? '', - ]) - - await downloadCSV(name, ['Dagsetning', 'Nafn', 'Sveitarfélag'], dataArray) -} - -export const downloadCSV = async ( - name: string, - header: string[], - data: Array>, -) => { - const csvData = [header, ...data] - CSVStringify(csvData, (err, output) => { - const encodedUri = encodeURI(`data:text/csv;charset=utf-8,${output}`) - const link = document.createElement('a') - link.setAttribute('href', encodedUri) - link.setAttribute('download', name) - document.body.appendChild(link) - - link.click() - }) -} diff --git a/libs/portals/admin/petition/src/components/ExportList/exportList.graphql b/libs/portals/admin/petition/src/components/ExportList/exportList.graphql new file mode 100644 index 000000000000..9a431559801b --- /dev/null +++ b/libs/portals/admin/petition/src/components/ExportList/exportList.graphql @@ -0,0 +1,5 @@ +mutation ExportList($input: ExportEndorsementListInput!) { + endorsementSystemExportList(input: $input) { + url + } +} diff --git a/libs/portals/admin/petition/src/components/ExportList/index.tsx b/libs/portals/admin/petition/src/components/ExportList/index.tsx index 0bc7c06b4b8a..738f58baf43b 100644 --- a/libs/portals/admin/petition/src/components/ExportList/index.tsx +++ b/libs/portals/admin/petition/src/components/ExportList/index.tsx @@ -1,20 +1,11 @@ import { FC, ReactElement } from 'react' -import { Box, DropdownMenu } from '@island.is/island-ui/core' +import { Box, DropdownMenu, LoadingDots } from '@island.is/island-ui/core' import { useLocale } from '@island.is/localization' import * as styles from './styles.css' import { m } from '../../lib/messages' -import { - EndorsementList, - PaginatedEndorsementResponse, -} from '@island.is/api/schema' -import MyPdfDocument from './MyPdfDocument' -import { usePDF } from '@react-pdf/renderer' - +import { useExportListMutation } from './exportList.generated' interface Props { - petition: EndorsementList - petitionSigners: PaginatedEndorsementResponse petitionId: string - onGetCSV: () => void dropdownItems?: { href?: string onClick?: () => void @@ -28,43 +19,75 @@ interface Props { } export const ExportList: FC> = ({ - petition, - petitionSigners, petitionId, - onGetCSV, dropdownItems = [], }) => { const { formatMessage } = useLocale() - const [document] = usePDF({ - document: ( - - ), + const [exportListPdf, { loading: loadingPdf }] = useExportListMutation({ + variables: { + input: { + listId: petitionId, + fileType: 'pdf', + }, + }, + onCompleted: (data) => { + window.open(data.endorsementSystemExportList.url, '_blank') + }, + }) + + const [exportListCsv, { loading: loadingCsv }] = useExportListMutation({ + variables: { + input: { + listId: petitionId, + fileType: 'csv', + }, + }, + onCompleted: (data) => { + window.open(data.endorsementSystemExportList.url, '_blank') + }, }) return ( ( - - {formatMessage(m.asPdf)} - - ), + render: () => + loadingPdf ? ( + + + + ) : ( + exportListPdf()} + > + {formatMessage(m.asPdf)} + + ), }, { - onClick: () => onGetCSV(), title: formatMessage(m.asCsv), + render: () => + loadingCsv ? ( + + + + ) : ( + exportListCsv()} + > + {formatMessage(m.asCsv)} + + ), }, ...dropdownItems, ]} diff --git a/libs/portals/admin/petition/src/components/ExportList/styles.css.ts b/libs/portals/admin/petition/src/components/ExportList/styles.css.ts index f0998466e1f4..9f659ad2b7dc 100644 --- a/libs/portals/admin/petition/src/components/ExportList/styles.css.ts +++ b/libs/portals/admin/petition/src/components/ExportList/styles.css.ts @@ -7,6 +7,7 @@ export const buttonWrapper = style({ export const menuItem = style({ paddingTop: '16px', + paddingBottom: '16px', display: 'flex', justifyContent: 'center', transition: 'color .2s', @@ -18,4 +19,9 @@ export const menuItem = style({ color: theme.color.blue400, }, }, + '@media': { + [`screen and (max-width: ${theme.breakpoints.sm}px)`]: { + fontSize: 12, + }, + }, }) diff --git a/libs/portals/admin/petition/src/components/ListSignersTable/index.tsx b/libs/portals/admin/petition/src/components/ListSignersTable/index.tsx index 7b9fce1629bc..984b4d91ace1 100644 --- a/libs/portals/admin/petition/src/components/ListSignersTable/index.tsx +++ b/libs/portals/admin/petition/src/components/ListSignersTable/index.tsx @@ -15,7 +15,6 @@ import { EndorsementList, PaginatedEndorsementResponse, } from '@island.is/api/schema' -import { getCSV } from '../ExportList/downloadCSV' const ListSignersTable = (data: { listId: string @@ -44,12 +43,7 @@ const ListSignersTable = (data: { {formatMessage(m.petitionsOverview)} - getCSV(data.petitionSigners, 'Undirskriftalisti')} - /> + diff --git a/libs/portals/my-pages/petitions/src/screens/PetitionsTable/ExportPetition/index.tsx b/libs/portals/my-pages/petitions/src/screens/PetitionsTable/ExportPetition/index.tsx index f8b85267e442..c906594ad194 100644 --- a/libs/portals/my-pages/petitions/src/screens/PetitionsTable/ExportPetition/index.tsx +++ b/libs/portals/my-pages/petitions/src/screens/PetitionsTable/ExportPetition/index.tsx @@ -10,12 +10,10 @@ import * as styles from '../styles.css' import { m } from '../../../lib/messages' import copyToClipboard from 'copy-to-clipboard' import { toast } from 'react-toastify' -import { EndorsementList } from '@island.is/api/schema' import { useMutation } from '@apollo/client' import { ExportList } from '../../queries' interface Props { - petition?: EndorsementList petitionId: string dropdownItems?: { href?: string diff --git a/libs/portals/my-pages/petitions/src/screens/PetitionsTable/index.tsx b/libs/portals/my-pages/petitions/src/screens/PetitionsTable/index.tsx index fd4fabdd3ac6..4105e4a83be1 100644 --- a/libs/portals/my-pages/petitions/src/screens/PetitionsTable/index.tsx +++ b/libs/portals/my-pages/petitions/src/screens/PetitionsTable/index.tsx @@ -37,11 +37,7 @@ const PetitionsTable = (data: { {formatMessage(m.petitionsOverview)} - - {data.canEdit && ( - - )} - + {data.canEdit && } From e783a7535e519a256f63300364c80d031209e665 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gu=C3=B0j=C3=B3n=20Gu=C3=B0j=C3=B3nsson?= Date: Fri, 15 Nov 2024 12:23:03 +0000 Subject: [PATCH 20/66] fix(j-s): Service Status Event (#16892) Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- .../backend/src/app/modules/subpoena/subpoena.service.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/apps/judicial-system/backend/src/app/modules/subpoena/subpoena.service.ts b/apps/judicial-system/backend/src/app/modules/subpoena/subpoena.service.ts index 9f7322f11fe3..8ecf5820db5e 100644 --- a/apps/judicial-system/backend/src/app/modules/subpoena/subpoena.service.ts +++ b/apps/judicial-system/backend/src/app/modules/subpoena/subpoena.service.ts @@ -241,7 +241,11 @@ export class SubpoenaService { defenderNationalId, ) - if (update.serviceStatus && subpoena.case) { + if ( + update.serviceStatus && + update.serviceStatus !== subpoena.serviceStatus && + subpoena.case + ) { this.eventService.postEvent( 'SUBPOENA_SERVICE_STATUS', subpoena.case, From fda8787d4bf4dfbc8e00896b7ba17e33ca2b56df Mon Sep 17 00:00:00 2001 From: valurefugl <65780958+valurefugl@users.noreply.github.com> Date: Fri, 15 Nov 2024 12:57:34 +0000 Subject: [PATCH 21/66] chore(auth-apis): Add api mocks to tests. (#16867) Co-authored-by: Valur Einarsson Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- .../test/me-delegations.access-incoming.spec.ts | 15 +++++++++++++++ .../mocks/companyRegistryClientService.mock.ts | 8 ++++++++ apps/services/auth/public-api/test/mocks/index.ts | 1 + apps/services/auth/public-api/test/setup.ts | 4 ++++ 4 files changed, 28 insertions(+) create mode 100644 apps/services/auth/public-api/test/mocks/companyRegistryClientService.mock.ts diff --git a/apps/services/auth/delegation-api/src/app/delegations/test/me-delegations.access-incoming.spec.ts b/apps/services/auth/delegation-api/src/app/delegations/test/me-delegations.access-incoming.spec.ts index 81eea480ae5b..6f5c526d1188 100644 --- a/apps/services/auth/delegation-api/src/app/delegations/test/me-delegations.access-incoming.spec.ts +++ b/apps/services/auth/delegation-api/src/app/delegations/test/me-delegations.access-incoming.spec.ts @@ -9,7 +9,9 @@ import { DelegationScope, DelegationsIndexService, } from '@island.is/auth-api-lib' +import { RskRelationshipsClient } from '@island.is/clients-rsk-relationships' import { NationalRegistryClientService } from '@island.is/clients/national-registry-v2' +import { CompanyRegistryClientService } from '@island.is/clients/rsk/company-registry' import { expectMatchingDelegations, FixtureFactory, @@ -41,9 +43,16 @@ describe('MeDelegationsController', () => { }) server = request(app.getHttpServer()) delegationIndexService = app.get(DelegationsIndexService) + const rskRelationshipsClientService = app.get(RskRelationshipsClient) const nationalRegistryClientService = app.get( NationalRegistryClientService, ) + const companyRegistryClientService = app.get( + CompanyRegistryClientService, + ) + jest + .spyOn(nationalRegistryClientService, 'getCustodyChildren') + .mockImplementation(async () => []) jest .spyOn(nationalRegistryClientService, 'getIndividual') .mockImplementation(async (nationalId: string) => @@ -52,6 +61,12 @@ describe('MeDelegationsController', () => { name: fromName, }), ) + jest + .spyOn(rskRelationshipsClientService, 'getIndividualRelationships') + .mockImplementation(async () => null) + jest + .spyOn(companyRegistryClientService, 'getCompany') + .mockImplementation(async () => null) jest .spyOn(delegationIndexService, 'indexDelegations') .mockImplementation() diff --git a/apps/services/auth/public-api/test/mocks/companyRegistryClientService.mock.ts b/apps/services/auth/public-api/test/mocks/companyRegistryClientService.mock.ts new file mode 100644 index 000000000000..fec204a16425 --- /dev/null +++ b/apps/services/auth/public-api/test/mocks/companyRegistryClientService.mock.ts @@ -0,0 +1,8 @@ +import { CompanyRegistryClientService } from '@island.is/clients/rsk/company-registry' + +export const CompanyRegistryClientServiceMock: Partial = + { + getCompany() { + return Promise.resolve(null) + }, + } diff --git a/apps/services/auth/public-api/test/mocks/index.ts b/apps/services/auth/public-api/test/mocks/index.ts index 77ff6e030811..b56b101b6fd9 100644 --- a/apps/services/auth/public-api/test/mocks/index.ts +++ b/apps/services/auth/public-api/test/mocks/index.ts @@ -1,3 +1,4 @@ export * from './einstaklingurApi.mock' export * from './rskProcuringClient.mock' export * from './featureFlagService.mock' +export * from './companyRegistryClientService.mock' diff --git a/apps/services/auth/public-api/test/setup.ts b/apps/services/auth/public-api/test/setup.ts index eb533a696e10..e8eef786b36e 100644 --- a/apps/services/auth/public-api/test/setup.ts +++ b/apps/services/auth/public-api/test/setup.ts @@ -16,6 +16,7 @@ import { IndividualDto, NationalRegistryClientService, } from '@island.is/clients/national-registry-v2' +import { CompanyRegistryClientService } from '@island.is/clients/rsk/company-registry' import { ConfigType } from '@island.is/nest/config' import { FeatureFlagService } from '@island.is/nest/feature-flags' import { @@ -35,6 +36,7 @@ import { import { AppModule } from '../src/app/app.module' import { + CompanyRegistryClientServiceMock, createMockEinstaklingurApi, FeatureFlagServiceMock, RskProcuringClientMock, @@ -156,6 +158,8 @@ export const setupWithAuth = async ({ .useValue(createMockEinstaklingurApi(nationalRegistryUser)) .overrideProvider(RskRelationshipsClient) .useValue(RskProcuringClientMock) + .overrideProvider(CompanyRegistryClientService) + .useValue(CompanyRegistryClientServiceMock) .overrideProvider(DelegationConfig.KEY) .useValue(delegationConfig) .overrideProvider(FeatureFlagService) From 17ef24071c0ec62349b08dad5c06929f81b6b60e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gu=C3=B0j=C3=B3n=20Gu=C3=B0j=C3=B3nsson?= Date: Fri, 15 Nov 2024 14:09:27 +0000 Subject: [PATCH 22/66] feat(j-s): Defender Updated Notification (#16801) * Adss a defendant national id * Removes unused imports * Stops updating defendants via API in indictment cases on court case number assignment as these updates are sent to the robot * Adds a guard to get a defender by national id * Rewrites update defendant by national id * Refactors defendant update messages * Restricts defendant restricted updates to indictment cases * Moves defendand defender choice updates and notifications to defendant classes * Update unit tests and fixxes some issues * Fixes email sending trigger and guard --------- Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- .../src/app/modules/case/case.controller.ts | 4 - .../src/app/modules/case/case.service.ts | 7 +- .../app/modules/case/internalCase.service.ts | 2 +- .../caseController/createCourtCase.spec.ts | 5 - .../case/test/caseController/update.spec.ts | 17 -- .../internalCaseController/archive.spec.ts | 4 +- .../modules/defendant/defendant.service.ts | 216 ++++++++++-------- .../guards/defendantNationalIdExists.guard.ts | 49 ++++ .../defendantNationalIdExistsGuard.spec.ts | 125 ++++++++++ .../defendant/internalDefendant.controller.ts | 18 +- .../test/defendantController/update.spec.ts | 39 +--- .../deliverDefendantToCourtGuards.spec.ts | 19 ++ .../updateDefendant.spec.ts | 77 +++++++ .../updateDefendantGuards.spec.ts | 26 +++ .../defendantNotification.service.ts | 124 ++++++---- .../defendantNotification.strings.ts | 13 ++ .../internalNotification.controller.ts | 2 +- .../subpoenaNotification.service.ts | 35 +-- .../subpoenaNotification.strings.ts | 13 -- .../subpoena/dto/updateSubpoena.dto.ts | 5 - .../subpoena/internalSubpoena.controller.ts | 2 +- .../modules/subpoena/subpoena.controller.ts | 1 - .../app/modules/subpoena/subpoena.module.ts | 3 +- .../app/modules/subpoena/subpoena.service.ts | 102 ++++----- .../test/createTestingSubpoenaModule.ts | 4 +- .../types/src/lib/notification.ts | 4 +- 26 files changed, 599 insertions(+), 317 deletions(-) create mode 100644 apps/judicial-system/backend/src/app/modules/defendant/guards/defendantNationalIdExists.guard.ts create mode 100644 apps/judicial-system/backend/src/app/modules/defendant/guards/test/defendantNationalIdExistsGuard.spec.ts create mode 100644 apps/judicial-system/backend/src/app/modules/defendant/test/internalDefendantController/deliverDefendantToCourtGuards.spec.ts create mode 100644 apps/judicial-system/backend/src/app/modules/defendant/test/internalDefendantController/updateDefendant.spec.ts create mode 100644 apps/judicial-system/backend/src/app/modules/defendant/test/internalDefendantController/updateDefendantGuards.spec.ts diff --git a/apps/judicial-system/backend/src/app/modules/case/case.controller.ts b/apps/judicial-system/backend/src/app/modules/case/case.controller.ts index cbab6e505062..63b82483e3a9 100644 --- a/apps/judicial-system/backend/src/app/modules/case/case.controller.ts +++ b/apps/judicial-system/backend/src/app/modules/case/case.controller.ts @@ -39,14 +39,10 @@ import { } from '@island.is/judicial-system/formatters' import type { User } from '@island.is/judicial-system/types' import { - CaseAppealRulingDecision, - CaseDecision, CaseState, - CaseTransition, CaseType, indictmentCases, investigationCases, - isRestrictionCase, restrictionCases, UserRole, } from '@island.is/judicial-system/types' diff --git a/apps/judicial-system/backend/src/app/modules/case/case.service.ts b/apps/judicial-system/backend/src/app/modules/case/case.service.ts index 6f77a6752c3e..ae7e7b739366 100644 --- a/apps/judicial-system/backend/src/app/modules/case/case.service.ts +++ b/apps/judicial-system/backend/src/app/modules/case/case.service.ts @@ -784,10 +784,9 @@ export class CaseService { elementId: caseFile.id, })) ?? [] - const messages = this.getDeliverProsecutorToCourtMessages(theCase, user) - .concat(this.getDeliverDefendantToCourtMessages(theCase, user)) - .concat(deliverCaseFilesRecordToCourtMessages) - .concat(deliverCaseFileToCourtMessages) + const messages: Message[] = deliverCaseFilesRecordToCourtMessages.concat( + deliverCaseFileToCourtMessages, + ) if (isTrafficViolationCase(theCase)) { messages.push({ diff --git a/apps/judicial-system/backend/src/app/modules/case/internalCase.service.ts b/apps/judicial-system/backend/src/app/modules/case/internalCase.service.ts index 211931752bfc..94b5abaa4750 100644 --- a/apps/judicial-system/backend/src/app/modules/case/internalCase.service.ts +++ b/apps/judicial-system/backend/src/app/modules/case/internalCase.service.ts @@ -418,7 +418,7 @@ export class InternalCaseService { collectEncryptionProperties(defendantEncryptionProperties, defendant) defendantsArchive.push(defendantArchive) - await this.defendantService.updateForArcive( + await this.defendantService.updateDatabaseDefendant( theCase.id, defendant.id, clearedDefendantProperties, diff --git a/apps/judicial-system/backend/src/app/modules/case/test/caseController/createCourtCase.spec.ts b/apps/judicial-system/backend/src/app/modules/case/test/caseController/createCourtCase.spec.ts index 318a3420af0d..90c78356e06a 100644 --- a/apps/judicial-system/backend/src/app/modules/case/test/caseController/createCourtCase.spec.ts +++ b/apps/judicial-system/backend/src/app/modules/case/test/caseController/createCourtCase.spec.ts @@ -283,11 +283,6 @@ describe('CaseController - Create court case', () => { it('should post to queue', () => { expect(mockMessageService.sendMessagesToQueue).toHaveBeenCalledWith([ - { - type: MessageType.DELIVERY_TO_COURT_PROSECUTOR, - user, - caseId: theCase.id, - }, { type: MessageType.DELIVERY_TO_COURT_CASE_FILES_RECORD, user, diff --git a/apps/judicial-system/backend/src/app/modules/case/test/caseController/update.spec.ts b/apps/judicial-system/backend/src/app/modules/case/test/caseController/update.spec.ts index 088190ba98dd..b3b0bb816313 100644 --- a/apps/judicial-system/backend/src/app/modules/case/test/caseController/update.spec.ts +++ b/apps/judicial-system/backend/src/app/modules/case/test/caseController/update.spec.ts @@ -458,23 +458,6 @@ describe('CaseController - Update', () => { it('should post to queue', () => { expect(mockMessageService.sendMessagesToQueue).toHaveBeenCalledWith([ - { - type: MessageType.DELIVERY_TO_COURT_PROSECUTOR, - user, - caseId, - }, - { - type: MessageType.DELIVERY_TO_COURT_DEFENDANT, - user, - caseId, - elementId: defendantId1, - }, - { - type: MessageType.DELIVERY_TO_COURT_DEFENDANT, - user, - caseId, - elementId: defendantId2, - }, { type: MessageType.DELIVERY_TO_COURT_CASE_FILES_RECORD, user, diff --git a/apps/judicial-system/backend/src/app/modules/case/test/internalCaseController/archive.spec.ts b/apps/judicial-system/backend/src/app/modules/case/test/internalCaseController/archive.spec.ts index d6beb070a348..7f06a822d4aa 100644 --- a/apps/judicial-system/backend/src/app/modules/case/test/internalCaseController/archive.spec.ts +++ b/apps/judicial-system/backend/src/app/modules/case/test/internalCaseController/archive.spec.ts @@ -287,13 +287,13 @@ describe('InternalCaseController - Archive', () => { ], where: archiveFilter, }) - expect(mockDefendantService.updateForArcive).toHaveBeenCalledWith( + expect(mockDefendantService.updateDatabaseDefendant).toHaveBeenCalledWith( caseId, defendantId1, { nationalId: '', name: '', address: '' }, transaction, ) - expect(mockDefendantService.updateForArcive).toHaveBeenCalledWith( + expect(mockDefendantService.updateDatabaseDefendant).toHaveBeenCalledWith( caseId, defendantId2, { nationalId: '', name: '', address: '' }, diff --git a/apps/judicial-system/backend/src/app/modules/defendant/defendant.service.ts b/apps/judicial-system/backend/src/app/modules/defendant/defendant.service.ts index 38374e35a08b..8906b2815629 100644 --- a/apps/judicial-system/backend/src/app/modules/defendant/defendant.service.ts +++ b/apps/judicial-system/backend/src/app/modules/defendant/defendant.service.ts @@ -90,62 +90,72 @@ export class DefendantService { return defendants[0] } - private async sendUpdateDefendantMessages( + private async sendRequestCaseUpdateDefendantMessages( theCase: Case, updatedDefendant: Defendant, oldDefendant: Defendant, user: User, - ) { + ): Promise { + if (!theCase.courtCaseNumber) { + return + } + + const messages: Message[] = [] + // Handling of updates sent to the court system - if (theCase.courtCaseNumber) { - // A defendant is updated after the case has been received by the court. - if (updatedDefendant.noNationalId !== oldDefendant.noNationalId) { - // This should only happen to non-indictment cases. - // A defendant nationalId is added or removed. Attempt to add the defendant to the court case. - // In case there is no national id, the court will be notified. - await this.messageService.sendMessagesToQueue([ - this.getMessageForDeliverDefendantToCourt(updatedDefendant, user), - ]) - } else if (updatedDefendant.nationalId !== oldDefendant.nationalId) { - // This should only happen to non-indictment cases. - // A defendant is replaced. Attempt to add the defendant to the court case, - // but also ask the court to verify defendants. - await this.messageService.sendMessagesToQueue([ - this.getMessageForSendDefendantsNotUpdatedAtCourtNotification( - theCase, - user, - ), - this.getMessageForDeliverDefendantToCourt(updatedDefendant, user), - ]) - } else if ( - updatedDefendant.defenderEmail !== oldDefendant.defenderEmail - ) { - // This should only happen to indictment cases. - // A defendant's defender email is updated. - // Attempt to update the defendant in the court case. - await this.messageService.sendMessagesToQueue([ - this.getMessageForDeliverDefendantToCourt(updatedDefendant, user), - ]) - } + // A defendant is updated after the case has been received by the court. + if (updatedDefendant.noNationalId !== oldDefendant.noNationalId) { + // A defendant nationalId is added or removed. Attempt to add the defendant to the court case. + // In case there is no national id, the court will be notified. + messages.push( + this.getMessageForDeliverDefendantToCourt(updatedDefendant, user), + ) + } else if (updatedDefendant.nationalId !== oldDefendant.nationalId) { + // A defendant is replaced. Attempt to add the defendant to the court case, + // but also ask the court to verify defendants. + messages.push( + this.getMessageForSendDefendantsNotUpdatedAtCourtNotification( + theCase, + user, + ), + this.getMessageForDeliverDefendantToCourt(updatedDefendant, user), + ) } - // Handling of messages sent to participants for indictment cases - if (isIndictmentCase(theCase.type)) { - // Defender was just confirmed by judge + if (messages.length === 0) { + return + } + + return this.messageService.sendMessagesToQueue(messages) + } + + private async sendIndictmentCaseUpdateDefendantMessages( + theCase: Case, + updatedDefendant: Defendant, + oldDefendant: Defendant, + ): Promise { + if (!theCase.courtCaseNumber) { + return + } + + if (updatedDefendant.isDefenderChoiceConfirmed) { if ( - updatedDefendant.isDefenderChoiceConfirmed && - !oldDefendant.isDefenderChoiceConfirmed && - (updatedDefendant.defenderChoice === DefenderChoice.CHOOSE || - updatedDefendant.defenderChoice === DefenderChoice.DELEGATE) + updatedDefendant.defenderChoice === DefenderChoice.CHOOSE || + updatedDefendant.defenderChoice === DefenderChoice.DELEGATE ) { - await this.messageService.sendMessagesToQueue([ - { - type: MessageType.DEFENDANT_NOTIFICATION, - caseId: theCase.id, - body: { type: DefendantNotificationType.DEFENDER_ASSIGNED }, - elementId: updatedDefendant.id, - }, - ]) + // TODO: Update defender with robot if needed + + // Defender was just confirmed by judge + if (!oldDefendant.isDefenderChoiceConfirmed) { + await this.messageService.sendMessagesToQueue([ + { + type: MessageType.DEFENDANT_NOTIFICATION, + caseId: theCase.id, + body: { type: DefendantNotificationType.DEFENDER_ASSIGNED }, + elementId: updatedDefendant.id, + }, + ]) + } } } } @@ -183,19 +193,15 @@ export class DefendantService { return defendant } - async updateForArcive( + async updateDatabaseDefendant( caseId: string, defendantId: string, update: UpdateDefendantDto, - transaction: Transaction, - ): Promise { + transaction?: Transaction, + ) { const [numberOfAffectedRows, defendants] = await this.defendantModel.update( update, - { - where: { id: defendantId, caseId }, - returning: true, - transaction, - }, + { where: { id: defendantId, caseId }, returning: true, transaction }, ) return this.getUpdatedDefendant( @@ -206,69 +212,99 @@ export class DefendantService { ) } - async update( + async updateRequestCase( theCase: Case, defendant: Defendant, update: UpdateDefendantDto, user: User, ): Promise { - const [numberOfAffectedRows, defendants] = await this.defendantModel.update( + const updatedDefendant = await this.updateDatabaseDefendant( + theCase.id, + defendant.id, update, - { - where: { id: defendant.id, caseId: theCase.id }, - returning: true, - }, ) - const updatedDefendant = this.getUpdatedDefendant( - numberOfAffectedRows, - defendants, - defendant.id, + await this.sendRequestCaseUpdateDefendantMessages( + theCase, + updatedDefendant, + defendant, + user, + ) + + return updatedDefendant + } + + async updateIndictmentCase( + theCase: Case, + defendant: Defendant, + update: UpdateDefendantDto, + ): Promise { + const updatedDefendant = await this.updateDatabaseDefendant( theCase.id, + defendant.id, + update, ) - await this.sendUpdateDefendantMessages( + await this.sendIndictmentCaseUpdateDefendantMessages( theCase, updatedDefendant, defendant, - user, ) return updatedDefendant } - async updateByNationalId( - caseId: string, - defendantNationalId: string, + async update( + theCase: Case, + defendant: Defendant, + update: UpdateDefendantDto, + user: User, + ): Promise { + if (isIndictmentCase(theCase.type)) { + return this.updateIndictmentCase(theCase, defendant, update) + } else { + return this.updateRequestCase(theCase, defendant, update, user) + } + } + + async updateRestricted( + theCase: Case, + defendant: Defendant, update: InternalUpdateDefendantDto, + isDefenderChoiceConfirmed = false, + transaction?: Transaction, ): Promise { // The reason we have a separate dto for this is because requests that end here // are initiated by outside API's which should not be able to edit other fields // Defendant updated originating from the judicial system should use the UpdateDefendantDto // and go through the update method above using the defendantId. - // This is also why we set the isDefenderChoiceConfirmed to false here - the judge needs to confirm all changes. - update = { - ...update, - isDefenderChoiceConfirmed: false, - } as UpdateDefendantDto + // This is also why we may set the isDefenderChoiceConfirmed to false here - the judge needs to confirm all changes. - const [numberOfAffectedRows, defendants] = await this.defendantModel.update( - update, - { - where: { - caseId, - national_id: normalizeAndFormatNationalId(defendantNationalId), - }, - returning: true, - }, + const updatedDefendant = await this.updateDatabaseDefendant( + theCase.id, + defendant.id, + { ...update, isDefenderChoiceConfirmed }, + transaction, ) - const updatedDefendant = this.getUpdatedDefendant( - numberOfAffectedRows, - defendants, - defendants[0].id, - caseId, - ) + // Notify the court if the defendant has changed the defender choice + if ( + !updatedDefendant.isDefenderChoiceConfirmed && + updatedDefendant.defenderChoice === DefenderChoice.CHOOSE && + (updatedDefendant.defenderChoice !== defendant.defenderChoice || + updatedDefendant.defenderNationalId !== defendant.defenderNationalId) + ) { + await this.messageService.sendMessagesToQueue([ + { + type: MessageType.DEFENDANT_NOTIFICATION, + caseId: theCase.id, + elementId: updatedDefendant.id, + body: { + type: DefendantNotificationType.DEFENDANT_SELECTED_DEFENDER, + }, + }, + ]) + } return updatedDefendant } diff --git a/apps/judicial-system/backend/src/app/modules/defendant/guards/defendantNationalIdExists.guard.ts b/apps/judicial-system/backend/src/app/modules/defendant/guards/defendantNationalIdExists.guard.ts new file mode 100644 index 000000000000..b400bccebd5e --- /dev/null +++ b/apps/judicial-system/backend/src/app/modules/defendant/guards/defendantNationalIdExists.guard.ts @@ -0,0 +1,49 @@ +import { + BadRequestException, + CanActivate, + ExecutionContext, + Injectable, + NotFoundException, +} from '@nestjs/common' + +import { normalizeAndFormatNationalId } from '@island.is/judicial-system/formatters' + +import { Case } from '../../case' + +@Injectable() +export class DefendantNationalIdExistsGuard implements CanActivate { + canActivate(context: ExecutionContext): boolean { + const request = context.switchToHttp().getRequest() + + const theCase: Case = request.case + + if (!theCase) { + throw new BadRequestException('Missing case') + } + + const defendantNationalId = request.params.defendantNationalId + + if (!defendantNationalId) { + throw new BadRequestException('Missing defendant national id') + } + + const normalizedAndFormatedNationalId = + normalizeAndFormatNationalId(defendantNationalId) + + const defendant = theCase.defendants?.find( + (defendant) => + defendant.nationalId && + normalizedAndFormatedNationalId.includes(defendant.nationalId), + ) + + if (!defendant) { + throw new NotFoundException( + `Defendant with given national id of case ${theCase.id} does not exist`, + ) + } + + request.defendant = defendant + + return true + } +} diff --git a/apps/judicial-system/backend/src/app/modules/defendant/guards/test/defendantNationalIdExistsGuard.spec.ts b/apps/judicial-system/backend/src/app/modules/defendant/guards/test/defendantNationalIdExistsGuard.spec.ts new file mode 100644 index 000000000000..07ae3267b24d --- /dev/null +++ b/apps/judicial-system/backend/src/app/modules/defendant/guards/test/defendantNationalIdExistsGuard.spec.ts @@ -0,0 +1,125 @@ +import { uuid } from 'uuidv4' + +import { + BadRequestException, + ExecutionContext, + NotFoundException, +} from '@nestjs/common' + +import { DefendantNationalIdExistsGuard } from '../defendantNationalIdExists.guard' + +interface Then { + result: boolean + error: Error +} + +type GivenWhenThen = () => Promise + +describe('Defendant National Id Exists Guard', () => { + const mockRequest = jest.fn() + let givenWhenThen: GivenWhenThen + + beforeEach(async () => { + givenWhenThen = async (): Promise => { + const guard = new DefendantNationalIdExistsGuard() + const then = {} as Then + + try { + then.result = guard.canActivate({ + switchToHttp: () => ({ getRequest: mockRequest }), + } as unknown as ExecutionContext) + } catch (error) { + then.error = error as Error + } + + return then + } + }) + + describe('defendant exists', () => { + const caseId = uuid() + const defendantId = uuid() + const defendantNationalId = uuid() + const defendant = { + id: defendantId, + nationalId: defendantNationalId, + caseId, + } + const theCase = { id: caseId, defendants: [defendant] } + const request = { + params: { caseId, defendantNationalId }, + case: theCase, + defendant: undefined, + } + let then: Then + + beforeEach(async () => { + mockRequest.mockReturnValueOnce(request) + + then = await givenWhenThen() + }) + + it('should activate', () => { + expect(then.result).toBe(true) + expect(request.defendant).toBe(defendant) + }) + }) + + describe('defendant does not exist', () => { + const caseId = uuid() + const defendantId = uuid() + const theCase = { + id: caseId, + defendants: [{ id: defendantId, nationalId: uuid(), caseId }], + } + let then: Then + + beforeEach(async () => { + mockRequest.mockReturnValueOnce({ + params: { caseId, defendantNationalId: uuid() }, + case: theCase, + }) + + then = await givenWhenThen() + }) + + it('should throw NotFoundException', () => { + expect(then.error).toBeInstanceOf(NotFoundException) + expect(then.error.message).toBe( + `Defendant with given national id of case ${caseId} does not exist`, + ) + }) + }) + + describe('missing case', () => { + let then: Then + + beforeEach(async () => { + mockRequest.mockReturnValueOnce({ params: {} }) + + then = await givenWhenThen() + }) + + it('should throw BadRequestException', () => { + expect(then.error).toBeInstanceOf(BadRequestException) + expect(then.error.message).toBe('Missing case') + }) + }) + + describe('missing defendant id', () => { + const caseId = uuid() + const theCase = { id: caseId, defendants: [] } + let then: Then + + beforeEach(async () => { + mockRequest.mockReturnValueOnce({ params: { caseId }, case: theCase }) + + then = await givenWhenThen() + }) + + it('should throw BadRequestException', () => { + expect(then.error).toBeInstanceOf(BadRequestException) + expect(then.error.message).toBe('Missing defendant national id') + }) + }) +}) diff --git a/apps/judicial-system/backend/src/app/modules/defendant/internalDefendant.controller.ts b/apps/judicial-system/backend/src/app/modules/defendant/internalDefendant.controller.ts index f7dc724065a6..f835ad07b5b1 100644 --- a/apps/judicial-system/backend/src/app/modules/defendant/internalDefendant.controller.ts +++ b/apps/judicial-system/backend/src/app/modules/defendant/internalDefendant.controller.ts @@ -17,12 +17,14 @@ import { messageEndpoint, MessageType, } from '@island.is/judicial-system/message' +import { indictmentCases } from '@island.is/judicial-system/types' -import { Case, CaseExistsGuard, CurrentCase } from '../case' +import { Case, CaseExistsGuard, CaseTypeGuard, CurrentCase } from '../case' import { DeliverDefendantToCourtDto } from './dto/deliverDefendantToCourt.dto' import { InternalUpdateDefendantDto } from './dto/internalUpdateDefendant.dto' import { CurrentDefendant } from './guards/defendant.decorator' import { DefendantExistsGuard } from './guards/defendantExists.guard' +import { DefendantNationalIdExistsGuard } from './guards/defendantNationalIdExists.guard' import { Defendant } from './models/defendant.model' import { DeliverResponse } from './models/deliver.response' import { DefendantService } from './defendant.service' @@ -62,25 +64,25 @@ export class InternalDefendantController { ) } + @UseGuards(new CaseTypeGuard(indictmentCases), DefendantNationalIdExistsGuard) @Patch('defense/:defendantNationalId') @ApiOkResponse({ type: Defendant, description: 'Updates defendant information by case and national id', }) - async updateDefendant( + updateDefendant( @Param('caseId') caseId: string, - @Param('defendantNationalId') defendantNationalId: string, + @Param('defendantNationalId') _: string, @CurrentCase() theCase: Case, + @CurrentDefendant() defendant: Defendant, @Body() updatedDefendantChoice: InternalUpdateDefendantDto, ): Promise { this.logger.debug(`Updating defendant info for ${caseId}`) - const updatedDefendant = await this.defendantService.updateByNationalId( - theCase.id, - defendantNationalId, + return this.defendantService.updateRestricted( + theCase, + defendant, updatedDefendantChoice, ) - - return updatedDefendant } } diff --git a/apps/judicial-system/backend/src/app/modules/defendant/test/defendantController/update.spec.ts b/apps/judicial-system/backend/src/app/modules/defendant/test/defendantController/update.spec.ts index 4ead03bc4b3d..d445408d802a 100644 --- a/apps/judicial-system/backend/src/app/modules/defendant/test/defendantController/update.spec.ts +++ b/apps/judicial-system/backend/src/app/modules/defendant/test/defendantController/update.spec.ts @@ -22,6 +22,7 @@ interface Then { type GivenWhenThen = ( defendantUpdate: UpdateDefendantDto, + type: CaseType, courtCaseNumber?: string, ) => Promise @@ -52,6 +53,7 @@ describe('DefendantController - Update', () => { givenWhenThen = async ( defendantUpdate: UpdateDefendantDto, + type: CaseType, courtCaseNumber?: string, ) => { const then = {} as Then @@ -61,7 +63,7 @@ describe('DefendantController - Update', () => { caseId, defendantId, user, - { id: caseId, courtCaseNumber, type: CaseType.INDICTMENT } as Case, + { id: caseId, courtCaseNumber, type } as Case, defendant, defendantUpdate, ) @@ -81,7 +83,7 @@ describe('DefendantController - Update', () => { const mockUpdate = mockDefendantModel.update as jest.Mock mockUpdate.mockResolvedValueOnce([1, [updatedDefendant]]) - then = await givenWhenThen(defendantUpdate) + then = await givenWhenThen(defendantUpdate, CaseType.CUSTODY) }) it('should update the defendant without queuing', () => { @@ -102,7 +104,7 @@ describe('DefendantController - Update', () => { const mockUpdate = mockDefendantModel.update as jest.Mock mockUpdate.mockResolvedValueOnce([1, [updatedDefendant]]) - await givenWhenThen(defendantUpdate, uuid()) + await givenWhenThen(defendantUpdate, CaseType.INDICTMENT, uuid()) }) it('should not queue', () => { @@ -118,7 +120,7 @@ describe('DefendantController - Update', () => { const mockUpdate = mockDefendantModel.update as jest.Mock mockUpdate.mockResolvedValueOnce([1, [updatedDefendant]]) - await givenWhenThen(defendantUpdate, uuid()) + await givenWhenThen(defendantUpdate, CaseType.CUSTODY, uuid()) }) it('should queue messages', () => { @@ -141,7 +143,7 @@ describe('DefendantController - Update', () => { const mockUpdate = mockDefendantModel.update as jest.Mock mockUpdate.mockResolvedValueOnce([1, [updatedDefendant]]) - await givenWhenThen(defendantUpdate, uuid()) + await givenWhenThen(defendantUpdate, CaseType.TELECOMMUNICATIONS, uuid()) }) it('should queue messages', () => { @@ -162,29 +164,6 @@ describe('DefendantController - Update', () => { }) }) - describe(`defendant's defender email changed after case is delivered to court`, () => { - const defendantUpdate = { defenderEmail: uuid() } - const updatedDefendant = { ...defendant, ...defendantUpdate } - - beforeEach(async () => { - const mockUpdate = mockDefendantModel.update as jest.Mock - mockUpdate.mockResolvedValueOnce([1, [updatedDefendant]]) - - await givenWhenThen(defendantUpdate, uuid()) - }) - - it('should queue messages', () => { - expect(mockMessageService.sendMessagesToQueue).toHaveBeenCalledWith([ - { - type: MessageType.DELIVERY_TO_COURT_DEFENDANT, - user, - caseId, - elementId: defendantId, - }, - ]) - }) - }) - describe.each([ { isDefenderChoiceConfirmed: true, shouldSendEmail: true }, { isDefenderChoiceConfirmed: false, shouldSendEmail: false }, @@ -202,7 +181,7 @@ describe('DefendantController - Update', () => { const mockUpdate = mockDefendantModel.update as jest.Mock mockUpdate.mockResolvedValueOnce([1, [updatedDefendant]]) - await givenWhenThen(defendantUpdate, uuid()) + await givenWhenThen(defendantUpdate, CaseType.INDICTMENT, uuid()) }) if (shouldSendEmail) { @@ -228,7 +207,7 @@ describe('DefendantController - Update', () => { let then: Then beforeEach(async () => { - then = await givenWhenThen({}) + then = await givenWhenThen({}, CaseType.CUSTODY) }) it('should throw Error', () => { diff --git a/apps/judicial-system/backend/src/app/modules/defendant/test/internalDefendantController/deliverDefendantToCourtGuards.spec.ts b/apps/judicial-system/backend/src/app/modules/defendant/test/internalDefendantController/deliverDefendantToCourtGuards.spec.ts new file mode 100644 index 000000000000..69cc2065dd45 --- /dev/null +++ b/apps/judicial-system/backend/src/app/modules/defendant/test/internalDefendantController/deliverDefendantToCourtGuards.spec.ts @@ -0,0 +1,19 @@ +import { DefendantExistsGuard } from '../../guards/defendantExists.guard' +import { InternalDefendantController } from '../../internalDefendant.controller' + +describe('InternalDefendantController - Deliver defendant to court guards', () => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + let guards: any[] + + beforeEach(() => { + guards = Reflect.getMetadata( + '__guards__', + InternalDefendantController.prototype.deliverDefendantToCourt, + ) + }) + + it('should have the right guard configuration', () => { + expect(guards).toHaveLength(1) + expect(new guards[0]()).toBeInstanceOf(DefendantExistsGuard) + }) +}) diff --git a/apps/judicial-system/backend/src/app/modules/defendant/test/internalDefendantController/updateDefendant.spec.ts b/apps/judicial-system/backend/src/app/modules/defendant/test/internalDefendantController/updateDefendant.spec.ts new file mode 100644 index 000000000000..1d6c8e73cf85 --- /dev/null +++ b/apps/judicial-system/backend/src/app/modules/defendant/test/internalDefendantController/updateDefendant.spec.ts @@ -0,0 +1,77 @@ +import { uuid } from 'uuidv4' + +import { createTestingDefendantModule } from '../createTestingDefendantModule' + +import { Case } from '../../../case' +import { InternalUpdateDefendantDto } from '../../dto/internalUpdateDefendant.dto' +import { Defendant } from '../../models/defendant.model' + +interface Then { + result: Defendant + error: Error +} + +type GivenWhenThen = () => Promise + +describe('InternalDefendantController - Update defendant', () => { + const caseId = uuid() + const defendantId = uuid() + const defendantNationalId = uuid() + const update = { somefield: 'somevalue' } as InternalUpdateDefendantDto + const updatedDefendant = { + id: defendantId, + nationalId: defendantNationalId, + ...update, + } + let mockDefendantModel: typeof Defendant + let givenWhenThen: GivenWhenThen + + beforeEach(async () => { + const defendant = { + id: defendantId, + nationalId: defendantNationalId, + } as Defendant + const { defendantModel, internalDefendantController } = + await createTestingDefendantModule() + + mockDefendantModel = defendantModel + + const mockUpdate = mockDefendantModel.update as jest.Mock + mockUpdate.mockRejectedValue(new Error('Some error')) + + givenWhenThen = async () => { + const then = {} as Then + + await internalDefendantController + .updateDefendant( + caseId, + defendantNationalId, + { id: caseId, defendants: [defendant] } as Case, + defendant, + update, + ) + .then((result) => (then.result = result)) + .catch((error) => (then.error = error)) + + return then + } + }) + + describe('update defendant', () => { + let then: Then + + beforeEach(async () => { + const mockUpdate = mockDefendantModel.update as jest.Mock + mockUpdate.mockResolvedValue([1, [updatedDefendant]]) + + then = await givenWhenThen() + }) + it('should update the defendant', async () => { + expect(mockDefendantModel.update).toHaveBeenCalledWith( + { ...update, isDefenderChoiceConfirmed: false }, + { where: { id: defendantId, caseId }, returning: true }, + ) + expect(then.result).toEqual(updatedDefendant) + }) + }) +}) diff --git a/apps/judicial-system/backend/src/app/modules/defendant/test/internalDefendantController/updateDefendantGuards.spec.ts b/apps/judicial-system/backend/src/app/modules/defendant/test/internalDefendantController/updateDefendantGuards.spec.ts new file mode 100644 index 000000000000..a11f2f6b280b --- /dev/null +++ b/apps/judicial-system/backend/src/app/modules/defendant/test/internalDefendantController/updateDefendantGuards.spec.ts @@ -0,0 +1,26 @@ +import { indictmentCases } from '@island.is/judicial-system/types' + +import { CaseTypeGuard } from '../../../case' +import { DefendantNationalIdExistsGuard } from '../../guards/defendantNationalIdExists.guard' +import { InternalDefendantController } from '../../internalDefendant.controller' + +describe('InternalDefendantController - Update defendant guards', () => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + let guards: any[] + + beforeEach(() => { + guards = Reflect.getMetadata( + '__guards__', + InternalDefendantController.prototype.updateDefendant, + ) + }) + + it('should have the right guard configuration', () => { + expect(guards).toHaveLength(2) + expect(guards[0]).toBeInstanceOf(CaseTypeGuard) + expect(guards[0]).toEqual({ + allowedCaseTypes: indictmentCases, + }) + expect(new guards[1]()).toBeInstanceOf(DefendantNationalIdExistsGuard) + }) +}) diff --git a/apps/judicial-system/backend/src/app/modules/notification/defendantNotification.service.ts b/apps/judicial-system/backend/src/app/modules/notification/defendantNotification.service.ts index 5249a63c693d..14710892f483 100644 --- a/apps/judicial-system/backend/src/app/modules/notification/defendantNotification.service.ts +++ b/apps/judicial-system/backend/src/app/modules/notification/defendantNotification.service.ts @@ -1,5 +1,3 @@ -import { MessageDescriptor } from '@formatjs/intl' - import { Inject, Injectable, @@ -12,7 +10,10 @@ import { EmailService } from '@island.is/email-service' import { type Logger, LOGGER_PROVIDER } from '@island.is/logging' import { type ConfigType } from '@island.is/nest/config' -import { DEFENDER_INDICTMENT_ROUTE } from '@island.is/judicial-system/consts' +import { + DEFENDER_INDICTMENT_ROUTE, + ROUTE_HANDLER_ROUTE, +} from '@island.is/judicial-system/consts' import { DefendantNotificationType, isIndictmentCase, @@ -50,39 +51,27 @@ export class DefendantNotificationService extends BaseNotificationService { } private async sendEmails( - defendant: Defendant, theCase: Case, notificationType: DefendantNotificationType, - subject: MessageDescriptor, - body: MessageDescriptor, + subject: string, + body: string, + to: { name?: string; email?: string }[], ) { - const courtName = theCase.court?.name - const defenderHasAccessToRVG = !!defendant.defenderNationalId - - const formattedSubject = this.formatMessage(subject, { - courtName, - }) - - const formattedBody = this.formatMessage(body, { - courtName, - courtCaseNumber: theCase.courtCaseNumber, - defenderHasAccessToRVG, - linkStart: ``, - linkEnd: '', - }) const promises: Promise[] = [] - if (defendant.defenderEmail) { - promises.push( - this.sendEmail( - formattedSubject, - formattedBody, - defendant.defenderName, - defendant.defenderEmail, - undefined, - true, - ), - ) + for (const recipient of to) { + if (recipient.email && recipient.name) { + promises.push( + this.sendEmail( + subject, + body, + recipient.name, + recipient.email, + undefined, + true, + ), + ) + } } const recipients = await Promise.all(promises) @@ -90,6 +79,43 @@ export class DefendantNotificationService extends BaseNotificationService { return this.recordNotification(theCase.id, notificationType, recipients) } + private sendDefendantSelectedDefenderNotification( + theCase: Case, + ): Promise { + const formattedSubject = this.formatMessage( + strings.defendantSelectedDefenderSubject, + { + courtCaseNumber: theCase.courtCaseNumber, + }, + ) + + const formattedBody = this.formatMessage( + strings.defendantSelectedDefenderBody, + { + courtCaseNumber: theCase.courtCaseNumber, + linkStart: ``, + linkEnd: '', + }, + ) + + return this.sendEmails( + theCase, + DefendantNotificationType.DEFENDANT_SELECTED_DEFENDER, + formattedSubject, + formattedBody, + [ + { + name: theCase.judge?.name, + email: theCase.judge?.email, + }, + { + name: theCase.registrar?.name, + email: theCase.registrar?.email, + }, + ], + ) + } + private shouldSendDefenderAssignedNotification( theCase: Case, defendant: Defendant, @@ -113,8 +139,8 @@ export class DefendantNotificationService extends BaseNotificationService { } private async sendDefenderAssignedNotification( - defendant: Defendant, theCase: Case, + defendant: Defendant, ): Promise { const shouldSend = this.shouldSendDefenderAssignedNotification( theCase, @@ -122,12 +148,30 @@ export class DefendantNotificationService extends BaseNotificationService { ) if (shouldSend) { + const courtName = theCase.court?.name + const defenderHasAccessToRVG = !!defendant.defenderNationalId + + const formattedSubject = this.formatMessage( + strings.defenderAssignedSubject, + { + courtName, + }, + ) + + const formattedBody = this.formatMessage(strings.defenderAssignedBody, { + courtName, + courtCaseNumber: theCase.courtCaseNumber, + defenderHasAccessToRVG, + linkStart: ``, + linkEnd: '', + }) + return this.sendEmails( - defendant, theCase, DefendantNotificationType.DEFENDER_ASSIGNED, - strings.defenderAssignedSubject, - strings.defenderAssignedBody, + formattedSubject, + formattedBody, + [{ name: defendant.defenderName, email: defendant.defenderEmail }], ) } @@ -137,12 +181,14 @@ export class DefendantNotificationService extends BaseNotificationService { private sendNotification( notificationType: DefendantNotificationType, - defendant: Defendant, theCase: Case, + defendant: Defendant, ): Promise { switch (notificationType) { + case DefendantNotificationType.DEFENDANT_SELECTED_DEFENDER: + return this.sendDefendantSelectedDefenderNotification(theCase) case DefendantNotificationType.DEFENDER_ASSIGNED: - return this.sendDefenderAssignedNotification(defendant, theCase) + return this.sendDefenderAssignedNotification(theCase, defendant) default: throw new InternalServerErrorException( `Invalid notification type: ${notificationType}`, @@ -152,13 +198,13 @@ export class DefendantNotificationService extends BaseNotificationService { async sendDefendantNotification( type: DefendantNotificationType, - defendant: Defendant, theCase: Case, + defendant: Defendant, ): Promise { await this.refreshFormatMessage() try { - return await this.sendNotification(type, defendant, theCase) + return await this.sendNotification(type, theCase, defendant) } catch (error) { this.logger.error('Failed to send notification', error) diff --git a/apps/judicial-system/backend/src/app/modules/notification/defendantNotification.strings.ts b/apps/judicial-system/backend/src/app/modules/notification/defendantNotification.strings.ts index eeeebdae43b3..0bd021c0dc53 100644 --- a/apps/judicial-system/backend/src/app/modules/notification/defendantNotification.strings.ts +++ b/apps/judicial-system/backend/src/app/modules/notification/defendantNotification.strings.ts @@ -1,6 +1,19 @@ import { defineMessage } from '@formatjs/intl' export const strings = { + defendantSelectedDefenderSubject: defineMessage({ + id: 'judicial.system.backend:defendant_notifications.defendant_selected_defender_subject', + defaultMessage: 'Val á verjanda í máli {courtCaseNumber}', + description: + 'Subject of the notification sent when the defendant defender choise in an indictment has changed', + }), + defendantSelectedDefenderBody: defineMessage({ + id: 'judicial.system.backend:defendant_notifications.defendant_selected_defender_body', + defaultMessage: + 'Verjandi hefur verið valinn í máli {courtCaseNumber}.

Sjá nánar á {linkStart}yfirlitssíðu málsins í Réttarvörslugátt{linkEnd}.', + description: + 'Body of the notification sent when the defendant defender choise in an indictment has changed', + }), defenderAssignedSubject: defineMessage({ id: 'judicial.system.backend:defendant_notifications.indictment_defender_assigned_subject', defaultMessage: '{courtName} - aðgangur að máli', diff --git a/apps/judicial-system/backend/src/app/modules/notification/internalNotification.controller.ts b/apps/judicial-system/backend/src/app/modules/notification/internalNotification.controller.ts index f5def84647e3..53237a099dd2 100644 --- a/apps/judicial-system/backend/src/app/modules/notification/internalNotification.controller.ts +++ b/apps/judicial-system/backend/src/app/modules/notification/internalNotification.controller.ts @@ -118,8 +118,8 @@ export class InternalNotificationController { return this.defendantNotificationService.sendDefendantNotification( notificationDto.type, - defendant, theCase, + defendant, ) } diff --git a/apps/judicial-system/backend/src/app/modules/notification/subpoenaNotification.service.ts b/apps/judicial-system/backend/src/app/modules/notification/subpoenaNotification.service.ts index 13fad8b63ff5..41a4630f0c92 100644 --- a/apps/judicial-system/backend/src/app/modules/notification/subpoenaNotification.service.ts +++ b/apps/judicial-system/backend/src/app/modules/notification/subpoenaNotification.service.ts @@ -56,16 +56,16 @@ export class SubpoenaNotificationService extends BaseNotificationService { courtCaseNumber: theCase.courtCaseNumber, }) + const formattedBody = this.formatMessage(body, { + courtCaseNumber: theCase.courtCaseNumber, + linkStart: ``, + linkEnd: '', + }) + const promises: Promise[] = [] for (const recipient of to) { if (recipient.email && recipient.name) { - const formattedBody = this.formatMessage(body, { - courtCaseNumber: theCase.courtCaseNumber, - linkStart: ``, - linkEnd: '', - }) - promises.push( this.sendEmail( formattedSubject, @@ -134,27 +134,6 @@ export class SubpoenaNotificationService extends BaseNotificationService { ) } - private sendDefendantSelectedDefenderNotification( - theCase: Case, - ): Promise { - return this.sendEmails( - theCase, - SubpoenaNotificationType.DEFENDANT_SELECTED_DEFENDER, - strings.defendantSelectedDefenderSubject, - strings.defendantSelectedDefenderBody, - [ - { - name: theCase.judge?.name, - email: theCase.judge?.email, - }, - { - name: theCase.registrar?.name, - email: theCase.registrar?.email, - }, - ], - ) - } - private sendNotification( type: SubpoenaNotificationType, theCase: Case, @@ -164,8 +143,6 @@ export class SubpoenaNotificationService extends BaseNotificationService { return this.sendServiceSuccessfulNotification(theCase) case SubpoenaNotificationType.SERVICE_FAILED: return this.sendServiceFailedNotification(theCase) - case SubpoenaNotificationType.DEFENDANT_SELECTED_DEFENDER: - return this.sendDefendantSelectedDefenderNotification(theCase) default: throw new InternalServerErrorException( `Invalid notification type: ${type}`, diff --git a/apps/judicial-system/backend/src/app/modules/notification/subpoenaNotification.strings.ts b/apps/judicial-system/backend/src/app/modules/notification/subpoenaNotification.strings.ts index 8f08b6f475ae..0b475708668f 100644 --- a/apps/judicial-system/backend/src/app/modules/notification/subpoenaNotification.strings.ts +++ b/apps/judicial-system/backend/src/app/modules/notification/subpoenaNotification.strings.ts @@ -27,17 +27,4 @@ export const strings = { description: 'Body of the notification sent when the serive status in an indictment has changed', }), - defendantSelectedDefenderSubject: defineMessage({ - id: 'judicial.system.backend:subpoena_notifications.defendant_selected_defender_subject', - defaultMessage: 'Val á verjanda í máli {courtCaseNumber}', - description: - 'Subject of the notification sent when the serive status in an indictment has changed', - }), - defendantSelectedDefenderBody: defineMessage({ - id: 'judicial.system.backend:subpoena_notifications.defendant_selected_defender_body', - defaultMessage: - 'Verjandi hefur verið valinn í máli {courtCaseNumber}.

Sjá nánar á {linkStart}yfirlitssíðu málsins í Réttarvörslugátt{linkEnd}.', - description: - 'Body of the notification sent when the serive status in an indictment has changed', - }), } diff --git a/apps/judicial-system/backend/src/app/modules/subpoena/dto/updateSubpoena.dto.ts b/apps/judicial-system/backend/src/app/modules/subpoena/dto/updateSubpoena.dto.ts index 80603c97865d..36a14e1be0ef 100644 --- a/apps/judicial-system/backend/src/app/modules/subpoena/dto/updateSubpoena.dto.ts +++ b/apps/judicial-system/backend/src/app/modules/subpoena/dto/updateSubpoena.dto.ts @@ -64,9 +64,4 @@ export class UpdateSubpoenaDto { @IsString() @ApiPropertyOptional({ type: String }) readonly requestedDefenderName?: string - - @IsOptional() - @IsBoolean() - @ApiPropertyOptional({ type: Boolean }) - readonly isDefenderChoiceConfirmed?: boolean } diff --git a/apps/judicial-system/backend/src/app/modules/subpoena/internalSubpoena.controller.ts b/apps/judicial-system/backend/src/app/modules/subpoena/internalSubpoena.controller.ts index 411c8f3e4ef3..968440871a92 100644 --- a/apps/judicial-system/backend/src/app/modules/subpoena/internalSubpoena.controller.ts +++ b/apps/judicial-system/backend/src/app/modules/subpoena/internalSubpoena.controller.ts @@ -33,7 +33,7 @@ import { DeliverResponse } from './models/deliver.response' import { Subpoena } from './models/subpoena.model' import { SubpoenaService } from './subpoena.service' -@Controller('api/internal/') +@Controller('api/internal') @ApiTags('internal subpoenas') @UseGuards(TokenGuard) export class InternalSubpoenaController { diff --git a/apps/judicial-system/backend/src/app/modules/subpoena/subpoena.controller.ts b/apps/judicial-system/backend/src/app/modules/subpoena/subpoena.controller.ts index da84d9c66c59..da139a356906 100644 --- a/apps/judicial-system/backend/src/app/modules/subpoena/subpoena.controller.ts +++ b/apps/judicial-system/backend/src/app/modules/subpoena/subpoena.controller.ts @@ -5,7 +5,6 @@ import { Get, Header, Inject, - InternalServerErrorException, Param, Query, Res, diff --git a/apps/judicial-system/backend/src/app/modules/subpoena/subpoena.module.ts b/apps/judicial-system/backend/src/app/modules/subpoena/subpoena.module.ts index 57b9d55af2be..31fba1e49734 100644 --- a/apps/judicial-system/backend/src/app/modules/subpoena/subpoena.module.ts +++ b/apps/judicial-system/backend/src/app/modules/subpoena/subpoena.module.ts @@ -4,6 +4,7 @@ import { SequelizeModule } from '@nestjs/sequelize' import { MessageModule } from '@island.is/judicial-system/message' import { CaseModule } from '../case/case.module' +import { DefendantModule } from '../defendant/defendant.module' import { Defendant } from '../defendant/models/defendant.model' import { EventModule } from '../event/event.module' import { FileModule } from '../file/file.module' @@ -21,7 +22,7 @@ import { SubpoenaService } from './subpoena.service' forwardRef(() => FileModule), forwardRef(() => MessageModule), forwardRef(() => EventModule), - + forwardRef(() => DefendantModule), SequelizeModule.forFeature([Subpoena, Defendant]), ], controllers: [ diff --git a/apps/judicial-system/backend/src/app/modules/subpoena/subpoena.service.ts b/apps/judicial-system/backend/src/app/modules/subpoena/subpoena.service.ts index 8ecf5820db5e..5259ec00dcb0 100644 --- a/apps/judicial-system/backend/src/app/modules/subpoena/subpoena.service.ts +++ b/apps/judicial-system/backend/src/app/modules/subpoena/subpoena.service.ts @@ -20,7 +20,6 @@ import { } from '@island.is/judicial-system/message' import { CaseFileCategory, - DefenderChoice, isFailedServiceStatus, isSuccessfulServiceStatus, isTrafficViolationCase, @@ -31,6 +30,7 @@ import { import { Case } from '../case/models/case.model' import { PdfService } from '../case/pdf.service' +import { DefendantService } from '../defendant/defendant.service' import { Defendant } from '../defendant/models/defendant.model' import { EventService } from '../event' import { FileService } from '../file' @@ -71,6 +71,7 @@ export class SubpoenaService { @Inject(forwardRef(() => FileService)) private readonly fileService: FileService, private readonly eventService: EventService, + private readonly defendantService: DefendantService, @Inject(LOGGER_PROVIDER) private readonly logger: Logger, ) {} @@ -111,53 +112,36 @@ export class SubpoenaService { private async addMessagesForSubpoenaUpdateToQueue( subpoena: Subpoena, serviceStatus?: ServiceStatus, - defenderChoice?: DefenderChoice, - defenderNationalId?: string, ): Promise { - const messages: Message[] = [] + let message: Message | undefined = undefined if (serviceStatus && serviceStatus !== subpoena.serviceStatus) { if (isSuccessfulServiceStatus(serviceStatus)) { - messages.push({ + message = { type: MessageType.SUBPOENA_NOTIFICATION, caseId: subpoena.caseId, elementId: [subpoena.defendantId, subpoena.id], body: { type: SubpoenaNotificationType.SERVICE_SUCCESSFUL, }, - }) + } } else if (isFailedServiceStatus(serviceStatus)) { - messages.push({ + message = { type: MessageType.SUBPOENA_NOTIFICATION, caseId: subpoena.caseId, elementId: [subpoena.defendantId, subpoena.id], body: { type: SubpoenaNotificationType.SERVICE_FAILED, }, - }) + } } } - if ( - defenderChoice === DefenderChoice.CHOOSE && - (defenderChoice !== subpoena.defendant?.defenderChoice || - defenderNationalId !== subpoena.defendant?.defenderNationalId) - ) { - messages.push({ - type: MessageType.SUBPOENA_NOTIFICATION, - caseId: subpoena.caseId, - elementId: [subpoena.defendantId, subpoena.id], - body: { - type: SubpoenaNotificationType.DEFENDANT_SELECTED_DEFENDER, - }, - }) - } - - if (messages.length === 0) { + if (!message) { return } - return this.messageService.sendMessagesToQueue(messages) + return this.messageService.sendMessagesToQueue([message]) } async update( @@ -191,55 +175,47 @@ export class SubpoenaService { } if ( - defenderChoice || - defenderNationalId || - requestedDefenderChoice || - requestedDefenderNationalId + subpoena.case && + subpoena.defendant && + (defenderChoice || + defenderNationalId || + defenderName || + defenderEmail || + defenderPhoneNumber || + requestedDefenderChoice || + requestedDefenderNationalId || + requestedDefenderName) ) { // If there is a change in the defender choice after the judge has confirmed the choice, // we need to set the isDefenderChoiceConfirmed to false - const isChangingDefenderChoice = - (defenderChoice && + const resetDefenderChoiceConfirmed = + subpoena.defendant?.isDefenderChoiceConfirmed && + ((defenderChoice && subpoena.defendant?.defenderChoice !== defenderChoice) || - (defenderNationalId && - subpoena.defendant?.defenderNationalId !== defenderNationalId && - subpoena.defendant?.isDefenderChoiceConfirmed) - - const defendantUpdate: Partial = { - defenderChoice, - defenderNationalId, - defenderName, - defenderEmail, - defenderPhoneNumber, - requestedDefenderChoice, - requestedDefenderNationalId, - requestedDefenderName, - isDefenderChoiceConfirmed: isChangingDefenderChoice ? false : undefined, - } + (defenderNationalId && + subpoena.defendant?.defenderNationalId !== defenderNationalId)) - const [numberOfAffectedRows] = await this.defendantModel.update( - defendantUpdate, + // Færa message handling í defendant service + await this.defendantService.updateRestricted( + subpoena.case, + subpoena.defendant, { - where: { id: subpoena.defendantId }, - transaction, + defenderChoice, + defenderNationalId, + defenderName, + defenderEmail, + defenderPhoneNumber, + requestedDefenderChoice, + requestedDefenderNationalId, + requestedDefenderName, }, + resetDefenderChoiceConfirmed ? false : undefined, + transaction, ) - - if (numberOfAffectedRows > 1) { - // Tolerate failure, but log error - this.logger.error( - `Unexpected number of rows ${numberOfAffectedRows} affected when updating defendant`, - ) - } } // No need to wait for this to finish - this.addMessagesForSubpoenaUpdateToQueue( - subpoena, - serviceStatus, - defenderChoice, - defenderNationalId, - ) + this.addMessagesForSubpoenaUpdateToQueue(subpoena, serviceStatus) if ( update.serviceStatus && diff --git a/apps/judicial-system/backend/src/app/modules/subpoena/test/createTestingSubpoenaModule.ts b/apps/judicial-system/backend/src/app/modules/subpoena/test/createTestingSubpoenaModule.ts index 4a7f93290f45..e397c3e498ac 100644 --- a/apps/judicial-system/backend/src/app/modules/subpoena/test/createTestingSubpoenaModule.ts +++ b/apps/judicial-system/backend/src/app/modules/subpoena/test/createTestingSubpoenaModule.ts @@ -13,7 +13,7 @@ import { import { MessageService } from '@island.is/judicial-system/message' import { CaseService, PdfService } from '../../case' -import { Defendant } from '../../defendant' +import { Defendant, DefendantService } from '../../defendant' import { EventService } from '../../event' import { FileService } from '../../file' import { PoliceService } from '../../police' @@ -30,6 +30,7 @@ jest.mock('../../case/pdf.service') jest.mock('../../police/police.service') jest.mock('../../file/file.service') jest.mock('../../event/event.service') +jest.mock('../../defendant/defendant.service') jest.mock('@island.is/judicial-system/message') export const createTestingSubpoenaModule = async () => { @@ -49,6 +50,7 @@ export const createTestingSubpoenaModule = async () => { PoliceService, FileService, EventService, + DefendantService, { provide: LOGGER_PROVIDER, useValue: { diff --git a/libs/judicial-system/types/src/lib/notification.ts b/libs/judicial-system/types/src/lib/notification.ts index 89d0dcdc5f71..981ab499ff70 100644 --- a/libs/judicial-system/types/src/lib/notification.ts +++ b/libs/judicial-system/types/src/lib/notification.ts @@ -21,13 +21,13 @@ export enum CaseNotificationType { } export enum DefendantNotificationType { + DEFENDANT_SELECTED_DEFENDER = 'DEFENDANT_SELECTED_DEFENDER', DEFENDER_ASSIGNED = 'DEFENDER_ASSIGNED', } export enum SubpoenaNotificationType { SERVICE_SUCCESSFUL = 'SERVICE_SUCCESSFUL', SERVICE_FAILED = 'SERVICE_FAILED', - DEFENDANT_SELECTED_DEFENDER = 'DEFENDANT_SELECTED_DEFENDER', } export enum InstitutionNotificationType { @@ -54,10 +54,10 @@ export enum NotificationType { INDICTMENT_DENIED = CaseNotificationType.INDICTMENT_DENIED, INDICTMENT_RETURNED = CaseNotificationType.INDICTMENT_RETURNED, CASE_FILES_UPDATED = CaseNotificationType.CASE_FILES_UPDATED, + DEFENDANT_SELECTED_DEFENDER = DefendantNotificationType.DEFENDANT_SELECTED_DEFENDER, DEFENDER_ASSIGNED = DefendantNotificationType.DEFENDER_ASSIGNED, SERVICE_SUCCESSFUL = SubpoenaNotificationType.SERVICE_SUCCESSFUL, SERVICE_FAILED = SubpoenaNotificationType.SERVICE_FAILED, - DEFENDANT_SELECTED_DEFENDER = SubpoenaNotificationType.DEFENDANT_SELECTED_DEFENDER, INDICTMENTS_WAITING_FOR_CONFIRMATION = InstitutionNotificationType.INDICTMENTS_WAITING_FOR_CONFIRMATION, } From a6930229077731e973cb2f2a649040d6c9925483 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=9E=C3=B3rey=20J=C3=B3na?= Date: Fri, 15 Nov 2024 14:35:01 +0000 Subject: [PATCH 23/66] feat(native-app): add third party error template and use in health overview (#16860) * feat: add third party error template and use in health overview * fix: use arrow function instead of function --------- Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- apps/native/app/src/messages/en.ts | 3 + apps/native/app/src/messages/is.ts | 2 + .../src/screens/health/health-overview.tsx | 360 ++++++++++-------- .../app/src/stores/organizations-store.ts | 5 + .../src/ui/lib/problem/problem-template.tsx | 22 +- .../native/app/src/ui/lib/problem/problem.tsx | 21 +- .../lib/problem/third-party-service-error.tsx | 30 ++ .../utils/get-organization-slug-from-error.ts | 36 ++ 8 files changed, 319 insertions(+), 160 deletions(-) create mode 100644 apps/native/app/src/ui/lib/problem/third-party-service-error.tsx create mode 100644 apps/native/app/src/utils/get-organization-slug-from-error.ts diff --git a/apps/native/app/src/messages/en.ts b/apps/native/app/src/messages/en.ts index 734168b2c9bb..17260fc7d745 100644 --- a/apps/native/app/src/messages/en.ts +++ b/apps/native/app/src/messages/en.ts @@ -594,6 +594,9 @@ export const en: TranslatedMessages = { 'problem.offline.title': 'No internet connection', 'problem.offline.message': 'An error occurred while communicating with the service provider', + 'problem.thirdParty.title': 'No connection', + 'problem.thirdParty.message': + 'An error occurred while communicating with the service provider', // passkeys 'passkeys.headingTitle': 'Sign in with Island.is app', diff --git a/apps/native/app/src/messages/is.ts b/apps/native/app/src/messages/is.ts index 0135ba4a659e..bd6967d93b48 100644 --- a/apps/native/app/src/messages/is.ts +++ b/apps/native/app/src/messages/is.ts @@ -595,6 +595,8 @@ export const is = { 'Ef þú telur þig eiga gögn sem ættu að birtast hér, vinsamlegast hafðu samband við þjónustuaðila.', 'problem.offline.title': 'Samband næst ekki', 'problem.offline.message': 'Villa kom upp í samskiptum við þjónustuaðila', + 'problem.thirdParty.title': 'Samband næst ekki', + 'problem.thirdParty.message': 'Villa kom upp í samskiptum við þjónustuaðila', // passkeys 'passkeys.headingTitle': 'Innskrá með Ísland.is appinu', diff --git a/apps/native/app/src/screens/health/health-overview.tsx b/apps/native/app/src/screens/health/health-overview.tsx index 25fce0d06d70..2c6778c7fb34 100644 --- a/apps/native/app/src/screens/health/health-overview.tsx +++ b/apps/native/app/src/screens/health/health-overview.tsx @@ -1,4 +1,12 @@ -import { Alert, Button, Heading, Input, InputRow, Typography } from '@ui' +import { + Alert, + Button, + Heading, + Input, + InputRow, + Problem, + Typography, +} from '@ui' import React, { useCallback, useMemo, useState } from 'react' import { FormattedMessage, useIntl } from 'react-intl' import { @@ -12,6 +20,7 @@ import { } from 'react-native' import { NavigationFunctionComponent } from 'react-native-navigation' import styled, { useTheme } from 'styled-components/native' +import { ApolloError } from '@apollo/client' import { useGetHealthCenterQuery, @@ -77,6 +86,10 @@ const HeadingSection: React.FC = ({ title, onPress }) => { ) } +const showErrorComponent = (error: ApolloError) => { + return +} + const { getNavigationOptions, useNavigationOptions } = createNavigationOptionHooks((theme, intl) => ({ topBar: { @@ -247,49 +260,57 @@ export const HealthOverviewScreen: NavigationFunctionComponent = ({ ) } /> - - - - - - + {(healthCenterRes.data || healthCenterRes.loading) && ( + <> + + + + + + + + )} + {healthCenterRes.error && + !healthCenterRes.data && + showErrorComponent(healthCenterRes.error)} openBrowser(`${origin}/minarsidur/heilsa/yfirlit`, componentId) } /> - {healthInsuranceData?.isInsured || healthInsuranceRes.loading ? ( + {(healthInsuranceRes.data && healthInsuranceData?.isInsured) || + healthInsuranceRes.loading ? ( ) : ( - + !healthInsuranceRes.error && + healthInsuranceRes.data && ( + + ) )} + {healthInsuranceRes.error && + !healthInsuranceRes.data && + showErrorComponent(healthInsuranceRes.error)} - - - - - - - - - - + {(paymentOverviewRes.loading || paymentOverviewRes.data) && ( + <> + + + + + + + + + + + + )} + {paymentOverviewRes.error && + !paymentOverviewRes.data && + paymentStatusRes.error && + !paymentStatusRes.data && + showErrorComponent(paymentOverviewRes.error)} - - - - - - + {(medicinePurchaseRes.loading || medicinePurchaseRes.data) && ( + <> + + + + + + + + )} + {medicinePurchaseRes.error && + !medicinePurchaseRes.data && + showErrorComponent(medicinePurchaseRes.error)} diff --git a/apps/native/app/src/stores/organizations-store.ts b/apps/native/app/src/stores/organizations-store.ts index 2d3580092443..3b9cb837e73a 100644 --- a/apps/native/app/src/stores/organizations-store.ts +++ b/apps/native/app/src/stores/organizations-store.ts @@ -30,6 +30,7 @@ interface Organization { interface OrganizationsStore extends State { organizations: Organization[] getOrganizationLogoUrl(forName: string, size?: number): ImageSourcePropType + getOrganizationNameBySlug(slug: string): string actions: any } @@ -72,6 +73,10 @@ export const organizationsStore = create( const uri = `${url}?w=${size}&h=${size}&fit=pad&fm=png` return { uri } }, + getOrganizationNameBySlug(slug: string) { + const org = get().organizations.find((o) => o.slug === slug) + return org?.title ?? '' + }, actions: { updateOriganizations: async () => { const client = await getApolloClientAsync() diff --git a/apps/native/app/src/ui/lib/problem/problem-template.tsx b/apps/native/app/src/ui/lib/problem/problem-template.tsx index b15358fbdc05..1ebe261c581f 100644 --- a/apps/native/app/src/ui/lib/problem/problem-template.tsx +++ b/apps/native/app/src/ui/lib/problem/problem-template.tsx @@ -10,6 +10,7 @@ export type ProblemTemplateBaseProps = { title: string message: string | ReactNode withContainer?: boolean + size?: 'small' | 'large' } interface WithIconProps extends ProblemTemplateBaseProps { @@ -68,6 +69,7 @@ const getColorsByVariant = ( const Host = styled.View<{ borderColor: Colors noContainer?: boolean + size: 'small' | 'large' }>` border-color: ${({ borderColor, theme }) => theme.color[borderColor]}; border-width: 1px; @@ -76,11 +78,12 @@ const Host = styled.View<{ justify-content: center; align-items: center; flex: 1; - row-gap: ${({ theme }) => theme.spacing[3]}px; + row-gap: ${({ theme, size }) => + size === 'small' ? theme.spacing[2] : theme.spacing[3]}px; padding: ${({ theme }) => theme.spacing[2]}px; ${({ noContainer, theme }) => noContainer && `margin: ${theme.spacing[2]}px;`} - min-height: 280px; + min-height: ${({ size }) => (size === 'large' ? '280' : '142')}px; ` const Tag = styled(View)<{ @@ -114,12 +117,13 @@ export const ProblemTemplate = ({ showIcon, tag, withContainer, + size = 'large', }: ProblemTemplateProps) => { const { borderColor, tagColor, tagBackgroundColor } = getColorsByVariant(variant) return ( - + {tag && ( @@ -129,10 +133,18 @@ export const ProblemTemplate = ({ )} {showIcon && } - + {title} - {message} + + {message} + ) diff --git a/apps/native/app/src/ui/lib/problem/problem.tsx b/apps/native/app/src/ui/lib/problem/problem.tsx index 40963f69836c..4fa3d4e984d1 100644 --- a/apps/native/app/src/ui/lib/problem/problem.tsx +++ b/apps/native/app/src/ui/lib/problem/problem.tsx @@ -1,7 +1,10 @@ import { useEffect } from 'react' + import { useTranslate } from '../../../hooks/use-translate' import { useOfflineStore } from '../../../stores/offline-store' import { ProblemTemplate, ProblemTemplateBaseProps } from './problem-template' +import { getOrganizationSlugFromError } from '../../../utils/get-organization-slug-from-error' +import { ThirdPartyServiceError } from './third-party-service-error' enum ProblemTypes { error = 'error', @@ -20,7 +23,7 @@ type ProblemBaseProps = { title?: string message?: string logError?: boolean -} & Pick +} & Pick interface ErrorProps extends ProblemBaseProps { type?: 'error' @@ -61,6 +64,7 @@ export const Problem = ({ logError = false, withContainer, showIcon, + size = 'large', }: ProblemProps) => { const t = useTranslate() const { isConnected } = useOfflineStore() @@ -73,6 +77,7 @@ export const Problem = ({ message: message ?? t('problem.error.message'), tag: tag ?? t('problem.error.tag'), variant: 'error', + size: size ?? 'large', } as const useEffect(() => { @@ -90,6 +95,7 @@ export const Problem = ({ variant="warning" title={title ?? t('problem.offline.title')} message={message ?? t('problem.offline.message')} + size={size} /> ) } @@ -99,6 +105,18 @@ export const Problem = ({ switch (type) { case ProblemTypes.error: + if (error) { + const organizationSlug = getOrganizationSlugFromError(error) + + if (organizationSlug) { + return ( + + ) + } + } return case ProblemTypes.noData: @@ -109,6 +127,7 @@ export const Problem = ({ variant="info" title={title ?? t('problem.noData.title')} message={message ?? t('problem.noData.message')} + size={size} /> ) diff --git a/apps/native/app/src/ui/lib/problem/third-party-service-error.tsx b/apps/native/app/src/ui/lib/problem/third-party-service-error.tsx new file mode 100644 index 000000000000..d2a714c18694 --- /dev/null +++ b/apps/native/app/src/ui/lib/problem/third-party-service-error.tsx @@ -0,0 +1,30 @@ +import React from 'react' +import { useIntl } from 'react-intl' + +import { ProblemTemplate } from './problem-template' +import { useOrganizationsStore } from '../../../stores/organizations-store' + +type ThirdPartyServiceErrorProps = { + organizationSlug: string + size: 'small' | 'large' +} + +export const ThirdPartyServiceError = ({ + organizationSlug, + size, +}: ThirdPartyServiceErrorProps) => { + const intl = useIntl() + + const { getOrganizationNameBySlug } = useOrganizationsStore() + const organizationName = getOrganizationNameBySlug(organizationSlug) + + return ( + + ) +} diff --git a/apps/native/app/src/utils/get-organization-slug-from-error.ts b/apps/native/app/src/utils/get-organization-slug-from-error.ts new file mode 100644 index 000000000000..1463c87cb8db --- /dev/null +++ b/apps/native/app/src/utils/get-organization-slug-from-error.ts @@ -0,0 +1,36 @@ +import { ApolloError } from '@apollo/client' + +type PartialProblem = { + organizationSlug?: string +} + +type CustomExtension = { + code: string + problem?: PartialProblem + exception?: { + problem?: PartialProblem + } +} + +/** + * Extracts the organization slug from the Apollo error, if it exists. + */ +export const getOrganizationSlugFromError = (error: ApolloError | unknown) => { + const graphQLErrors = (error as ApolloError)?.graphQLErrors + + if (graphQLErrors) { + for (const graphQLError of graphQLErrors) { + const extensions = graphQLError.extensions as CustomExtension + + const organizationSlug = + extensions?.problem?.organizationSlug ?? + extensions?.exception?.problem?.organizationSlug + + if (organizationSlug) { + return organizationSlug + } + } + } + + return undefined +} From b9cf31e8ef7a10426b84e98ec484df266982c03a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81sd=C3=ADs=20Erna=20Gu=C3=B0mundsd=C3=B3ttir?= Date: Fri, 15 Nov 2024 15:23:46 +0000 Subject: [PATCH 24/66] feat(my-pages): add info and deadline text (#16896) Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- .../law-and-order/src/lib/law-and-order.service.ts | 2 ++ .../domains/law-and-order/src/models/subpoena.model.ts | 8 ++++---- libs/clients/judicial-system-sp/src/clientConfig.json | 4 ++++ .../law-and-order/src/screens/Subpoena/Subpoena.graphql | 2 ++ .../law-and-order/src/screens/Subpoena/Subpoena.tsx | 8 ++++++-- 5 files changed, 18 insertions(+), 6 deletions(-) diff --git a/libs/api/domains/law-and-order/src/lib/law-and-order.service.ts b/libs/api/domains/law-and-order/src/lib/law-and-order.service.ts index ca8f4038a1e0..d773090945c3 100644 --- a/libs/api/domains/law-and-order/src/lib/law-and-order.service.ts +++ b/libs/api/domains/law-and-order/src/lib/law-and-order.service.ts @@ -162,6 +162,8 @@ export class LawAndOrderService { (alert) => alert.type === AlertMessageTypeEnum.Success, )?.message, description: subpoenaData.subtitle, + information: subpoenaData.subpoenaInfoText, + deadline: subpoenaData.subpoenaNotificationDeadline, }, } return data diff --git a/libs/api/domains/law-and-order/src/models/subpoena.model.ts b/libs/api/domains/law-and-order/src/models/subpoena.model.ts index c71f0f365388..d54a1af82517 100644 --- a/libs/api/domains/law-and-order/src/models/subpoena.model.ts +++ b/libs/api/domains/law-and-order/src/models/subpoena.model.ts @@ -5,9 +5,6 @@ import { Group } from './group.model' @ObjectType('LawAndOrderSubpoenaTexts') export class Text { - @Field({ nullable: true }) - intro?: string - @Field({ nullable: true }) confirmation?: string @@ -15,7 +12,10 @@ export class Text { description?: string @Field({ nullable: true }) - claim?: string + information?: string + + @Field({ nullable: true }) + deadline?: string } @ObjectType('LawAndOrderSubpoenaData') diff --git a/libs/clients/judicial-system-sp/src/clientConfig.json b/libs/clients/judicial-system-sp/src/clientConfig.json index 48c81122e582..2e4d54e84c54 100644 --- a/libs/clients/judicial-system-sp/src/clientConfig.json +++ b/libs/clients/judicial-system-sp/src/clientConfig.json @@ -450,6 +450,8 @@ "type": "object", "properties": { "title": { "type": "string" }, + "subpoenaInfoText": { "type": "string" }, + "subpoenaNotificationDeadline": { "type": "string" }, "subtitle": { "type": "string" }, "groups": { "type": "array", @@ -468,6 +470,8 @@ }, "required": [ "title", + "subpoenaInfoText", + "subpoenaNotificationDeadline", "subtitle", "groups", "alerts", diff --git a/libs/portals/my-pages/law-and-order/src/screens/Subpoena/Subpoena.graphql b/libs/portals/my-pages/law-and-order/src/screens/Subpoena/Subpoena.graphql index 1551e0e65a5f..5134408d6183 100644 --- a/libs/portals/my-pages/law-and-order/src/screens/Subpoena/Subpoena.graphql +++ b/libs/portals/my-pages/law-and-order/src/screens/Subpoena/Subpoena.graphql @@ -21,6 +21,8 @@ query GetSubpoena($input: LawAndOrderSubpoenaInput!, $locale: String!) { texts { confirmation description + information + deadline } } } diff --git a/libs/portals/my-pages/law-and-order/src/screens/Subpoena/Subpoena.tsx b/libs/portals/my-pages/law-and-order/src/screens/Subpoena/Subpoena.tsx index 819da2fc84f4..06b836951131 100644 --- a/libs/portals/my-pages/law-and-order/src/screens/Subpoena/Subpoena.tsx +++ b/libs/portals/my-pages/law-and-order/src/screens/Subpoena/Subpoena.tsx @@ -134,9 +134,13 @@ const Subpoena = () => { )} - {formatMessage(messages.subpoenaInfoText)} + {subpoena.texts?.information ?? + formatMessage(messages.subpoenaInfoText)} + + + {subpoena.texts?.deadline ?? + formatMessage(messages.subpoenaInfoText2)} - {formatMessage(messages.subpoenaInfoText2)} {!loading && subpoena.data.hasChosen === false && ( From 9d639375d97e8adff584540b131b29175508b6e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristj=C3=A1n=20Albert?= Date: Fri, 15 Nov 2024 15:31:39 +0000 Subject: [PATCH 25/66] feat(driving-license): start on advanced driving-license (#16647) * start on advanced driving-license * code rabbit comment changes * more comment changes * change * minor tweaks - advanced license * tweaks * text tweak --------- Co-authored-by: albinagu <47886428+albinagu@users.noreply.github.com> Co-authored-by: albina Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- .../src/fields/Alert.tsx | 2 +- .../AdvancedLicenseSelection.tsx | 130 ++++++++++++++ .../fields/AdvancedLicenseSelection/index.tsx | 1 + .../driving-license/src/fields/index.ts | 1 + .../src/forms/prerequisites/getForm.ts | 21 ++- .../sectionAdvancedLicenseSelection.ts | 35 ++++ .../prerequisites/sectionApplicationFor.ts | 13 ++ .../driving-license/src/lib/constants.ts | 132 +++++++++++++++ .../driving-license/src/lib/dataSchema.ts | 19 ++- .../src/lib/drivingLicenseTemplate.ts | 4 +- .../src/lib/getApplicationFeatureFlags.ts | 2 + .../driving-license/src/lib/messages.ts | 158 ++++++++++++++++++ 12 files changed, 512 insertions(+), 6 deletions(-) create mode 100644 libs/application/templates/driving-license/src/fields/AdvancedLicenseSelection/AdvancedLicenseSelection.tsx create mode 100644 libs/application/templates/driving-license/src/fields/AdvancedLicenseSelection/index.tsx create mode 100644 libs/application/templates/driving-license/src/forms/prerequisites/sectionAdvancedLicenseSelection.ts diff --git a/libs/application/templates/driving-license-duplicate/src/fields/Alert.tsx b/libs/application/templates/driving-license-duplicate/src/fields/Alert.tsx index 97547f2646d6..da86370f043b 100644 --- a/libs/application/templates/driving-license-duplicate/src/fields/Alert.tsx +++ b/libs/application/templates/driving-license-duplicate/src/fields/Alert.tsx @@ -27,7 +27,7 @@ export const Alert: FC> = ({ }) => { const { formatMessage } = useLocale() const { title, type, message, heading } = field.props as Field - console.log('message', formatText(message, application, formatMessage)) + return ( {heading && ( diff --git a/libs/application/templates/driving-license/src/fields/AdvancedLicenseSelection/AdvancedLicenseSelection.tsx b/libs/application/templates/driving-license/src/fields/AdvancedLicenseSelection/AdvancedLicenseSelection.tsx new file mode 100644 index 000000000000..7976512917fc --- /dev/null +++ b/libs/application/templates/driving-license/src/fields/AdvancedLicenseSelection/AdvancedLicenseSelection.tsx @@ -0,0 +1,130 @@ +import React, { FC, useEffect, useState } from 'react' + +import { Box, Checkbox, ErrorMessage, Text } from '@island.is/island-ui/core' +import { FieldBaseProps } from '@island.is/application/types' +import { useFormContext } from 'react-hook-form' +import { + organizedAdvancedLicenseMap, + AdvancedLicense as AdvancedLicenseEnum, +} from '../../lib/constants' +import { useLocale } from '@island.is/localization' +import { m } from '../../lib/messages' + +const AdvancedLicenseSelection: FC> = ({ + errors, +}) => { + const { formatMessage } = useLocale() + const { setValue, watch } = useFormContext() + + const requiredMessage = (errors as { advancedLicense?: string }) + ?.advancedLicense + ? formatMessage(m.applicationForAdvancedRequiredError) + : '' + + const advancedLicenseValue = watch('advancedLicense') ?? [] + + const [selectedLicenses, setSelectedLicenses] = + useState>(advancedLicenseValue) + + useEffect(() => { + setValue('advancedLicense', selectedLicenses) + }, [selectedLicenses, setValue]) + + return ( + + {Object.entries(organizedAdvancedLicenseMap).map(([, options], index) => { + const group = options.find((x) => x.group)?.group + const groupAge = options.find((x) => x.minAge)?.minAge + + return ( + + + + {group ? formatMessage(m[`groupTitle${group}`]) : ''} + + + {formatMessage(m[`applicationForAdvancedAgeRequired`], { + age: String(groupAge), + })} + + + {options.map((option) => { + const name = `field-${option.code}` + + return ( + + { + setSelectedLicenses((prev) => { + return prev.includes(option.code) + ? prev + .filter((item) => item !== option.code) + .filter( + (item) => item !== option.professional?.code, + ) + : [...prev, option.code] + }) + }} + /> + {option?.professional?.code && ( + + { + setSelectedLicenses((prev) => { + if (e.target.checked && option.professional?.code) { + return [...prev, option.professional.code] + } + + return prev.filter( + (item) => item !== option.professional?.code, + ) + }) + }} + /> + + )} + + ) + })} + + ) + })} + {!selectedLicenses?.length && requiredMessage && ( + +
{requiredMessage}
+
+ )} +
+ ) +} + +export { AdvancedLicenseSelection } diff --git a/libs/application/templates/driving-license/src/fields/AdvancedLicenseSelection/index.tsx b/libs/application/templates/driving-license/src/fields/AdvancedLicenseSelection/index.tsx new file mode 100644 index 000000000000..051ad8e7ef5f --- /dev/null +++ b/libs/application/templates/driving-license/src/fields/AdvancedLicenseSelection/index.tsx @@ -0,0 +1 @@ +export { AdvancedLicenseSelection } from './AdvancedLicenseSelection' diff --git a/libs/application/templates/driving-license/src/fields/index.ts b/libs/application/templates/driving-license/src/fields/index.ts index 6f42ecaa4bb4..6e5d3bd15a6b 100644 --- a/libs/application/templates/driving-license/src/fields/index.ts +++ b/libs/application/templates/driving-license/src/fields/index.ts @@ -4,5 +4,6 @@ export { EligibilitySummary } from './EligibilitySummary' export { SubmitAndDecline } from './SubmitAndDecline' export { LinkExistingApplication } from './LinkExistingApplication' export { PaymentPending } from './PaymentPending' +export { AdvancedLicenseSelection } from './AdvancedLicenseSelection' export { QualityPhoto } from './QualityPhoto' export { default as HealthRemarks } from './HealthRemarks' diff --git a/libs/application/templates/driving-license/src/forms/prerequisites/getForm.ts b/libs/application/templates/driving-license/src/forms/prerequisites/getForm.ts index 9bf9a5b197a7..28d94b416070 100644 --- a/libs/application/templates/driving-license/src/forms/prerequisites/getForm.ts +++ b/libs/application/templates/driving-license/src/forms/prerequisites/getForm.ts @@ -8,13 +8,23 @@ import { sectionApplicationFor } from './sectionApplicationFor' import { sectionRequirements } from './sectionRequirements' import { sectionExistingApplication } from './sectionExistingApplication' import { sectionDigitalLicenseInfo } from './sectionDigitalLicenseInfo' +import { sectionAdvancedLicenseSelection } from './sectionAdvancedLicenseSelection' + +interface DrivingLicenseFormConfig { + allowFakeData?: boolean + allowPickLicense?: boolean + allowBELicense?: boolean + allow65Renewal?: boolean + allowAdvanced?: boolean +} export const getForm = ({ allowFakeData = false, allowPickLicense = false, allowBELicense = false, allow65Renewal = false, -}): Form => + allowAdvanced = false, +}: DrivingLicenseFormConfig): Form => buildForm({ id: 'DrivingLicenseApplicationPrerequisitesForm', title: '', @@ -31,8 +41,15 @@ export const getForm = ({ sectionExternalData, sectionExistingApplication, ...(allowPickLicense - ? [sectionApplicationFor(allowBELicense, allow65Renewal)] + ? [ + sectionApplicationFor( + allowBELicense, + allow65Renewal, + allowAdvanced, + ), + ] : []), + ...(allowAdvanced ? [sectionAdvancedLicenseSelection] : []), sectionDigitalLicenseInfo, sectionRequirements, ], diff --git a/libs/application/templates/driving-license/src/forms/prerequisites/sectionAdvancedLicenseSelection.ts b/libs/application/templates/driving-license/src/forms/prerequisites/sectionAdvancedLicenseSelection.ts new file mode 100644 index 000000000000..e58582a6577b --- /dev/null +++ b/libs/application/templates/driving-license/src/forms/prerequisites/sectionAdvancedLicenseSelection.ts @@ -0,0 +1,35 @@ +import { + buildCustomField, + buildMultiField, + buildSubSection, + getValueViaPath, +} from '@island.is/application/core' +import { m } from '../../lib/messages' +import { LicenseTypes } from '../../lib/constants' + +export const sectionAdvancedLicenseSelection = buildSubSection({ + id: 'sectionAdvancedLicenseSelection', + title: m.applicationForAdvancedLicenseTitle, + condition: (answers) => { + const applicationFor = getValueViaPath( + answers, + 'applicationFor', + ) + + return applicationFor != null && applicationFor === LicenseTypes.B_ADVANCED + }, + children: [ + buildMultiField({ + id: 'advancedLicenseSelectionFields', + title: m.applicationForAdvancedLicenseSectionTitle, + description: m.applicationForAdvancedLicenseSectionDescription, + children: [ + buildCustomField({ + id: 'advancedLicense', + title: '', + component: 'AdvancedLicenseSelection', + }), + ], + }), + ], +}) diff --git a/libs/application/templates/driving-license/src/forms/prerequisites/sectionApplicationFor.ts b/libs/application/templates/driving-license/src/forms/prerequisites/sectionApplicationFor.ts index cf6ba528b6bb..571231ab2c73 100644 --- a/libs/application/templates/driving-license/src/forms/prerequisites/sectionApplicationFor.ts +++ b/libs/application/templates/driving-license/src/forms/prerequisites/sectionApplicationFor.ts @@ -7,6 +7,7 @@ import { import { m } from '../../lib/messages' import { DrivingLicense } from '../../lib/types' import { + B_ADVANCED, B_FULL, B_FULL_RENEWAL_65, B_TEMP, @@ -17,6 +18,7 @@ import { export const sectionApplicationFor = ( allowBELicense = false, allow65Renewal = false, + allowAdvanced = false, ) => buildSubSection({ id: 'applicationFor', @@ -112,6 +114,17 @@ export const sectionApplicationFor = ( }) } + if (allowAdvanced) { + options = options.concat({ + label: m.applicationForAdvancedLicenseTitle, + subLabel: m.applicationForAdvancedLicenseDescription, + value: B_ADVANCED, + disabled: !categories?.some( + (c) => c.nr.toUpperCase() === 'B' && c.validToCode !== 8, + ), + }) + } + return options }, }), diff --git a/libs/application/templates/driving-license/src/lib/constants.ts b/libs/application/templates/driving-license/src/lib/constants.ts index 0e4e00652e02..c10fc573f53b 100644 --- a/libs/application/templates/driving-license/src/lib/constants.ts +++ b/libs/application/templates/driving-license/src/lib/constants.ts @@ -8,9 +8,141 @@ export enum ApiActions { export const B_FULL = 'B-full' export const B_TEMP = 'B-temp' export const B_FULL_RENEWAL_65 = 'B-full-renewal-65' +export const B_ADVANCED = 'B-advanced' export const BE = 'BE' export const DELIVERY_FEE = 'deliveryFee' +export enum LicenseTypes { + 'B_FULL' = 'B-full', + 'B_TEMP' = 'B-temp', + 'B_FULL_RENEWAL_65' = 'B-full-renewal-65', + 'BE' = 'BE', + 'B_ADVANCED' = 'B-advanced', +} + +export enum Pickup { + 'POST' = 'post', + 'DISTRICT' = 'district', +} + +export enum AdvancedLicenseGroupCodes { + 'C1' = 'C1', + 'C' = 'C', + 'D1' = 'D1', + 'D' = 'D', +} + +export enum MainAdvancedLicense { + 'C1' = 'C1', + 'D1' = 'D1', + 'C' = 'C', + 'D' = 'D', + 'C1E' = 'C1E', + 'D1E' = 'D1E', + 'CE' = 'CE', + 'DE' = 'DE', +} + +export enum ProfessionalAdvancedLicense { + 'C1A' = 'C1A', + 'D1A' = 'D1A', + 'CA' = 'CA', + 'DA' = 'DA', +} + +export const AdvancedLicense = { + ...MainAdvancedLicense, + ...ProfessionalAdvancedLicense, +} as const + +type AdvancedLicenseMapItem = { + minAge: number + group: keyof typeof AdvancedLicenseGroupCodes + code: keyof typeof MainAdvancedLicense + professional?: { + minAge: number + code: keyof typeof ProfessionalAdvancedLicense + } +} + +export const advancedLicenseMap: AdvancedLicenseMapItem[] = [ + // C1 + { + code: 'C1', + group: 'C1', + minAge: 18, + professional: { + code: 'C1A', + minAge: 18, + }, + }, + { + code: 'C1E', + group: 'C1', + minAge: 18, + }, + + // C + { + code: 'C', + group: 'C', + minAge: 21, + professional: { + code: 'CA', + minAge: 21, + }, + }, + { + code: 'CE', + group: 'C', + minAge: 21, + }, + + // D1 + { + code: 'D1', + group: 'D1', + minAge: 21, + professional: { + code: 'D1A', + minAge: 21, + }, + }, + { + code: 'D1E', + group: 'D1', + minAge: 21, + }, + + // D + { + code: 'D', + group: 'D', + minAge: 23, + professional: { + code: 'DA', + minAge: 23, + }, + }, + { + code: 'DE', + group: 'D', + minAge: 23, + }, +] + +export const organizedAdvancedLicenseMap = advancedLicenseMap.reduce< + Record +>((acc, item) => { + if (!acc[item.group]) { + acc[item.group] = [] + } + + acc[item.group].push(item) + + return acc +}, {}) + export const CHARGE_ITEM_CODES: Record = { [B_TEMP]: 'AY114', [B_FULL]: 'AY110', diff --git a/libs/application/templates/driving-license/src/lib/dataSchema.ts b/libs/application/templates/driving-license/src/lib/dataSchema.ts index 82d68194a468..981719fbf325 100644 --- a/libs/application/templates/driving-license/src/lib/dataSchema.ts +++ b/libs/application/templates/driving-license/src/lib/dataSchema.ts @@ -1,5 +1,14 @@ import { z } from 'zod' -import { YES, NO, B_FULL_RENEWAL_65, BE, B_TEMP, B_FULL } from './constants' +import { + YES, + NO, + B_FULL_RENEWAL_65, + BE, + B_TEMP, + B_FULL, + B_ADVANCED, + AdvancedLicense, +} from './constants' import { parsePhoneNumberFromString } from 'libphonenumber-js' import { Pickup } from './types' @@ -36,7 +45,13 @@ export const dataSchema = z.object({ ]), requirementsMet: z.boolean().refine((v) => v), certificate: z.array(z.enum([YES, NO])).nonempty(), - applicationFor: z.enum([B_FULL, B_TEMP, BE, B_FULL_RENEWAL_65]), + applicationFor: z.enum([B_FULL, B_TEMP, BE, B_FULL_RENEWAL_65, B_ADVANCED]), + advancedLicense: z + .array(z.enum(Object.values(AdvancedLicense) as [string, ...string[]])) + .nonempty() + .refine((value) => { + return value.length > 0 + }), email: z.string().email(), phone: z.string().refine((v) => isValidPhoneNumber(v)), drivingInstructor: z.string().min(1), diff --git a/libs/application/templates/driving-license/src/lib/drivingLicenseTemplate.ts b/libs/application/templates/driving-license/src/lib/drivingLicenseTemplate.ts index d7c7a9ea2d27..56ea5c57742f 100644 --- a/libs/application/templates/driving-license/src/lib/drivingLicenseTemplate.ts +++ b/libs/application/templates/driving-license/src/lib/drivingLicenseTemplate.ts @@ -53,7 +53,7 @@ import { Pickup } from './types' const getCodes = (application: Application) => { const applicationFor = getValueViaPath< - 'B-full' | 'B-temp' | 'BE' | 'B-full-renewal-65' + 'B-full' | 'B-temp' | 'BE' | 'B-full-renewal-65' | 'B-advanced' >(application.answers, 'applicationFor', 'B-full') const pickup = getValueViaPath(application.answers, 'pickup') @@ -142,6 +142,8 @@ const template: ApplicationTemplate< featureFlags[DrivingLicenseFeatureFlags.ALLOW_BE_LICENSE], allow65Renewal: featureFlags[DrivingLicenseFeatureFlags.ALLOW_65_RENEWAL], + allowAdvanced: + featureFlags[DrivingLicenseFeatureFlags.ALLOW_ADVANCED], }) }, write: 'all', diff --git a/libs/application/templates/driving-license/src/lib/getApplicationFeatureFlags.ts b/libs/application/templates/driving-license/src/lib/getApplicationFeatureFlags.ts index 9a7186289db8..2905a9b30d89 100644 --- a/libs/application/templates/driving-license/src/lib/getApplicationFeatureFlags.ts +++ b/libs/application/templates/driving-license/src/lib/getApplicationFeatureFlags.ts @@ -5,6 +5,7 @@ export enum DrivingLicenseFeatureFlags { ALLOW_LICENSE_SELECTION = 'applicationTemplateDrivingLicenseAllowLicenseSelection', ALLOW_BE_LICENSE = 'isBEApplicationEnabled', ALLOW_65_RENEWAL = 'is65RenewalApplicationEnabled', + ALLOW_ADVANCED = 'isDrivingLicenseAdvancedEnabled', } export const getApplicationFeatureFlags = async ( @@ -15,6 +16,7 @@ export const getApplicationFeatureFlags = async ( DrivingLicenseFeatureFlags.ALLOW_LICENSE_SELECTION, DrivingLicenseFeatureFlags.ALLOW_BE_LICENSE, DrivingLicenseFeatureFlags.ALLOW_65_RENEWAL, + DrivingLicenseFeatureFlags.ALLOW_ADVANCED, ] return ( diff --git a/libs/application/templates/driving-license/src/lib/messages.ts b/libs/application/templates/driving-license/src/lib/messages.ts index 07431e977201..778c8fa73979 100644 --- a/libs/application/templates/driving-license/src/lib/messages.ts +++ b/libs/application/templates/driving-license/src/lib/messages.ts @@ -878,6 +878,164 @@ export const m = defineMessages({ description: 'Health declaration answers indicate that health certificate is required and BE application does not support health certificate requirement', }, + applicationForAdvancedLicenseTitle: { + id: 'dl.application:applicationForAdvancedLicenseTitle', + defaultMessage: 'Aukin ökuréttindi / meirapróf', + description: 'Option title for selecting advanced driving license', + }, + applicationForAdvancedLicenseDescription: { + id: 'dl.application:applicationForAdvancedLicenseDescription', + defaultMessage: 'Texti kemur hér', + description: 'Option description for selecting advanced driving license', + }, + applicationForAdvancedLicenseSectionTitle: { + id: 'dl.application:applicationForAdvancedLicenseSectionTitle', + defaultMessage: 'Veldu réttindi', + description: 'Option title for selecting advanced driving license', + }, + applicationForAdvancedLicenseSectionDescription: { + id: 'dl.application:applicationForAdvancedLicenseSectionDescription', + defaultMessage: 'Í þessari umsókn er verið að sækja um:', + description: 'Option description for selecting advanced driving license', + }, + applicationForAdvancedAgeRequired: { + id: 'dl.application:applicationForAdvancedAgeFor', + defaultMessage: 'Réttindaaldur er {age} ára.', + description: 'Required age for {licenses} is {age} years', + }, + groupTitleC1: { + id: 'dl.application:groupTitleC1', + defaultMessage: 'Minni vörubíll og eftirvagn (C1 og C1E)', + description: 'C1 group title', + }, + groupTitleC: { + id: 'dl.application:groupTitleC1', + defaultMessage: 'Vörubíll og eftirvagn (C og CE)', + description: 'C1 group title', + }, + groupTitleD1: { + id: 'dl.application:groupTitleC1', + defaultMessage: 'Lítil rúta og eftirvagn (D1 og D1E)', + description: 'C1 group title', + }, + groupTitleD: { + id: 'dl.application:groupTitleC1', + defaultMessage: 'Stór rúta og eftirvagn (D og DE)', + description: 'C1 group title', + }, + applicationForAdvancedLicenseTitleC1: { + id: 'dl.application:applicationForAdvancedLicenseTitleC1', + defaultMessage: 'Minni vörubíll (C1)', + description: 'C1 title', + }, + applicationForAdvancedLicenseLabelC1: { + id: 'dl.application:applicationForAdvancedLicenseLabelC1', + defaultMessage: + 'Gefur réttindi til að aka bifreið fyrir 8 farþega eða færri, sem er þyngri en 3.500 kg en þó ekki þyngri en 7.500 kg. Sá sem hefur C1 réttindi má tengja eftirvagn/tengitæki sem er 750 kg eða minna af leyfðri heildarþyngd. Til þess að mega draga þyngri eftirvagna/tengitæki þarf að taka C1E réttindi.', + description: 'C1 description', + }, + applicationForAdvancedLicenseLabelC1A: { + id: 'dl.application:applicationForAdvancedLicenseLabelC1A', + defaultMessage: 'Sækja um leyfi í atvinnuskyni', + description: 'C1A description', + }, + applicationForAdvancedLicenseTitleD1: { + id: 'dl.application:applicationForAdvancedLicenseTitleD1', + defaultMessage: 'Lítil rúta (D1)', + description: 'D1 title', + }, + applicationForAdvancedLicenseLabelD1: { + id: 'dl.application:applicationForAdvancedLicenseLabelD1', + defaultMessage: + 'Gefur réttindi til að aka hópbifreið sem er gerð fyrir að hámarki 16 farþega. Sá sem hefur D1 réttindi má tengja eftirvagn/tengitæki sem er 750 kg eða minna að leyfðri heildarþyngd.', + description: 'D1 description', + }, + applicationForAdvancedLicenseLabelD1A: { + id: 'dl.application:applicationForAdvancedLicenseLabelD1A', + defaultMessage: 'Sækja um leyfi í atvinnuskyni', + description: 'D1A description', + }, + applicationForAdvancedLicenseTitleC: { + id: 'dl.application:applicationForAdvancedLicenseTitleC', + defaultMessage: 'Vörubíll (C)', + description: 'C title', + }, + applicationForAdvancedLicenseLabelC: { + id: 'dl.application:applicationForAdvancedLicenseLabelC', + defaultMessage: + 'Gefur réttindi til að aka vörubifreið fyrir 8 farþega eða færri, sem er þyngri en 7.500 kg. C flokkur gefur einnig réttindi til að aka bifreiðinni með eftirvagni sem er 750 kg eða minna af leyfðri heildarþyngd.', + description: 'C description', + }, + applicationForAdvancedLicenseLabelCA: { + id: 'dl.application:applicationForAdvancedLicenseLabelCA', + defaultMessage: 'Sækja um leyfi í atvinnuskyni', + description: 'CA description', + }, + applicationForAdvancedLicenseTitleD: { + id: 'dl.application:applicationForAdvancedLicenseTitleD', + defaultMessage: 'Stór rúta (D)', + description: 'D title', + }, + applicationForAdvancedLicenseLabelD: { + id: 'dl.application:applicationForAdvancedLicenseLabelD', + defaultMessage: + 'Gefur réttindi til að aka bifreið sem gerð er fyrir fleiri en 8 farþega auk ökumanns. Sá sem hefur D réttindi má tengja eftirvagn/tengitæki sem er 750 kg eða minna af leyfðri heildarþyngd.', + description: 'D description', + }, + applicationForAdvancedLicenseLabelDA: { + id: 'dl.application:applicationForAdvancedLicenseLabelDA', + defaultMessage: 'Sækja um leyfi í atvinnuskyni', + description: 'DA description', + }, + applicationForAdvancedLicenseTitleC1E: { + id: 'dl.application:applicationForAdvancedLicenseTitleC1E', + defaultMessage: 'Minni vörubíll og eftirvagn (C1E)', + description: 'C1E title', + }, + applicationForAdvancedLicenseLabelC1E: { + id: 'dl.application:applicationForAdvancedLicenseLabelC1E', + defaultMessage: + 'Gefur réttindi til að aka vörubifreið/stórum pallbíl í flokki C1 með eftirvagni sem er þyngri en 750 kg að heildarþunga. Þó má sameiginlegur heildarþungi beggja ökutækja ekki fara yfir 12.000 kg. ', + description: 'C1E description', + }, + applicationForAdvancedLicenseTitleD1E: { + id: 'dl.application:applicationForAdvancedLicenseTitleD1E', + defaultMessage: 'Lítil rúta og eftirvagn (D1)', + description: 'D1E title', + }, + applicationForAdvancedLicenseLabelD1E: { + id: 'dl.application:applicationForAdvancedLicenseLabelD1E', + defaultMessage: + 'Gefur réttindi til að aka bifreið í B-flokki með eftirvagn í BE-flokki og hópbifreið í D1 flokki með eftirvagn sem er þyngri en 750 kg að heildarþunga. Þó má sameiginlegur heildarþungi beggja ökutækja ekki fara yfir 12.000 kg.', + description: 'D1E description', + }, + applicationForAdvancedLicenseTitleCE: { + id: 'dl.application:applicationForAdvancedLicenseTitleCE', + defaultMessage: 'Vörubíll og eftirvagn (CE)', + description: 'CE title', + }, + applicationForAdvancedLicenseLabelCE: { + id: 'dl.application:applicationForAdvancedLicenseLabelCE', + defaultMessage: + 'Gefur réttindi til að aka vörubifreið í flokki C með eftirvagni sem er þyngri en 750 kg að heildarþunga.', + description: 'CE description', + }, + applicationForAdvancedLicenseTitleDE: { + id: 'dl.application:applicationForAdvancedLicenseTitleDE', + defaultMessage: 'Stór rúta og eftirvagn (DE)', + description: 'DE title', + }, + applicationForAdvancedLicenseLabelDE: { + id: 'dl.application:applicationForAdvancedLicenseLabelDE', + defaultMessage: + 'Að loknum D réttindum, er hægt að taka að auki DE, sem gefur réttindi til að aka hópbifreið í flokki D með eftirvagni sem er þyngri en 750 kg að heildarþunga. Þeir nemendur sem taka eftirvagnaréttindi í flokki DE og gilda þau réttindi einnig fyrir CE.', + description: 'DE description', + }, + applicationForAdvancedRequiredError: { + id: 'dl.application:applicationForAdvancedRequiredError', + defaultMessage: 'Þú verður að velja að minnsta kosti einn valmöguleika', + description: 'You must select at least one option', + }, }) export const requirementsMessages = defineMessages({ From e6dbd6d771c1aa7e32a45e0e19e3018404bd83c7 Mon Sep 17 00:00:00 2001 From: unakb Date: Fri, 15 Nov 2024 16:25:34 +0000 Subject: [PATCH 26/66] chore(j-s): Civil claimant spokesperson assigned notifications (#16750) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(j-s): Handle advocate assigned to defendant notification * Update defendant.service.ts * feat(j-s): Send civil claimant notification when assigned * Update defendantNotification.service.ts * fix(j-s): Small fix on modal texts * fix(j-s): Stop using advocate for defender emails * fix(j-s): remove advocate assigned from user roles rules * fix(j-s): remove and change tests * fix(j-s): Tests * test(j-s): Defendant notification tests * Update update.spec.ts * Update update.spec.ts * Update sendDefenderAssignedNotifications.spec.ts * Update defendantNotification.service.ts * test(j-s): Add tests * fix(j-s): Tests * test(j-s): Added more civil claimant tests * test(j-s): Added more civil claimant tests * Update civilClaimantNotification.service.ts * Update internalNotification.controller.ts * Update notification.module.ts * Update sendAdvocateAssignedNotifications.spec.ts * Update civilClaimant.service.ts * Update civilClaimant.service.ts * test(j-s): Civil claimant exists guard tests --------- Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> Co-authored-by: Guðjón Guðjónsson --- .../backend/src/app/formatters/formatters.ts | 43 ----- .../backend/src/app/formatters/index.ts | 1 - .../backend/src/app/messages/notifications.ts | 26 --- .../defendant/civilClaimant.service.ts | 27 ++- .../guards/civilClaimaint.decorator.ts | 7 + .../guards/civilClaimantExists.guard.ts | 42 +++++ .../test/civilClaimantExistsGuard.spec.ts | 117 ++++++++++++ .../src/app/modules/defendant/index.ts | 5 +- .../civilClaimantController/create.spec.ts | 80 ++++++++ .../createGuards.spec.ts | 25 +++ .../createRolesRules.spec.ts | 35 ++++ .../civilClaimantController/delete.spec.ts | 79 ++++++++ .../deleteGuards.spec.ts | 25 +++ .../deleteRolesRules.spec.ts | 26 +++ .../civilClaimantController/update.spec.ts | 140 ++++++++++++++ .../updateGuards.spec.ts | 25 +++ .../updateRolesRules.spec.ts | 35 ++++ .../test/createTestingDefendantModule.ts | 35 +++- .../notification/caseNotification.service.ts | 75 +------- .../civilClaimantNotification.service.ts | 171 ++++++++++++++++++ .../civilClaimantNotification.strings.ts | 17 ++ .../dto/civilClaimantNotification.dto.ts | 12 ++ .../internalNotification.controller.ts | 40 +++- .../notification/notification.module.ts | 8 +- .../test/createTestingNotificationModule.ts | 2 + ...dSpokespersonAssignedNotifications.spec.ts | 167 +++++++++++++++++ .../sendAdvocateAssignedNotifications.spec.ts | 114 ------------ .../message/src/lib/message.ts | 2 + libs/judicial-system/types/src/index.ts | 1 + .../types/src/lib/notification.ts | 5 + 30 files changed, 1124 insertions(+), 263 deletions(-) create mode 100644 apps/judicial-system/backend/src/app/modules/defendant/guards/civilClaimaint.decorator.ts create mode 100644 apps/judicial-system/backend/src/app/modules/defendant/guards/civilClaimantExists.guard.ts create mode 100644 apps/judicial-system/backend/src/app/modules/defendant/guards/test/civilClaimantExistsGuard.spec.ts create mode 100644 apps/judicial-system/backend/src/app/modules/defendant/test/civilClaimantController/create.spec.ts create mode 100644 apps/judicial-system/backend/src/app/modules/defendant/test/civilClaimantController/createGuards.spec.ts create mode 100644 apps/judicial-system/backend/src/app/modules/defendant/test/civilClaimantController/createRolesRules.spec.ts create mode 100644 apps/judicial-system/backend/src/app/modules/defendant/test/civilClaimantController/delete.spec.ts create mode 100644 apps/judicial-system/backend/src/app/modules/defendant/test/civilClaimantController/deleteGuards.spec.ts create mode 100644 apps/judicial-system/backend/src/app/modules/defendant/test/civilClaimantController/deleteRolesRules.spec.ts create mode 100644 apps/judicial-system/backend/src/app/modules/defendant/test/civilClaimantController/update.spec.ts create mode 100644 apps/judicial-system/backend/src/app/modules/defendant/test/civilClaimantController/updateGuards.spec.ts create mode 100644 apps/judicial-system/backend/src/app/modules/defendant/test/civilClaimantController/updateRolesRules.spec.ts create mode 100644 apps/judicial-system/backend/src/app/modules/notification/civilClaimantNotification.service.ts create mode 100644 apps/judicial-system/backend/src/app/modules/notification/civilClaimantNotification.strings.ts create mode 100644 apps/judicial-system/backend/src/app/modules/notification/dto/civilClaimantNotification.dto.ts create mode 100644 apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/civilClaimantNotification/sendSpokespersonAssignedNotifications.spec.ts diff --git a/apps/judicial-system/backend/src/app/formatters/formatters.ts b/apps/judicial-system/backend/src/app/formatters/formatters.ts index d48904e27885..b5859c04b70b 100644 --- a/apps/judicial-system/backend/src/app/formatters/formatters.ts +++ b/apps/judicial-system/backend/src/app/formatters/formatters.ts @@ -668,49 +668,6 @@ export const formatCustodyRestrictions = ( }) } -export const formatAdvocateAssignedEmailNotification = ( - formatMessage: FormatMessage, - theCase: Case, - advocateType: AdvocateType, - overviewUrl?: string, -): SubjectAndBody => { - const subject = - advocateType === AdvocateType.DEFENDER - ? formatMessage( - notifications.advocateAssignedEmail.subjectAccessToCaseFiles, - { - court: capitalize(theCase.court?.name ?? ''), - }, - ) - : formatMessage(notifications.advocateAssignedEmail.subjectAccess, { - courtCaseNumber: theCase.courtCaseNumber, - }) - - const body = - advocateType === AdvocateType.DEFENDER - ? formatMessage( - notifications.advocateAssignedEmail.bodyAccessToCaseFiles, - { - defenderHasAccessToRVG: Boolean(overviewUrl), - courtCaseNumber: capitalize(theCase.courtCaseNumber ?? ''), - court: theCase.court?.name ?? '', - courtName: theCase.court?.name.replace('dómur', 'dómi') ?? '', - linkStart: ``, - linkEnd: '', - }, - ) - : formatMessage(notifications.advocateAssignedEmail.bodyAccess, { - defenderHasAccessToRVG: Boolean(overviewUrl), - court: theCase.court?.name, - advocateType, - courtCaseNumber: capitalize(theCase.courtCaseNumber ?? ''), - linkStart: ``, - linkEnd: '', - }) - - return { body, subject } -} - export const formatCourtOfAppealJudgeAssignedEmailNotification = ( formatMessage: FormatMessage, caseNumber: string, diff --git a/apps/judicial-system/backend/src/app/formatters/index.ts b/apps/judicial-system/backend/src/app/formatters/index.ts index 48f8af67b53e..063734cdaacb 100644 --- a/apps/judicial-system/backend/src/app/formatters/index.ts +++ b/apps/judicial-system/backend/src/app/formatters/index.ts @@ -21,7 +21,6 @@ export { formatProsecutorReceivedByCourtSmsNotification, formatDefenderCourtDateLinkEmailNotification, formatDefenderResubmittedToCourtEmailNotification, - formatAdvocateAssignedEmailNotification, formatCourtIndictmentReadyForCourtEmailNotification, formatDefenderRoute, formatDefenderReadyForCourtEmailNotification, diff --git a/apps/judicial-system/backend/src/app/messages/notifications.ts b/apps/judicial-system/backend/src/app/messages/notifications.ts index fe12aea5011d..258eeedc852f 100644 --- a/apps/judicial-system/backend/src/app/messages/notifications.ts +++ b/apps/judicial-system/backend/src/app/messages/notifications.ts @@ -607,32 +607,6 @@ export const notifications = { 'Notaður sem texti í tölvupósti til verjanda vegna breytingar á lengd gæslu/einangrunar/vistunar þar sem úrskurðað var í einangrun.', }, }), - advocateAssignedEmail: defineMessages({ - subjectAccessToCaseFiles: { - id: 'judicial.system.backend:notifications.defender_assigned_email.subject_access_to_case_files', - defaultMessage: '{court} - aðgangur að málsgögnum', - description: - 'Fyrirsögn í pósti til verjanda þegar hann er skráður á mál.', - }, - subjectAccess: { - id: 'judicial.system.backend:notifications.defender_assigned_email.subject_access', - defaultMessage: 'Skráning í máli {courtCaseNumber}', - description: - 'Fyrirsögn í pósti til verjanda þegar hann er skráður á mál.', - }, - bodyAccessToCaseFiles: { - id: 'judicial.system.backend:notifications.defender_assigned_email.body_access_to_case_files', - defaultMessage: - '{court} hefur skráð þig verjanda í máli {courtCaseNumber}.

{defenderHasAccessToRVG, select, true {Gögn málsins eru aðgengileg á {linkStart}yfirlitssíðu málsins í Réttarvörslugátt{linkEnd}} other {Þú getur nálgast gögn málsins hjá {courtName} ef þau hafa ekki þegar verið afhent}}.', - description: 'Texti í pósti til verjanda þegar hann er skráður á mál.', - }, - bodyAccess: { - id: 'judicial.system.backend:notifications.defender_assigned_email.body_access', - defaultMessage: - '{court} hefur skráð þig {advocateType, select, LAWYER {lögmann einkaréttarkröfuhafa} LEGAL_RIGHTS_PROTECTOR {réttargæslumann einkaréttarkröfuhafa} other {verjanda}} í máli {courtCaseNumber}.

{defenderHasAccessToRVG, select, true {Sjá nánar á {linkStart}yfirlitssíðu málsins í Réttarvörslugátt{linkEnd}} other {Þú getur nálgast málið hjá {courtName}.}}.', - description: 'Texti í pósti til verjanda þegar hann er skráður á mál.', - }, - }), defendantsNotUpdatedAtCourt: defineMessages({ subject: { id: 'judicial.system.backend:notifications.defendants_not_updated_at_court.subject', diff --git a/apps/judicial-system/backend/src/app/modules/defendant/civilClaimant.service.ts b/apps/judicial-system/backend/src/app/modules/defendant/civilClaimant.service.ts index 950e62bf84da..285092718ba5 100644 --- a/apps/judicial-system/backend/src/app/modules/defendant/civilClaimant.service.ts +++ b/apps/judicial-system/backend/src/app/modules/defendant/civilClaimant.service.ts @@ -7,7 +7,11 @@ import type { Logger } from '@island.is/logging' import { LOGGER_PROVIDER } from '@island.is/logging' import { normalizeAndFormatNationalId } from '@island.is/judicial-system/formatters' -import { CaseState } from '@island.is/judicial-system/types' +import { MessageService, MessageType } from '@island.is/judicial-system/message' +import { + CaseState, + CivilClaimantNotificationType, +} from '@island.is/judicial-system/types' import { Case } from '../case/models/case.model' import { UpdateCivilClaimantDto } from './dto/updateCivilClaimant.dto' @@ -18,6 +22,7 @@ export class CivilClaimantService { constructor( @InjectModel(CivilClaimant) private readonly civilClaimantModel: typeof CivilClaimant, + private readonly messageService: MessageService, @Inject(LOGGER_PROVIDER) private readonly logger: Logger, ) {} @@ -27,6 +32,24 @@ export class CivilClaimantService { }) } + private async sendUpdateCivilClaimantMessages( + update: UpdateCivilClaimantDto, + updatedCivilClaimant: CivilClaimant, + ): Promise { + if (update.isSpokespersonConfirmed === true) { + return this.messageService.sendMessagesToQueue([ + { + type: MessageType.CIVIL_CLAIMANT_NOTIFICATION, + caseId: updatedCivilClaimant.caseId, + body: { + type: CivilClaimantNotificationType.SPOKESPERSON_ASSIGNED, + }, + elementId: updatedCivilClaimant.id, + }, + ]) + } + } + async update( caseId: string, civilClaimantId: string, @@ -49,6 +72,8 @@ export class CivilClaimantService { throw new Error(`Could not update civil claimant ${civilClaimantId}`) } + await this.sendUpdateCivilClaimantMessages(update, civilClaimants[0]) + return civilClaimants[0] } diff --git a/apps/judicial-system/backend/src/app/modules/defendant/guards/civilClaimaint.decorator.ts b/apps/judicial-system/backend/src/app/modules/defendant/guards/civilClaimaint.decorator.ts new file mode 100644 index 000000000000..9f508c5e60e5 --- /dev/null +++ b/apps/judicial-system/backend/src/app/modules/defendant/guards/civilClaimaint.decorator.ts @@ -0,0 +1,7 @@ +import { createParamDecorator } from '@nestjs/common' + +import { CivilClaimant } from '../models/civilClaimant.model' + +export const CurrentCivilClaimant = createParamDecorator( + (data, { args: [_1, { req }] }): CivilClaimant => req.civilClaimant, +) diff --git a/apps/judicial-system/backend/src/app/modules/defendant/guards/civilClaimantExists.guard.ts b/apps/judicial-system/backend/src/app/modules/defendant/guards/civilClaimantExists.guard.ts new file mode 100644 index 000000000000..401886582d41 --- /dev/null +++ b/apps/judicial-system/backend/src/app/modules/defendant/guards/civilClaimantExists.guard.ts @@ -0,0 +1,42 @@ +import { + BadRequestException, + CanActivate, + ExecutionContext, + Injectable, + NotFoundException, +} from '@nestjs/common' + +import { Case } from '../../case' + +@Injectable() +export class CivilClaimantExistsGuard implements CanActivate { + canActivate(context: ExecutionContext): boolean { + const request = context.switchToHttp().getRequest() + + const theCase: Case = request.case + + if (!theCase) { + throw new BadRequestException('Missing case') + } + + const civilClaimantId = request.params.civilClaimantId + + if (!civilClaimantId) { + throw new BadRequestException('Missing civil claimant id') + } + + const civilClaimant = theCase.civilClaimants?.find( + (civilClaimants) => civilClaimants.id === civilClaimantId, + ) + + if (!civilClaimant) { + throw new NotFoundException( + `Civil claimant ${civilClaimantId} of case ${theCase.id} does not exist`, + ) + } + + request.civilClaimant = civilClaimant + + return true + } +} diff --git a/apps/judicial-system/backend/src/app/modules/defendant/guards/test/civilClaimantExistsGuard.spec.ts b/apps/judicial-system/backend/src/app/modules/defendant/guards/test/civilClaimantExistsGuard.spec.ts new file mode 100644 index 000000000000..4e5cd39db640 --- /dev/null +++ b/apps/judicial-system/backend/src/app/modules/defendant/guards/test/civilClaimantExistsGuard.spec.ts @@ -0,0 +1,117 @@ +import { uuid } from 'uuidv4' + +import { + BadRequestException, + ExecutionContext, + NotFoundException, +} from '@nestjs/common' + +import { CivilClaimantExistsGuard } from '../civilClaimantExists.guard' + +interface Then { + result: boolean + error: Error +} + +type GivenWhenThen = () => Promise + +describe('Civil Claimant Exists Guard', () => { + const mockRequest = jest.fn() + let givenWhenThen: GivenWhenThen + + beforeEach(async () => { + givenWhenThen = async (): Promise => { + const guard = new CivilClaimantExistsGuard() + const then = {} as Then + + try { + then.result = guard.canActivate({ + switchToHttp: () => ({ getRequest: mockRequest }), + } as unknown as ExecutionContext) + } catch (error) { + then.error = error as Error + } + + return then + } + }) + + describe('civil claimant exists', () => { + const caseId = uuid() + const civilClaimantId = uuid() + const civilClaimant = { id: civilClaimantId, caseId } + const theCase = { id: caseId, civilClaimants: [civilClaimant] } + const request = { + params: { caseId, civilClaimantId }, + case: theCase, + civilClaimant: undefined, + } + let then: Then + + beforeEach(async () => { + mockRequest.mockReturnValueOnce(request) + + then = await givenWhenThen() + }) + + it('should activate', () => { + expect(then.result).toBe(true) + expect(request.civilClaimant).toBe(civilClaimant) + }) + }) + + describe('civil claimant does not exist', () => { + const caseId = uuid() + const civilClaimantId = uuid() + const theCase = { id: caseId, civilClaimants: [] } + let then: Then + + beforeEach(async () => { + mockRequest.mockReturnValueOnce({ + params: { caseId, civilClaimantId }, + case: theCase, + }) + + then = await givenWhenThen() + }) + + it('should throw NotFoundException', () => { + expect(then.error).toBeInstanceOf(NotFoundException) + expect(then.error.message).toBe( + `Civil claimant ${civilClaimantId} of case ${caseId} does not exist`, + ) + }) + }) + + describe('missing case', () => { + let then: Then + + beforeEach(async () => { + mockRequest.mockReturnValueOnce({ params: {} }) + + then = await givenWhenThen() + }) + + it('should throw BadRequestException', () => { + expect(then.error).toBeInstanceOf(BadRequestException) + expect(then.error.message).toBe('Missing case') + }) + }) + + describe('missing civil claimant id', () => { + const caseId = uuid() + const theCase = { id: caseId, civilClaimants: [] } + let then: Then + + beforeEach(async () => { + mockRequest.mockReturnValueOnce({ params: { caseId }, case: theCase }) + + then = await givenWhenThen() + }) + + it('should throw BadRequestException', () => { + expect(then.error).toBeInstanceOf(BadRequestException) + expect(then.error.message).toBe('Missing civil claimant id') + }) + }) +}) diff --git a/apps/judicial-system/backend/src/app/modules/defendant/index.ts b/apps/judicial-system/backend/src/app/modules/defendant/index.ts index d9914e3dcda4..5fb8a9c29896 100644 --- a/apps/judicial-system/backend/src/app/modules/defendant/index.ts +++ b/apps/judicial-system/backend/src/app/modules/defendant/index.ts @@ -1,6 +1,9 @@ export { Defendant } from './models/defendant.model' export { DefendantService } from './defendant.service' -export { CivilClaimant } from './models/civilClaimant.model' export { DefendantExistsGuard } from './guards/defendantExists.guard' export { CurrentDefendant } from './guards/defendant.decorator' + +export { CivilClaimant } from './models/civilClaimant.model' export { CivilClaimantService } from './civilClaimant.service' +export { CivilClaimantExistsGuard } from './guards/civilClaimantExists.guard' +export { CurrentCivilClaimant } from './guards/civilClaimaint.decorator' diff --git a/apps/judicial-system/backend/src/app/modules/defendant/test/civilClaimantController/create.spec.ts b/apps/judicial-system/backend/src/app/modules/defendant/test/civilClaimantController/create.spec.ts new file mode 100644 index 000000000000..4684346f3209 --- /dev/null +++ b/apps/judicial-system/backend/src/app/modules/defendant/test/civilClaimantController/create.spec.ts @@ -0,0 +1,80 @@ +import { uuid } from 'uuidv4' + +import { createTestingDefendantModule } from '../createTestingDefendantModule' + +import { Case } from '../../../case' +import { CivilClaimant } from '../../models/civilClaimant.model' + +interface Then { + result: CivilClaimant + error: Error +} + +type GivenWhenThen = (caseId?: string) => Promise + +describe('CivilClaimantController - Create', () => { + const caseId = uuid() + const civilClaimantId = uuid() + const theCase = { id: caseId } as Case + const civilClaimantToCreate = { + caseId, + } + const createdCivilClaimant = { id: civilClaimantId, caseId } + + let mockCivilClaimantModel: typeof CivilClaimant + let givenWhenThen: GivenWhenThen + + beforeEach(async () => { + const { civilClaimantModel, civilClaimantController } = + await createTestingDefendantModule() + + mockCivilClaimantModel = civilClaimantModel + + const mockCreate = mockCivilClaimantModel.create as jest.Mock + mockCreate.mockResolvedValue(createdCivilClaimant) + + givenWhenThen = async () => { + const then = {} as Then + + await civilClaimantController + .create(theCase.id, theCase) + .then((result) => (then.result = result)) + .catch((error) => (then.error = error)) + + return then + } + }) + + describe('civil claimant creation', () => { + let then: Then + + beforeEach(async () => { + then = await givenWhenThen(caseId) + }) + it('should create a civil claimant', () => { + expect(mockCivilClaimantModel.create).toHaveBeenCalledWith( + civilClaimantToCreate, + ) + }) + + it('should return the created civil claimant', () => { + expect(then.result).toEqual(createdCivilClaimant) + }) + }) + + describe('civil claimant creation fails', () => { + let then: Then + + beforeEach(async () => { + const mockCreate = mockCivilClaimantModel.create as jest.Mock + mockCreate.mockRejectedValue(new Error('Test error')) + + then = await givenWhenThen(caseId) + }) + + it('should throw an error', () => { + expect(then.error).toBeInstanceOf(Error) + expect(then.error.message).toEqual('Test error') + }) + }) +}) diff --git a/apps/judicial-system/backend/src/app/modules/defendant/test/civilClaimantController/createGuards.spec.ts b/apps/judicial-system/backend/src/app/modules/defendant/test/civilClaimantController/createGuards.spec.ts new file mode 100644 index 000000000000..738952366261 --- /dev/null +++ b/apps/judicial-system/backend/src/app/modules/defendant/test/civilClaimantController/createGuards.spec.ts @@ -0,0 +1,25 @@ +import { CanActivate } from '@nestjs/common' + +import { CaseExistsGuard, CaseWriteGuard } from '../../../case' +import { CivilClaimantController } from '../../civilClaimant.controller' + +describe('CivilClaimantController - Create guards', () => { + let guards: Array CanActivate> + const expectedGuards = [CaseExistsGuard, CaseWriteGuard] + + beforeEach(() => { + guards = Reflect.getMetadata( + '__guards__', + CivilClaimantController.prototype.create, + ) + }) + + it('should have the correct guards in the correct order', () => { + expect(guards).toHaveLength(expectedGuards.length) + + expectedGuards.forEach((expectedGuard, index) => { + const guardInstance = new guards[index]() + expect(guardInstance).toBeInstanceOf(expectedGuard) + }) + }) +}) diff --git a/apps/judicial-system/backend/src/app/modules/defendant/test/civilClaimantController/createRolesRules.spec.ts b/apps/judicial-system/backend/src/app/modules/defendant/test/civilClaimantController/createRolesRules.spec.ts new file mode 100644 index 000000000000..326946023e4f --- /dev/null +++ b/apps/judicial-system/backend/src/app/modules/defendant/test/civilClaimantController/createRolesRules.spec.ts @@ -0,0 +1,35 @@ +import { + districtCourtAssistantRule, + districtCourtJudgeRule, + districtCourtRegistrarRule, + prosecutorRepresentativeRule, + prosecutorRule, +} from '../../../../guards' +import { CivilClaimantController } from '../../civilClaimant.controller' + +describe('CivilClaimantController - Create rules', () => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + let rules: any[] + + const expectedRules = [ + prosecutorRule, + prosecutorRepresentativeRule, + districtCourtJudgeRule, + districtCourtRegistrarRule, + districtCourtAssistantRule, + ] + + beforeEach(() => { + rules = Reflect.getMetadata( + 'roles-rules', + CivilClaimantController.prototype.create, + ) + }) + + it('should give permission to roles', () => { + expect(rules).toHaveLength(expectedRules.length) + expectedRules.forEach((expectedRule) => + expect(rules).toContain(expectedRule), + ) + }) +}) diff --git a/apps/judicial-system/backend/src/app/modules/defendant/test/civilClaimantController/delete.spec.ts b/apps/judicial-system/backend/src/app/modules/defendant/test/civilClaimantController/delete.spec.ts new file mode 100644 index 000000000000..8a2c17bc5e10 --- /dev/null +++ b/apps/judicial-system/backend/src/app/modules/defendant/test/civilClaimantController/delete.spec.ts @@ -0,0 +1,79 @@ +import { uuid } from 'uuidv4' + +import { createTestingDefendantModule } from '../createTestingDefendantModule' + +import { CivilClaimant } from '../../models/civilClaimant.model' +import { DeleteCivilClaimantResponse } from '../../models/deleteCivilClaimant.response' + +interface Then { + result: DeleteCivilClaimantResponse + error: Error +} + +type GivenWhenThen = ( + caseId?: string, + civilClaimaintId?: string, +) => Promise + +describe('CivilClaimantController - Delete', () => { + const caseId = uuid() + const civilClaimantId = uuid() + + let mockCivilClaimantModel: typeof CivilClaimant + let givenWhenThen: GivenWhenThen + + beforeEach(async () => { + const { civilClaimantController, civilClaimantModel } = + await createTestingDefendantModule() + + mockCivilClaimantModel = civilClaimantModel + + const mockDestroy = mockCivilClaimantModel.destroy as jest.Mock + mockDestroy.mockRejectedValue(new Error('Test error')) + + givenWhenThen = async () => { + const then = {} as Then + + try { + then.result = await civilClaimantController.delete( + caseId, + civilClaimantId, + ) + } catch (error) { + then.error = error as Error + } + + return then + } + }) + + describe('civil claimant deleted', () => { + let then: Then + + beforeEach(async () => { + const mockDestroy = mockCivilClaimantModel.destroy as jest.Mock + mockDestroy.mockResolvedValue(1) + + then = await givenWhenThen(caseId, civilClaimantId) + }) + it('should delete civil claimant', () => { + expect(mockCivilClaimantModel.destroy).toHaveBeenCalledWith({ + where: { caseId, id: civilClaimantId }, + }) + expect(then.result).toEqual({ deleted: true }) + }) + }) + + describe('civil claimant deletion fails', () => { + let then: Then + + beforeEach(async () => { + then = await givenWhenThen() + }) + + it('should throw Error', () => { + expect(then.error).toBeInstanceOf(Error) + expect(then.error.message).toBe('Test error') + }) + }) +}) diff --git a/apps/judicial-system/backend/src/app/modules/defendant/test/civilClaimantController/deleteGuards.spec.ts b/apps/judicial-system/backend/src/app/modules/defendant/test/civilClaimantController/deleteGuards.spec.ts new file mode 100644 index 000000000000..20e8ef89e2f6 --- /dev/null +++ b/apps/judicial-system/backend/src/app/modules/defendant/test/civilClaimantController/deleteGuards.spec.ts @@ -0,0 +1,25 @@ +import { CanActivate } from '@nestjs/common' + +import { CaseExistsGuard, CaseWriteGuard } from '../../../case' +import { CivilClaimantController } from '../../civilClaimant.controller' + +describe('CivilClaimantController - Delete guards', () => { + let guards: Array CanActivate> + const expectedGuards = [CaseExistsGuard, CaseWriteGuard] + + beforeEach(() => { + guards = Reflect.getMetadata( + '__guards__', + CivilClaimantController.prototype.delete, + ) + }) + + it('should have the correct guards in the correct order', () => { + expect(guards).toHaveLength(expectedGuards.length) + + expectedGuards.forEach((expectedGuard, index) => { + const guardInstance = new guards[index]() + expect(guardInstance).toBeInstanceOf(expectedGuard) + }) + }) +}) diff --git a/apps/judicial-system/backend/src/app/modules/defendant/test/civilClaimantController/deleteRolesRules.spec.ts b/apps/judicial-system/backend/src/app/modules/defendant/test/civilClaimantController/deleteRolesRules.spec.ts new file mode 100644 index 000000000000..46039a55bc8b --- /dev/null +++ b/apps/judicial-system/backend/src/app/modules/defendant/test/civilClaimantController/deleteRolesRules.spec.ts @@ -0,0 +1,26 @@ +import { + prosecutorRepresentativeRule, + prosecutorRule, +} from '../../../../guards' +import { CivilClaimantController } from '../../civilClaimant.controller' + +describe('CivilClaimantController - Delete rules', () => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + let rules: any[] + + const expectedRules = [prosecutorRule, prosecutorRepresentativeRule] + + beforeEach(() => { + rules = Reflect.getMetadata( + 'roles-rules', + CivilClaimantController.prototype.delete, + ) + }) + + it('should give permission to roles', () => { + expect(rules).toHaveLength(expectedRules.length) + expectedRules.forEach((expectedRule) => + expect(rules).toContain(expectedRule), + ) + }) +}) diff --git a/apps/judicial-system/backend/src/app/modules/defendant/test/civilClaimantController/update.spec.ts b/apps/judicial-system/backend/src/app/modules/defendant/test/civilClaimantController/update.spec.ts new file mode 100644 index 000000000000..d8661906faa4 --- /dev/null +++ b/apps/judicial-system/backend/src/app/modules/defendant/test/civilClaimantController/update.spec.ts @@ -0,0 +1,140 @@ +import { uuid } from 'uuidv4' + +import { MessageService, MessageType } from '@island.is/judicial-system/message' +import { CivilClaimantNotificationType } from '@island.is/judicial-system/types' + +import { createTestingDefendantModule } from '../createTestingDefendantModule' + +import { UpdateCivilClaimantDto } from '../../dto/updateCivilClaimant.dto' +import { CivilClaimant } from '../../models/civilClaimant.model' + +interface Then { + result: CivilClaimant + error: Error +} + +type GivenWhenThen = ( + caseId: string, + civilClaimantId: string, + updateData: UpdateCivilClaimantDto, +) => Promise + +describe('CivilClaimantController - Update', () => { + const caseId = uuid() + const civilClaimantId = uuid() + const civilClaimaint = { + id: civilClaimantId, + caseId, + nationalId: uuid(), + name: 'Original Name', + } as CivilClaimant + + let mockMessageService: MessageService + let mockCivilClaimantModel: typeof CivilClaimant + let givenWhenThen: GivenWhenThen + + beforeEach(async () => { + const { messageService, civilClaimantModel, civilClaimantController } = + await createTestingDefendantModule() + + mockMessageService = messageService + mockCivilClaimantModel = civilClaimantModel + + givenWhenThen = async ( + caseId: string, + civilClaimantId: string, + updateData: UpdateCivilClaimantDto, + ) => { + const then = {} as Then + + await civilClaimantController + .update(caseId, civilClaimantId, updateData) + .then((result) => (then.result = result)) + .catch((error) => (then.error = error)) + + return then + } + }) + + describe('civil claimant updated', () => { + const civilClaimantUpdate = { name: 'Updated Name' } + const updatedCivilClaimant = { + id: civilClaimantId, + caseId, + ...civilClaimantUpdate, + } + let then: Then + + beforeEach(async () => { + const mockUpdate = mockCivilClaimantModel.update as jest.Mock + mockUpdate.mockResolvedValueOnce([1, [updatedCivilClaimant]]) + + then = await givenWhenThen(caseId, civilClaimantId, civilClaimantUpdate) + }) + + it('should update the civil claimant', () => { + expect(mockCivilClaimantModel.update).toHaveBeenCalledWith( + civilClaimantUpdate, + { + where: { id: civilClaimantId, caseId }, + returning: true, + }, + ) + expect(mockMessageService.sendMessagesToQueue).not.toHaveBeenCalled() + }) + + it('should return the updated civil claimant', () => { + expect(then.result).toBe(updatedCivilClaimant) + }) + }) + + describe('civil claimant spokesperson confirmed', () => { + const civilClaimantUpdate = { isSpokespersonConfirmed: true } + const updatedCivilClaimant = { + id: civilClaimantId, + caseId, + ...civilClaimantUpdate, + } + let then: Then + + beforeEach(async () => { + const mockUpdate = mockCivilClaimantModel.update as jest.Mock + mockUpdate.mockResolvedValueOnce([1, [updatedCivilClaimant]]) + + then = await givenWhenThen(caseId, civilClaimantId, civilClaimantUpdate) + }) + + it('should queue spokesperson assigned message', () => { + expect(mockMessageService.sendMessagesToQueue).toHaveBeenCalledWith([ + { + type: MessageType.CIVIL_CLAIMANT_NOTIFICATION, + caseId, + elementId: civilClaimantId, + body: { + type: CivilClaimantNotificationType.SPOKESPERSON_ASSIGNED, + }, + }, + ]) + }) + + it('should return the updated civil claimant', () => { + expect(then.result).toBe(updatedCivilClaimant) + }) + }) + + describe('civil claimant update fails', () => { + let then: Then + + beforeEach(async () => { + const mockUpdate = mockCivilClaimantModel.update as jest.Mock + mockUpdate.mockRejectedValue(new Error('Test error')) + + then = await givenWhenThen(caseId, civilClaimantId, {}) + }) + + it('should throw an error', () => { + expect(then.error).toBeInstanceOf(Error) + expect(then.error.message).toEqual('Test error') + }) + }) +}) diff --git a/apps/judicial-system/backend/src/app/modules/defendant/test/civilClaimantController/updateGuards.spec.ts b/apps/judicial-system/backend/src/app/modules/defendant/test/civilClaimantController/updateGuards.spec.ts new file mode 100644 index 000000000000..d333af01f86f --- /dev/null +++ b/apps/judicial-system/backend/src/app/modules/defendant/test/civilClaimantController/updateGuards.spec.ts @@ -0,0 +1,25 @@ +import { CanActivate } from '@nestjs/common' + +import { CaseExistsGuard, CaseWriteGuard } from '../../../case' +import { CivilClaimantController } from '../../civilClaimant.controller' + +describe('CivilClaimantController - Update guards', () => { + let guards: Array CanActivate> + const expectedGuards = [CaseExistsGuard, CaseWriteGuard] + + beforeEach(() => { + guards = Reflect.getMetadata( + '__guards__', + CivilClaimantController.prototype.update, + ) + }) + + it('should have the correct guards in the correct order', () => { + expect(guards).toHaveLength(expectedGuards.length) + + expectedGuards.forEach((expectedGuard, index) => { + const guardInstance = new guards[index]() + expect(guardInstance).toBeInstanceOf(expectedGuard) + }) + }) +}) diff --git a/apps/judicial-system/backend/src/app/modules/defendant/test/civilClaimantController/updateRolesRules.spec.ts b/apps/judicial-system/backend/src/app/modules/defendant/test/civilClaimantController/updateRolesRules.spec.ts new file mode 100644 index 000000000000..38a579850480 --- /dev/null +++ b/apps/judicial-system/backend/src/app/modules/defendant/test/civilClaimantController/updateRolesRules.spec.ts @@ -0,0 +1,35 @@ +import { + districtCourtAssistantRule, + districtCourtJudgeRule, + districtCourtRegistrarRule, + prosecutorRepresentativeRule, + prosecutorRule, +} from '../../../../guards' +import { CivilClaimantController } from '../../civilClaimant.controller' + +describe('CivilClaimantController - Update rules', () => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + let rules: any[] + + const expectedRules = [ + prosecutorRule, + prosecutorRepresentativeRule, + districtCourtJudgeRule, + districtCourtRegistrarRule, + districtCourtAssistantRule, + ] + + beforeEach(() => { + rules = Reflect.getMetadata( + 'roles-rules', + CivilClaimantController.prototype.update, + ) + }) + + it('should give permission to roles', () => { + expect(rules).toHaveLength(expectedRules.length) + expectedRules.forEach((expectedRule) => + expect(rules).toContain(expectedRule), + ) + }) +}) diff --git a/apps/judicial-system/backend/src/app/modules/defendant/test/createTestingDefendantModule.ts b/apps/judicial-system/backend/src/app/modules/defendant/test/createTestingDefendantModule.ts index 3b18ac9b8c8c..7ca4abf0ae2d 100644 --- a/apps/judicial-system/backend/src/app/modules/defendant/test/createTestingDefendantModule.ts +++ b/apps/judicial-system/backend/src/app/modules/defendant/test/createTestingDefendantModule.ts @@ -13,9 +13,12 @@ import { MessageService } from '@island.is/judicial-system/message' import { CaseService } from '../../case' import { CourtService } from '../../court' import { UserService } from '../../user' +import { CivilClaimantController } from '../civilClaimant.controller' +import { CivilClaimantService } from '../civilClaimant.service' import { DefendantController } from '../defendant.controller' import { DefendantService } from '../defendant.service' import { InternalDefendantController } from '../internalDefendant.controller' +import { CivilClaimant } from '../models/civilClaimant.model' import { Defendant } from '../models/defendant.model' jest.mock('@island.is/judicial-system/message') @@ -26,7 +29,11 @@ jest.mock('../../case/case.service') export const createTestingDefendantModule = async () => { const defendantModule = await Test.createTestingModule({ imports: [ConfigModule.forRoot({ load: [sharedAuthModuleConfig] })], - controllers: [DefendantController, InternalDefendantController], + controllers: [ + DefendantController, + InternalDefendantController, + CivilClaimantController, + ], providers: [ SharedAuthModule, MessageService, @@ -52,7 +59,19 @@ export const createTestingDefendantModule = async () => { findByPk: jest.fn(), }, }, + { + provide: getModelToken(CivilClaimant), + useValue: { + findOne: jest.fn(), + findAll: jest.fn(), + create: jest.fn(), + update: jest.fn(), + destroy: jest.fn(), + findByPk: jest.fn(), + }, + }, DefendantService, + CivilClaimantService, ], }).compile() @@ -77,6 +96,17 @@ export const createTestingDefendantModule = async () => { InternalDefendantController, ) + const civilClaimantModel = await defendantModule.resolve< + typeof CivilClaimant + >(getModelToken(CivilClaimant)) + + const civilClaimantService = + defendantModule.get(CivilClaimantService) + + const civilClaimantController = defendantModule.get( + CivilClaimantController, + ) + defendantModule.close() return { @@ -87,5 +117,8 @@ export const createTestingDefendantModule = async () => { defendantService, defendantController, internalDefendantController, + civilClaimantService, + civilClaimantController, + civilClaimantModel, } } diff --git a/apps/judicial-system/backend/src/app/modules/notification/caseNotification.service.ts b/apps/judicial-system/backend/src/app/modules/notification/caseNotification.service.ts index beca473bbbb5..5f47cbac54c6 100644 --- a/apps/judicial-system/backend/src/app/modules/notification/caseNotification.service.ts +++ b/apps/judicial-system/backend/src/app/modules/notification/caseNotification.service.ts @@ -50,7 +50,6 @@ import { } from '@island.is/judicial-system/types' import { - formatAdvocateAssignedEmailNotification, formatCourtHeadsUpSmsNotification, formatCourtIndictmentReadyForCourtEmailNotification, formatCourtOfAppealJudgeAssignedEmailNotification, @@ -1506,17 +1505,7 @@ export class CaseNotificationService extends BaseNotificationService { if (!advocateEmail) { return false } - if (isIndictmentCase(theCase.type)) { - const hasSentNotificationBefore = this.hasReceivedNotification( - CaseNotificationType.ADVOCATE_ASSIGNED, - advocateEmail, - theCase.notifications, - ) - - if (hasSentNotificationBefore) { - return false - } - } else if (isInvestigationCase(theCase.type)) { + if (isInvestigationCase(theCase.type)) { const isDefenderIncludedInSessionArrangements = theCase.sessionArrangements && [ @@ -1527,7 +1516,7 @@ export class CaseNotificationService extends BaseNotificationService { if (!isDefenderIncludedInSessionArrangements) { return false } - } else { + } else if (isRequestCase(theCase.type)) { const hasDefenderBeenNotified = this.hasReceivedNotification( [ CaseNotificationType.READY_FOR_COURT, @@ -1546,70 +1535,12 @@ export class CaseNotificationService extends BaseNotificationService { return true } - private sendAdvocateAssignedNotification( - theCase: Case, - advocateType: AdvocateType, - advocateNationalId?: string, - advocateName?: string, - advocateEmail?: string, - ): Promise { - const { subject, body } = formatAdvocateAssignedEmailNotification( - this.formatMessage, - theCase, - advocateType, - advocateNationalId && - formatDefenderRoute(this.config.clientUrl, theCase.type, theCase.id), - ) - - return this.sendEmail( - subject, - body, - advocateName, - advocateEmail, - undefined, - Boolean(advocateNationalId) === false, - ) - } - private async sendAdvocateAssignedNotifications( theCase: Case, ): Promise { const promises: Promise[] = [] - if (isIndictmentCase(theCase.type)) { - if (theCase.civilClaimants) { - for (const civilClaimant of theCase.civilClaimants) { - const { - spokespersonEmail, - spokespersonIsLawyer, - spokespersonName, - spokespersonNationalId, - hasSpokesperson, - } = civilClaimant - - const shouldSend = - hasSpokesperson && - this.shouldSendAdvocateAssignedNotification( - theCase, - spokespersonEmail, - ) - - if (shouldSend === true) { - promises.push( - this.sendAdvocateAssignedNotification( - theCase, - spokespersonIsLawyer - ? AdvocateType.LAWYER - : AdvocateType.LEGAL_RIGHTS_PROTECTOR, - spokespersonNationalId, - spokespersonName, - spokespersonEmail, - ), - ) - } - } - } - } else if (DateLog.arraignmentDate(theCase.dateLogs)?.date) { + if (DateLog.arraignmentDate(theCase.dateLogs)?.date) { const shouldSend = this.shouldSendAdvocateAssignedNotification( theCase, theCase.defenderEmail, diff --git a/apps/judicial-system/backend/src/app/modules/notification/civilClaimantNotification.service.ts b/apps/judicial-system/backend/src/app/modules/notification/civilClaimantNotification.service.ts new file mode 100644 index 000000000000..c80250801348 --- /dev/null +++ b/apps/judicial-system/backend/src/app/modules/notification/civilClaimantNotification.service.ts @@ -0,0 +1,171 @@ +import { MessageDescriptor } from '@formatjs/intl' + +import { + Inject, + Injectable, + InternalServerErrorException, +} from '@nestjs/common' +import { InjectModel } from '@nestjs/sequelize' + +import { IntlService } from '@island.is/cms-translations' +import { EmailService } from '@island.is/email-service' +import { type Logger, LOGGER_PROVIDER } from '@island.is/logging' +import { type ConfigType } from '@island.is/nest/config' + +import { DEFENDER_INDICTMENT_ROUTE } from '@island.is/judicial-system/consts' +import { capitalize } from '@island.is/judicial-system/formatters' +import { CivilClaimantNotificationType } from '@island.is/judicial-system/types' + +import { Case } from '../case' +import { CivilClaimant } from '../defendant' +import { EventService } from '../event' +import { DeliverResponse } from './models/deliver.response' +import { Notification, Recipient } from './models/notification.model' +import { BaseNotificationService } from './baseNotification.service' +import { strings } from './civilClaimantNotification.strings' +import { notificationModuleConfig } from './notification.config' + +@Injectable() +export class CivilClaimantNotificationService extends BaseNotificationService { + constructor( + @InjectModel(Notification) + notificationModel: typeof Notification, + @Inject(notificationModuleConfig.KEY) + config: ConfigType, + @Inject(LOGGER_PROVIDER) logger: Logger, + intlService: IntlService, + emailService: EmailService, + eventService: EventService, + ) { + super( + notificationModel, + emailService, + intlService, + config, + eventService, + logger, + ) + } + + private async sendEmails( + civilClaimant: CivilClaimant, + theCase: Case, + notificationType: CivilClaimantNotificationType, + subject: MessageDescriptor, + body: MessageDescriptor, + ) { + const courtName = capitalize(theCase.court?.name) + const courtCaseNumber = theCase.courtCaseNumber + const spokespersonHasAccessToRVG = !!civilClaimant.spokespersonNationalId + + const formattedSubject = this.formatMessage(subject, { + courtName, + courtCaseNumber, + }) + + const formattedBody = this.formatMessage(body, { + courtName, + courtCaseNumber, + spokespersonHasAccessToRVG, + spokespersonIsLawyer: civilClaimant.spokespersonIsLawyer, + linkStart: ``, + linkEnd: '', + }) + const promises: Promise[] = [] + + if (civilClaimant.isSpokespersonConfirmed) { + promises.push( + this.sendEmail( + formattedSubject, + formattedBody, + civilClaimant.spokespersonName, + civilClaimant.spokespersonEmail, + undefined, + true, + ), + ) + } + + const recipients = await Promise.all(promises) + + return this.recordNotification(theCase.id, notificationType, recipients) + } + + private shouldSendSpokespersonAssignedNotification( + theCase: Case, + civilClaimant: CivilClaimant, + ): boolean { + if ( + !civilClaimant.spokespersonEmail || + !civilClaimant.isSpokespersonConfirmed + ) { + return false + } + + const hasSentNotificationBefore = this.hasReceivedNotification( + CivilClaimantNotificationType.SPOKESPERSON_ASSIGNED, + civilClaimant.spokespersonEmail, + theCase.notifications, + ) + + if (!hasSentNotificationBefore) { + return true + } + + return false + } + + private async sendSpokespersonAssignedNotification( + civilClaimant: CivilClaimant, + theCase: Case, + ): Promise { + const shouldSend = this.shouldSendSpokespersonAssignedNotification( + theCase, + civilClaimant, + ) + + if (shouldSend) { + return this.sendEmails( + civilClaimant, + theCase, + CivilClaimantNotificationType.SPOKESPERSON_ASSIGNED, + strings.civilClaimantSpokespersonAssignedSubject, + strings.civilClaimantSpokespersonAssignedBody, + ) + } + + // Nothing should be sent so we return a successful response + return { delivered: true } + } + + private sendNotification( + notificationType: CivilClaimantNotificationType, + civilClaimant: CivilClaimant, + theCase: Case, + ): Promise { + switch (notificationType) { + case CivilClaimantNotificationType.SPOKESPERSON_ASSIGNED: + return this.sendSpokespersonAssignedNotification(civilClaimant, theCase) + default: + throw new InternalServerErrorException( + `Invalid notification type: ${notificationType}`, + ) + } + } + + async sendCivilClaimantNotification( + type: CivilClaimantNotificationType, + civilClaimant: CivilClaimant, + theCase: Case, + ): Promise { + await this.refreshFormatMessage() + + try { + return await this.sendNotification(type, civilClaimant, theCase) + } catch (error) { + this.logger.error('Failed to send notification', error) + + return { delivered: false } + } + } +} diff --git a/apps/judicial-system/backend/src/app/modules/notification/civilClaimantNotification.strings.ts b/apps/judicial-system/backend/src/app/modules/notification/civilClaimantNotification.strings.ts new file mode 100644 index 000000000000..d9beac015345 --- /dev/null +++ b/apps/judicial-system/backend/src/app/modules/notification/civilClaimantNotification.strings.ts @@ -0,0 +1,17 @@ +import { defineMessage } from '@formatjs/intl' + +export const strings = { + civilClaimantSpokespersonAssignedSubject: defineMessage({ + id: 'judicial.system.backend:civil_claimant_notifications.spokesperson_assigned_subject', + defaultMessage: '{courtName} - aðgangur að máli', + description: + 'Subject of the notification when a civil claimant spokesperson is assigned and confirmed', + }), + civilClaimantSpokespersonAssignedBody: defineMessage({ + id: 'judicial.system.backend:civil_claimant_notifications.indictment_assigned_body', + defaultMessage: + '{courtName} hefur skráð þig {spokespersonIsLawyer, select, true {lögmann einkaréttarkröfuhafa} other {réttargæslumann einkaréttarkröfuhafa}} í máli {courtCaseNumber}.

{spokespersonHasAccessToRVG, select, true {Sjá nánar á {linkStart}yfirlitssíðu málsins í Réttarvörslugátt{linkEnd}} other {Þú getur nálgast málið hjá dómstólnum.}}.', + description: + 'Body of the notification when a civil claimant spokesperson is assigned and confirmed', + }), +} diff --git a/apps/judicial-system/backend/src/app/modules/notification/dto/civilClaimantNotification.dto.ts b/apps/judicial-system/backend/src/app/modules/notification/dto/civilClaimantNotification.dto.ts new file mode 100644 index 000000000000..5557dbdfe354 --- /dev/null +++ b/apps/judicial-system/backend/src/app/modules/notification/dto/civilClaimantNotification.dto.ts @@ -0,0 +1,12 @@ +import { IsEnum, IsNotEmpty } from 'class-validator' + +import { ApiProperty } from '@nestjs/swagger' + +import { CivilClaimantNotificationType } from '@island.is/judicial-system/types' + +export class CivilClaimantNotificationDto { + @IsNotEmpty() + @IsEnum(CivilClaimantNotificationType) + @ApiProperty({ enum: CivilClaimantNotificationType }) + readonly type!: CivilClaimantNotificationType +} diff --git a/apps/judicial-system/backend/src/app/modules/notification/internalNotification.controller.ts b/apps/judicial-system/backend/src/app/modules/notification/internalNotification.controller.ts index 53237a099dd2..c0e2ca1a0003 100644 --- a/apps/judicial-system/backend/src/app/modules/notification/internalNotification.controller.ts +++ b/apps/judicial-system/backend/src/app/modules/notification/internalNotification.controller.ts @@ -18,15 +18,24 @@ import { } from '@island.is/judicial-system/message' import { Case, CaseHasExistedGuard, CurrentCase } from '../case' -import { CurrentDefendant, Defendant, DefendantExistsGuard } from '../defendant' +import { + CivilClaimant, + CivilClaimantExistsGuard, + CurrentCivilClaimant, + CurrentDefendant, + Defendant, + DefendantExistsGuard, +} from '../defendant' import { SubpoenaExistsGuard } from '../subpoena' import { CaseNotificationDto } from './dto/caseNotification.dto' +import { CivilClaimantNotificationDto } from './dto/civilClaimantNotification.dto' import { DefendantNotificationDto } from './dto/defendantNotification.dto' import { InstitutionNotificationDto } from './dto/institutionNotification.dto' import { NotificationDispatchDto } from './dto/notificationDispatch.dto' import { SubpoenaNotificationDto } from './dto/subpoenaNotification.dto' import { DeliverResponse } from './models/deliver.response' import { CaseNotificationService } from './caseNotification.service' +import { CivilClaimantNotificationService } from './civilClaimantNotification.service' import { DefendantNotificationService } from './defendantNotification.service' import { InstitutionNotificationService } from './institutionNotification.service' import { NotificationDispatchService } from './notificationDispatch.service' @@ -42,6 +51,7 @@ export class InternalNotificationController { private readonly institutionNotificationService: InstitutionNotificationService, private readonly subpoenaNotificationService: SubpoenaNotificationService, private readonly defendantNotificationService: DefendantNotificationService, + private readonly civilClaimantNotificationService: CivilClaimantNotificationService, @Inject(LOGGER_PROVIDER) private readonly logger: Logger, ) {} @@ -123,6 +133,34 @@ export class InternalNotificationController { ) } + @Post( + `case/:caseId/${ + messageEndpoint[MessageType.CIVIL_CLAIMANT_NOTIFICATION] + }/:civilClaimantId`, + ) + @UseGuards(CaseHasExistedGuard, CivilClaimantExistsGuard) + @ApiCreatedResponse({ + type: DeliverResponse, + description: 'Sends civil claimant related notifications', + }) + sendCivilClaimantNotification( + @Param('caseId') caseId: string, + @Param('civilClaimantId') civilClaimantId: string, + @CurrentCase() theCase: Case, + @CurrentCivilClaimant() civilClaimant: CivilClaimant, + @Body() notificationDto: CivilClaimantNotificationDto, + ): Promise { + this.logger.debug( + `Sending ${notificationDto.type} notification for civil claimant ${civilClaimantId} and case ${caseId}`, + ) + + return this.civilClaimantNotificationService.sendCivilClaimantNotification( + notificationDto.type, + civilClaimant, + theCase, + ) + } + @Post(messageEndpoint[MessageType.NOTIFICATION_DISPATCH]) @ApiCreatedResponse({ type: DeliverResponse, diff --git a/apps/judicial-system/backend/src/app/modules/notification/notification.module.ts b/apps/judicial-system/backend/src/app/modules/notification/notification.module.ts index 6dcb837ace05..14fb32c0a565 100644 --- a/apps/judicial-system/backend/src/app/modules/notification/notification.module.ts +++ b/apps/judicial-system/backend/src/app/modules/notification/notification.module.ts @@ -18,6 +18,7 @@ import { } from '../index' import { Notification } from './models/notification.model' import { CaseNotificationService } from './caseNotification.service' +import { CivilClaimantNotificationService } from './civilClaimantNotification.service' import { DefendantNotificationService } from './defendantNotification.service' import { InstitutionNotificationService } from './institutionNotification.service' import { InternalNotificationController } from './internalNotification.controller' @@ -43,12 +44,13 @@ import { SubpoenaNotificationService } from './subpoenaNotification.service' ], controllers: [NotificationController, InternalNotificationController], providers: [ - NotificationService, CaseNotificationService, - NotificationDispatchService, + CivilClaimantNotificationService, + DefendantNotificationService, InstitutionNotificationService, + NotificationService, + NotificationDispatchService, SubpoenaNotificationService, - DefendantNotificationService, ], }) export class NotificationModule {} diff --git a/apps/judicial-system/backend/src/app/modules/notification/test/createTestingNotificationModule.ts b/apps/judicial-system/backend/src/app/modules/notification/test/createTestingNotificationModule.ts index a269d181001b..267327b2235b 100644 --- a/apps/judicial-system/backend/src/app/modules/notification/test/createTestingNotificationModule.ts +++ b/apps/judicial-system/backend/src/app/modules/notification/test/createTestingNotificationModule.ts @@ -25,6 +25,7 @@ import { eventModuleConfig, EventService } from '../../event' import { InstitutionService } from '../../institution' import { UserService } from '../../user' import { CaseNotificationService } from '../caseNotification.service' +import { CivilClaimantNotificationService } from '../civilClaimantNotification.service' import { DefendantNotificationService } from '../defendantNotification.service' import { InstitutionNotificationService } from '../institutionNotification.service' import { InternalNotificationController } from '../internalNotification.controller' @@ -104,6 +105,7 @@ export const createTestingNotificationModule = async () => { NotificationDispatchService, InstitutionNotificationService, DefendantNotificationService, + CivilClaimantNotificationService, ], }) .useMocker((token) => { diff --git a/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/civilClaimantNotification/sendSpokespersonAssignedNotifications.spec.ts b/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/civilClaimantNotification/sendSpokespersonAssignedNotifications.spec.ts new file mode 100644 index 000000000000..42bf7c2a0ea8 --- /dev/null +++ b/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/civilClaimantNotification/sendSpokespersonAssignedNotifications.spec.ts @@ -0,0 +1,167 @@ +import { uuid } from 'uuidv4' + +import { EmailService } from '@island.is/email-service' +import { ConfigType } from '@island.is/nest/config' + +import { DEFENDER_INDICTMENT_ROUTE } from '@island.is/judicial-system/consts' +import { + CaseType, + CivilClaimantNotificationType, +} from '@island.is/judicial-system/types' + +import { createTestingNotificationModule } from '../../createTestingNotificationModule' + +import { Case } from '../../../../case' +import { CivilClaimant } from '../../../../defendant' +import { CivilClaimantNotificationDto } from '../../../dto/civilClaimantNotification.dto' +import { DeliverResponse } from '../../../models/deliver.response' +import { Notification } from '../../../models/notification.model' +import { notificationModuleConfig } from '../../../notification.config' + +jest.mock('../../../../../factories') + +interface Then { + result: DeliverResponse + error: Error +} + +type GivenWhenThen = ( + caseId: string, + civilClaimantId: string, + theCase: Case, + civilClaimant: CivilClaimant, + notificationDto: CivilClaimantNotificationDto, +) => Promise + +describe('InternalNotificationController - Send spokesperson assigned notifications', () => { + const caseId = uuid() + const civilClaimantId = uuid() + const court = { name: 'Héraðsdómur Reykjavíkur' } as Case['court'] + + let mockEmailService: EmailService + let mockConfig: ConfigType + let mockNotificationModel: typeof Notification + let givenWhenThen: GivenWhenThen + + let civilClaimantNotificationDTO: CivilClaimantNotificationDto + + beforeEach(async () => { + const { + emailService, + notificationConfig, + internalNotificationController, + notificationModel, + } = await createTestingNotificationModule() + + civilClaimantNotificationDTO = { + type: CivilClaimantNotificationType.SPOKESPERSON_ASSIGNED, + } + + mockEmailService = emailService + mockConfig = notificationConfig + mockNotificationModel = notificationModel + + givenWhenThen = async ( + caseId: string, + civilClaimantId: string, + theCase: Case, + civilClaimant: CivilClaimant, + notificationDto: CivilClaimantNotificationDto, + ) => { + const then = {} as Then + + try { + then.result = + await internalNotificationController.sendCivilClaimantNotification( + caseId, + civilClaimantId, + theCase, + civilClaimant, + notificationDto, + ) + } catch (error) { + then.error = error as Error + } + + return then + } + }) + + describe.each([ + { isSpokespersonConfirmed: true, shouldSendEmail: true }, + { isSpokespersonConfirmed: false, shouldSendEmail: false }, + ])( + 'when sending a spokesperson assigned notification', + ({ isSpokespersonConfirmed, shouldSendEmail }) => { + const civilClaimant = { + id: civilClaimantId, + caseId, + isSpokespersonConfirmed, + spokespersonIsLawyer: true, + spokespersonNationalId: '1234567890', + spokespersonName: 'Ben 10', + spokespersonEmail: 'ben10@omnitrix.is', + } as CivilClaimant + + beforeEach(async () => { + await givenWhenThen( + caseId, + civilClaimantId, + { + id: caseId, + court, + courtCaseNumber: 'R-123-456', + type: CaseType.INDICTMENT, + civilClaimants: [civilClaimant], + hasCivilClaims: true, + } as Case, + civilClaimant, + civilClaimantNotificationDTO, + ) + }) + + test(`should ${ + shouldSendEmail ? '' : 'not ' + }send a spokesperson assigned notification`, async () => { + if (shouldSendEmail) { + expect(mockEmailService.sendEmail).toBeCalledTimes(1) + expect(mockEmailService.sendEmail).toBeCalledWith({ + from: { + name: mockConfig.email.fromName, + address: mockConfig.email.fromEmail, + }, + to: [ + { + name: civilClaimant.spokespersonName, + address: civilClaimant.spokespersonEmail, + }, + ], + replyTo: { + name: mockConfig.email.replyToName, + address: mockConfig.email.replyToEmail, + }, + attachments: undefined, + subject: `Héraðsdómur Reykjavíkur - aðgangur að máli`, + html: expect.stringContaining(DEFENDER_INDICTMENT_ROUTE), + text: expect.stringContaining( + `Héraðsdómur Reykjavíkur hefur skráð þig lögmann einkaréttarkröfuhafa í máli R-123-456`, + ), + }) + expect(mockNotificationModel.create).toHaveBeenCalledTimes(1) + expect(mockNotificationModel.create).toHaveBeenCalledWith({ + caseId, + type: civilClaimantNotificationDTO.type, + recipients: [ + { + address: civilClaimant.spokespersonEmail, + success: shouldSendEmail, + }, + ], + }) + } else { + expect(mockEmailService.sendEmail).not.toBeCalled() + } + }) + }, + ) +}) diff --git a/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendAdvocateAssignedNotifications.spec.ts b/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendAdvocateAssignedNotifications.spec.ts index eff36227b407..d439505025a9 100644 --- a/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendAdvocateAssignedNotifications.spec.ts +++ b/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendAdvocateAssignedNotifications.spec.ts @@ -83,120 +83,6 @@ describe('InternalNotificationController - Send defender assigned notifications' } }) - describe('when the case has civil claims and the advocate is a lawyer', () => { - const caseId = uuid() - const civilClaimant = { - hasSpokesperson: true, - spokespersonNationalId: '1234567890', - spokespersonEmail: 'recipient@gmail.com', - spokespersonName: 'John Doe', - spokespersonIsLawyer: true, - } - const theCase = { - id: caseId, - type: CaseType.INDICTMENT, - court, - courtCaseNumber: 'S-123/2022', - civilClaimants: [civilClaimant], - } as Case - - beforeEach(async () => { - await givenWhenThen(caseId, theCase, notificationDTO) - }) - - it('should send correct email', () => { - expect(mockEmailService.sendEmail).toHaveBeenCalledTimes(1) - expect(mockEmailService.sendEmail).toHaveBeenCalledWith({ - from: { - name: mockConfig.email.fromName, - address: mockConfig.email.fromEmail, - }, - to: [ - { - name: civilClaimant.spokespersonName, - address: civilClaimant.spokespersonEmail, - }, - ], - replyTo: { - name: mockConfig.email.replyToName, - address: mockConfig.email.replyToEmail, - }, - attachments: undefined, - subject: `Skráning í máli ${theCase.courtCaseNumber}`, - text: expect.anything(), // same as html but stripped html tags - html: `Héraðsdómur Reykjavíkur hefur skráð þig lögmann einkaréttarkröfuhafa í máli ${theCase.courtCaseNumber}.

Sjá nánar á yfirlitssíðu málsins í Réttarvörslugátt.`, - }) - }) - }) - - describe('when the case has civil claims and the advocate is a legal rights protector', () => { - const caseId = uuid() - const civilClaimant = { - hasSpokesperson: true, - spokespersonNationalId: '1234567890', - spokespersonEmail: 'recipient@gmail.com', - spokespersonName: 'John Doe', - spokespersonIsLawyer: false, - } - const theCase = { - id: caseId, - type: CaseType.INDICTMENT, - court, - courtCaseNumber: 'S-123/2022', - civilClaimants: [civilClaimant], - } as Case - - beforeEach(async () => { - await givenWhenThen(caseId, theCase, notificationDTO) - }) - - it('should send correct email', () => { - expect(mockEmailService.sendEmail).toHaveBeenCalledTimes(1) - expect(mockEmailService.sendEmail).toHaveBeenCalledWith({ - from: { - name: mockConfig.email.fromName, - address: mockConfig.email.fromEmail, - }, - to: [ - { - name: civilClaimant.spokespersonName, - address: civilClaimant.spokespersonEmail, - }, - ], - replyTo: { - name: mockConfig.email.replyToName, - address: mockConfig.email.replyToEmail, - }, - attachments: undefined, - subject: `Skráning í máli ${theCase.courtCaseNumber}`, - text: expect.anything(), // same as html but stripped html tags - html: `Héraðsdómur Reykjavíkur hefur skráð þig réttargæslumann einkaréttarkröfuhafa í máli ${theCase.courtCaseNumber}.

Sjá nánar á yfirlitssíðu málsins í Réttarvörslugátt.`, - }) - }) - }) - - describe('when the case has civil claims and civil claimant does not have representation', () => { - const caseId = uuid() - const civilClaimant = { - hasSpokesperson: false, - } - const theCase = { - id: caseId, - type: CaseType.INDICTMENT, - court, - courtCaseNumber: 'S-123/2022', - civilClaimants: [civilClaimant], - } as Case - - beforeEach(async () => { - await givenWhenThen(caseId, theCase, notificationDTO) - }) - - it('should send correct email', () => { - expect(mockEmailService.sendEmail).not.toHaveBeenCalled() - }) - }) - describe('when sending assigned defender notifications in a restriction case', () => { const caseId = uuid() const theCase = { diff --git a/libs/judicial-system/message/src/lib/message.ts b/libs/judicial-system/message/src/lib/message.ts index 4cccc3b48615..c8650bc09256 100644 --- a/libs/judicial-system/message/src/lib/message.ts +++ b/libs/judicial-system/message/src/lib/message.ts @@ -30,6 +30,7 @@ export enum MessageType { INSTITUTION_NOTIFICATION = 'INSTITUTION_NOTIFICATION', NOTIFICATION_DISPATCH = 'NOTIFICATION_DISPATCH', DEFENDANT_NOTIFICATION = 'DEFENDANT_NOTIFICATION', + CIVIL_CLAIMANT_NOTIFICATION = 'CIVIL_CLAIMANT_NOTIFICATION', } export const messageEndpoint: { [key in MessageType]: string } = { @@ -66,6 +67,7 @@ export const messageEndpoint: { [key in MessageType]: string } = { INSTITUTION_NOTIFICATION: 'institutionNotification', NOTIFICATION_DISPATCH: 'notification/dispatch', DEFENDANT_NOTIFICATION: 'defendantNotification', + CIVIL_CLAIMANT_NOTIFICATION: 'civilClaimantNotification', } export type Message = { diff --git a/libs/judicial-system/types/src/index.ts b/libs/judicial-system/types/src/index.ts index 494e5067a5e2..4357ea6ad607 100644 --- a/libs/judicial-system/types/src/index.ts +++ b/libs/judicial-system/types/src/index.ts @@ -18,6 +18,7 @@ export { InstitutionNotificationType, NotificationDispatchType, DefendantNotificationType, + CivilClaimantNotificationType, notificationTypes, } from './lib/notification' export type { Institution } from './lib/institution' diff --git a/libs/judicial-system/types/src/lib/notification.ts b/libs/judicial-system/types/src/lib/notification.ts index 981ab499ff70..6c449ffc196e 100644 --- a/libs/judicial-system/types/src/lib/notification.ts +++ b/libs/judicial-system/types/src/lib/notification.ts @@ -30,6 +30,10 @@ export enum SubpoenaNotificationType { SERVICE_FAILED = 'SERVICE_FAILED', } +export enum CivilClaimantNotificationType { + SPOKESPERSON_ASSIGNED = 'SPOKESPERSON_ASSIGNED', +} + export enum InstitutionNotificationType { INDICTMENTS_WAITING_FOR_CONFIRMATION = 'INDICTMENTS_WAITING_FOR_CONFIRMATION', } @@ -58,6 +62,7 @@ export enum NotificationType { DEFENDER_ASSIGNED = DefendantNotificationType.DEFENDER_ASSIGNED, SERVICE_SUCCESSFUL = SubpoenaNotificationType.SERVICE_SUCCESSFUL, SERVICE_FAILED = SubpoenaNotificationType.SERVICE_FAILED, + SPOKESPERSON_ASSIGNED = CivilClaimantNotificationType.SPOKESPERSON_ASSIGNED, INDICTMENTS_WAITING_FOR_CONFIRMATION = InstitutionNotificationType.INDICTMENTS_WAITING_FOR_CONFIRMATION, } From 4f478138d76a296046175ce767bb5b51bca26661 Mon Sep 17 00:00:00 2001 From: jonarnarbriem <107482569+jonarnarbriem@users.noreply.github.com> Date: Fri, 15 Nov 2024 16:52:33 +0000 Subject: [PATCH 27/66] chore(codeowners): modify ownership of health directorate clients (#16904) Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- .github/CODEOWNERS | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 7aa4c0b9d758..df1c36fb075a 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -195,7 +195,8 @@ codemagic.yaml /libs/portals/admin/regulations-admin/ @island-is/hugsmidjan /libs/portals/admin/document-provider/ @island-is/hugsmidjan @island-is/core /libs/clients/icelandic-health-insurance/rights-portal/ @island-is/hugsmidjan -/libs/clients/health-directorate @island-is/hugsmidjan @island-is/origo +/libs/clients/health-directorate @island-is/hugsmidjan +/libs/clients/health-directorate/src/lib/clients/occupational-license @island-is/hugsmidjan @island-is/origo /libs/clients/mms/grade @island-is/hugsmidjan /libs/portals/admin/air-discount-scheme @island-is/hugsmidjan /libs/application/templates/official-journal-of-iceland/ @island-is/hugsmidjan From b8905ab79d5b836f0c0983eb2c5ed996ea17fd33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=9E=C3=B3rey=20J=C3=B3na?= Date: Fri, 15 Nov 2024 17:06:58 +0000 Subject: [PATCH 28/66] feat(native-app): add organ donation to app (#16401) * feat: add organ donation to app * feat: better usage of limitations string * fix: send locale into organ donor query * fix: improve type safety and null checks * fix: use correct res for organ donation * fix: create organDonationData * feat: use error component for organ donation as well * fix: update english translation for third party error --------- Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- .../app/src/graphql/queries/health.graphql | 16 ++++ apps/native/app/src/messages/en.ts | 16 +++- apps/native/app/src/messages/is.ts | 14 ++++ .../src/screens/health/health-overview.tsx | 84 ++++++++++++++++++- 4 files changed, 126 insertions(+), 4 deletions(-) diff --git a/apps/native/app/src/graphql/queries/health.graphql b/apps/native/app/src/graphql/queries/health.graphql index d0a5d93185da..ee4446c8f783 100644 --- a/apps/native/app/src/graphql/queries/health.graphql +++ b/apps/native/app/src/graphql/queries/health.graphql @@ -77,3 +77,19 @@ query GetVaccinations($locale: String) { } } } + +query GetOrganDonorStatus($locale: String) { + healthDirectorateOrganDonation(locale: $locale) { + donor { + isDonor + limitations { + hasLimitations + limitedOrgansList { + id + name + } + comment + } + } + } +} diff --git a/apps/native/app/src/messages/en.ts b/apps/native/app/src/messages/en.ts index 17260fc7d745..24a6e3413d63 100644 --- a/apps/native/app/src/messages/en.ts +++ b/apps/native/app/src/messages/en.ts @@ -594,7 +594,7 @@ export const en: TranslatedMessages = { 'problem.offline.title': 'No internet connection', 'problem.offline.message': 'An error occurred while communicating with the service provider', - 'problem.thirdParty.title': 'No connection', + 'problem.thirdParty.title': 'Service unreachable', 'problem.thirdParty.message': 'An error occurred while communicating with the service provider', @@ -662,4 +662,18 @@ export const en: TranslatedMessages = { 'health.vaccinations.noVaccinationsDescription': 'If you believe you have data that should appear here, please contact service provider.', 'health.vaccinations.directorateOfHealth': 'The directorate of Health', + + // health - organ donation + 'health.organDonation': 'Organ Donation', + 'health.organDonation.change': 'Breyta afstöðu', + 'health.organDonation.isDonor': 'Ég er líffæragjafi', + 'health.organDonation.isDonorWithLimitations': + 'Ég heimila líffæragjöf, með takmörkunum.', + 'health.organDonation.isNotDonor': 'Ég heimila ekki líffæragjöf', + 'health.organDonation.isDonorDescription': + 'Öll líffærin mín má nota til ígræðslu.', + 'health.organDonation.isNotDonorDescription': + 'Engin líffæri má nota til ígræðslu.', + 'health.organDonation.isDonorWithLimitationsDescription': + 'Öll líffærin mín má nota til ígræðslu fyrir utan: {limitations}.', } diff --git a/apps/native/app/src/messages/is.ts b/apps/native/app/src/messages/is.ts index bd6967d93b48..a0ee501f24b1 100644 --- a/apps/native/app/src/messages/is.ts +++ b/apps/native/app/src/messages/is.ts @@ -663,4 +663,18 @@ export const is = { 'health.vaccinations.noVaccinationsDescription': 'Ef þú telur þig eiga gögn sem ættu að birtast hér, vinsamlegast hafðu samband við þjónustuaðila.', 'health.vaccinations.directorateOfHealth': 'Embætti landlæknis', + + // health - organ donation + 'health.organDonation': 'Líffæragjöf', + 'health.organDonation.change': 'Breyta afstöðu', + 'health.organDonation.isDonor': 'Ég er líffæragjafi', + 'health.organDonation.isDonorWithLimitations': + 'Ég heimila líffæragjöf, með takmörkunum.', + 'health.organDonation.isNotDonor': 'Ég heimila ekki líffæragjöf', + 'health.organDonation.isDonorDescription': + 'Öll líffærin mín má nota til ígræðslu.', + 'health.organDonation.isNotDonorDescription': + 'Engin líffæri má nota til ígræðslu.', + 'health.organDonation.isDonorWithLimitationsDescription': + 'Öll líffærin mín má nota til ígræðslu fyrir utan: {limitations}.', } diff --git a/apps/native/app/src/screens/health/health-overview.tsx b/apps/native/app/src/screens/health/health-overview.tsx index 2c6778c7fb34..740cac1bbb45 100644 --- a/apps/native/app/src/screens/health/health-overview.tsx +++ b/apps/native/app/src/screens/health/health-overview.tsx @@ -26,6 +26,7 @@ import { useGetHealthCenterQuery, useGetHealthInsuranceOverviewQuery, useGetMedicineDataQuery, + useGetOrganDonorStatusQuery, useGetPaymentOverviewQuery, useGetPaymentStatusQuery, } from '../../graphql/types/schema' @@ -36,6 +37,7 @@ import { useBrowser } from '../../lib/use-browser' import { useConnectivityIndicator } from '../../hooks/use-connectivity-indicator' import { navigateTo } from '../../lib/deep-linking' import { useFeatureFlag } from '../../contexts/feature-flag-provider' +import { useLocale } from '../../hooks/use-locale' const Host = styled(SafeAreaView)` padding-horizontal: ${({ theme }) => theme.spacing[2]}px; @@ -52,10 +54,15 @@ const ButtonWrapper = styled.View` interface HeadingSectionProps { title: string + linkTextId?: string onPress: () => void } -const HeadingSection: React.FC = ({ title, onPress }) => { +const HeadingSection: React.FC = ({ + title, + onPress, + linkTextId, +}) => { const theme = useTheme() return ( @@ -74,7 +81,7 @@ const HeadingSection: React.FC = ({ title, onPress }) => { color={theme.color.blue400} style={{ marginRight: 4 }} > - + @@ -111,10 +118,17 @@ export const HealthOverviewScreen: NavigationFunctionComponent = ({ const { width } = useWindowDimensions() const buttonStyle = { flex: 1, minWidth: width * 0.5 - theme.spacing[3] } const isVaccinationsEnabled = useFeatureFlag('isVaccinationsEnabled', false) + const isOrganDonationEnabled = useFeatureFlag('isOrganDonationEnabled', false) const now = useMemo(() => new Date().toISOString(), []) const medicinePurchaseRes = useGetMedicineDataQuery() + const organDonationRes = useGetOrganDonorStatusQuery({ + variables: { + locale: useLocale(), + }, + skip: !isOrganDonationEnabled, + }) const healthInsuranceRes = useGetHealthInsuranceOverviewQuery() const healthCenterRes = useGetHealthCenterQuery() const paymentStatusRes = useGetPaymentStatusQuery() @@ -137,12 +151,25 @@ export const HealthOverviewScreen: NavigationFunctionComponent = ({ const paymentStatusData = paymentStatusRes.data?.rightsPortalCopaymentStatus const paymentOverviewData = paymentOverviewRes.data?.rightsPortalPaymentOverview?.items?.[0] + const organDonationData = + organDonationRes.data?.healthDirectorateOrganDonation.donor const isMedicinePeriodActive = medicinePurchaseData?.active || (medicinePurchaseData?.dateTo && new Date(medicinePurchaseData.dateTo) > new Date()) + const isOrganDonor = organDonationData?.isDonor ?? false + + const isOrganDonorWithLimitations = + isOrganDonor && (organDonationData?.limitations?.hasLimitations ?? false) + + const organLimitations = isOrganDonorWithLimitations + ? organDonationData?.limitations?.limitedOrgansList?.map( + (organ) => organ.name, + ) ?? [] + : [] + useConnectivityIndicator({ componentId, refetching, @@ -165,7 +192,8 @@ export const HealthOverviewScreen: NavigationFunctionComponent = ({ healthCenterRes.refetch(), paymentStatusRes.refetch(), paymentOverviewRes.refetch(), - ] + isOrganDonationEnabled && organDonationRes.refetch(), + ].filter(Boolean) await Promise.all(promises) } catch (e) { // noop @@ -178,6 +206,8 @@ export const HealthOverviewScreen: NavigationFunctionComponent = ({ healthCenterRes, paymentStatusRes, paymentOverviewRes, + organDonationRes, + isOrganDonationEnabled, ]) return ( @@ -506,6 +536,54 @@ export const HealthOverviewScreen: NavigationFunctionComponent = ({ {medicinePurchaseRes.error && !medicinePurchaseRes.data && showErrorComponent(medicinePurchaseRes.error)} + {isOrganDonationEnabled && ( + + openBrowser( + `${origin}/minarsidur/heilsa/liffaeragjof/skraning`, + componentId, + ) + } + /> + )} + {isOrganDonationEnabled && ( + + + + )} + {isOrganDonationEnabled && + organDonationRes.error && + !organDonationRes.data && + showErrorComponent(organDonationRes.error)}
From d89ae9c84ef5c7127b8e6409b8837e29dcfea4cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B3hanna=20Magn=C3=BAsd=C3=B3ttir?= Date: Mon, 18 Nov 2024 10:02:46 +0000 Subject: [PATCH 29/66] fix(transport-authority): Handle all warnSever (E, L, W) + dummy mileage in vehicle validation (#16662) * Fix typo * Fix mileageReading vs isRequired Stop using mileageRequired from answers in getSelectedVehicle and always look at the value from externalData (it should not change) * Make sure to always use requiresMileageRegistration from currentvehicleswithmileageandinsp (not basicVehicleInformation) Cleanup make+vehcom (basicVehicleInformation) vs make (currentvehicles) * Cleanup * cleanup * cleanup * cleanup * Use shared function to extract messages from error body Display always E, L and W messages (but E and L first) * Use dummy mileage value when validating per vehicle (owner/operator change) * Catch error from mileage api * Fix the way validation errors are displayed in SGS ownerchange Allow all users to retry submit application if all approvals are finished * Apply same change to change co-owner + change operator Display ValidationErrorMessages always in overview, no matter who is reviewing * Cleanup * Cleanup in LicensePlateRenewal + OrderVehicleLicensePlate Add validation per plate if user has more than 5 * Fix the way vehicle subModel is displayed * Fixes after review * Fix the way errors are displayed for RenewLicensePlate Add MocablePayment * Add validation for OrderVehicleLicensePlate * Cleanup * Fix comment --------- Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- .../src/lib/graphql/dto/index.ts | 1 + .../graphql/dto/plateOrderAnswers.input.ts | 40 +++ .../src/lib/graphql/main.resolver.ts | 14 ++ .../src/lib/graphql/models/index.ts | 1 + .../models/plateOrderValidation.model.ts | 19 ++ .../src/lib/transportAuthority.service.ts | 83 +++++-- .../change-co-owner-of-vehicle.service.ts | 77 +++--- .../change-operator-of-vehicle.service.ts | 22 +- .../license-plate-renewal.service.ts | 98 ++++---- .../order-vehicle-license-plate.service.ts | 231 ++++++++++++------ .../transfer-of-vehicle-ownership.service.ts | 77 +++--- .../src/dataProviders/index.ts | 9 + .../src/fields/ApplicationStatus/index.tsx | 4 +- .../src/fields/Overview/index.tsx | 42 +++- .../fields/ValidationErrorMessages/index.tsx | 37 ++- .../InformationSection/vehicleSubSection.ts | 27 +- .../externalDataSection.ts | 5 + .../src/lib/ChangeCoOwnerOfVehicleTemplate.ts | 6 +- .../src/lib/messages/review.ts | 7 +- .../src/utils/canReviewerApprove.ts | 65 +++++ .../src/utils/getSelectedVehicle.ts | 2 +- .../src/utils/hasReviewerApproved.ts | 38 --- .../src/utils/index.ts | 2 +- .../src/utils/isLastReviewer.ts | 57 +++-- .../src/dataProviders/index.ts | 9 + .../src/fields/ApplicationStatus/index.tsx | 4 +- .../src/fields/Overview/index.tsx | 42 +++- .../fields/ValidationErrorMessages/index.tsx | 37 ++- .../InformationSection/vehicleSubSection.ts | 18 +- .../externalDataSection.ts | 5 + .../lib/ChangeOperatorOfVehicleTemplate.ts | 6 +- .../src/lib/messages/review.ts | 7 +- .../src/utils/canReviewerApprove.ts | 65 +++++ .../src/utils/getSelectedVehicle.ts | 2 +- .../src/utils/hasReviewerApproved.ts | 38 --- .../src/utils/index.ts | 2 +- .../src/utils/isLastReviewer.ts | 57 +++-- .../src/dataProviders/index.ts | 9 + .../src/fields/PlateField/PlateRadioField.tsx | 19 +- .../fields/PlateField/PlateSelectField.tsx | 80 ++++-- .../informationSubSection.ts | 27 +- .../prerequisitesSection.ts | 5 + .../src/hooks/useLazyPlateDetails.ts | 19 ++ .../src/hooks/useLazyQuery.ts | 24 ++ .../license-plate-renewal/src/index.ts | 1 + .../src/lib/LicensePlateRenewalTemplate.ts | 5 +- .../src/lib/messages/applicationCheck.ts | 16 ++ .../src/lib/messages/error.ts | 5 + .../src/lib/messages/index.ts | 1 + .../src/lib/messages/information.ts | 5 - .../src/shared/constants.ts | 1 - .../src/utils/checkCanRenew.ts | 6 + .../src/utils/getSelectedVehicle.ts | 2 +- .../license-plate-renewal/src/utils/index.ts | 1 + .../src/dataProviders/index.ts | 9 + .../src/fields/PickPlateSize.tsx | 18 +- .../fields/ValidationErrorMessages/index.tsx | 104 ++++++++ .../VehiclesField/VehicleSelectField.tsx | 8 +- .../src/fields/index.ts | 1 + .../InformationSection/plateSizeSubSection.ts | 5 +- .../OrderVehicleLicensePlateForm/index.ts | 10 +- .../paymentSection.ts | 71 ++++++ .../prerequisitesSection.ts | 5 + .../src/graphql/queries.ts | 12 + .../order-vehicle-license-plate/src/index.ts | 1 + .../lib/OrderVehicleLicensePlateTemplate.ts | 5 + .../src/lib/messages/applicationCheck.ts | 16 ++ .../src/lib/messages/index.ts | 1 + .../src/lib/messages/payment.ts | 20 ++ .../src/shared/constants.ts | 1 + .../src/utils/getSelectedVehicle.ts | 4 +- .../src/dataProviders/index.ts | 9 + .../src/fields/MainOwner.tsx | 7 +- .../InformationSection/vehicleSubSection.ts | 30 +-- .../prerequisitesSection.ts | 5 + ...rVehicleRegistrationCertificateTemplate.ts | 2 + .../src/utils/getSelectedVehicle.ts | 2 +- .../src/fields/ApplicationStatus/index.tsx | 4 +- .../src/fields/CoOwner/index.tsx | 7 +- .../src/fields/Overview/index.tsx | 172 +++---------- .../fields/Overview/sections/BuyerSection.tsx | 4 +- .../Overview/sections/InsuranceSection.tsx | 4 +- .../fields/ValidationErrorMessages/index.tsx | 43 ++-- .../InformationSection/vehicleSubSection.ts | 26 +- .../lib/TransferOfVehicleOwnershipTemplate.ts | 4 +- .../src/lib/messages/review.ts | 7 +- .../src/lib/messages/steps.ts | 2 +- .../src/utils/canReviewerApprove.ts | 93 +++++++ .../src/utils/getSelectedVehicle.ts | 2 +- .../src/utils/hasReviewerApproved.ts | 64 ----- .../src/utils/index.ts | 2 +- .../src/utils/isLastReviewer.ts | 98 +++++--- .../src/lib/vehicleOperatorsClient.module.ts | 2 + .../src/lib/vehicleOperatorsClient.service.ts | 138 ++++++----- .../vehicle-owner-change/src/index.ts | 5 + .../lib/vehicleOwnerChangeClient.module.ts | 2 + .../lib/vehicleOwnerChangeClient.service.ts | 145 ++++++----- .../src/lib/vehicleOwnerChangeClient.utils.ts | 63 +++++ .../lib/vehiclePlateOrderingClient.service.ts | 120 +++++---- .../lib/vehiclePlateRenewalClient.service.ts | 74 +++--- 100 files changed, 1902 insertions(+), 1007 deletions(-) create mode 100644 libs/api/domains/transport-authority/src/lib/graphql/dto/plateOrderAnswers.input.ts create mode 100644 libs/api/domains/transport-authority/src/lib/graphql/models/plateOrderValidation.model.ts create mode 100644 libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/utils/canReviewerApprove.ts delete mode 100644 libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/utils/hasReviewerApproved.ts create mode 100644 libs/application/templates/transport-authority/change-operator-of-vehicle/src/utils/canReviewerApprove.ts delete mode 100644 libs/application/templates/transport-authority/change-operator-of-vehicle/src/utils/hasReviewerApproved.ts create mode 100644 libs/application/templates/transport-authority/license-plate-renewal/src/hooks/useLazyPlateDetails.ts create mode 100644 libs/application/templates/transport-authority/license-plate-renewal/src/hooks/useLazyQuery.ts create mode 100644 libs/application/templates/transport-authority/license-plate-renewal/src/lib/messages/applicationCheck.ts create mode 100644 libs/application/templates/transport-authority/license-plate-renewal/src/utils/checkCanRenew.ts create mode 100644 libs/application/templates/transport-authority/order-vehicle-license-plate/src/fields/ValidationErrorMessages/index.tsx create mode 100644 libs/application/templates/transport-authority/order-vehicle-license-plate/src/forms/OrderVehicleLicensePlateForm/paymentSection.ts create mode 100644 libs/application/templates/transport-authority/order-vehicle-license-plate/src/lib/messages/applicationCheck.ts create mode 100644 libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/utils/canReviewerApprove.ts delete mode 100644 libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/utils/hasReviewerApproved.ts diff --git a/libs/api/domains/transport-authority/src/lib/graphql/dto/index.ts b/libs/api/domains/transport-authority/src/lib/graphql/dto/index.ts index 4ae849d54bcc..88d82dba0190 100644 --- a/libs/api/domains/transport-authority/src/lib/graphql/dto/index.ts +++ b/libs/api/domains/transport-authority/src/lib/graphql/dto/index.ts @@ -2,3 +2,4 @@ export * from './ownerChangeAnswers.input' export * from './operatorChangeAnswers.input' export * from './checkTachoNet.input' export * from './plateAvailability.input' +export * from './plateOrderAnswers.input' diff --git a/libs/api/domains/transport-authority/src/lib/graphql/dto/plateOrderAnswers.input.ts b/libs/api/domains/transport-authority/src/lib/graphql/dto/plateOrderAnswers.input.ts new file mode 100644 index 000000000000..b79fcc3117d0 --- /dev/null +++ b/libs/api/domains/transport-authority/src/lib/graphql/dto/plateOrderAnswers.input.ts @@ -0,0 +1,40 @@ +import { Field, InputType } from '@nestjs/graphql' + +@InputType() +export class PlateOrderAnswersPickVehicle { + @Field(() => String, { nullable: false }) + plate!: string +} + +@InputType() +export class PlateOrderAnswersPlateSize { + @Field(() => [String], { nullable: true }) + frontPlateSize?: string[] + + @Field(() => [String], { nullable: true }) + rearPlateSize?: string[] +} + +@InputType() +export class OperatorChangeAnswersPlateDelivery { + @Field(() => String, { nullable: true }) + deliveryMethodIsDeliveryStation?: string + + @Field(() => String, { nullable: true }) + deliveryStationTypeCode?: string + + @Field(() => [String], { nullable: true }) + includeRushFee?: string[] +} + +@InputType() +export class PlateOrderAnswers { + @Field(() => PlateOrderAnswersPickVehicle, { nullable: false }) + pickVehicle!: PlateOrderAnswersPickVehicle + + @Field(() => PlateOrderAnswersPlateSize, { nullable: false }) + plateSize!: PlateOrderAnswersPlateSize + + @Field(() => OperatorChangeAnswersPlateDelivery, { nullable: false }) + plateDelivery!: OperatorChangeAnswersPlateDelivery +} diff --git a/libs/api/domains/transport-authority/src/lib/graphql/main.resolver.ts b/libs/api/domains/transport-authority/src/lib/graphql/main.resolver.ts index e06ff583d9da..f1a4945921b7 100644 --- a/libs/api/domains/transport-authority/src/lib/graphql/main.resolver.ts +++ b/libs/api/domains/transport-authority/src/lib/graphql/main.resolver.ts @@ -15,6 +15,7 @@ import { CheckTachoNetInput, OperatorChangeAnswers, PlateAvailabilityInput, + PlateOrderAnswers, } from './dto' import { CheckTachoNetExists, @@ -25,6 +26,7 @@ import { VehiclePlateOrderChecksByPermno, MyPlateOwnershipChecksByRegno, PlateAvailability, + PlateOrderValidation, } from './models' import { CoOwnerChangeAnswers } from './dto/coOwnerChangeAnswers.input' @@ -123,6 +125,18 @@ export class MainResolver { ) } + @Scopes(ApiScope.samgongustofaVehicles) + @Query(() => PlateOrderValidation, { nullable: true }) + vehiclePlateOrderValidation( + @CurrentUser() user: User, + @Args('answers') answers: PlateOrderAnswers, + ) { + return this.transportAuthorityApi.validateApplicationForPlateOrder( + user, + answers, + ) + } + @Scopes(ApiScope.internal) @Query(() => MyPlateOwnershipChecksByRegno, { name: 'myPlateOwnershipChecksByRegno', diff --git a/libs/api/domains/transport-authority/src/lib/graphql/models/index.ts b/libs/api/domains/transport-authority/src/lib/graphql/models/index.ts index 89277ee12a7f..e9cbbe331e7a 100644 --- a/libs/api/domains/transport-authority/src/lib/graphql/models/index.ts +++ b/libs/api/domains/transport-authority/src/lib/graphql/models/index.ts @@ -3,3 +3,4 @@ export * from './operatorChangeValidation.model' export * from './checkTachoNetExists.model' export * from './getCurrentVehicles.model' export * from './plateAvailability.model' +export * from './plateOrderValidation.model' diff --git a/libs/api/domains/transport-authority/src/lib/graphql/models/plateOrderValidation.model.ts b/libs/api/domains/transport-authority/src/lib/graphql/models/plateOrderValidation.model.ts new file mode 100644 index 000000000000..4bf0b7cf3f0b --- /dev/null +++ b/libs/api/domains/transport-authority/src/lib/graphql/models/plateOrderValidation.model.ts @@ -0,0 +1,19 @@ +import { Field, ObjectType } from '@nestjs/graphql' + +@ObjectType() +export class PlateOrderValidationMessage { + @Field(() => String, { nullable: true }) + errorNo?: string | null + + @Field(() => String, { nullable: true }) + defaultMessage?: string | null +} + +@ObjectType() +export class PlateOrderValidation { + @Field(() => Boolean) + hasError!: boolean + + @Field(() => [PlateOrderValidationMessage], { nullable: true }) + errorMessages?: PlateOrderValidationMessage[] | null +} diff --git a/libs/api/domains/transport-authority/src/lib/transportAuthority.service.ts b/libs/api/domains/transport-authority/src/lib/transportAuthority.service.ts index f2fee3b09a5f..19c9e5fe9de0 100644 --- a/libs/api/domains/transport-authority/src/lib/transportAuthority.service.ts +++ b/libs/api/domains/transport-authority/src/lib/transportAuthority.service.ts @@ -3,7 +3,11 @@ import { Auth, AuthMiddleware, User } from '@island.is/auth-nest-tools' import { VehicleOwnerChangeClient } from '@island.is/clients/transport-authority/vehicle-owner-change' import { DigitalTachographDriversCardClient } from '@island.is/clients/transport-authority/digital-tachograph-drivers-card' import { VehicleOperatorsClient } from '@island.is/clients/transport-authority/vehicle-operators' -import { VehiclePlateOrderingClient } from '@island.is/clients/transport-authority/vehicle-plate-ordering' +import { + SGS_DELIVERY_STATION_CODE, + SGS_DELIVERY_STATION_TYPE, + VehiclePlateOrderingClient, +} from '@island.is/clients/transport-authority/vehicle-plate-ordering' import { VehiclePlateRenewalClient } from '@island.is/clients/transport-authority/vehicle-plate-renewal' import { VehicleServiceFjsV1Client } from '@island.is/clients/vehicle-service-fjs-v1' import { @@ -14,6 +18,7 @@ import { OwnerChangeAnswers, OperatorChangeAnswers, CheckTachoNetInput, + PlateOrderAnswers, } from './graphql/dto' import { OwnerChangeValidation, @@ -22,6 +27,7 @@ import { VehicleOwnerchangeChecksByPermno, VehicleOperatorChangeChecksByPermno, VehiclePlateOrderChecksByPermno, + PlateOrderValidation, } from './graphql/models' import { ApolloError } from 'apollo-server-express' import { CoOwnerChangeAnswers } from './graphql/dto/coOwnerChangeAnswers.input' @@ -109,6 +115,7 @@ export class TransportAuthorityApi { return { basicVehicleInformation: { permno: vehicle.permno, + // Note: subModel (vehcom+speccom) has already been added to this field make: vehicle.make, color: vehicle.colorName, requireMileage: vehicle.requiresMileageRegistration, @@ -134,12 +141,6 @@ export class TransportAuthorityApi { // the current timestamp const todayStr = new Date().toISOString() - // No need to continue with this validation in user is neither seller nor buyer - // (only time application data changes is on state change from these roles) - if (user.nationalId !== sellerSsn && user.nationalId !== buyerSsn) { - return null - } - const filteredBuyerCoOwnerAndOperator = answers?.buyerCoOwnerAndOperator?.filter( ({ wasRemoved }) => wasRemoved !== 'true', @@ -279,6 +280,7 @@ export class TransportAuthorityApi { : null, basicVehicleInformation: { color: vehicle.colorName, + // Note: subModel (vehcom+speccom) has already been added to this field make: vehicle.make, permno: vehicle.permno, requireMileage: vehicle.requiresMileageRegistration, @@ -291,13 +293,6 @@ export class TransportAuthorityApi { user: User, answers: OperatorChangeAnswers, ): Promise { - // No need to continue with this validation in user is not owner - // (only time application data changes is on state change from that role) - const ownerSsn = answers?.owner?.nationalId - if (user.nationalId !== ownerSsn) { - return null - } - const permno = answers?.pickVehicle?.plate const filteredOldOperators = answers?.oldOperators?.filter( @@ -347,12 +342,13 @@ export class TransportAuthorityApi { }) // Get validation - const validation = await this.vehiclePlateOrderingClient.validatePlateOrder( - auth, - permno, - vehicleInfo?.platetypefront || '', - vehicleInfo?.platetyperear || '', - ) + const validation = + await this.vehiclePlateOrderingClient.validateVehicleForPlateOrder( + auth, + permno, + vehicleInfo?.platetypefront || '', + vehicleInfo?.platetyperear || '', + ) return { validationErrorMessages: validation?.hasError @@ -360,12 +356,57 @@ export class TransportAuthorityApi { : null, basicVehicleInformation: { color: vehicleInfo.color, - make: `${vehicleInfo.make} ${vehicleInfo.vehcom}`, + make: `${vehicleInfo.make} ${this.getVehicleSubModel(vehicleInfo)}`, permno: vehicleInfo.permno, }, } } + private getVehicleSubModel(vehicle: BasicVehicleInformationDto) { + return [vehicle.vehcom, vehicle.speccom].filter(Boolean).join(' ') + } + + async validateApplicationForPlateOrder( + user: User, + answers: PlateOrderAnswers, + ): Promise { + const YES = 'yes' + + const includeRushFee = + answers?.plateDelivery?.includeRushFee?.includes(YES) || false + + // Check if used selected delivery method: Pick up at delivery station + const deliveryStationTypeCode = + answers?.plateDelivery?.deliveryStationTypeCode + let deliveryStationType: string + let deliveryStationCode: string + if ( + answers.plateDelivery?.deliveryMethodIsDeliveryStation === YES && + deliveryStationTypeCode + ) { + // Split up code+type (was merged when we fetched that data) + deliveryStationType = deliveryStationTypeCode.split('_')[0] + deliveryStationCode = deliveryStationTypeCode.split('_')[1] + } else { + // Otherwise we will default to option "Pick up at Samgöngustofa" + deliveryStationType = SGS_DELIVERY_STATION_TYPE + deliveryStationCode = SGS_DELIVERY_STATION_CODE + } + + const result = + await this.vehiclePlateOrderingClient.validateAllForPlateOrder( + user, + answers?.pickVehicle?.plate, + answers?.plateSize?.frontPlateSize?.[0] || '', + answers?.plateSize?.rearPlateSize?.[0] || '', + deliveryStationType, + deliveryStationCode, + includeRushFee, + ) + + return result + } + async getMyPlateOwnershipChecksByRegno( auth: User, regno: string, diff --git a/libs/application/template-api-modules/src/lib/modules/templates/transport-authority/change-co-owner-of-vehicle/change-co-owner-of-vehicle.service.ts b/libs/application/template-api-modules/src/lib/modules/templates/transport-authority/change-co-owner-of-vehicle/change-co-owner-of-vehicle.service.ts index 9fc9f0c56b2d..fb0c2b9ec91e 100644 --- a/libs/application/template-api-modules/src/lib/modules/templates/transport-authority/change-co-owner-of-vehicle/change-co-owner-of-vehicle.service.ts +++ b/libs/application/template-api-modules/src/lib/modules/templates/transport-authority/change-co-owner-of-vehicle/change-co-owner-of-vehicle.service.ts @@ -101,7 +101,7 @@ export class ChangeCoOwnerOfVehicleService extends BaseTemplateApiService { ) } - // A. vehicleCount > 20 + // Case: count > 20 // Display search box, validate vehicle when permno is entered if (totalRecords > 20) { return { @@ -114,13 +114,13 @@ export class ChangeCoOwnerOfVehicleService extends BaseTemplateApiService { const vehicles = await Promise.all( resultData.map(async (vehicle) => { - // B. 20 >= vehicleCount > 5 + // Case: 20 >= count > 5 // Display dropdown, validate vehicle when selected in dropdown if (totalRecords > 5) { return this.mapVehicle(auth, vehicle, false) } - // C. vehicleCount <= 5 + // Case: count <= 5 // Display radio buttons, validate all vehicles now return this.mapVehicle(auth, vehicle, true) }), @@ -468,34 +468,51 @@ export class ChangeCoOwnerOfVehicleService extends BaseTemplateApiService { const mileage = answers?.vehicleMileage?.value - await this.vehicleOwnerChangeClient.saveOwnerChange(auth, { - permno: permno, - seller: { - ssn: ownerSsn, - email: ownerEmail, - }, - buyer: { - ssn: ownerSsn, - email: ownerEmail, + const submitResult = await this.vehicleOwnerChangeClient.saveOwnerChange( + auth, + { + permno: permno, + seller: { + ssn: ownerSsn, + email: ownerEmail, + }, + buyer: { + ssn: ownerSsn, + email: ownerEmail, + }, + dateOfPurchase: new Date(application.created), + dateOfPurchaseTimestamp: createdStr.substring(11, createdStr.length), + saleAmount: currentOwnerChange?.saleAmount, + mileage: mileage ? Number(mileage) || 0 : null, + insuranceCompanyCode: currentOwnerChange?.insuranceCompanyCode, + operators: currentOperators?.map((operator) => ({ + ssn: operator.ssn || '', + // Note: It should be ok that the email we send in is empty, since we dont get + // the email when fetching current operators, and according to them (SGS), they + // are not using the operator email in their API (not being saved in their DB) + email: null, + isMainOperator: operator.isMainOperator || false, + })), + coOwners: filteredCoOwners.map((x) => ({ + ssn: x.nationalId || '', + email: x.email || '', + })), }, - dateOfPurchase: new Date(application.created), - dateOfPurchaseTimestamp: createdStr.substring(11, createdStr.length), - saleAmount: currentOwnerChange?.saleAmount, - mileage: mileage ? Number(mileage) || 0 : null, - insuranceCompanyCode: currentOwnerChange?.insuranceCompanyCode, - operators: currentOperators?.map((operator) => ({ - ssn: operator.ssn || '', - // Note: It should be ok that the email we send in is empty, since we dont get - // the email when fetching current operators, and according to them (SGS), they - // are not using the operator email in their API (not being saved in their DB) - email: null, - isMainOperator: operator.isMainOperator || false, - })), - coOwners: filteredCoOwners.map((x) => ({ - ssn: x.nationalId || '', - email: x.email || '', - })), - }) + ) + + if ( + submitResult.hasError && + submitResult.errorMessages && + submitResult.errorMessages.length > 0 + ) { + throw new TemplateApiError( + { + title: applicationCheck.validation.alertTitle, + summary: submitResult.errorMessages, + }, + 400, + ) + } // 3. Notify everyone in the process that the application has successfully been submitted diff --git a/libs/application/template-api-modules/src/lib/modules/templates/transport-authority/change-operator-of-vehicle/change-operator-of-vehicle.service.ts b/libs/application/template-api-modules/src/lib/modules/templates/transport-authority/change-operator-of-vehicle/change-operator-of-vehicle.service.ts index fd9d7a62ffb9..62e407eb1094 100644 --- a/libs/application/template-api-modules/src/lib/modules/templates/transport-authority/change-operator-of-vehicle/change-operator-of-vehicle.service.ts +++ b/libs/application/template-api-modules/src/lib/modules/templates/transport-authority/change-operator-of-vehicle/change-operator-of-vehicle.service.ts @@ -99,7 +99,7 @@ export class ChangeOperatorOfVehicleService extends BaseTemplateApiService { ) } - // A. vehicleCount > 20 + // Case: count > 20 // Display search box, validate vehicle when permno is entered if (totalRecords > 20) { return { @@ -112,13 +112,13 @@ export class ChangeOperatorOfVehicleService extends BaseTemplateApiService { const vehicles = await Promise.all( resultData.map(async (vehicle) => { - // B. 20 >= vehicleCount > 5 + // Case: 20 >= count > 5 // Display dropdown, validate vehicle when selected in dropdown if (totalRecords > 5) { return this.mapVehicle(auth, vehicle, false) } - // C. vehicleCount <= 5 + // Case: count <= 5 // Display radio buttons, validate all vehicles now return this.mapVehicle(auth, vehicle, true) }), @@ -439,13 +439,27 @@ export class ChangeOperatorOfVehicleService extends BaseTemplateApiService { const mileage = answers?.vehicleMileage?.value - await this.vehicleOperatorsClient.saveOperators( + const submitResult = await this.vehicleOperatorsClient.saveOperators( auth, permno, operators, mileage ? Number(mileage) || 0 : null, ) + if ( + submitResult.hasError && + submitResult.errorMessages && + submitResult.errorMessages.length > 0 + ) { + throw new TemplateApiError( + { + title: applicationCheck.validation.alertTitle, + summary: submitResult.errorMessages, + }, + 400, + ) + } + // 3. Notify everyone in the process that the application has successfully been submitted // 3a. Get list of users that need to be notified diff --git a/libs/application/template-api-modules/src/lib/modules/templates/transport-authority/license-plate-renewal/license-plate-renewal.service.ts b/libs/application/template-api-modules/src/lib/modules/templates/transport-authority/license-plate-renewal/license-plate-renewal.service.ts index a53ab7eae0c5..7b2781e29cf8 100644 --- a/libs/application/template-api-modules/src/lib/modules/templates/transport-authority/license-plate-renewal/license-plate-renewal.service.ts +++ b/libs/application/template-api-modules/src/lib/modules/templates/transport-authority/license-plate-renewal/license-plate-renewal.service.ts @@ -3,7 +3,10 @@ import { SharedTemplateApiService } from '../../../shared' import { TemplateApiModuleActionProps } from '../../../../types' import { BaseTemplateApiService } from '../../../base-template-api.service' import { ApplicationTypes } from '@island.is/application/types' -import { LicensePlateRenewalAnswers } from '@island.is/application/templates/transport-authority/license-plate-renewal' +import { + applicationCheck, + LicensePlateRenewalAnswers, +} from '@island.is/application/templates/transport-authority/license-plate-renewal' import { PlateOwnership, PlateOwnershipValidation, @@ -12,6 +15,7 @@ import { import { TemplateApiError } from '@island.is/nest/problem' import { info } from 'kennitala' import { error } from '@island.is/application/templates/transport-authority/license-plate-renewal' +import { User } from '@island.is/auth-nest-tools' @Injectable() export class LicensePlateRenewalService extends BaseTemplateApiService { @@ -26,8 +30,10 @@ export class LicensePlateRenewalService extends BaseTemplateApiService { const result = await this.vehiclePlateRenewalClient.getMyPlateOwnerships( auth, ) + const totalRecords = (result && result.length) || 0 + // Validate that user has at least 1 plate ownership - if (!result || !result.length) { + if (!totalRecords) { throw new TemplateApiError( { title: error.plateOwnershipEmptyList, @@ -37,55 +43,46 @@ export class LicensePlateRenewalService extends BaseTemplateApiService { ) } - return await Promise.all( - result.map(async (item: PlateOwnership) => { - let validation: PlateOwnershipValidation | undefined - - // Only validate if fewer than 5 items - if (result.length <= 5) { - validation = - await this.vehiclePlateRenewalClient.validatePlateOwnership( - auth, - item.regno, - ) + const plateOwnerships = await Promise.all( + result.map(async (plateOwnership) => { + // Case: count > 5 + // Display dropdown, validate plate ownership when selected in dropdown + if (totalRecords > 5) { + return this.mapPlateOwnership(auth, plateOwnership, false) } - return { - regno: item.regno, - startDate: item.startDate, - endDate: item.endDate, - validationErrorMessages: validation?.hasError - ? validation.errorMessages - : null, - } + // Case: count <= 5 + // Display radio buttons, validate all plate ownerships now + return this.mapPlateOwnership(auth, plateOwnership, true) }), ) - } - async validateApplication({ - application, - auth, - }: TemplateApiModuleActionProps) { - const answers = application.answers as LicensePlateRenewalAnswers - const regno = answers?.pickPlate?.regno + return plateOwnerships + } - const result = await this.vehiclePlateRenewalClient.validatePlateOwnership( - auth, - regno, - ) + private async mapPlateOwnership( + auth: User, + plateOwnership: PlateOwnership, + fetchExtraData: boolean, + ) { + let validation: PlateOwnershipValidation | undefined - // If we get any error messages, we will just throw an error with a default title - // We will fetch these error messages again through graphql in the template, to be able - // to translate the error message - if (result.hasError && result.errorMessages?.length) { - throw new TemplateApiError( - { - title: error.validationAlertTitle, - summary: error.validationAlertTitle, - }, - 400, + if (fetchExtraData) { + // Get plate renewal validation + validation = await this.vehiclePlateRenewalClient.validatePlateOwnership( + auth, + plateOwnership.regno, ) } + + return { + regno: plateOwnership.regno, + startDate: plateOwnership.startDate, + endDate: plateOwnership.endDate, + validationErrorMessages: validation?.hasError + ? validation.errorMessages + : null, + } } async submitApplication({ @@ -108,7 +105,22 @@ export class LicensePlateRenewalService extends BaseTemplateApiService { const regno = answers?.pickPlate?.regno // Submit the application - await this.vehiclePlateRenewalClient.renewPlateOwnership(auth, regno) + const submitResult = + await this.vehiclePlateRenewalClient.renewPlateOwnership(auth, regno) + + if ( + submitResult.hasError && + submitResult.errorMessages && + submitResult.errorMessages.length > 0 + ) { + throw new TemplateApiError( + { + title: applicationCheck.validation.alertTitle, + summary: submitResult.errorMessages, + }, + 400, + ) + } } private async handlePayment({ diff --git a/libs/application/template-api-modules/src/lib/modules/templates/transport-authority/order-vehicle-license-plate/order-vehicle-license-plate.service.ts b/libs/application/template-api-modules/src/lib/modules/templates/transport-authority/order-vehicle-license-plate/order-vehicle-license-plate.service.ts index c7c1b851bfd0..261883a4385c 100644 --- a/libs/application/template-api-modules/src/lib/modules/templates/transport-authority/order-vehicle-license-plate/order-vehicle-license-plate.service.ts +++ b/libs/application/template-api-modules/src/lib/modules/templates/transport-authority/order-vehicle-license-plate/order-vehicle-license-plate.service.ts @@ -3,7 +3,10 @@ import { SharedTemplateApiService } from '../../../shared' import { TemplateApiModuleActionProps } from '../../../../types' import { BaseTemplateApiService } from '../../../base-template-api.service' import { ApplicationTypes } from '@island.is/application/types' -import { OrderVehicleLicensePlateAnswers } from '@island.is/application/templates/transport-authority/order-vehicle-license-plate' +import { + applicationCheck, + OrderVehicleLicensePlateAnswers, +} from '@island.is/application/templates/transport-authority/order-vehicle-license-plate' import { PlateOrderValidation, SGS_DELIVERY_STATION_CODE, @@ -11,9 +14,12 @@ import { VehiclePlateOrderingClient, } from '@island.is/clients/transport-authority/vehicle-plate-ordering' import { VehicleCodetablesClient } from '@island.is/clients/transport-authority/vehicle-codetables' -import { VehicleSearchApi } from '@island.is/clients/vehicles' +import { + CurrentVehiclesWithMilageAndNextInspDto, + VehicleSearchApi, +} from '@island.is/clients/vehicles' import { YES, coreErrorMessages } from '@island.is/application/core' -import { Auth, AuthMiddleware } from '@island.is/auth-nest-tools' +import { Auth, AuthMiddleware, User } from '@island.is/auth-nest-tools' import { TemplateApiError } from '@island.is/nest/problem' @Injectable() @@ -55,33 +61,22 @@ export class OrderVehicleLicensePlateService extends BaseTemplateApiService { async getCurrentVehiclesWithPlateOrderChecks({ auth, }: TemplateApiModuleActionProps) { - const countResult = - ( - await this.vehiclesApiWithAuth( - auth, - ).currentvehicleswithmileageandinspGet({ - showOwned: true, - showCoowned: false, - showOperated: false, - page: 1, - pageSize: 1, - }) - ).totalRecords || 0 - if (countResult && countResult > 20) { - return { - totalRecords: countResult, - vehicles: [], - } - } - const result = await this.vehiclesApiWithAuth(auth).currentVehiclesGet({ - persidNo: auth.nationalId, + // Get max 20 vehicles and total count of vehicles + // Note: Should be enough to only get 20, because if totalRecords + // is higher than 20, then we won't return any vehicles + const result = await this.vehiclesApiWithAuth( + auth, + ).currentvehicleswithmileageandinspGet({ showOwned: true, showCoowned: false, showOperated: false, + page: 1, + pageSize: 20, }) + const totalRecords = result.totalRecords || 0 // Validate that user has at least 1 vehicle - if (!result || !result.length) { + if (!totalRecords) { throw new TemplateApiError( { title: coreErrorMessages.vehiclesEmptyListOwner, @@ -91,44 +86,73 @@ export class OrderVehicleLicensePlateService extends BaseTemplateApiService { ) } + // Case: count > 20 + // Display search box, validate vehicle when permno is entered + if (totalRecords > 20) { + return { + totalRecords: totalRecords, + vehicles: [], + } + } + + const resultData = result.data || [] + + const vehicles = await Promise.all( + resultData.map(async (vehicle) => { + // Case: 20 >= count > 5 + // Display dropdown, validate vehicle when selected in dropdown + if (totalRecords > 5) { + return this.mapVehicle(auth, vehicle, false) + } + + // Case: count <= 5 + // Display radio buttons, validate all vehicles now + return this.mapVehicle(auth, vehicle, true) + }), + ) + + return { + totalRecords: totalRecords, + vehicles: vehicles, + } + } + + private async mapVehicle( + auth: User, + vehicle: CurrentVehiclesWithMilageAndNextInspDto, + fetchExtraData: boolean, + ) { + let validation: PlateOrderValidation | undefined + + if (fetchExtraData) { + // Get basic information about vehicle + const vehicleInfo = await this.vehiclesApiWithAuth( + auth, + ).basicVehicleInformationGet({ + clientPersidno: auth.nationalId, + permno: vehicle.permno || '', + regno: undefined, + vin: undefined, + }) + + // Get plate order validation + validation = + await this.vehiclePlateOrderingClient.validateVehicleForPlateOrder( + auth, + vehicle.permno || '', + vehicleInfo?.platetypefront || '', + vehicleInfo?.platetyperear || '', + ) + } + return { - totalRecords: countResult, - vehicles: await Promise.all( - result?.map(async (vehicle) => { - let validation: PlateOrderValidation | undefined - - // Only validate if fewer than 5 items - if (result.length <= 5) { - // Get basic information about vehicle - const vehicleInfo = await this.vehiclesApiWithAuth( - auth, - ).basicVehicleInformationGet({ - clientPersidno: auth.nationalId, - permno: vehicle.permno || '', - regno: undefined, - vin: undefined, - }) - // Get validation - validation = - await this.vehiclePlateOrderingClient.validatePlateOrder( - auth, - vehicle.permno || '', - vehicleInfo?.platetypefront || '', - vehicleInfo?.platetyperear || '', - ) - } - - return { - permno: vehicle.permno || undefined, - make: vehicle.make || undefined, - color: vehicle.color || undefined, - role: vehicle.role || undefined, - validationErrorMessages: validation?.hasError - ? validation.errorMessages - : null, - } - }), - ), + permno: vehicle.permno || undefined, + make: vehicle.make || undefined, + color: vehicle.colorName || undefined, + role: vehicle.role || undefined, + validationErrorMessages: validation?.hasError + ? validation.errorMessages + : null, } } @@ -136,6 +160,58 @@ export class OrderVehicleLicensePlateService extends BaseTemplateApiService { return await this.vehicleCodetablesClient.getPlateTypes() } + async validateApplication({ + application, + auth, + }: TemplateApiModuleActionProps) { + const answers = application.answers as OrderVehicleLicensePlateAnswers + + const includeRushFee = + answers?.plateDelivery?.includeRushFee?.includes(YES) || false + + // Check if used selected delivery method: Pick up at delivery station + const deliveryStationTypeCode = + answers?.plateDelivery?.deliveryStationTypeCode + let deliveryStationType: string + let deliveryStationCode: string + if ( + answers.plateDelivery?.deliveryMethodIsDeliveryStation === YES && + deliveryStationTypeCode + ) { + // Split up code+type (was merged when we fetched that data) + deliveryStationType = deliveryStationTypeCode.split('_')[0] + deliveryStationCode = deliveryStationTypeCode.split('_')[1] + } else { + // Otherwise we will default to option "Pick up at Samgöngustofa" + deliveryStationType = SGS_DELIVERY_STATION_TYPE + deliveryStationCode = SGS_DELIVERY_STATION_CODE + } + + const result = + await this.vehiclePlateOrderingClient.validateAllForPlateOrder( + auth, + answers?.pickVehicle?.plate, + answers?.plateSize?.frontPlateSize?.[0], + answers?.plateSize?.rearPlateSize?.[0], + deliveryStationType, + deliveryStationCode, + includeRushFee, + ) + + // If we get any error messages, we will just throw an error with a default title + // We will fetch these error messages again through graphql in the template, to be able + // to translate the error message + if (result.hasError && result.errorMessages?.length) { + throw new TemplateApiError( + { + title: applicationCheck.validation.alertTitle, + summary: applicationCheck.validation.alertTitle, + }, + 400, + ) + } + } + async submitApplication({ application, auth, @@ -181,13 +257,30 @@ export class OrderVehicleLicensePlateService extends BaseTemplateApiService { deliveryStationCode = SGS_DELIVERY_STATION_CODE } - await this.vehiclePlateOrderingClient.savePlateOrders(auth, { - permno: answers?.pickVehicle?.plate, - frontType: answers?.plateSize?.frontPlateSize?.[0], - rearType: answers?.plateSize?.rearPlateSize?.[0], - deliveryStationType: deliveryStationType, - deliveryStationCode: deliveryStationCode, - expressOrder: includeRushFee, - }) + const submitResult = await this.vehiclePlateOrderingClient.savePlateOrders( + auth, + { + permno: answers?.pickVehicle?.plate, + frontType: answers?.plateSize?.frontPlateSize?.[0], + rearType: answers?.plateSize?.rearPlateSize?.[0], + deliveryStationType: deliveryStationType, + deliveryStationCode: deliveryStationCode, + expressOrder: includeRushFee, + }, + ) + + if ( + submitResult.hasError && + submitResult.errorMessages && + submitResult.errorMessages.length > 0 + ) { + throw new TemplateApiError( + { + title: applicationCheck.validation.alertTitle, + summary: submitResult.errorMessages, + }, + 400, + ) + } } } diff --git a/libs/application/template-api-modules/src/lib/modules/templates/transport-authority/transfer-of-vehicle-ownership/transfer-of-vehicle-ownership.service.ts b/libs/application/template-api-modules/src/lib/modules/templates/transport-authority/transfer-of-vehicle-ownership/transfer-of-vehicle-ownership.service.ts index 7f31c0891d47..2ea45322f6c7 100644 --- a/libs/application/template-api-modules/src/lib/modules/templates/transport-authority/transfer-of-vehicle-ownership/transfer-of-vehicle-ownership.service.ts +++ b/libs/application/template-api-modules/src/lib/modules/templates/transport-authority/transfer-of-vehicle-ownership/transfer-of-vehicle-ownership.service.ts @@ -103,7 +103,7 @@ export class TransferOfVehicleOwnershipService extends BaseTemplateApiService { ) } - // A. vehicleCount > 20 + // Case: count > 20 // Display search box, validate vehicle when permno is entered if (totalRecords > 20) { return { @@ -116,13 +116,13 @@ export class TransferOfVehicleOwnershipService extends BaseTemplateApiService { const vehicles = await Promise.all( resultData.map(async (vehicle) => { - // B. 20 >= vehicleCount > 5 + // Case: 20 >= count > 5 // Display dropdown, validate vehicle when selected in dropdown if (totalRecords > 5) { return this.mapVehicle(auth, vehicle, false) } - // C. vehicleCount <= 5 + // Case: count <= 5 // Display radio buttons, validate all vehicles now return this.mapVehicle(auth, vehicle, true) }), @@ -584,34 +584,51 @@ export class TransferOfVehicleOwnershipService extends BaseTemplateApiService { const mileage = answers?.vehicleMileage?.value - await this.vehicleOwnerChangeClient.saveOwnerChange(auth, { - permno: answers?.pickVehicle?.plate, - seller: { - ssn: answers?.seller?.nationalId, - email: answers?.seller?.email, - }, - buyer: { - ssn: answers?.buyer?.nationalId, - email: answers?.buyer?.email, + const submitResult = await this.vehicleOwnerChangeClient.saveOwnerChange( + auth, + { + permno: answers?.pickVehicle?.plate, + seller: { + ssn: answers?.seller?.nationalId, + email: answers?.seller?.email, + }, + buyer: { + ssn: answers?.buyer?.nationalId, + email: answers?.buyer?.email, + }, + dateOfPurchase: new Date(answers?.vehicle?.date), + dateOfPurchaseTimestamp: createdStr.substring(11, createdStr.length), + saleAmount: Number(answers?.vehicle?.salePrice || '0') || 0, + mileage: mileage ? Number(mileage) || 0 : null, + insuranceCompanyCode: answers?.insurance?.value, + coOwners: buyerCoOwners?.map((coOwner) => ({ + ssn: coOwner.nationalId || '', + email: coOwner.email || '', + })), + operators: buyerOperators?.map((operator) => ({ + ssn: operator.nationalId || '', + email: operator.email || '', + isMainOperator: + buyerOperators.length > 1 + ? operator.nationalId === answers.buyerMainOperator?.nationalId + : true, + })), }, - dateOfPurchase: new Date(answers?.vehicle?.date), - dateOfPurchaseTimestamp: createdStr.substring(11, createdStr.length), - saleAmount: Number(answers?.vehicle?.salePrice || '0') || 0, - mileage: mileage ? Number(mileage) || 0 : null, - insuranceCompanyCode: answers?.insurance?.value, - coOwners: buyerCoOwners?.map((coOwner) => ({ - ssn: coOwner.nationalId || '', - email: coOwner.email || '', - })), - operators: buyerOperators?.map((operator) => ({ - ssn: operator.nationalId || '', - email: operator.email || '', - isMainOperator: - buyerOperators.length > 1 - ? operator.nationalId === answers.buyerMainOperator?.nationalId - : true, - })), - }) + ) + + if ( + submitResult.hasError && + submitResult.errorMessages && + submitResult.errorMessages.length > 0 + ) { + throw new TemplateApiError( + { + title: applicationCheck.validation.alertTitle, + summary: submitResult.errorMessages, + }, + 400, + ) + } // 3. Notify everyone in the process that the application has successfully been submitted diff --git a/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/dataProviders/index.ts b/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/dataProviders/index.ts index b48b425c53ce..b59c159b6b5b 100644 --- a/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/dataProviders/index.ts +++ b/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/dataProviders/index.ts @@ -1,6 +1,7 @@ import { defineTemplateApi, InstitutionNationalIds, + MockablePaymentCatalogApi, PaymentCatalogApi, } from '@island.is/application/types' @@ -13,6 +14,14 @@ export const SamgongustofaPaymentCatalogApi = PaymentCatalogApi.configure({ externalDataId: 'payment', }) +export const MockableSamgongustofaPaymentCatalogApi = + MockablePaymentCatalogApi.configure({ + params: { + organizationId: InstitutionNationalIds.SAMGONGUSTOFA, + }, + externalDataId: 'payment', + }) + export const CurrentVehiclesApi = defineTemplateApi({ action: 'getCurrentVehiclesWithOwnerchangeChecks', externalDataId: 'currentVehicleList', diff --git a/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/fields/ApplicationStatus/index.tsx b/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/fields/ApplicationStatus/index.tsx index 299592820227..0d3b7aa5e325 100644 --- a/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/fields/ApplicationStatus/index.tsx +++ b/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/fields/ApplicationStatus/index.tsx @@ -8,7 +8,7 @@ import { useLocale } from '@island.is/localization' import { FC } from 'react' import { review } from '../../lib/messages' import { ReviewScreenProps } from '../../shared' -import { getReviewSteps, hasReviewerApproved } from '../../utils' +import { getReviewSteps, canReviewerApprove } from '../../utils' import { MessageWithLinkButtonFormField } from '@island.is/application/ui-fields' import { StatusStep } from './StatusStep' import { coreMessages } from '@island.is/application/core' @@ -21,7 +21,7 @@ export const ApplicationStatus: FC< const steps = getReviewSteps(application) - const showReviewButton = !hasReviewerApproved( + const showReviewButton = canReviewerApprove( reviewerNationalId, application.answers, ) diff --git a/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/fields/Overview/index.tsx b/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/fields/Overview/index.tsx index 67abcbd743e2..8be2109222a1 100644 --- a/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/fields/Overview/index.tsx +++ b/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/fields/Overview/index.tsx @@ -13,8 +13,9 @@ import { overview, review, error as errorMsg } from '../../lib/messages' import { VehicleSection, OwnerSection, CoOwnersSection } from './sections' import { getApproveAnswers, - hasReviewerApproved, + canReviewerApprove, isLastReviewer, + canReviewerReApprove, } from '../../utils' import { RejectConfirmationModal } from './RejectConfirmationModal' import { @@ -22,6 +23,8 @@ import { SUBMIT_APPLICATION, } from '@island.is/application/graphql' import { useLazyQuery, useMutation } from '@apollo/client' +import { States } from '../../lib/constants' +import { ValidationErrorMessages } from '../ValidationErrorMessages' export const Overview: FC< React.PropsWithChildren @@ -42,11 +45,14 @@ export const Overview: FC< const [submitApplication, { error }] = useMutation(SUBMIT_APPLICATION, { onError: (e) => { console.error(e, e.message) + setButtonLoading(false) return }, }) - const [loading, setLoading] = useState(false) + const [buttonLoading, setButtonLoading] = useState(false) + const [shouldLoadValidation, setShouldLoadValidation] = useState(false) + const [validationErrorFound, setValidationErrorFound] = useState(false) const doApproveAndSubmit = async () => { // Need to get updated application answers, in case any other reviewer has approved @@ -107,11 +113,11 @@ export const Overview: FC< }) if (resSubmit?.data) { - setLoading(false) + setButtonLoading(false) setStep && setStep('conclusion') } } else { - setLoading(false) + setButtonLoading(false) setStep && setStep('conclusion') } } @@ -127,7 +133,8 @@ export const Overview: FC< } const onApproveButtonClick = async () => { - setLoading(true) + setButtonLoading(true) + setShouldLoadValidation(true) await doApproveAndSubmit() } @@ -144,7 +151,14 @@ export const Overview: FC< - {error && ( + {!buttonLoading && shouldLoadValidation && ( + + )} + + {!validationErrorFound && error && ( @@ -156,7 +170,7 @@ export const Overview: FC< - {!hasReviewerApproved(reviewerNationalId, application.answers) && ( + {canReviewerApprove(reviewerNationalId, application.answers) && ( )} + {canReviewerReApprove(reviewerNationalId, application.answers) && + application.state !== States.COMPLETED && ( + + + + )}
diff --git a/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/fields/ValidationErrorMessages/index.tsx b/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/fields/ValidationErrorMessages/index.tsx index 245df4cdeeee..bb20ad4ad494 100644 --- a/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/fields/ValidationErrorMessages/index.tsx +++ b/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/fields/ValidationErrorMessages/index.tsx @@ -2,16 +2,25 @@ import { gql, useQuery } from '@apollo/client' import { OwnerChangeValidationMessage } from '@island.is/api/schema' import { getValueViaPath } from '@island.is/application/core' import { FieldBaseProps } from '@island.is/application/types' -import { AlertMessage, Box, Text } from '@island.is/island-ui/core' +import { + AlertMessage, + Box, + Bullet, + BulletList, +} from '@island.is/island-ui/core' import { useLocale } from '@island.is/localization' -import { FC, useEffect } from 'react' +import { Dispatch, FC, SetStateAction, useEffect } from 'react' import { ChangeCoOwnerOfVehicleAnswers } from '../..' import { VALIDATE_VEHICLE_CO_OWNER_CHANGE } from '../../graphql/queries' import { applicationCheck } from '../../lib/messages' +interface Props { + setValidationErrorFound?: Dispatch> +} + export const ValidationErrorMessages: FC< - React.PropsWithChildren -> = (props) => { + React.PropsWithChildren +> = ({ setValidationErrorFound, ...props }) => { const { application, setFieldLoadingState } = props const { formatMessage } = useLocale() @@ -47,12 +56,18 @@ export const ValidationErrorMessages: FC< })), }, }, + onCompleted: (data) => { + if (data?.vehicleCoOwnerChangeValidation?.hasError) { + setValidationErrorFound?.(true) + } + }, + fetchPolicy: 'no-cache', }, ) useEffect(() => { setFieldLoadingState?.(loading) - }, [loading]) + }, [loading, setFieldLoadingState]) return data?.vehicleCoOwnerChangeValidation?.hasError && data.vehicleCoOwnerChangeValidation.errorMessages.length > 0 ? ( @@ -62,7 +77,7 @@ export const ValidationErrorMessages: FC< title={formatMessage(applicationCheck.validation.alertTitle)} message={ -
    + {data.vehicleCoOwnerChangeValidation.errorMessages.map( (error: OwnerChangeValidationMessage) => { const message = formatMessage( @@ -80,15 +95,13 @@ export const ValidationErrorMessages: FC< error?.errorNo return ( -
  • - - {message || defaultMessage || fallbackMessage} - -
  • + + {message || defaultMessage || fallbackMessage} + ) }, )} -
+
} /> diff --git a/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/forms/ChangeCoOwnerOfVehicleForm/InformationSection/vehicleSubSection.ts b/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/forms/ChangeCoOwnerOfVehicleForm/InformationSection/vehicleSubSection.ts index efac7e83c97d..32932c24bd91 100644 --- a/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/forms/ChangeCoOwnerOfVehicleForm/InformationSection/vehicleSubSection.ts +++ b/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/forms/ChangeCoOwnerOfVehicleForm/InformationSection/vehicleSubSection.ts @@ -3,11 +3,9 @@ import { buildMultiField, buildTextField, buildSubSection, - buildCustomField, buildHiddenInput, } from '@island.is/application/core' import { information } from '../../../lib/messages' -import { VehiclesCurrentVehicle } from '../../../shared' import { getSelectedVehicle } from '../../../utils' export const vehicleSubSection = buildSubSection({ @@ -29,8 +27,8 @@ export const vehicleSubSection = buildSubSection({ const vehicle = getSelectedVehicle( application.externalData, application.answers, - ) as VehiclesCurrentVehicle - return vehicle.permno + ) + return vehicle?.permno }, }), buildTextField({ @@ -43,8 +41,8 @@ export const vehicleSubSection = buildSubSection({ const vehicle = getSelectedVehicle( application.externalData, application.answers, - ) as VehiclesCurrentVehicle - return vehicle.make + ) + return vehicle?.make }, }), buildHiddenInput({ @@ -53,8 +51,8 @@ export const vehicleSubSection = buildSubSection({ const vehicle = getSelectedVehicle( application.externalData, application.answers, - ) as VehiclesCurrentVehicle - return vehicle.requireMileage || false + ) + return vehicle?.requireMileage || false }, }), buildHiddenInput({ @@ -63,8 +61,8 @@ export const vehicleSubSection = buildSubSection({ const vehicle = getSelectedVehicle( application.externalData, application.answers, - ) as VehiclesCurrentVehicle - return vehicle.mileageReading || '' + ) + return vehicle?.mileageReading || '' }, }), buildTextField({ @@ -73,18 +71,15 @@ export const vehicleSubSection = buildSubSection({ width: 'full', variant: 'number', condition: (answers, externalData) => { - const vehicle = getSelectedVehicle( - externalData, - answers, - ) as VehiclesCurrentVehicle + const vehicle = getSelectedVehicle(externalData, answers) return vehicle?.requireMileage || false }, placeholder(application) { const vehicle = getSelectedVehicle( application.externalData, application.answers, - ) as VehiclesCurrentVehicle - return vehicle.mileageReading + ) + return vehicle?.mileageReading ? `Síðasta skráning ${vehicle.mileageReading} Km` : '' }, diff --git a/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/forms/ChangeCoOwnerOfVehicleForm/externalDataSection.ts b/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/forms/ChangeCoOwnerOfVehicleForm/externalDataSection.ts index 2883e932a9f9..ccd5f7be745b 100644 --- a/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/forms/ChangeCoOwnerOfVehicleForm/externalDataSection.ts +++ b/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/forms/ChangeCoOwnerOfVehicleForm/externalDataSection.ts @@ -9,6 +9,7 @@ import { UserProfileApi, SamgongustofaPaymentCatalogApi, CurrentVehiclesApi, + MockableSamgongustofaPaymentCatalogApi, } from '../../dataProviders' export const externalDataSection = buildSection({ @@ -41,6 +42,10 @@ export const externalDataSection = buildSection({ title: externalData.payment.title, subTitle: externalData.payment.subTitle, }), + buildDataProviderItem({ + provider: MockableSamgongustofaPaymentCatalogApi, + title: '', + }), ], }), ], diff --git a/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/lib/ChangeCoOwnerOfVehicleTemplate.ts b/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/lib/ChangeCoOwnerOfVehicleTemplate.ts index 2837bd7bb640..714000aa6b9a 100644 --- a/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/lib/ChangeCoOwnerOfVehicleTemplate.ts +++ b/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/lib/ChangeCoOwnerOfVehicleTemplate.ts @@ -30,12 +30,13 @@ import { UserProfileApi, SamgongustofaPaymentCatalogApi, CurrentVehiclesApi, + MockableSamgongustofaPaymentCatalogApi, } from '../dataProviders' import { application as applicationMessage } from './messages' import { assign } from 'xstate' import set from 'lodash/set' import { AuthDelegationType } from '@island.is/shared/types' -import { getChargeItemCodes, hasReviewerApproved } from '../utils' +import { getChargeItemCodes, canReviewerApprove } from '../utils' import { ApiScope } from '@island.is/auth/scopes' import { buildPaymentState } from '@island.is/application/utils' import { getExtraData } from '../utils/getChargeItemCodes' @@ -65,7 +66,7 @@ const reviewStatePendingAction = ( role: string, nationalId: string, ): PendingAction => { - if (nationalId && !hasReviewerApproved(nationalId, application.answers)) { + if (nationalId && canReviewerApprove(nationalId, application.answers)) { return { title: corePendingActionMessages.waitingForReviewTitle, content: corePendingActionMessages.youNeedToReviewDescription, @@ -145,6 +146,7 @@ const template: ApplicationTemplate< IdentityApi, UserProfileApi, SamgongustofaPaymentCatalogApi, + MockableSamgongustofaPaymentCatalogApi, CurrentVehiclesApi, ], }, diff --git a/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/lib/messages/review.ts b/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/lib/messages/review.ts index c777091d9f69..464483f7f07d 100644 --- a/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/lib/messages/review.ts +++ b/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/lib/messages/review.ts @@ -110,8 +110,13 @@ export const review = { }, approve: { id: 'ta.ccov.application:review.buttons.approve', - defaultMessage: `Samþykkja`, + defaultMessage: 'Samþykkja', description: 'Approve button in review process', }, + tryAgain: { + id: 'ta.ccov.application:review.buttons.tryAgain', + defaultMessage: 'Reyna aftur', + description: 'Try again button in review process', + }, }), } diff --git a/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/utils/canReviewerApprove.ts b/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/utils/canReviewerApprove.ts new file mode 100644 index 000000000000..4e925416b81f --- /dev/null +++ b/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/utils/canReviewerApprove.ts @@ -0,0 +1,65 @@ +import { FormValue } from '@island.is/application/types' +import { getValueViaPath } from '@island.is/application/core' +import { CoOwnersInformation, OwnerCoOwnersInformation } from '../shared' +import { applicationHasPendingApproval } from './isLastReviewer' + +// Function to check if the reviewer is authorized to approve and hasn't done that yet +export const canReviewerApprove = ( + reviewerNationalId: string, + answers: FormValue, +): boolean => { + // Check if reviewer is old co-owner and has not approved + const oldCoOwners = getValueViaPath( + answers, + 'ownerCoOwners', + [], + ) as OwnerCoOwnersInformation[] + if ( + oldCoOwners.some( + ({ nationalId, approved }) => + nationalId === reviewerNationalId && !approved, + ) + ) { + return true + } + + // Check if reviewer is new co-owner and has not approved + const newCoOwners = ( + getValueViaPath(answers, 'coOwners', []) as CoOwnersInformation[] + ).filter(({ wasRemoved }) => wasRemoved !== 'true') + if ( + newCoOwners.some( + ({ nationalId, approved }) => + nationalId === reviewerNationalId && !approved, + ) + ) { + return true + } + + return false +} + +// Special case to allow any reviewer to trigger an external API call to complete co-owner change +// Necessary when approve is updated in answers, but application is still stuck in REVIEW state +// then any user can try to 'push' the application to the next state +export const canReviewerReApprove = ( + reviewerNationalId: string, + answers: FormValue, +): boolean => { + const oldCoOwners = getValueViaPath( + answers, + 'ownerCoOwners', + [], + ) as OwnerCoOwnersInformation[] + const newCoOwners = ( + getValueViaPath(answers, 'coOwners', []) as CoOwnersInformation[] + ).filter(({ wasRemoved }) => wasRemoved !== 'true') + + const isReviewerAuthorized = [ + oldCoOwners.some(({ nationalId }) => nationalId === reviewerNationalId), + newCoOwners.some(({ nationalId }) => nationalId === reviewerNationalId), + ].some(Boolean) + + // Check if the reviewer is authorized and if all required approvals have been completed + return isReviewerAuthorized && !applicationHasPendingApproval(answers) +} diff --git a/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/utils/getSelectedVehicle.ts b/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/utils/getSelectedVehicle.ts index a13ea829dc3c..38e162f6a245 100644 --- a/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/utils/getSelectedVehicle.ts +++ b/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/utils/getSelectedVehicle.ts @@ -5,7 +5,7 @@ import { CurrentVehiclesAndRecords, VehiclesCurrentVehicle } from '../shared' export const getSelectedVehicle = ( externalData: ExternalData, answers: FormValue, -): VehiclesCurrentVehicle => { +): VehiclesCurrentVehicle | undefined => { if (answers.findVehicle) { const vehicle = getValueViaPath( answers, diff --git a/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/utils/hasReviewerApproved.ts b/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/utils/hasReviewerApproved.ts deleted file mode 100644 index 164158ecdfbb..000000000000 --- a/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/utils/hasReviewerApproved.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { FormValue } from '@island.is/application/types' -import { getValueViaPath } from '@island.is/application/core' -import { CoOwnersInformation, OwnerCoOwnersInformation } from '../shared' - -export const hasReviewerApproved = ( - reviewerNationalId: string, - answers: FormValue, -) => { - // Check if reviewer is old co-owner and has not approved - const ownerCoOwners = getValueViaPath( - answers, - 'ownerCoOwners', - [], - ) as OwnerCoOwnersInformation[] - const ownerCoOwner = ownerCoOwners.find( - (x) => x.nationalId === reviewerNationalId, - ) - if (ownerCoOwner) { - const hasApproved = ownerCoOwner?.approved || false - if (!hasApproved) return false - } - - // Check if reviewer is new co-owner and has not approved - const coOwners = getValueViaPath( - answers, - 'coOwners', - [], - ) as CoOwnersInformation[] - const coOwner = coOwners - .filter(({ wasRemoved }) => wasRemoved !== 'true') - .find((x) => x.nationalId === reviewerNationalId) - if (coOwner) { - const hasApproved = coOwner?.approved || false - if (!hasApproved) return false - } - - return true -} diff --git a/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/utils/index.ts b/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/utils/index.ts index 6aa4812ab24e..b446cdce56ca 100644 --- a/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/utils/index.ts +++ b/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/utils/index.ts @@ -1,6 +1,6 @@ export { getChargeItemCodes } from './getChargeItemCodes' export { getSelectedVehicle } from './getSelectedVehicle' -export { hasReviewerApproved } from './hasReviewerApproved' +export { canReviewerApprove, canReviewerReApprove } from './canReviewerApprove' export { getReviewSteps } from './getReviewSteps' export { isLastReviewer } from './isLastReviewer' export { getApproveAnswers } from './getApproveAnswers' diff --git a/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/utils/isLastReviewer.ts b/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/utils/isLastReviewer.ts index cb0199e9c966..9ab1916cd600 100644 --- a/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/utils/isLastReviewer.ts +++ b/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/utils/isLastReviewer.ts @@ -2,39 +2,50 @@ import { getValueViaPath } from '@island.is/application/core' import { FormValue } from '@island.is/application/types' import { OwnerCoOwnersInformation, CoOwnersInformation } from '../shared' -export const isLastReviewer = ( - reviewerNationalId: string, +// Function to check if an application has pending approval +export const applicationHasPendingApproval = ( answers: FormValue, -) => { - // First check if any reviewer that is not the current user has not approved - const ownerCoOwners = getValueViaPath( + excludeNationalId?: string, +): boolean => { + // Check if any old co-owners have not approved + const oldCoOwners = getValueViaPath( answers, 'ownerCoOwners', [], ) as OwnerCoOwnersInformation[] - const approvedOwnerCoOwner = ownerCoOwners.find((ownerCoOwner) => { - return ( - ownerCoOwner.nationalId !== reviewerNationalId && !ownerCoOwner.approved + if ( + oldCoOwners.some( + ({ nationalId, approved }) => + (!excludeNationalId || nationalId !== excludeNationalId) && !approved, ) - }) - if (approvedOwnerCoOwner) { - return false + ) { + return true } - const coOwners = getValueViaPath( - answers, - 'coOwners', - [], - ) as CoOwnersInformation[] - const approvedCoOwner = coOwners - .filter(({ wasRemoved }) => wasRemoved !== 'true') - .find( - (coOwner) => - coOwner.nationalId !== reviewerNationalId && !coOwner.approved, + // Check if any new co-owners have not approved + const newCoOwners = ( + getValueViaPath(answers, 'coOwners', []) as CoOwnersInformation[] + ).filter(({ wasRemoved }) => wasRemoved !== 'true') + if ( + newCoOwners.some( + ({ nationalId, approved }) => + (!excludeNationalId || nationalId !== excludeNationalId) && !approved, ) - if (approvedCoOwner) { - return false + ) { + return true } + return false +} + +// Function to check if the current reviewer is the last one who needs to approve +export const isLastReviewer = ( + reviewerNationalId: string, + answers: FormValue, +): boolean => { + // If there are pending approvals (excluding current reviewer), then he is not the last reviewer + if (applicationHasPendingApproval(answers, reviewerNationalId)) return false + + // Otherwise, the only review missing is from the current reviewer return true } diff --git a/libs/application/templates/transport-authority/change-operator-of-vehicle/src/dataProviders/index.ts b/libs/application/templates/transport-authority/change-operator-of-vehicle/src/dataProviders/index.ts index 85a5a4b28121..924a4a2c5375 100644 --- a/libs/application/templates/transport-authority/change-operator-of-vehicle/src/dataProviders/index.ts +++ b/libs/application/templates/transport-authority/change-operator-of-vehicle/src/dataProviders/index.ts @@ -1,6 +1,7 @@ import { defineTemplateApi, InstitutionNationalIds, + MockablePaymentCatalogApi, PaymentCatalogApi, } from '@island.is/application/types' @@ -13,6 +14,14 @@ export const SamgongustofaPaymentCatalogApi = PaymentCatalogApi.configure({ externalDataId: 'payment', }) +export const MockableSamgongustofaPaymentCatalogApi = + MockablePaymentCatalogApi.configure({ + params: { + organizationId: InstitutionNationalIds.SAMGONGUSTOFA, + }, + externalDataId: 'payment', + }) + export const CurrentVehiclesApi = defineTemplateApi({ action: 'getCurrentVehiclesWithOperatorChangeChecks', externalDataId: 'currentVehicleList', diff --git a/libs/application/templates/transport-authority/change-operator-of-vehicle/src/fields/ApplicationStatus/index.tsx b/libs/application/templates/transport-authority/change-operator-of-vehicle/src/fields/ApplicationStatus/index.tsx index 27dea9781631..3781f051aa49 100644 --- a/libs/application/templates/transport-authority/change-operator-of-vehicle/src/fields/ApplicationStatus/index.tsx +++ b/libs/application/templates/transport-authority/change-operator-of-vehicle/src/fields/ApplicationStatus/index.tsx @@ -8,7 +8,7 @@ import { useLocale } from '@island.is/localization' import { FC } from 'react' import { review } from '../../lib/messages' import { ReviewScreenProps } from '../../shared' -import { getReviewSteps, hasReviewerApproved } from '../../utils' +import { getReviewSteps, canReviewerApprove } from '../../utils' import { MessageWithLinkButtonFormField } from '@island.is/application/ui-fields' import { StatusStep } from './StatusStep' import { coreMessages } from '@island.is/application/core' @@ -21,7 +21,7 @@ export const ApplicationStatus: FC< const steps = getReviewSteps(application) - const showReviewButton = !hasReviewerApproved( + const showReviewButton = canReviewerApprove( reviewerNationalId, application.answers, ) diff --git a/libs/application/templates/transport-authority/change-operator-of-vehicle/src/fields/Overview/index.tsx b/libs/application/templates/transport-authority/change-operator-of-vehicle/src/fields/Overview/index.tsx index 809b77c0d538..e238eead5248 100644 --- a/libs/application/templates/transport-authority/change-operator-of-vehicle/src/fields/Overview/index.tsx +++ b/libs/application/templates/transport-authority/change-operator-of-vehicle/src/fields/Overview/index.tsx @@ -18,8 +18,9 @@ import { } from './sections' import { getApproveAnswers, - hasReviewerApproved, + canReviewerApprove, isLastReviewer, + canReviewerReApprove, } from '../../utils' import { RejectConfirmationModal } from './RejectConfirmationModal' import { @@ -27,6 +28,8 @@ import { SUBMIT_APPLICATION, } from '@island.is/application/graphql' import { useLazyQuery, useMutation } from '@apollo/client' +import { States } from '../../lib/constants' +import { ValidationErrorMessages } from '../ValidationErrorMessages' export const Overview: FC< React.PropsWithChildren @@ -47,11 +50,14 @@ export const Overview: FC< const [submitApplication, { error }] = useMutation(SUBMIT_APPLICATION, { onError: (e) => { console.error(e, e.message) + setButtonLoading(false) return }, }) - const [loading, setLoading] = useState(false) + const [buttonLoading, setButtonLoading] = useState(false) + const [shouldLoadValidation, setShouldLoadValidation] = useState(false) + const [validationErrorFound, setValidationErrorFound] = useState(false) const doApproveAndSubmit = async () => { // Need to get updated application answers, in case any other reviewer has approved @@ -112,11 +118,11 @@ export const Overview: FC< }) if (resSubmit?.data) { - setLoading(false) + setButtonLoading(false) setStep && setStep('conclusion') } } else { - setLoading(false) + setButtonLoading(false) setStep && setStep('conclusion') } } @@ -132,7 +138,8 @@ export const Overview: FC< } const onApproveButtonClick = async () => { - setLoading(true) + setButtonLoading(true) + setShouldLoadValidation(true) await doApproveAndSubmit() } @@ -150,7 +157,14 @@ export const Overview: FC< - {error && ( + {!buttonLoading && shouldLoadValidation && ( + + )} + + {!validationErrorFound && error && ( @@ -162,7 +176,7 @@ export const Overview: FC< - {!hasReviewerApproved(reviewerNationalId, application.answers) && ( + {canReviewerApprove(reviewerNationalId, application.answers) && ( )} + {canReviewerReApprove(reviewerNationalId, application.answers) && + application.state !== States.COMPLETED && ( + + + + )}
diff --git a/libs/application/templates/transport-authority/change-operator-of-vehicle/src/fields/ValidationErrorMessages/index.tsx b/libs/application/templates/transport-authority/change-operator-of-vehicle/src/fields/ValidationErrorMessages/index.tsx index 093b87cd3f4f..27aee1ba9b8c 100644 --- a/libs/application/templates/transport-authority/change-operator-of-vehicle/src/fields/ValidationErrorMessages/index.tsx +++ b/libs/application/templates/transport-authority/change-operator-of-vehicle/src/fields/ValidationErrorMessages/index.tsx @@ -2,16 +2,25 @@ import { gql, useQuery } from '@apollo/client' import { OperatorChangeValidationMessage } from '@island.is/api/schema' import { getValueViaPath } from '@island.is/application/core' import { FieldBaseProps } from '@island.is/application/types' -import { AlertMessage, Box, Text } from '@island.is/island-ui/core' +import { + AlertMessage, + Box, + Bullet, + BulletList, +} from '@island.is/island-ui/core' import { useLocale } from '@island.is/localization' -import { FC, useEffect } from 'react' +import { Dispatch, FC, SetStateAction, useEffect } from 'react' import { ChangeOperatorOfVehicleAnswers } from '../..' import { VALIDATE_VEHICLE_OPERATOR_CHANGE } from '../../graphql/queries' import { applicationCheck } from '../../lib/messages' +interface Props { + setValidationErrorFound?: Dispatch> +} + export const ValidationErrorMessages: FC< - React.PropsWithChildren -> = (props) => { + React.PropsWithChildren +> = ({ setValidationErrorFound, ...props }) => { const { application, setFieldLoadingState } = props const { formatMessage } = useLocale() @@ -49,12 +58,18 @@ export const ValidationErrorMessages: FC< : null, }, }, + onCompleted: (data) => { + if (data?.vehicleOperatorChangeValidation?.hasError) { + setValidationErrorFound?.(true) + } + }, + fetchPolicy: 'no-cache', }, ) useEffect(() => { setFieldLoadingState?.(loading) - }, [loading]) + }, [loading, setFieldLoadingState]) return data?.vehicleOperatorChangeValidation?.hasError && data.vehicleOperatorChangeValidation.errorMessages.length > 0 ? ( @@ -64,7 +79,7 @@ export const ValidationErrorMessages: FC< title={formatMessage(applicationCheck.validation.alertTitle)} message={ -
    + {data.vehicleOperatorChangeValidation.errorMessages.map( (error: OperatorChangeValidationMessage) => { const message = formatMessage( @@ -82,15 +97,13 @@ export const ValidationErrorMessages: FC< error?.errorNo return ( -
  • - - {message || defaultMessage || fallbackMessage} - -
  • + + {message || defaultMessage || fallbackMessage} + ) }, )} -
+
} /> diff --git a/libs/application/templates/transport-authority/change-operator-of-vehicle/src/forms/ChangeOperatorOfVehicleForm/InformationSection/vehicleSubSection.ts b/libs/application/templates/transport-authority/change-operator-of-vehicle/src/forms/ChangeOperatorOfVehicleForm/InformationSection/vehicleSubSection.ts index 70cd26729e83..91dcd0eaba17 100644 --- a/libs/application/templates/transport-authority/change-operator-of-vehicle/src/forms/ChangeOperatorOfVehicleForm/InformationSection/vehicleSubSection.ts +++ b/libs/application/templates/transport-authority/change-operator-of-vehicle/src/forms/ChangeOperatorOfVehicleForm/InformationSection/vehicleSubSection.ts @@ -6,7 +6,6 @@ import { buildHiddenInput, } from '@island.is/application/core' import { information } from '../../../lib/messages' -import { VehiclesCurrentVehicle } from '../../../shared' import { getSelectedVehicle } from '../../../utils' export const vehicleSubSection = buildSubSection({ @@ -27,7 +26,7 @@ export const vehicleSubSection = buildSubSection({ const vehicle = getSelectedVehicle( application.externalData, application.answers, - ) as VehiclesCurrentVehicle + ) return vehicle?.permno }, }), @@ -41,7 +40,7 @@ export const vehicleSubSection = buildSubSection({ const vehicle = getSelectedVehicle( application.externalData, application.answers, - ) as VehiclesCurrentVehicle + ) return vehicle?.make }, }), @@ -51,7 +50,7 @@ export const vehicleSubSection = buildSubSection({ const vehicle = getSelectedVehicle( application.externalData, application.answers, - ) as VehiclesCurrentVehicle + ) return vehicle?.requireMileage || false }, }), @@ -61,8 +60,8 @@ export const vehicleSubSection = buildSubSection({ const vehicle = getSelectedVehicle( application.externalData, application.answers, - ) as VehiclesCurrentVehicle - return vehicle.mileageReading || '' + ) + return vehicle?.mileageReading || '' }, }), buildTextField({ @@ -71,17 +70,14 @@ export const vehicleSubSection = buildSubSection({ width: 'full', variant: 'number', condition: (answers, externalData) => { - const vehicle = getSelectedVehicle( - externalData, - answers, - ) as VehiclesCurrentVehicle + const vehicle = getSelectedVehicle(externalData, answers) return vehicle?.requireMileage || false }, placeholder(application) { const vehicle = getSelectedVehicle( application.externalData, application.answers, - ) as VehiclesCurrentVehicle + ) return vehicle?.mileageReading ? `Síðasta skráning ${vehicle.mileageReading} Km` : '' diff --git a/libs/application/templates/transport-authority/change-operator-of-vehicle/src/forms/ChangeOperatorOfVehicleForm/externalDataSection.ts b/libs/application/templates/transport-authority/change-operator-of-vehicle/src/forms/ChangeOperatorOfVehicleForm/externalDataSection.ts index 9132f1d53cb7..051a18a09f69 100644 --- a/libs/application/templates/transport-authority/change-operator-of-vehicle/src/forms/ChangeOperatorOfVehicleForm/externalDataSection.ts +++ b/libs/application/templates/transport-authority/change-operator-of-vehicle/src/forms/ChangeOperatorOfVehicleForm/externalDataSection.ts @@ -9,6 +9,7 @@ import { UserProfileApi, SamgongustofaPaymentCatalogApi, CurrentVehiclesApi, + MockableSamgongustofaPaymentCatalogApi, } from '../../dataProviders' export const externalDataSection = buildSection({ @@ -40,6 +41,10 @@ export const externalDataSection = buildSection({ provider: SamgongustofaPaymentCatalogApi, title: '', }), + buildDataProviderItem({ + provider: MockableSamgongustofaPaymentCatalogApi, + title: '', + }), ], }), ], diff --git a/libs/application/templates/transport-authority/change-operator-of-vehicle/src/lib/ChangeOperatorOfVehicleTemplate.ts b/libs/application/templates/transport-authority/change-operator-of-vehicle/src/lib/ChangeOperatorOfVehicleTemplate.ts index 1d5144b1d48b..68f932caa4a9 100644 --- a/libs/application/templates/transport-authority/change-operator-of-vehicle/src/lib/ChangeOperatorOfVehicleTemplate.ts +++ b/libs/application/templates/transport-authority/change-operator-of-vehicle/src/lib/ChangeOperatorOfVehicleTemplate.ts @@ -26,11 +26,12 @@ import { UserProfileApi, SamgongustofaPaymentCatalogApi, CurrentVehiclesApi, + MockableSamgongustofaPaymentCatalogApi, } from '../dataProviders' import { application as applicationMessage } from './messages' import { assign } from 'xstate' import set from 'lodash/set' -import { hasReviewerApproved, isRemovingOperatorOnly } from '../utils' +import { canReviewerApprove, isRemovingOperatorOnly } from '../utils' import { AuthDelegationType } from '@island.is/shared/types' import { ApiScope } from '@island.is/auth/scopes' import { buildPaymentState } from '@island.is/application/utils' @@ -61,7 +62,7 @@ const reviewStatePendingAction = ( role: string, nationalId: string, ): PendingAction => { - if (nationalId && !hasReviewerApproved(nationalId, application.answers)) { + if (nationalId && canReviewerApprove(nationalId, application.answers)) { return { title: corePendingActionMessages.waitingForReviewTitle, content: corePendingActionMessages.youNeedToReviewDescription, @@ -141,6 +142,7 @@ const template: ApplicationTemplate< IdentityApi, UserProfileApi, SamgongustofaPaymentCatalogApi, + MockableSamgongustofaPaymentCatalogApi, CurrentVehiclesApi, ], }, diff --git a/libs/application/templates/transport-authority/change-operator-of-vehicle/src/lib/messages/review.ts b/libs/application/templates/transport-authority/change-operator-of-vehicle/src/lib/messages/review.ts index 90130992c5a0..9811e33b6e07 100644 --- a/libs/application/templates/transport-authority/change-operator-of-vehicle/src/lib/messages/review.ts +++ b/libs/application/templates/transport-authority/change-operator-of-vehicle/src/lib/messages/review.ts @@ -123,8 +123,13 @@ export const review = { }, approve: { id: 'ta.cov.application:review.buttons.approve', - defaultMessage: `Samþykkja`, + defaultMessage: 'Samþykkja', description: 'Approve button in review process', }, + tryAgain: { + id: 'ta.cov.application:review.buttons.tryAgain', + defaultMessage: 'Reyna aftur', + description: 'Try again button in review process', + }, }), } diff --git a/libs/application/templates/transport-authority/change-operator-of-vehicle/src/utils/canReviewerApprove.ts b/libs/application/templates/transport-authority/change-operator-of-vehicle/src/utils/canReviewerApprove.ts new file mode 100644 index 000000000000..98830e4526b6 --- /dev/null +++ b/libs/application/templates/transport-authority/change-operator-of-vehicle/src/utils/canReviewerApprove.ts @@ -0,0 +1,65 @@ +import { FormValue } from '@island.is/application/types' +import { getValueViaPath } from '@island.is/application/core' +import { OperatorInformation, UserInformation } from '../shared' +import { applicationHasPendingApproval } from './isLastReviewer' + +// Function to check if the reviewer is authorized to approve and hasn't done that yet +export const canReviewerApprove = ( + reviewerNationalId: string, + answers: FormValue, +): boolean => { + // Check if reviewer is co-owner and has not approved + const coOwners = getValueViaPath( + answers, + 'ownerCoOwner', + [], + ) as UserInformation[] + if ( + coOwners.some( + ({ nationalId, approved }) => + nationalId === reviewerNationalId && !approved, + ) + ) { + return true + } + + // Check if reviewer is new operator and has not approved + const newOperators = ( + getValueViaPath(answers, 'operators', []) as OperatorInformation[] + ).filter(({ wasRemoved }) => wasRemoved !== 'true') + if ( + newOperators.some( + ({ nationalId, approved }) => + nationalId === reviewerNationalId && !approved, + ) + ) { + return true + } + + return false +} + +// Special case to allow any reviewer to trigger an external API call to complete owner change +// Necessary when approve is updated in answers, but application is still stuck in REVIEW state +// then any user can try to 'push' the application to the next state +export const canReviewerReApprove = ( + reviewerNationalId: string, + answers: FormValue, +): boolean => { + const coOwners = getValueViaPath( + answers, + 'ownerCoOwner', + [], + ) as UserInformation[] + const newOperators = ( + getValueViaPath(answers, 'operators', []) as OperatorInformation[] + ).filter(({ wasRemoved }) => wasRemoved !== 'true') + + const isReviewerAuthorized = [ + coOwners.some(({ nationalId }) => nationalId === reviewerNationalId), + newOperators.some(({ nationalId }) => nationalId === reviewerNationalId), + ].some(Boolean) + + // Check if the reviewer is authorized and if all required approvals have been completed + return isReviewerAuthorized && !applicationHasPendingApproval(answers) +} diff --git a/libs/application/templates/transport-authority/change-operator-of-vehicle/src/utils/getSelectedVehicle.ts b/libs/application/templates/transport-authority/change-operator-of-vehicle/src/utils/getSelectedVehicle.ts index a13ea829dc3c..38e162f6a245 100644 --- a/libs/application/templates/transport-authority/change-operator-of-vehicle/src/utils/getSelectedVehicle.ts +++ b/libs/application/templates/transport-authority/change-operator-of-vehicle/src/utils/getSelectedVehicle.ts @@ -5,7 +5,7 @@ import { CurrentVehiclesAndRecords, VehiclesCurrentVehicle } from '../shared' export const getSelectedVehicle = ( externalData: ExternalData, answers: FormValue, -): VehiclesCurrentVehicle => { +): VehiclesCurrentVehicle | undefined => { if (answers.findVehicle) { const vehicle = getValueViaPath( answers, diff --git a/libs/application/templates/transport-authority/change-operator-of-vehicle/src/utils/hasReviewerApproved.ts b/libs/application/templates/transport-authority/change-operator-of-vehicle/src/utils/hasReviewerApproved.ts deleted file mode 100644 index c53aad9fc6e8..000000000000 --- a/libs/application/templates/transport-authority/change-operator-of-vehicle/src/utils/hasReviewerApproved.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { FormValue } from '@island.is/application/types' -import { getValueViaPath } from '@island.is/application/core' -import { OperatorInformation, UserInformation } from '../shared' - -export const hasReviewerApproved = ( - reviewerNationalId: string, - answers: FormValue, -) => { - // Check if reviewer is owner coowner and has not approved - const ownerCoOwners = getValueViaPath( - answers, - 'ownerCoOwner', - [], - ) as UserInformation[] - const ownerCoOwner = ownerCoOwners.find( - (ownerCoOwner) => ownerCoOwner.nationalId === reviewerNationalId, - ) - if (ownerCoOwner) { - const hasApproved = ownerCoOwner?.approved || false - if (!hasApproved) return false - } - - // Check if reviewer is operator and has not approved - const operators = getValueViaPath( - answers, - 'operators', - [], - ) as OperatorInformation[] - const operator = operators - .filter(({ wasRemoved }) => wasRemoved !== 'true') - .find((operator) => operator.nationalId === reviewerNationalId) - if (operator) { - const hasApproved = operator?.approved || false - if (!hasApproved) return false - } - - return true -} diff --git a/libs/application/templates/transport-authority/change-operator-of-vehicle/src/utils/index.ts b/libs/application/templates/transport-authority/change-operator-of-vehicle/src/utils/index.ts index 290b6e7851b3..b2b0a8ee552c 100644 --- a/libs/application/templates/transport-authority/change-operator-of-vehicle/src/utils/index.ts +++ b/libs/application/templates/transport-authority/change-operator-of-vehicle/src/utils/index.ts @@ -1,6 +1,6 @@ export { getChargeItemCodes } from './getChargeItemCodes' export { getReviewSteps } from './getReviewSteps' -export { hasReviewerApproved } from './hasReviewerApproved' +export { canReviewerApprove, canReviewerReApprove } from './canReviewerApprove' export { getApproveAnswers } from './getApproveAnswers' export { isLastReviewer } from './isLastReviewer' export { getRejecter } from './getRejecter' diff --git a/libs/application/templates/transport-authority/change-operator-of-vehicle/src/utils/isLastReviewer.ts b/libs/application/templates/transport-authority/change-operator-of-vehicle/src/utils/isLastReviewer.ts index 87a99d12d73c..223849b33eea 100644 --- a/libs/application/templates/transport-authority/change-operator-of-vehicle/src/utils/isLastReviewer.ts +++ b/libs/application/templates/transport-authority/change-operator-of-vehicle/src/utils/isLastReviewer.ts @@ -2,39 +2,50 @@ import { getValueViaPath } from '@island.is/application/core' import { FormValue } from '@island.is/application/types' import { OperatorInformation, UserInformation } from '../shared' -export const isLastReviewer = ( - reviewerNationalId: string, +// Function to check if an application has pending approval +export const applicationHasPendingApproval = ( answers: FormValue, -) => { - // First check if any reviewer that is not the current user has not approved - const ownerCoOwners = getValueViaPath( + excludeNationalId?: string, +): boolean => { + // Check if any co-owners have not approved + const coOwners = getValueViaPath( answers, 'ownerCoOwner', [], ) as UserInformation[] - const approvedOwnerCoOwner = ownerCoOwners.find((ownerCoOwner) => { - return ( - ownerCoOwner.nationalId !== reviewerNationalId && !ownerCoOwner.approved + if ( + coOwners.some( + ({ nationalId, approved }) => + (!excludeNationalId || nationalId !== excludeNationalId) && !approved, ) - }) - if (approvedOwnerCoOwner) { - return false + ) { + return true } - const operators = getValueViaPath( - answers, - 'operators', - [], - ) as OperatorInformation[] - const approvedOperator = operators - .filter(({ wasRemoved }) => wasRemoved !== 'true') - .find( - (operator) => - operator.nationalId !== reviewerNationalId && !operator.approved, + // Check if any new operators have not approved + const newOperators = ( + getValueViaPath(answers, 'operators', []) as OperatorInformation[] + ).filter(({ wasRemoved }) => wasRemoved !== 'true') + if ( + newOperators.some( + ({ nationalId, approved }) => + (!excludeNationalId || nationalId !== excludeNationalId) && !approved, ) - if (approvedOperator) { - return false + ) { + return true } + return false +} + +// Function to check if the current reviewer is the last one who needs to approve +export const isLastReviewer = ( + reviewerNationalId: string, + answers: FormValue, +): boolean => { + // If there are pending approvals (excluding current reviewer), then he is not the last reviewer + if (applicationHasPendingApproval(answers, reviewerNationalId)) return false + + // Otherwise, the only review missing is from the current reviewer return true } diff --git a/libs/application/templates/transport-authority/license-plate-renewal/src/dataProviders/index.ts b/libs/application/templates/transport-authority/license-plate-renewal/src/dataProviders/index.ts index 712988da9d9f..b16e607530df 100644 --- a/libs/application/templates/transport-authority/license-plate-renewal/src/dataProviders/index.ts +++ b/libs/application/templates/transport-authority/license-plate-renewal/src/dataProviders/index.ts @@ -1,6 +1,7 @@ import { defineTemplateApi, InstitutionNationalIds, + MockablePaymentCatalogApi, PaymentCatalogApi, } from '@island.is/application/types' @@ -13,6 +14,14 @@ export const SamgongustofaPaymentCatalogApi = PaymentCatalogApi.configure({ externalDataId: 'payment', }) +export const MockableSamgongustofaPaymentCatalogApi = + MockablePaymentCatalogApi.configure({ + params: { + organizationId: InstitutionNationalIds.SAMGONGUSTOFA, + }, + externalDataId: 'payment', + }) + export const MyPlateOwnershipsApi = defineTemplateApi({ action: 'getMyPlateOwnershipList', externalDataId: 'myPlateOwnershipList', diff --git a/libs/application/templates/transport-authority/license-plate-renewal/src/fields/PlateField/PlateRadioField.tsx b/libs/application/templates/transport-authority/license-plate-renewal/src/fields/PlateField/PlateRadioField.tsx index 7a89fef1f4cf..74e8dbadfeda 100644 --- a/libs/application/templates/transport-authority/license-plate-renewal/src/fields/PlateField/PlateRadioField.tsx +++ b/libs/application/templates/transport-authority/license-plate-renewal/src/fields/PlateField/PlateRadioField.tsx @@ -14,6 +14,7 @@ import { useLocale } from '@island.is/localization' import { information } from '../../lib/messages' import { useFormContext } from 'react-hook-form' import { getValueViaPath } from '@island.is/application/core' +import { checkCanRenew } from '../../utils' interface Option { value: string @@ -38,9 +39,10 @@ export const PlateRadioField: FC< const options = [] as Option[] for (const [index, plate] of plates.entries()) { - const inThreeMonths = new Date().setMonth(new Date().getMonth() + 3) - const canRenew = +new Date(plate.endDate) <= +inThreeMonths - const disabled = !!plate?.validationErrorMessages?.length || !canRenew + const hasError = !!plate.validationErrorMessages?.length + const canRenew = checkCanRenew(plate) + const disabled = hasError || !canRenew + options.push({ value: `${index}`, label: ( @@ -55,13 +57,13 @@ export const PlateRadioField: FC< {plate.regno} - + {formatMessage(information.labels.pickPlate.expiresTag, { date: formatDateFns(new Date(plate.endDate), 'do MMM yyyy'), })} - {disabled && ( + {hasError && ( - {!!plate.validationErrorMessages?.length && - plate.validationErrorMessages?.map((error) => { - return {error.defaultMessage} - })} + {plate.validationErrorMessages?.map((error) => { + return {error.defaultMessage} + })} } diff --git a/libs/application/templates/transport-authority/license-plate-renewal/src/fields/PlateField/PlateSelectField.tsx b/libs/application/templates/transport-authority/license-plate-renewal/src/fields/PlateField/PlateSelectField.tsx index 127b4e2b4f66..9ba3b36c4d53 100644 --- a/libs/application/templates/transport-authority/license-plate-renewal/src/fields/PlateField/PlateSelectField.tsx +++ b/libs/application/templates/transport-authority/license-plate-renewal/src/fields/PlateField/PlateSelectField.tsx @@ -1,6 +1,6 @@ import { FieldBaseProps, Option } from '@island.is/application/types' import { useLocale } from '@island.is/localization' -import { FC, useState } from 'react' +import { FC, useCallback, useEffect, useState } from 'react' import { Box, SkeletonLoader, @@ -8,12 +8,15 @@ import { Bullet, BulletList, ActionCard, + InputError, } from '@island.is/island-ui/core' import { PlateOwnership } from '../../shared' -import { information } from '../../lib/messages' +import { error, information } from '../../lib/messages' import { SelectController } from '@island.is/shared/form-fields' import { getValueViaPath } from '@island.is/application/core' import { useFormContext } from 'react-hook-form' +import { useLazyPlateDetails } from '../../hooks/useLazyPlateDetails' +import { checkCanRenew } from '../../utils' interface PlateSearchFieldProps { myPlateOwnershipList: PlateOwnership[] @@ -21,7 +24,7 @@ interface PlateSearchFieldProps { export const PlateSelectField: FC< React.PropsWithChildren -> = ({ myPlateOwnershipList, application }) => { +> = ({ myPlateOwnershipList, application, errors, setFieldLoadingState }) => { const { formatMessage, formatDateFns } = useLocale() const { setValue } = useFormContext() @@ -43,27 +46,59 @@ export const PlateSelectField: FC< } : null, ) + const [plate, setPlate] = useState( + getValueViaPath(application.answers, 'pickPlate.regno', '') as string, + ) + + const getPlateDetails = useLazyPlateDetails() + const getPlateDetailsCallback = useCallback( + async ({ regno }: { regno: string }) => { + const { data } = await getPlateDetails({ + regno, + }) + return data + }, + [getPlateDetails], + ) const onChange = (option: Option) => { const currentPlate = myPlateOwnershipList[parseInt(option.value, 10)] setIsLoading(true) if (currentPlate.regno) { - setSelectedPlate({ + getPlateDetailsCallback({ regno: currentPlate.regno, - startDate: currentPlate.startDate, - endDate: currentPlate.endDate, - validationErrorMessages: currentPlate.validationErrorMessages, }) - setValue('pickPlate.regno', disabled ? '' : selectedPlate.regno) - setIsLoading(false) + .then((response) => { + setSelectedPlate({ + regno: currentPlate.regno, + startDate: currentPlate.startDate, + endDate: currentPlate.endDate, + validationErrorMessages: + response?.myPlateOwnershipChecksByRegno?.validationErrorMessages, + }) + + const resHasError = + !!response?.myPlateOwnershipChecksByRegno?.validationErrorMessages + ?.length + const resCanRenew = checkCanRenew(currentPlate) + const resDisabled = resHasError || !resCanRenew + + setPlate(resDisabled ? '' : currentPlate.regno || '') + setValue('pickPlate.regno', resDisabled ? '' : currentPlate.regno) + setIsLoading(false) + }) + .catch((error) => console.error(error)) } } - const inThreeMonths = new Date().setMonth(new Date().getMonth() + 3) - const canRenew = - selectedPlate && +new Date(selectedPlate.endDate) <= +inThreeMonths - const disabled = - (selectedPlate && !!selectedPlate.validationErrorMessages?.length) || - !canRenew + + const hasError = !!selectedPlate?.validationErrorMessages?.length + const canRenew = checkCanRenew(selectedPlate) + const disabled = hasError || !canRenew + + useEffect(() => { + setFieldLoadingState?.(isLoading) + }, [isLoading]) + return ( )} - {selectedPlate && disabled && ( + {selectedPlate && hasError && ( - {!!selectedPlate.validationErrorMessages?.length && - selectedPlate.validationErrorMessages?.map( - (error) => { - return {error.defaultMessage} - }, - )} + {selectedPlate.validationErrorMessages?.map((error) => { + return {error.defaultMessage} + })} } @@ -126,6 +159,9 @@ export const PlateSelectField: FC< )} + {!isLoading && plate.length === 0 && (errors as any)?.pickPlate && ( + + )} ) } diff --git a/libs/application/templates/transport-authority/license-plate-renewal/src/forms/LicensePlateRenewalForm/InformationSection/informationSubSection.ts b/libs/application/templates/transport-authority/license-plate-renewal/src/forms/LicensePlateRenewalForm/InformationSection/informationSubSection.ts index 6394cd67542d..155cdf5b8e34 100644 --- a/libs/application/templates/transport-authority/license-plate-renewal/src/forms/LicensePlateRenewalForm/InformationSection/informationSubSection.ts +++ b/libs/application/templates/transport-authority/license-plate-renewal/src/forms/LicensePlateRenewalForm/InformationSection/informationSubSection.ts @@ -30,10 +30,11 @@ export const informationSubSection = buildSubSection({ width: 'half', readOnly: true, defaultValue: (application: Application) => { - return getSelectedVehicle( + const vehicle = getSelectedVehicle( application.externalData, application.answers, - ).regno + ) + return vehicle?.regno }, }), buildDescriptionField({ @@ -49,15 +50,12 @@ export const informationSubSection = buildSubSection({ width: 'half', readOnly: true, defaultValue: (application: Application) => { - return format( - new Date( - getSelectedVehicle( - application.externalData, - application.answers, - ).startDate, - ), - 'dd.MM.yyyy', + const vehicle = getSelectedVehicle( + application.externalData, + application.answers, ) + const dateFrom = vehicle ? new Date(vehicle.startDate) : new Date() + return format(dateFrom, 'dd.MM.yyyy') }, }), buildTextField({ @@ -67,12 +65,11 @@ export const informationSubSection = buildSubSection({ width: 'half', readOnly: true, defaultValue: (application: Application) => { - const dateTo = new Date( - getSelectedVehicle( - application.externalData, - application.answers, - ).endDate, + const vehicle = getSelectedVehicle( + application.externalData, + application.answers, ) + const dateTo = vehicle ? new Date(vehicle?.endDate) : new Date() return format( dateTo.setFullYear(dateTo.getFullYear() + 8), 'dd.MM.yyyy', diff --git a/libs/application/templates/transport-authority/license-plate-renewal/src/forms/LicensePlateRenewalForm/prerequisitesSection.ts b/libs/application/templates/transport-authority/license-plate-renewal/src/forms/LicensePlateRenewalForm/prerequisitesSection.ts index aa3cba6698d4..532ee1267e0e 100644 --- a/libs/application/templates/transport-authority/license-plate-renewal/src/forms/LicensePlateRenewalForm/prerequisitesSection.ts +++ b/libs/application/templates/transport-authority/license-plate-renewal/src/forms/LicensePlateRenewalForm/prerequisitesSection.ts @@ -8,6 +8,7 @@ import { IdentityApi, SamgongustofaPaymentCatalogApi, MyPlateOwnershipsApi, + MockableSamgongustofaPaymentCatalogApi, } from '../../dataProviders' export const prerequisitesSection = buildSection({ @@ -34,6 +35,10 @@ export const prerequisitesSection = buildSection({ provider: SamgongustofaPaymentCatalogApi, title: '', }), + buildDataProviderItem({ + provider: MockableSamgongustofaPaymentCatalogApi, + title: '', + }), ], }), ], diff --git a/libs/application/templates/transport-authority/license-plate-renewal/src/hooks/useLazyPlateDetails.ts b/libs/application/templates/transport-authority/license-plate-renewal/src/hooks/useLazyPlateDetails.ts new file mode 100644 index 000000000000..6ed497a6d88c --- /dev/null +++ b/libs/application/templates/transport-authority/license-plate-renewal/src/hooks/useLazyPlateDetails.ts @@ -0,0 +1,19 @@ +import { gql } from '@apollo/client' +import { MyPlateOwnershipChecksByRegno } from '@island.is/api/schema' +import { GET_MY_PLATE_OWNERSHIP_CHECKS_BY_REGNO } from '../graphql/queries' +import { useLazyQuery } from './useLazyQuery' + +export const useLazyPlateDetails = () => { + return useLazyQuery< + { + myPlateOwnershipChecksByRegno: MyPlateOwnershipChecksByRegno + }, + { + regno: string + } + >( + gql` + ${GET_MY_PLATE_OWNERSHIP_CHECKS_BY_REGNO} + `, + ) +} diff --git a/libs/application/templates/transport-authority/license-plate-renewal/src/hooks/useLazyQuery.ts b/libs/application/templates/transport-authority/license-plate-renewal/src/hooks/useLazyQuery.ts new file mode 100644 index 000000000000..f8964864e9f3 --- /dev/null +++ b/libs/application/templates/transport-authority/license-plate-renewal/src/hooks/useLazyQuery.ts @@ -0,0 +1,24 @@ +import { + DocumentNode, + OperationVariables, + useApolloClient, +} from '@apollo/client' +import { useCallback } from 'react' + +export const useLazyQuery = < + TData = any, + TVariables extends OperationVariables = OperationVariables, +>( + query: DocumentNode, +) => { + const client = useApolloClient() + + return useCallback( + (variables: TVariables) => + client.query({ + query, + variables, + }), + [client], + ) +} diff --git a/libs/application/templates/transport-authority/license-plate-renewal/src/index.ts b/libs/application/templates/transport-authority/license-plate-renewal/src/index.ts index b758ce9adb96..ed5617b1cf2e 100644 --- a/libs/application/templates/transport-authority/license-plate-renewal/src/index.ts +++ b/libs/application/templates/transport-authority/license-plate-renewal/src/index.ts @@ -8,5 +8,6 @@ export type LicensePlateRenewalAnswers = LicensePlateRenewal export * from './utils' export * from './lib/messages/error' +export * from './lib/messages/applicationCheck' export default template diff --git a/libs/application/templates/transport-authority/license-plate-renewal/src/lib/LicensePlateRenewalTemplate.ts b/libs/application/templates/transport-authority/license-plate-renewal/src/lib/LicensePlateRenewalTemplate.ts index 52194f92cf09..36fdce40e474 100644 --- a/libs/application/templates/transport-authority/license-plate-renewal/src/lib/LicensePlateRenewalTemplate.ts +++ b/libs/application/templates/transport-authority/license-plate-renewal/src/lib/LicensePlateRenewalTemplate.ts @@ -25,6 +25,7 @@ import { LicensePlateRenewalSchema } from './dataSchema' import { SamgongustofaPaymentCatalogApi, MyPlateOwnershipsApi, + MockableSamgongustofaPaymentCatalogApi, } from '../dataProviders' import { AuthDelegationType } from '@island.is/shared/types' import { ApiScope } from '@island.is/auth/scopes' @@ -86,9 +87,6 @@ const template: ApplicationTemplate< }, lifecycle: EphemeralStateLifeCycle, onExit: [ - defineTemplateApi({ - action: ApiActions.validateApplication, - }), defineTemplateApi({ action: ApiActions.submitApplication, }), @@ -111,6 +109,7 @@ const template: ApplicationTemplate< delete: true, api: [ SamgongustofaPaymentCatalogApi, + MockableSamgongustofaPaymentCatalogApi, MyPlateOwnershipsApi, IdentityApi, ], diff --git a/libs/application/templates/transport-authority/license-plate-renewal/src/lib/messages/applicationCheck.ts b/libs/application/templates/transport-authority/license-plate-renewal/src/lib/messages/applicationCheck.ts new file mode 100644 index 000000000000..1697e26d3606 --- /dev/null +++ b/libs/application/templates/transport-authority/license-plate-renewal/src/lib/messages/applicationCheck.ts @@ -0,0 +1,16 @@ +import { defineMessages } from 'react-intl' + +export const applicationCheck = { + validation: defineMessages({ + alertTitle: { + id: 'ta.lpr.application:applicationCheck.validation.alertTitle', + defaultMessage: 'Það kom upp villa', + description: 'Application check validation alert title', + }, + fallbackErrorMessage: { + id: 'ta.lpr.application:applicationCheck.validation.fallbackErrorMessage', + defaultMessage: 'Það kom upp villa við að sannreyna gögn', + description: 'Fallback error message for validation', + }, + }), +} diff --git a/libs/application/templates/transport-authority/license-plate-renewal/src/lib/messages/error.ts b/libs/application/templates/transport-authority/license-plate-renewal/src/lib/messages/error.ts index 35b5ba7b0355..756a92386086 100644 --- a/libs/application/templates/transport-authority/license-plate-renewal/src/lib/messages/error.ts +++ b/libs/application/templates/transport-authority/license-plate-renewal/src/lib/messages/error.ts @@ -1,6 +1,11 @@ import { defineMessages } from 'react-intl' export const error = defineMessages({ + requiredValidPlate: { + id: 'ta.lpr.application:error.requiredValidPlate', + defaultMessage: 'Einkamerki þarf að vera gilt', + description: 'Error message if the plate chosen is invalid or not chosen', + }, errorDataProvider: { id: 'ta.lpr.application:error.dataProvider', defaultMessage: 'Reyndu aftur síðar', diff --git a/libs/application/templates/transport-authority/license-plate-renewal/src/lib/messages/index.ts b/libs/application/templates/transport-authority/license-plate-renewal/src/lib/messages/index.ts index b1dfa8e15ab3..cde6d64fc218 100644 --- a/libs/application/templates/transport-authority/license-plate-renewal/src/lib/messages/index.ts +++ b/libs/application/templates/transport-authority/license-plate-renewal/src/lib/messages/index.ts @@ -4,3 +4,4 @@ export * from './information' export * from './payment' export * from './conclusion' export * from './error' +export * from './applicationCheck' diff --git a/libs/application/templates/transport-authority/license-plate-renewal/src/lib/messages/information.ts b/libs/application/templates/transport-authority/license-plate-renewal/src/lib/messages/information.ts index d14ae07c9f27..e3db808d044e 100644 --- a/libs/application/templates/transport-authority/license-plate-renewal/src/lib/messages/information.ts +++ b/libs/application/templates/transport-authority/license-plate-renewal/src/lib/messages/information.ts @@ -52,11 +52,6 @@ export const information = { defaultMessage: 'Ekki er hægt að endurnýja einkamerki vegna:', description: 'Pick plate has an error title', }, - isNotDebtLessTag: { - id: 'ta.lpr.application:information.labels.pickVehicle.isNotDebtLessTag', - defaultMessage: 'Ógreidd bifreiðagjöld', - description: 'Pick plate is not debt less tag', - }, expiresTag: { id: 'ta.lpr.application:information.labels.pickVehicle.expiresTag', defaultMessage: 'Rennur út {date}', diff --git a/libs/application/templates/transport-authority/license-plate-renewal/src/shared/constants.ts b/libs/application/templates/transport-authority/license-plate-renewal/src/shared/constants.ts index f62f9cd86c1f..b67eb7433299 100644 --- a/libs/application/templates/transport-authority/license-plate-renewal/src/shared/constants.ts +++ b/libs/application/templates/transport-authority/license-plate-renewal/src/shared/constants.ts @@ -1,4 +1,3 @@ export enum ApiActions { - validateApplication = 'validateApplication', submitApplication = 'submitApplication', } diff --git a/libs/application/templates/transport-authority/license-plate-renewal/src/utils/checkCanRenew.ts b/libs/application/templates/transport-authority/license-plate-renewal/src/utils/checkCanRenew.ts new file mode 100644 index 000000000000..1d2ac5fe148f --- /dev/null +++ b/libs/application/templates/transport-authority/license-plate-renewal/src/utils/checkCanRenew.ts @@ -0,0 +1,6 @@ +import { PlateOwnership } from '../shared' + +export const checkCanRenew = (plate?: PlateOwnership | null): boolean => { + const inThreeMonths = new Date().setMonth(new Date().getMonth() + 3) + return plate ? +new Date(plate.endDate) <= +inThreeMonths : false +} diff --git a/libs/application/templates/transport-authority/license-plate-renewal/src/utils/getSelectedVehicle.ts b/libs/application/templates/transport-authority/license-plate-renewal/src/utils/getSelectedVehicle.ts index 49782eda7261..324c3ceb1d91 100644 --- a/libs/application/templates/transport-authority/license-plate-renewal/src/utils/getSelectedVehicle.ts +++ b/libs/application/templates/transport-authority/license-plate-renewal/src/utils/getSelectedVehicle.ts @@ -5,7 +5,7 @@ import { PlateOwnership } from '../shared' export const getSelectedVehicle = ( externalData: ExternalData, answers: FormValue, -) => { +): PlateOwnership | undefined => { const currentVehicleList = (externalData?.['myPlateOwnershipList']?.data as PlateOwnership[]) || [] const vehicleValue = getValueViaPath(answers, 'pickPlate.value', '') as string diff --git a/libs/application/templates/transport-authority/license-plate-renewal/src/utils/index.ts b/libs/application/templates/transport-authority/license-plate-renewal/src/utils/index.ts index 69aa4fbeac9d..2ad52b10bbab 100644 --- a/libs/application/templates/transport-authority/license-plate-renewal/src/utils/index.ts +++ b/libs/application/templates/transport-authority/license-plate-renewal/src/utils/index.ts @@ -16,3 +16,4 @@ export const getExtraData = (application: Application): ExtraData[] => { } export { getSelectedVehicle } from './getSelectedVehicle' +export { checkCanRenew } from './checkCanRenew' diff --git a/libs/application/templates/transport-authority/order-vehicle-license-plate/src/dataProviders/index.ts b/libs/application/templates/transport-authority/order-vehicle-license-plate/src/dataProviders/index.ts index 962d63233cb0..e90307fa5ae4 100644 --- a/libs/application/templates/transport-authority/order-vehicle-license-plate/src/dataProviders/index.ts +++ b/libs/application/templates/transport-authority/order-vehicle-license-plate/src/dataProviders/index.ts @@ -1,6 +1,7 @@ import { defineTemplateApi, InstitutionNationalIds, + MockablePaymentCatalogApi, PaymentCatalogApi, } from '@island.is/application/types' @@ -11,6 +12,14 @@ export const SamgongustofaPaymentCatalogApi = PaymentCatalogApi.configure({ externalDataId: 'payment', }) +export const MockableSamgongustofaPaymentCatalogApi = + MockablePaymentCatalogApi.configure({ + params: { + organizationId: InstitutionNationalIds.SAMGONGUSTOFA, + }, + externalDataId: 'payment', + }) + export const CurrentVehiclesApi = defineTemplateApi({ action: 'getCurrentVehiclesWithPlateOrderChecks', externalDataId: 'currentVehicleList', diff --git a/libs/application/templates/transport-authority/order-vehicle-license-plate/src/fields/PickPlateSize.tsx b/libs/application/templates/transport-authority/order-vehicle-license-plate/src/fields/PickPlateSize.tsx index d29a97fcb2e6..64c8732fc832 100644 --- a/libs/application/templates/transport-authority/order-vehicle-license-plate/src/fields/PickPlateSize.tsx +++ b/libs/application/templates/transport-authority/order-vehicle-license-plate/src/fields/PickPlateSize.tsx @@ -11,7 +11,7 @@ import { CheckboxController } from '@island.is/shared/form-fields' import { gql, useQuery } from '@apollo/client' import { GET_VEHICLE_INFORMATION } from '../graphql/queries' import { getErrorViaPath } from '@island.is/application/core' -import { PlateType, VehiclesCurrentVehicle } from '../shared' +import { PlateType } from '../shared' import { information } from '../lib/messages' import { getSelectedVehicle } from '../utils' import { useFormContext } from 'react-hook-form' @@ -26,7 +26,7 @@ export const PickPlateSize: FC> = ( const vehicle = getSelectedVehicle( application.externalData, application.answers, - ) as VehiclesCurrentVehicle + ) const { data, loading, error } = useQuery( gql` @@ -35,7 +35,7 @@ export const PickPlateSize: FC> = ( { variables: { input: { - permno: vehicle.permno, + permno: vehicle?.permno, regno: '', vin: '', }, @@ -54,9 +54,9 @@ export const PickPlateSize: FC> = ( // Plate type front should always be defined (rear type can be empty in some cases) const plateTypeFrontError = !currentPlateTypeFront - const noPlateMatchError = - plateTypeList?.filter((x) => x.code === currentPlateTypeFront)?.length === - 0 ?? false + const plateTypeFrontList = + plateTypeList?.filter((x) => x.code === currentPlateTypeFront) || [] + const plateTypeFrontListEmptyError = plateTypeFrontList.length === 0 useEffect(() => { if (!loading && currentPlateTypeRear === null) { @@ -66,7 +66,7 @@ export const PickPlateSize: FC> = ( useEffect(() => { setFieldLoadingState?.(loading || !!error) - }, [loading, error]) + }, [loading, error, setFieldLoadingState]) return ( @@ -77,7 +77,7 @@ export const PickPlateSize: FC> = ( repeat={2} borderRadius="large" /> - ) : !error && !plateTypeFrontError && !noPlateMatchError ? ( + ) : !error && !plateTypeFrontError && !plateTypeFrontListEmptyError ? ( <> {formatMessage(information.labels.plateSize.frontPlateSubtitle)} @@ -137,7 +137,7 @@ export const PickPlateSize: FC> = ( > +} + +export const ValidationErrorMessages: FC< + React.PropsWithChildren +> = ({ setValidationErrorFound, ...props }) => { + const { application, setFieldLoadingState } = props + + const { formatMessage } = useLocale() + + const answers = application.answers as OrderVehicleLicensePlateAnswers + + const { data, loading } = useQuery( + gql` + ${VALIDATE_VEHICLE_PLATE_ORDER} + `, + { + variables: { + answers: { + pickVehicle: { + plate: answers?.pickVehicle?.plate, + }, + plateSize: { + frontPlateSize: answers?.plateSize?.frontPlateSize, + rearPlateSize: answers?.plateSize?.rearPlateSize, + }, + plateDelivery: { + deliveryMethodIsDeliveryStation: + answers?.plateDelivery?.deliveryMethodIsDeliveryStation, + deliveryStationTypeCode: + answers?.plateDelivery?.deliveryStationTypeCode, + includeRushFee: answers?.plateDelivery?.includeRushFee, + }, + }, + }, + onCompleted: (data) => { + if (data?.vehiclePlateOrderValidation?.hasError) { + setValidationErrorFound?.(true) + } + }, + fetchPolicy: 'no-cache', + }, + ) + + useEffect(() => { + setFieldLoadingState?.(loading) + }, [loading, setFieldLoadingState]) + + return data?.vehiclePlateOrderValidation?.hasError && + data.vehiclePlateOrderValidation.errorMessages.length > 0 ? ( + + + + {data.vehiclePlateOrderValidation.errorMessages.map( + (error: PlateOrderValidationMessage) => { + const message = formatMessage( + getValueViaPath( + applicationCheck.validation, + error?.errorNo || '', + ), + ) + const defaultMessage = error.defaultMessage + const fallbackMessage = + formatMessage( + applicationCheck.validation.fallbackErrorMessage, + ) + + ' - ' + + error?.errorNo + + return ( + + {message || defaultMessage || fallbackMessage} + + ) + }, + )} + + + } + /> + + ) : null +} diff --git a/libs/application/templates/transport-authority/order-vehicle-license-plate/src/fields/VehiclesField/VehicleSelectField.tsx b/libs/application/templates/transport-authority/order-vehicle-license-plate/src/fields/VehiclesField/VehicleSelectField.tsx index 833cbfac19cf..f8ef114e8373 100644 --- a/libs/application/templates/transport-authority/order-vehicle-license-plate/src/fields/VehiclesField/VehicleSelectField.tsx +++ b/libs/application/templates/transport-authority/order-vehicle-license-plate/src/fields/VehiclesField/VehicleSelectField.tsx @@ -1,6 +1,6 @@ import { FieldBaseProps, Option } from '@island.is/application/types' import { useLocale } from '@island.is/localization' -import { FC, useCallback, useState } from 'react' +import { FC, useCallback, useEffect, useState } from 'react' import { ActionCard, AlertMessage, @@ -27,7 +27,7 @@ interface VehicleSearchFieldProps { export const VehicleSelectField: FC< React.PropsWithChildren -> = ({ currentVehicleList, application, errors }) => { +> = ({ currentVehicleList, application, errors, setFieldLoadingState }) => { const { formatMessage } = useLocale() const { setValue } = useFormContext() @@ -101,6 +101,10 @@ export const VehicleSelectField: FC< const disabled = selectedVehicle && !!selectedVehicle.validationErrorMessages?.length + useEffect(() => { + setFieldLoadingState?.(isLoading) + }, [isLoading]) + return ( { + const chargeItemCodes = getChargeItemCodesWithAnswers( + formValue as OrderVehicleLicensePlate, + ) + const allItems = externalData?.payment?.data as [ + { + priceAmount: number + chargeItemName: string + chargeItemCode: string + }, + ] + const items = chargeItemCodes.map((chargeItemCode) => { + return allItems.find( + (item) => item.chargeItemCode === chargeItemCode, + ) + }) + return items.length > 0 + }, + }, + ], + }), + ], + }), + ], +}) diff --git a/libs/application/templates/transport-authority/order-vehicle-license-plate/src/forms/OrderVehicleLicensePlateForm/prerequisitesSection.ts b/libs/application/templates/transport-authority/order-vehicle-license-plate/src/forms/OrderVehicleLicensePlateForm/prerequisitesSection.ts index b2954cf408f8..1538341271a0 100644 --- a/libs/application/templates/transport-authority/order-vehicle-license-plate/src/forms/OrderVehicleLicensePlateForm/prerequisitesSection.ts +++ b/libs/application/templates/transport-authority/order-vehicle-license-plate/src/forms/OrderVehicleLicensePlateForm/prerequisitesSection.ts @@ -9,6 +9,7 @@ import { CurrentVehiclesApi, DeliveryStationsApi, PlateTypesApi, + MockableSamgongustofaPaymentCatalogApi, } from '../../dataProviders' export const prerequisitesSection = buildSection({ @@ -30,6 +31,10 @@ export const prerequisitesSection = buildSection({ provider: SamgongustofaPaymentCatalogApi, title: '', }), + buildDataProviderItem({ + provider: MockableSamgongustofaPaymentCatalogApi, + title: '', + }), buildDataProviderItem({ provider: DeliveryStationsApi, title: '', diff --git a/libs/application/templates/transport-authority/order-vehicle-license-plate/src/graphql/queries.ts b/libs/application/templates/transport-authority/order-vehicle-license-plate/src/graphql/queries.ts index 526d8a5f041d..5d5bd05d0ecf 100644 --- a/libs/application/templates/transport-authority/order-vehicle-license-plate/src/graphql/queries.ts +++ b/libs/application/templates/transport-authority/order-vehicle-license-plate/src/graphql/queries.ts @@ -32,3 +32,15 @@ export const GET_VEHICLE_INFORMATION = ` } } ` + +export const VALIDATE_VEHICLE_PLATE_ORDER = ` + query GetVehiclePlateOrderValidation($answers: PlateOrderAnswers!) { + vehiclePlateOrderValidation(answers: $answers) { + hasError + errorMessages { + errorNo + defaultMessage + } + } + } +` diff --git a/libs/application/templates/transport-authority/order-vehicle-license-plate/src/index.ts b/libs/application/templates/transport-authority/order-vehicle-license-plate/src/index.ts index 59a1addbc8fb..b91f9a24ef2c 100644 --- a/libs/application/templates/transport-authority/order-vehicle-license-plate/src/index.ts +++ b/libs/application/templates/transport-authority/order-vehicle-license-plate/src/index.ts @@ -8,5 +8,6 @@ export type OrderVehicleLicensePlateAnswers = OrderVehicleLicensePlate export * from './utils' export * from './lib/messages/externalData' +export * from './lib/messages/applicationCheck' export default template diff --git a/libs/application/templates/transport-authority/order-vehicle-license-plate/src/lib/OrderVehicleLicensePlateTemplate.ts b/libs/application/templates/transport-authority/order-vehicle-license-plate/src/lib/OrderVehicleLicensePlateTemplate.ts index 40cf0138972b..07b5ce555e52 100644 --- a/libs/application/templates/transport-authority/order-vehicle-license-plate/src/lib/OrderVehicleLicensePlateTemplate.ts +++ b/libs/application/templates/transport-authority/order-vehicle-license-plate/src/lib/OrderVehicleLicensePlateTemplate.ts @@ -25,6 +25,7 @@ import { CurrentVehiclesApi, DeliveryStationsApi, PlateTypesApi, + MockableSamgongustofaPaymentCatalogApi, } from '../dataProviders' import { AuthDelegationType } from '@island.is/shared/types' import { ApiScope } from '@island.is/auth/scopes' @@ -84,6 +85,9 @@ const template: ApplicationTemplate< ], }, lifecycle: EphemeralStateLifeCycle, + onExit: defineTemplateApi({ + action: ApiActions.validateApplication, + }), roles: [ { id: Roles.APPLICANT, @@ -103,6 +107,7 @@ const template: ApplicationTemplate< delete: true, api: [ SamgongustofaPaymentCatalogApi, + MockableSamgongustofaPaymentCatalogApi, CurrentVehiclesApi, DeliveryStationsApi, PlateTypesApi, diff --git a/libs/application/templates/transport-authority/order-vehicle-license-plate/src/lib/messages/applicationCheck.ts b/libs/application/templates/transport-authority/order-vehicle-license-plate/src/lib/messages/applicationCheck.ts new file mode 100644 index 000000000000..364b2bcbd13a --- /dev/null +++ b/libs/application/templates/transport-authority/order-vehicle-license-plate/src/lib/messages/applicationCheck.ts @@ -0,0 +1,16 @@ +import { defineMessages } from 'react-intl' + +export const applicationCheck = { + validation: defineMessages({ + alertTitle: { + id: 'ta.ovlp.application:applicationCheck.validation.alertTitle', + defaultMessage: 'Það kom upp villa', + description: 'Application check validation alert title', + }, + fallbackErrorMessage: { + id: 'ta.ovlp.application:applicationCheck.validation.fallbackErrorMessage', + defaultMessage: 'Það kom upp villa við að sannreyna gögn', + description: 'Fallback error message for validation', + }, + }), +} diff --git a/libs/application/templates/transport-authority/order-vehicle-license-plate/src/lib/messages/index.ts b/libs/application/templates/transport-authority/order-vehicle-license-plate/src/lib/messages/index.ts index dc41f673cb74..e6de91a1f1cb 100644 --- a/libs/application/templates/transport-authority/order-vehicle-license-plate/src/lib/messages/index.ts +++ b/libs/application/templates/transport-authority/order-vehicle-license-plate/src/lib/messages/index.ts @@ -4,3 +4,4 @@ export * from './information' export * from './payment' export * from './confirmation' export * from './error' +export * from './applicationCheck' diff --git a/libs/application/templates/transport-authority/order-vehicle-license-plate/src/lib/messages/payment.ts b/libs/application/templates/transport-authority/order-vehicle-license-plate/src/lib/messages/payment.ts index ba47ab991e24..59016c396c95 100644 --- a/libs/application/templates/transport-authority/order-vehicle-license-plate/src/lib/messages/payment.ts +++ b/libs/application/templates/transport-authority/order-vehicle-license-plate/src/lib/messages/payment.ts @@ -7,8 +7,28 @@ export const payment = { defaultMessage: 'Greiðsla', description: 'Title of for payment section', }, + pageTitle: { + id: 'ta.ovlp.application:payment.general.pageTitle', + defaultMessage: 'Greiðsla', + description: 'Title of for payment page', + }, + confirm: { + id: 'ta.ovlp.application:payment.general.confirm', + defaultMessage: 'Staðfesta', + description: 'confirm', + }, }), paymentChargeOverview: defineMessages({ + forPayment: { + id: 'ta.ovlp.application:payment.paymentChargeOverview.forPayment', + defaultMessage: 'Til greiðslu', + description: 'For payment label', + }, + total: { + id: 'ta.ovlp.application:payment.paymentChargeOverview.total', + defaultMessage: 'Samtals', + description: 'Total amount label', + }, frontLabel: { id: 'ta.ovlp.application:payment.paymentChargeOverview.frontLabel', defaultMessage: 'merki að framan', diff --git a/libs/application/templates/transport-authority/order-vehicle-license-plate/src/shared/constants.ts b/libs/application/templates/transport-authority/order-vehicle-license-plate/src/shared/constants.ts index b67eb7433299..f62f9cd86c1f 100644 --- a/libs/application/templates/transport-authority/order-vehicle-license-plate/src/shared/constants.ts +++ b/libs/application/templates/transport-authority/order-vehicle-license-plate/src/shared/constants.ts @@ -1,3 +1,4 @@ export enum ApiActions { + validateApplication = 'validateApplication', submitApplication = 'submitApplication', } diff --git a/libs/application/templates/transport-authority/order-vehicle-license-plate/src/utils/getSelectedVehicle.ts b/libs/application/templates/transport-authority/order-vehicle-license-plate/src/utils/getSelectedVehicle.ts index fbba4d58c387..ce19939d3633 100644 --- a/libs/application/templates/transport-authority/order-vehicle-license-plate/src/utils/getSelectedVehicle.ts +++ b/libs/application/templates/transport-authority/order-vehicle-license-plate/src/utils/getSelectedVehicle.ts @@ -5,7 +5,7 @@ import { VehiclesCurrentVehicle, CurrentVehiclesAndRecords } from '../shared' export const getSelectedVehicle = ( externalData: ExternalData, answers: FormValue, -): VehiclesCurrentVehicle => { +): VehiclesCurrentVehicle | undefined => { if (answers.findVehicle) { const vehicle = getValueViaPath( answers, @@ -23,5 +23,5 @@ export const getSelectedVehicle = ( '', ) as string - return currentVehicleList?.vehicles[parseInt(vehicleIndex, 10)] + return currentVehicleList?.vehicles?.[parseInt(vehicleIndex, 10)] } diff --git a/libs/application/templates/transport-authority/order-vehicle-registration-certificate/src/dataProviders/index.ts b/libs/application/templates/transport-authority/order-vehicle-registration-certificate/src/dataProviders/index.ts index f0bb5f857cfd..146dc78e37f9 100644 --- a/libs/application/templates/transport-authority/order-vehicle-registration-certificate/src/dataProviders/index.ts +++ b/libs/application/templates/transport-authority/order-vehicle-registration-certificate/src/dataProviders/index.ts @@ -1,6 +1,7 @@ import { defineTemplateApi, InstitutionNationalIds, + MockablePaymentCatalogApi, PaymentCatalogApi, } from '@island.is/application/types' @@ -13,6 +14,14 @@ export const SamgongustofaPaymentCatalogApi = PaymentCatalogApi.configure({ externalDataId: 'payment', }) +export const MockableSamgongustofaPaymentCatalogApi = + MockablePaymentCatalogApi.configure({ + params: { + organizationId: InstitutionNationalIds.SAMGONGUSTOFA, + }, + externalDataId: 'payment', + }) + interface CurrentVehiclesParameters { showOwned?: boolean showCoOwned?: boolean diff --git a/libs/application/templates/transport-authority/order-vehicle-registration-certificate/src/fields/MainOwner.tsx b/libs/application/templates/transport-authority/order-vehicle-registration-certificate/src/fields/MainOwner.tsx index e4f0e995464d..c49b7f28397f 100644 --- a/libs/application/templates/transport-authority/order-vehicle-registration-certificate/src/fields/MainOwner.tsx +++ b/libs/application/templates/transport-authority/order-vehicle-registration-certificate/src/fields/MainOwner.tsx @@ -1,5 +1,4 @@ import { gql, useQuery } from '@apollo/client' -import { VehiclesCurrentVehicle } from '../shared' import { FieldBaseProps } from '@island.is/application/types' import { AlertMessage, @@ -26,7 +25,7 @@ export const MainOwner: FC> = ( const vehicle = getSelectedVehicle( application.externalData, application.answers, - ) as VehiclesCurrentVehicle + ) const { data, loading, error } = useQuery( gql` @@ -35,7 +34,7 @@ export const MainOwner: FC> = ( { variables: { input: { - permno: vehicle.permno, + permno: vehicle?.permno, regno: '', vin: '', }, @@ -47,7 +46,7 @@ export const MainOwner: FC> = ( useEffect(() => { setFieldLoadingState?.(loading || !!error) - }, [loading, error]) + }, [loading, error, setFieldLoadingState]) return loading ? ( diff --git a/libs/application/templates/transport-authority/order-vehicle-registration-certificate/src/forms/OrderVehicleRegistrationCertificateForm/InformationSection/vehicleSubSection.ts b/libs/application/templates/transport-authority/order-vehicle-registration-certificate/src/forms/OrderVehicleRegistrationCertificateForm/InformationSection/vehicleSubSection.ts index d3b8c8e4a1b2..0c31277ba22c 100644 --- a/libs/application/templates/transport-authority/order-vehicle-registration-certificate/src/forms/OrderVehicleRegistrationCertificateForm/InformationSection/vehicleSubSection.ts +++ b/libs/application/templates/transport-authority/order-vehicle-registration-certificate/src/forms/OrderVehicleRegistrationCertificateForm/InformationSection/vehicleSubSection.ts @@ -6,7 +6,6 @@ import { buildDescriptionField, buildCustomField, } from '@island.is/application/core' -import { VehiclesCurrentVehicle } from '../../../shared' import { information } from '../../../lib/messages' import { getSelectedVehicle } from '../../../utils' @@ -34,7 +33,7 @@ export const vehicleSubSection = buildSubSection({ const vehicle = getSelectedVehicle( application.externalData, application.answers, - ) as VehiclesCurrentVehicle + ) return vehicle?.permno }, }), @@ -48,7 +47,7 @@ export const vehicleSubSection = buildSubSection({ const vehicle = getSelectedVehicle( application.externalData, application.answers, - ) as VehiclesCurrentVehicle + ) return vehicle?.make }, }), @@ -57,10 +56,7 @@ export const vehicleSubSection = buildSubSection({ title: '', component: 'MainOwner', condition: (formValue, externalData) => { - const vehicle = getSelectedVehicle( - externalData, - formValue, - ) as VehiclesCurrentVehicle + const vehicle = getSelectedVehicle(externalData, formValue) return vehicle?.role !== 'Eigandi' }, }), @@ -70,10 +66,7 @@ export const vehicleSubSection = buildSubSection({ titleVariant: 'h5', space: 3, condition: (formValue, externalData) => { - const vehicle = getSelectedVehicle( - externalData, - formValue, - ) as VehiclesCurrentVehicle + const vehicle = getSelectedVehicle(externalData, formValue) return vehicle?.role === 'Eigandi' }, }), @@ -83,10 +76,7 @@ export const vehicleSubSection = buildSubSection({ titleVariant: 'h5', space: 3, condition: (formValue, externalData) => { - const vehicle = getSelectedVehicle( - externalData, - formValue, - ) as VehiclesCurrentVehicle + const vehicle = getSelectedVehicle(externalData, formValue) return vehicle?.role !== 'Eigandi' }, }), @@ -116,10 +106,7 @@ export const vehicleSubSection = buildSubSection({ width: 'half', readOnly: true, condition: (formValue, externalData) => { - const vehicle = getSelectedVehicle( - externalData, - formValue, - ) as VehiclesCurrentVehicle + const vehicle = getSelectedVehicle(externalData, formValue) return vehicle?.role === 'Eigandi' }, defaultValue: (application: Application) => @@ -132,10 +119,7 @@ export const vehicleSubSection = buildSubSection({ width: 'half', readOnly: true, condition: (formValue, externalData) => { - const vehicle = getSelectedVehicle( - externalData, - formValue, - ) as VehiclesCurrentVehicle + const vehicle = getSelectedVehicle(externalData, formValue) return vehicle?.role === 'Eigandi' }, defaultValue: (application: Application) => diff --git a/libs/application/templates/transport-authority/order-vehicle-registration-certificate/src/forms/OrderVehicleRegistrationCertificateForm/prerequisitesSection.ts b/libs/application/templates/transport-authority/order-vehicle-registration-certificate/src/forms/OrderVehicleRegistrationCertificateForm/prerequisitesSection.ts index 4c1ab06ac0ff..9cc00d156b20 100644 --- a/libs/application/templates/transport-authority/order-vehicle-registration-certificate/src/forms/OrderVehicleRegistrationCertificateForm/prerequisitesSection.ts +++ b/libs/application/templates/transport-authority/order-vehicle-registration-certificate/src/forms/OrderVehicleRegistrationCertificateForm/prerequisitesSection.ts @@ -8,6 +8,7 @@ import { IdentityApi, SamgongustofaPaymentCatalogApi, CurrentVehiclesApi, + MockableSamgongustofaPaymentCatalogApi, } from '../../dataProviders' export const prerequisitesSection = buildSection({ @@ -34,6 +35,10 @@ export const prerequisitesSection = buildSection({ provider: SamgongustofaPaymentCatalogApi, title: '', }), + buildDataProviderItem({ + provider: MockableSamgongustofaPaymentCatalogApi, + title: '', + }), ], }), ], diff --git a/libs/application/templates/transport-authority/order-vehicle-registration-certificate/src/lib/OrderVehicleRegistrationCertificateTemplate.ts b/libs/application/templates/transport-authority/order-vehicle-registration-certificate/src/lib/OrderVehicleRegistrationCertificateTemplate.ts index ad71d254401d..cbe4113c072e 100644 --- a/libs/application/templates/transport-authority/order-vehicle-registration-certificate/src/lib/OrderVehicleRegistrationCertificateTemplate.ts +++ b/libs/application/templates/transport-authority/order-vehicle-registration-certificate/src/lib/OrderVehicleRegistrationCertificateTemplate.ts @@ -24,6 +24,7 @@ import { IdentityApi, SamgongustofaPaymentCatalogApi, CurrentVehiclesApi, + MockableSamgongustofaPaymentCatalogApi, } from '../dataProviders' import { AuthDelegationType } from '@island.is/shared/types' import { ApiScope } from '@island.is/auth/scopes' @@ -107,6 +108,7 @@ const template: ApplicationTemplate< api: [ IdentityApi, SamgongustofaPaymentCatalogApi, + MockableSamgongustofaPaymentCatalogApi, CurrentVehiclesApi, ], }, diff --git a/libs/application/templates/transport-authority/order-vehicle-registration-certificate/src/utils/getSelectedVehicle.ts b/libs/application/templates/transport-authority/order-vehicle-registration-certificate/src/utils/getSelectedVehicle.ts index a849d4c77742..deb5579e7385 100644 --- a/libs/application/templates/transport-authority/order-vehicle-registration-certificate/src/utils/getSelectedVehicle.ts +++ b/libs/application/templates/transport-authority/order-vehicle-registration-certificate/src/utils/getSelectedVehicle.ts @@ -5,7 +5,7 @@ import { CurrentVehiclesAndRecords, VehiclesCurrentVehicle } from '../shared' export const getSelectedVehicle = ( externalData: ExternalData, answers: FormValue, -): VehiclesCurrentVehicle => { +): VehiclesCurrentVehicle | undefined => { if (answers.findVehicle) { const vehicle = getValueViaPath( answers, diff --git a/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/fields/ApplicationStatus/index.tsx b/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/fields/ApplicationStatus/index.tsx index 14a13ea40c7a..8a20a0ee11b9 100644 --- a/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/fields/ApplicationStatus/index.tsx +++ b/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/fields/ApplicationStatus/index.tsx @@ -9,7 +9,7 @@ import { FC } from 'react' import { review } from '../../lib/messages' import { States } from '../../lib/constants' import { ReviewScreenProps } from '../../shared' -import { getReviewSteps, hasReviewerApproved } from '../../utils' +import { getReviewSteps, canReviewerApprove } from '../../utils' import { StatusStep } from './StatusStep' import { MessageWithLinkButtonFormField } from '@island.is/application/ui-fields' import { coreMessages } from '@island.is/application/core' @@ -27,7 +27,7 @@ export const ApplicationStatus: FC< const steps = getReviewSteps(application, coOwnersAndOperators || []) - const showReviewButton = !hasReviewerApproved( + const showReviewButton = canReviewerApprove( reviewerNationalId, application.answers, ) diff --git a/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/fields/CoOwner/index.tsx b/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/fields/CoOwner/index.tsx index b31da67bb076..50e921cb8561 100644 --- a/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/fields/CoOwner/index.tsx +++ b/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/fields/CoOwner/index.tsx @@ -14,7 +14,6 @@ import { InputController } from '@island.is/shared/form-fields' import { FC, useEffect } from 'react' import { GET_VEHICLE_INFORMATION } from '../../graphql/queries' import { information } from '../../lib/messages' -import { VehiclesCurrentVehicle } from '../../shared' import { getSelectedVehicle } from '../../utils' export const CoOwner: FC> = (props) => { @@ -26,7 +25,7 @@ export const CoOwner: FC> = (props) => { const vehicle = getSelectedVehicle( application.externalData, application.answers, - ) as VehiclesCurrentVehicle + ) const { data, loading, error } = useQuery( gql` @@ -35,7 +34,7 @@ export const CoOwner: FC> = (props) => { { variables: { input: { - permno: vehicle.permno, + permno: vehicle?.permno, regno: '', vin: '', }, @@ -45,7 +44,7 @@ export const CoOwner: FC> = (props) => { useEffect(() => { setFieldLoadingState?.(loading || !!error) - }, [loading, error]) + }, [loading, error, setFieldLoadingState]) return !loading && !error ? ( data?.vehiclesDetail?.coOwners && diff --git a/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/fields/Overview/index.tsx b/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/fields/Overview/index.tsx index b0c19cfc84ef..ce401d658ae1 100644 --- a/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/fields/Overview/index.tsx +++ b/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/fields/Overview/index.tsx @@ -5,17 +5,11 @@ import { Text, Divider, Button, - AlertMessage, InputError, } from '@island.is/island-ui/core' import { ReviewScreenProps } from '../../shared' import { useLocale } from '@island.is/localization' -import { - applicationCheck, - overview, - review, - error as errorMsg, -} from '../../lib/messages' +import { overview, review, error as errorMsg } from '../../lib/messages' import { States } from '../../lib/constants' import { VehicleSection, @@ -27,7 +21,8 @@ import { } from './sections' import { getApproveAnswers, - hasReviewerApproved, + canReviewerApprove, + canReviewerReApprove, isLastReviewer, } from '../../utils' import { RejectConfirmationModal } from './RejectConfirmationModal' @@ -35,14 +30,10 @@ import { APPLICATION_APPLICATION, SUBMIT_APPLICATION, } from '@island.is/application/graphql' -import { gql, useLazyQuery, useMutation } from '@apollo/client' +import { useLazyQuery, useMutation } from '@apollo/client' import { getValueViaPath } from '@island.is/application/core' -import { - OwnerChangeAnswers, - OwnerChangeValidationMessage, -} from '@island.is/api/schema' -import { VALIDATE_VEHICLE_OWNER_CHANGE } from '../../graphql/queries' import { TransferOfVehicleOwnershipAnswers } from '../..' +import { ValidationErrorMessages } from '../ValidationErrorMessages' export const Overview: FC< React.PropsWithChildren @@ -71,11 +62,14 @@ export const Overview: FC< const [submitApplication, { error }] = useMutation(SUBMIT_APPLICATION, { onError: (e) => { console.error(e, e.message) + setButtonLoading(false) return }, }) - const [loading, setLoading] = useState(false) + const [buttonLoading, setButtonLoading] = useState(false) + const [shouldLoadValidation, setShouldLoadValidation] = useState(false) + const [validationErrorFound, setValidationErrorFound] = useState(false) const isBuyer = (getValueViaPath(answers, 'buyer.nationalId', '') as string) === @@ -142,33 +136,17 @@ export const Overview: FC< }) if (resSubmit?.data) { - setLoading(false) + setButtonLoading(false) setStep && setStep('conclusion') } } else { - setLoading(false) + setButtonLoading(false) setStep && setStep('conclusion') } } } } - const [validateVehicleThenApproveAndSubmit, { data }] = useLazyQuery< - any, - { answers: OwnerChangeAnswers } - >( - gql` - ${VALIDATE_VEHICLE_OWNER_CHANGE} - `, - { - onCompleted: async (data) => { - if (!data?.vehicleOwnerChangeValidation?.hasError) { - await doApproveAndSubmit() - } - }, - }, - ) - const onBackButtonClick = () => { setStep && setStep('states') } @@ -182,65 +160,10 @@ export const Overview: FC< setNoInsuranceError(true) } else { setNoInsuranceError(false) - setLoading(true) - if (isBuyer) { - // Need to get updated application, in case buyer has changed co-owner - const applicationInfo = await getApplicationInfo({ - variables: { - input: { - id: application.id, - }, - locale: 'is', - }, - fetchPolicy: 'no-cache', - }) - const updatedApplication = applicationInfo?.data?.applicationApplication - - if (updatedApplication) { - const currentAnswers: OwnerChangeAnswers = updatedApplication.answers - - validateVehicleThenApproveAndSubmit({ - variables: { - answers: { - pickVehicle: { - plate: currentAnswers?.pickVehicle?.plate, - }, - vehicle: { - date: currentAnswers?.vehicle?.date, - salePrice: currentAnswers?.vehicle?.salePrice, - }, - vehicleMileage: { - value: answers?.vehicleMileage?.value, - }, - seller: { - email: currentAnswers?.seller?.email, - nationalId: currentAnswers?.seller?.nationalId, - }, - buyer: { - email: currentAnswers?.buyer?.email, - nationalId: currentAnswers?.buyer?.nationalId, - }, - buyerCoOwnerAndOperator: - currentAnswers?.buyerCoOwnerAndOperator?.map((x) => ({ - nationalId: x.nationalId || '', - email: x.email || '', - type: x.type, - wasRemoved: x.wasRemoved, - })), - buyerMainOperator: currentAnswers?.buyerMainOperator - ? { - nationalId: currentAnswers.buyerMainOperator.nationalId, - } - : null, - insurance: insurance ? { value: insurance } : null, - }, - }, - }) - } - } else { - await doApproveAndSubmit() - } + setButtonLoading(true) + setShouldLoadValidation(true) + await doApproveAndSubmit() } } @@ -278,60 +201,27 @@ export const Overview: FC< noInsuranceError={noInsuranceError} /> - {error && ( + {!buttonLoading && shouldLoadValidation && ( + + )} + + {!validationErrorFound && error && ( )} - {data?.vehicleOwnerChangeValidation?.hasError && - data.vehicleOwnerChangeValidation.errorMessages.length > 0 ? ( - - -
    - {data.vehicleOwnerChangeValidation.errorMessages.map( - (error: OwnerChangeValidationMessage) => { - const message = formatMessage( - getValueViaPath( - applicationCheck.validation, - error?.errorNo || '', - ), - ) - const defaultMessage = error.defaultMessage - const fallbackMessage = - formatMessage( - applicationCheck.validation.fallbackErrorMessage, - ) + - ' - ' + - error?.errorNo - - return ( -
  • - - {message || defaultMessage || fallbackMessage} - -
  • - ) - }, - )} -
-
- } - /> -
- ) : null} - - {!hasReviewerApproved(reviewerNationalId, application.answers) && + {canReviewerApprove(reviewerNationalId, application.answers) && application.state !== States.COMPLETED && ( @@ -346,7 +236,7 @@ export const Overview: FC< + + )} diff --git a/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/fields/Overview/sections/BuyerSection.tsx b/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/fields/Overview/sections/BuyerSection.tsx index 3aefa52bbfb4..dcb08a7493fa 100644 --- a/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/fields/Overview/sections/BuyerSection.tsx +++ b/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/fields/Overview/sections/BuyerSection.tsx @@ -8,7 +8,7 @@ import { information, overview, review } from '../../../lib/messages' import { States } from '../../../lib/constants' import { ReviewGroup } from '../../ReviewGroup' import { ReviewScreenProps } from '../../../shared' -import { formatPhoneNumber, hasReviewerApproved } from '../../../utils' +import { formatPhoneNumber, canReviewerApprove } from '../../../utils' import kennitala from 'kennitala' export const BuyerSection: FC< @@ -30,7 +30,7 @@ export const BuyerSection: FC< > +} + export const ValidationErrorMessages: FC< - React.PropsWithChildren -> = (props) => { + React.PropsWithChildren +> = ({ showErrorOnly, setValidationErrorFound, ...props }) => { const { application, setFieldLoadingState } = props const { formatMessage } = useLocale() @@ -61,12 +72,18 @@ export const ValidationErrorMessages: FC< : null, }, }, + onCompleted: (data) => { + if (data?.vehicleOwnerChangeValidation?.hasError) { + setValidationErrorFound?.(true) + } + }, + fetchPolicy: 'no-cache', }, ) useEffect(() => { setFieldLoadingState?.(loading) - }, [loading]) + }, [loading, setFieldLoadingState]) return data?.vehicleOwnerChangeValidation?.hasError && data.vehicleOwnerChangeValidation.errorMessages.length > 0 ? ( @@ -76,7 +93,7 @@ export const ValidationErrorMessages: FC< title={formatMessage(applicationCheck.validation.alertTitle)} message={ -
    + {data.vehicleOwnerChangeValidation.errorMessages.map( (error: OwnerChangeValidationMessage) => { const message = formatMessage( @@ -94,20 +111,18 @@ export const ValidationErrorMessages: FC< error?.errorNo return ( -
  • - - {message || defaultMessage || fallbackMessage} - -
  • + + {message || defaultMessage || fallbackMessage} + ) }, )} -
+
} />
- ) : ( + ) : !showErrorOnly ? ( - ) + ) : null } diff --git a/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/forms/TransferOfVehicleOwnershipForm/InformationSection/vehicleSubSection.ts b/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/forms/TransferOfVehicleOwnershipForm/InformationSection/vehicleSubSection.ts index 24869654cb25..7aba9479e20f 100644 --- a/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/forms/TransferOfVehicleOwnershipForm/InformationSection/vehicleSubSection.ts +++ b/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/forms/TransferOfVehicleOwnershipForm/InformationSection/vehicleSubSection.ts @@ -7,7 +7,6 @@ import { buildHiddenInput, } from '@island.is/application/core' import { information } from '../../../lib/messages' -import { VehiclesCurrentVehicle } from '../../../shared' import { getSelectedVehicle } from '../../../utils' export const vehicleSubSection = buildSubSection({ @@ -29,8 +28,8 @@ export const vehicleSubSection = buildSubSection({ const vehicle = getSelectedVehicle( application.externalData, application.answers, - ) as VehiclesCurrentVehicle - return vehicle.permno + ) + return vehicle?.permno }, }), buildTextField({ @@ -43,8 +42,8 @@ export const vehicleSubSection = buildSubSection({ const vehicle = getSelectedVehicle( application.externalData, application.answers, - ) as VehiclesCurrentVehicle - return vehicle.make + ) + return vehicle?.make }, }), buildTextField({ @@ -72,8 +71,8 @@ export const vehicleSubSection = buildSubSection({ const vehicle = getSelectedVehicle( application.externalData, application.answers, - ) as VehiclesCurrentVehicle - return vehicle.requireMileage || false + ) + return vehicle?.requireMileage || false }, }), buildHiddenInput({ @@ -82,8 +81,8 @@ export const vehicleSubSection = buildSubSection({ const vehicle = getSelectedVehicle( application.externalData, application.answers, - ) as VehiclesCurrentVehicle - return vehicle.mileageReading || '' + ) + return vehicle?.mileageReading || '' }, }), buildTextField({ @@ -92,18 +91,15 @@ export const vehicleSubSection = buildSubSection({ width: 'full', variant: 'number', condition: (answers, externalData) => { - const vehicle = getSelectedVehicle( - externalData, - answers, - ) as VehiclesCurrentVehicle + const vehicle = getSelectedVehicle(externalData, answers) return vehicle?.requireMileage || false }, placeholder(application) { const vehicle = getSelectedVehicle( application.externalData, application.answers, - ) as VehiclesCurrentVehicle - return vehicle.mileageReading + ) + return vehicle?.mileageReading ? `Síðasta skráning ${vehicle.mileageReading} Km` : '' }, diff --git a/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/lib/TransferOfVehicleOwnershipTemplate.ts b/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/lib/TransferOfVehicleOwnershipTemplate.ts index c77287a619be..a1a53cc58794 100644 --- a/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/lib/TransferOfVehicleOwnershipTemplate.ts +++ b/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/lib/TransferOfVehicleOwnershipTemplate.ts @@ -34,7 +34,7 @@ import { CurrentVehiclesApi, InsuranceCompaniesApi, } from '../dataProviders' -import { getChargeItemCodes, getExtraData, hasReviewerApproved } from '../utils' +import { getChargeItemCodes, getExtraData, canReviewerApprove } from '../utils' import { ApiScope } from '@island.is/auth/scopes' import { buildPaymentState } from '@island.is/application/utils' @@ -63,7 +63,7 @@ const reviewStatePendingAction = ( role: string, nationalId: string, ): PendingAction => { - if (nationalId && !hasReviewerApproved(nationalId, application.answers)) { + if (nationalId && canReviewerApprove(nationalId, application.answers)) { return { title: corePendingActionMessages.waitingForReviewTitle, content: corePendingActionMessages.youNeedToReviewDescription, diff --git a/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/lib/messages/review.ts b/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/lib/messages/review.ts index dbd3a26196d1..fef98cc77fff 100644 --- a/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/lib/messages/review.ts +++ b/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/lib/messages/review.ts @@ -157,8 +157,13 @@ export const review = { }, approve: { id: 'ta.tvo.application:review.buttons.approve', - defaultMessage: `Samþykkja`, + defaultMessage: 'Samþykkja', description: 'Approve button in review process', }, + tryAgain: { + id: 'ta.tvo.application:review.buttons.tryAgain', + defaultMessage: 'Reyna aftur', + description: 'Try again button in review process', + }, }), } diff --git a/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/lib/messages/steps.ts b/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/lib/messages/steps.ts index 07d8a78ec0f5..3f62e174505f 100644 --- a/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/lib/messages/steps.ts +++ b/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/lib/messages/steps.ts @@ -27,7 +27,7 @@ export const review = { }, approve: { id: 'ta.tvo.application:review.buttons.approve', - defaultMessage: `Samþykkja`, + defaultMessage: 'Samþykkja', description: 'Approve button in review process', }, }), diff --git a/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/utils/canReviewerApprove.ts b/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/utils/canReviewerApprove.ts new file mode 100644 index 000000000000..0c4bfe337640 --- /dev/null +++ b/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/utils/canReviewerApprove.ts @@ -0,0 +1,93 @@ +import { FormValue } from '@island.is/application/types' +import { getValueViaPath } from '@island.is/application/core' +import { CoOwnerAndOperator, UserInformation } from '../shared' +import { applicationHasPendingApproval } from './isLastReviewer' + +// Function to check if the reviewer is authorized to approve and hasn't done that yet +export const canReviewerApprove = ( + reviewerNationalId: string, + answers: FormValue, +): boolean => { + // Check if reviewer is buyer and has not approved + const buyer = getValueViaPath(answers, 'buyer') as UserInformation + if (buyer?.nationalId === reviewerNationalId && !buyer.approved) { + return true + } + + // Check if reviewer is buyer's co-owner or operator and has not approved + const buyerCoOwnersAndOperators = ( + getValueViaPath( + answers, + 'buyerCoOwnerAndOperator', + [], + ) as CoOwnerAndOperator[] + ).filter(({ wasRemoved }) => wasRemoved !== 'true') + if ( + buyerCoOwnersAndOperators.some( + ({ nationalId, approved }) => + nationalId === reviewerNationalId && !approved, + ) + ) { + return true + } + + // Check if reviewer is seller's co-owner and has not approved + const sellerCoOwners = getValueViaPath( + answers, + 'sellerCoOwner', + [], + ) as CoOwnerAndOperator[] + if ( + sellerCoOwners.some( + ({ nationalId, approved }) => + nationalId === reviewerNationalId && !approved, + ) + ) { + return true + } + + return false +} + +// Special case to allow seller (or any reviewer) to trigger an external API call to complete owner change +// Necessary when approve is updated in answers, but application is still stuck in REVIEW state +// then any user can try to 'push' the application to the next state +export const canReviewerReApprove = ( + reviewerNationalId: string, + answers: FormValue, +): boolean => { + const sellerNationalId = getValueViaPath( + answers, + 'seller.nationalId', + '', + ) as string + const buyerNationalId = getValueViaPath( + answers, + 'buyer.nationalId', + '', + ) as string + const buyerCoOwnersAndOperators = ( + getValueViaPath( + answers, + 'buyerCoOwnerAndOperator', + [], + ) as CoOwnerAndOperator[] + ).filter(({ wasRemoved }) => wasRemoved !== 'true') + const sellerCoOwners = getValueViaPath( + answers, + 'sellerCoOwner', + [], + ) as CoOwnerAndOperator[] + + const isReviewerAuthorized = [ + sellerNationalId === reviewerNationalId, + buyerNationalId === reviewerNationalId, + buyerCoOwnersAndOperators.some( + ({ nationalId }) => nationalId === reviewerNationalId, + ), + sellerCoOwners.some(({ nationalId }) => nationalId === reviewerNationalId), + ].some(Boolean) + + // Check if the reviewer is authorized and if all required approvals have been completed + return isReviewerAuthorized && !applicationHasPendingApproval(answers) +} diff --git a/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/utils/getSelectedVehicle.ts b/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/utils/getSelectedVehicle.ts index a13ea829dc3c..38e162f6a245 100644 --- a/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/utils/getSelectedVehicle.ts +++ b/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/utils/getSelectedVehicle.ts @@ -5,7 +5,7 @@ import { CurrentVehiclesAndRecords, VehiclesCurrentVehicle } from '../shared' export const getSelectedVehicle = ( externalData: ExternalData, answers: FormValue, -): VehiclesCurrentVehicle => { +): VehiclesCurrentVehicle | undefined => { if (answers.findVehicle) { const vehicle = getValueViaPath( answers, diff --git a/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/utils/hasReviewerApproved.ts b/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/utils/hasReviewerApproved.ts deleted file mode 100644 index 02d342d8c7f7..000000000000 --- a/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/utils/hasReviewerApproved.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { FormValue } from '@island.is/application/types' -import { getValueViaPath } from '@island.is/application/core' -import { CoOwnerAndOperator, UserInformation } from '../shared' -import { isLastReviewer } from './isLastReviewer' - -export const hasReviewerApproved = ( - reviewerNationalId: string, - answers: FormValue, -) => { - // Check if reviewer is buyer and has not approved - if ( - (getValueViaPath(answers, 'buyer.nationalId', '') as string) === - reviewerNationalId - ) { - const buyer = getValueViaPath(answers, 'buyer') as UserInformation - const hasApproved = buyer?.approved || false - if (!hasApproved) return false - } - - // Check if reviewer is buyers coowner or operator and has not approved - const filteredBuyerCoOwnersAndOperators = ( - getValueViaPath( - answers, - 'buyerCoOwnerAndOperator', - [], - ) as CoOwnerAndOperator[] - ).filter(({ wasRemoved }) => wasRemoved !== 'true') - const buyerCoOwnerAndOperator = filteredBuyerCoOwnersAndOperators.find( - (coOwnerOrOperator) => coOwnerOrOperator.nationalId === reviewerNationalId, - ) - if (buyerCoOwnerAndOperator) { - const hasApproved = buyerCoOwnerAndOperator?.approved || false - if (!hasApproved) return false - } - - // Check if reviewer is sellers coowner and has not approved - const sellerCoOwners = getValueViaPath( - answers, - 'sellerCoOwner', - [], - ) as CoOwnerAndOperator[] - const sellerCoOwner = sellerCoOwners.find( - (coOwner) => coOwner.nationalId === reviewerNationalId, - ) - if (sellerCoOwner) { - const hasApproved = sellerCoOwner?.approved || false - if (!hasApproved) return false - } - - // Check if reviewer is seller and everyone else has approved - if ( - (getValueViaPath(answers, 'seller.nationalId', '') as string) === - reviewerNationalId && - isLastReviewer( - reviewerNationalId, - answers, - filteredBuyerCoOwnersAndOperators, - ) - ) { - return false - } - - return true -} diff --git a/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/utils/index.ts b/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/utils/index.ts index ac668869ba8b..51bafc528202 100644 --- a/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/utils/index.ts +++ b/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/utils/index.ts @@ -13,7 +13,7 @@ export const formatPhoneNumber = (value: string): string => export { getSelectedVehicle } from './getSelectedVehicle' export { getReviewSteps } from './getReviewSteps' -export { hasReviewerApproved } from './hasReviewerApproved' +export { canReviewerApprove, canReviewerReApprove } from './canReviewerApprove' export { getApproveAnswers } from './getApproveAnswers' export { isLastReviewer } from './isLastReviewer' export { getRejecter } from './getRejecter' diff --git a/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/utils/isLastReviewer.ts b/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/utils/isLastReviewer.ts index 8c3dacd58168..f57645404e72 100644 --- a/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/utils/isLastReviewer.ts +++ b/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/utils/isLastReviewer.ts @@ -2,77 +2,97 @@ import { getValueViaPath } from '@island.is/application/core' import { FormValue } from '@island.is/application/types' import { CoOwnerAndOperator, UserInformation } from '../shared' -export const isLastReviewer = ( - reviewerNationalId: string, +// Function to check if an application has pending approval +export const applicationHasPendingApproval = ( answers: FormValue, - newBuyerCoOwnerAndOperator: CoOwnerAndOperator[], -) => { - // 1. First check if any reviewer that is not the current user has not approved - - // Buyer + excludeNationalId?: string, +): boolean => { + // Check if buyer has not approved const buyer = getValueViaPath(answers, 'buyer', {}) as UserInformation - if (buyer.nationalId !== reviewerNationalId && !buyer.approved) { - return false + if ( + (!excludeNationalId || buyer.nationalId !== excludeNationalId) && + !buyer.approved + ) { + return true } - // Buyer's co-owner / Buyer's operator - const oldBuyerCoOwnersAndOperators = ( + // Check if any buyer's co-owners/operators have not approved + const buyerCoOwnersAndOperators = ( getValueViaPath( answers, 'buyerCoOwnerAndOperator', [], ) as CoOwnerAndOperator[] ).filter(({ wasRemoved }) => wasRemoved !== 'true') - const buyerCoOwnerAndOperatorHasNotApproved = - oldBuyerCoOwnersAndOperators.find((coOwnerOrOperator) => { - return ( - coOwnerOrOperator.nationalId !== reviewerNationalId && - !coOwnerOrOperator.approved - ) - }) - if (buyerCoOwnerAndOperatorHasNotApproved) { - return false + if ( + buyerCoOwnersAndOperators.some( + ({ nationalId, approved }) => + (!excludeNationalId || nationalId !== excludeNationalId) && !approved, + ) + ) { + return true } - // Seller's co-owner + // Check if any seller's co-owners have not approved const sellerCoOwners = getValueViaPath( answers, 'sellerCoOwner', [], ) as CoOwnerAndOperator[] - const sellerCoOwnerNotApproved = sellerCoOwners.find( - (coOwner) => coOwner.nationalId !== reviewerNationalId && !coOwner.approved, - ) - if (sellerCoOwnerNotApproved) { - return false + if ( + sellerCoOwners.some( + ({ nationalId, approved }) => + (!excludeNationalId || nationalId !== excludeNationalId) && !approved, + ) + ) { + return true } - // 2. Then check if user which is the last reviewer is a buyer and is adding more reviewers + return false +} + +// Function to check if the current reviewer is the last one who needs to approve +export const isLastReviewer = ( + reviewerNationalId: string, + answers: FormValue, + newBuyerCoOwnerAndOperator: CoOwnerAndOperator[], +): boolean => { + // If there are pending approvals (excluding current reviewer), then he is not the last reviewer + if (applicationHasPendingApproval(answers, reviewerNationalId)) return false + // If the current reviewer is the buyer, check for changes in buyer's co-owners/operators list + const buyer = getValueViaPath(answers, 'buyer', {}) as UserInformation if (buyer.nationalId === reviewerNationalId) { - // Check if buyerCoOwnerAndOperator did not change, then buyer is last reviewer + const oldBuyerCoOwnersAndOperators = ( + getValueViaPath( + answers, + 'buyerCoOwnerAndOperator', + [], + ) as CoOwnerAndOperator[] + ).filter(({ wasRemoved }) => wasRemoved !== 'true') + + // If no changes in buyer co-owner/operator list, the buyer is the last reviewer if (newBuyerCoOwnerAndOperator === oldBuyerCoOwnersAndOperators) { return true } - // Check if buyer added to buyerCoOwnerAndOperator, then buyer is not the last reviewer + // If new buyer co-owners/operators have been added, buyer is not the last reviewer if ( newBuyerCoOwnerAndOperator.length > oldBuyerCoOwnersAndOperators.length ) { return false } - //Check if buyer added (and removed) in buyerCoOwnerAndOperator, then buyer is not the last reviewer - const newReviewer = newBuyerCoOwnerAndOperator.find((newReviewer) => { - const sameReviewer = oldBuyerCoOwnersAndOperators.find( - (oldReviewer) => oldReviewer.nationalId === newReviewer.nationalId, - ) - return !sameReviewer - }) - if (newReviewer) { - return false - } + // If new reviewers were added (and others removed), the buyer is not the last reviewer + const newReviewerAdded = newBuyerCoOwnerAndOperator.some( + ({ nationalId }) => + !oldBuyerCoOwnersAndOperators.some( + (oldReviewer) => oldReviewer.nationalId === nationalId, + ), + ) + return !newReviewerAdded } + // Otherwise, the only review missing is from the current reviewer return true } diff --git a/libs/clients/transport-authority/vehicle-operators/src/lib/vehicleOperatorsClient.module.ts b/libs/clients/transport-authority/vehicle-operators/src/lib/vehicleOperatorsClient.module.ts index aaf3401c166d..e382021fb5d5 100644 --- a/libs/clients/transport-authority/vehicle-operators/src/lib/vehicleOperatorsClient.module.ts +++ b/libs/clients/transport-authority/vehicle-operators/src/lib/vehicleOperatorsClient.module.ts @@ -1,8 +1,10 @@ import { Module } from '@nestjs/common' import { VehicleOperatorsClient } from './vehicleOperatorsClient.service' import { exportedApis } from './apiConfiguration' +import { VehiclesMileageClientModule } from '@island.is/clients/vehicles-mileage' @Module({ + imports: [VehiclesMileageClientModule], providers: [...exportedApis, VehicleOperatorsClient], exports: [VehicleOperatorsClient], }) diff --git a/libs/clients/transport-authority/vehicle-operators/src/lib/vehicleOperatorsClient.service.ts b/libs/clients/transport-authority/vehicle-operators/src/lib/vehicleOperatorsClient.service.ts index cb5989c587a5..4d2b7d23558d 100644 --- a/libs/clients/transport-authority/vehicle-operators/src/lib/vehicleOperatorsClient.service.ts +++ b/libs/clients/transport-authority/vehicle-operators/src/lib/vehicleOperatorsClient.service.ts @@ -1,20 +1,32 @@ import { Auth, AuthMiddleware, User } from '@island.is/auth-nest-tools' import { Injectable } from '@nestjs/common' -import { ReturnTypeMessage } from '../../gen/fetch' import { OperatorApi } from '../../gen/fetch/apis' import { Operator, OperatorChangeValidation, } from './vehicleOperatorsClient.types' +import { + ErrorMessage, + getCleanErrorMessagesFromTryCatch, +} from '@island.is/clients/transport-authority/vehicle-owner-change' +import { MileageReadingApi } from '@island.is/clients/vehicles-mileage' +import { logger } from '@island.is/logging' @Injectable() export class VehicleOperatorsClient { - constructor(private readonly operatorsApi: OperatorApi) {} + constructor( + private readonly operatorsApi: OperatorApi, + private readonly mileageReadingApi: MileageReadingApi, + ) {} private operatorsApiWithAuth(auth: Auth) { return this.operatorsApi.withMiddleware(new AuthMiddleware(auth)) } + private mileageReadingApiWithAuth(auth: Auth) { + return this.mileageReadingApi.withMiddleware(new AuthMiddleware(auth)) + } + public async getOperators(auth: User, permno: string): Promise { const result = await this.operatorsApiWithAuth(auth).permnoGet({ apiVersion: '3.0', @@ -36,16 +48,36 @@ export class VehicleOperatorsClient { auth: User, permno: string, ): Promise { - return await this.validateAllForOperatorChange(auth, permno, null) + // Get current mileage reading + let currentMileage = 0 + try { + const mileageReadings = await this.mileageReadingApiWithAuth( + auth, + ).getMileageReading({ permno }) + currentMileage = mileageReadings?.[0]?.mileage || 0 + } catch (e) { + logger.error(e) + return { + hasError: true, + errorMessages: [{ defaultMessage: e.message }], + } + } + + return await this.validateAllForOperatorChange( + auth, + permno, + null, + currentMileage + 1, + ) } public async validateAllForOperatorChange( auth: User, permno: string, operators: Operator[] | null, - mileage?: number | null, + mileage: number | null, ): Promise { - let errorList: ReturnTypeMessage[] | undefined + let errorMessages: ErrorMessage[] | undefined // In case we dont have the operators selected yet, // then we will send in the owner as operator @@ -72,35 +104,14 @@ export class VehicleOperatorsClient { }, }) } catch (e) { - // Note: We need to wrap in try-catch to get the error messages, because if this action results in error, - // we get 4xx error (instead of 200 with error messages) with the errorList in this field - // ("body.Errors" for input validation, and "body" for data validation (in database)), - // that is of the same class as 200 result schema - if (e?.body?.Errors && Array.isArray(e.body.Errors)) { - errorList = e.body.Errors as ReturnTypeMessage[] - } else if (e?.body && Array.isArray(e.body)) { - errorList = e.body as ReturnTypeMessage[] - } else { - throw e - } + // Note: We had to wrap in try-catch to get the error messages, because if this action results in error, + // we get 4xx error (instead of 200 with error messages) with the error messages in the body + errorMessages = getCleanErrorMessagesFromTryCatch(e) } - const warnSeverityError = 'E' - const warnSeverityLock = 'L' - errorList = errorList?.filter( - (x) => - x.errorMess && - (x.warnSever === warnSeverityError || x.warnSever === warnSeverityLock), - ) - return { - hasError: !!errorList?.length, - errorMessages: errorList?.map((item) => { - return { - errorNo: (item.warnSever || '_') + item.warningSerialNumber, - defaultMessage: item.errorMess, - } - }), + hasError: !!errorMessages?.length, + errorMessages: errorMessages, } } @@ -112,33 +123,48 @@ export class VehicleOperatorsClient { permno: string, operators: Operator[], mileage?: number | null, - ): Promise { + ): Promise { + let errorMessages: ErrorMessage[] | undefined + if (operators.length === 0) { - await this.operatorsApiWithAuth(auth).closeWithoutcontractPost({ - apiVersion: '3.0', - apiVersion2: '3.0', - postCloseOperatorsWithoutContractModel: { - permno: permno, - endDate: new Date(), - reportingPersonIdNumber: auth.nationalId, - }, - }) + try { + await this.operatorsApiWithAuth(auth).closeWithoutcontractPost({ + apiVersion: '3.0', + apiVersion2: '3.0', + postCloseOperatorsWithoutContractModel: { + permno: permno, + endDate: new Date(), + reportingPersonIdNumber: auth.nationalId, + }, + }) + } catch (e) { + errorMessages = getCleanErrorMessagesFromTryCatch(e) + } } else { - await this.operatorsApiWithAuth(auth).withoutcontractPost({ - apiVersion: '3.0', - apiVersion2: '3.0', - postOperatorsWithoutContractModel: { - permno: permno, - startDate: new Date(), - reportingPersonIdNumber: auth.nationalId, - onlyRunFlexibleWarning: false, - mileage: mileage, - operators: operators.map((operator) => ({ - personIdNumber: operator.ssn || '', - mainOperator: operator.isMainOperator ? 1 : 0, - })), - }, - }) + try { + await this.operatorsApiWithAuth(auth).withoutcontractPost({ + apiVersion: '3.0', + apiVersion2: '3.0', + postOperatorsWithoutContractModel: { + permno: permno, + startDate: new Date(), + reportingPersonIdNumber: auth.nationalId, + onlyRunFlexibleWarning: false, + mileage: mileage, + operators: operators.map((operator) => ({ + personIdNumber: operator.ssn || '', + mainOperator: operator.isMainOperator ? 1 : 0, + })), + }, + }) + } catch (e) { + errorMessages = getCleanErrorMessagesFromTryCatch(e) + } + } + + return { + hasError: !!errorMessages?.length, + errorMessages: errorMessages, } } } diff --git a/libs/clients/transport-authority/vehicle-owner-change/src/index.ts b/libs/clients/transport-authority/vehicle-owner-change/src/index.ts index 7cea2073a52a..2e9322e2605b 100644 --- a/libs/clients/transport-authority/vehicle-owner-change/src/index.ts +++ b/libs/clients/transport-authority/vehicle-owner-change/src/index.ts @@ -3,3 +3,8 @@ export * from './lib/vehicleOwnerChangeClient.module' export * from './lib/vehicleOwnerChangeClient.types' export { VehicleOwnerChangeClientConfig } from './lib/vehicleOwnerChangeClient.config' + +export { + ErrorMessage, + getCleanErrorMessagesFromTryCatch, +} from './lib/vehicleOwnerChangeClient.utils' diff --git a/libs/clients/transport-authority/vehicle-owner-change/src/lib/vehicleOwnerChangeClient.module.ts b/libs/clients/transport-authority/vehicle-owner-change/src/lib/vehicleOwnerChangeClient.module.ts index bbf856b6ebb3..0b7b6d2ed27a 100644 --- a/libs/clients/transport-authority/vehicle-owner-change/src/lib/vehicleOwnerChangeClient.module.ts +++ b/libs/clients/transport-authority/vehicle-owner-change/src/lib/vehicleOwnerChangeClient.module.ts @@ -1,8 +1,10 @@ import { Module } from '@nestjs/common' import { VehicleOwnerChangeClient } from './vehicleOwnerChangeClient.service' import { exportedApis } from './apiConfiguration' +import { VehiclesMileageClientModule } from '@island.is/clients/vehicles-mileage' @Module({ + imports: [VehiclesMileageClientModule], providers: [...exportedApis, VehicleOwnerChangeClient], exports: [VehicleOwnerChangeClient], }) diff --git a/libs/clients/transport-authority/vehicle-owner-change/src/lib/vehicleOwnerChangeClient.service.ts b/libs/clients/transport-authority/vehicle-owner-change/src/lib/vehicleOwnerChangeClient.service.ts index b8c27504d343..24a062649dcc 100644 --- a/libs/clients/transport-authority/vehicle-owner-change/src/lib/vehicleOwnerChangeClient.service.ts +++ b/libs/clients/transport-authority/vehicle-owner-change/src/lib/vehicleOwnerChangeClient.service.ts @@ -1,29 +1,58 @@ import { Auth, AuthMiddleware, User } from '@island.is/auth-nest-tools' import { Injectable } from '@nestjs/common' -import { ReturnTypeMessage } from '../../gen/fetch' import { OwnerChangeApi } from '../../gen/fetch/apis' import { NewestOwnerChange, OwnerChange, OwnerChangeValidation, } from './vehicleOwnerChangeClient.types' -import { getDateAtTimestamp } from './vehicleOwnerChangeClient.utils' +import { + ErrorMessage, + getCleanErrorMessagesFromTryCatch, + getDateAtTimestamp, +} from './vehicleOwnerChangeClient.utils' +import { MileageReadingApi } from '@island.is/clients/vehicles-mileage' +import { logger } from '@island.is/logging' @Injectable() export class VehicleOwnerChangeClient { - constructor(private readonly ownerchangeApi: OwnerChangeApi) {} + constructor( + private readonly ownerchangeApi: OwnerChangeApi, + private readonly mileageReadingApi: MileageReadingApi, + ) {} private ownerchangeApiWithAuth(auth: Auth) { return this.ownerchangeApi.withMiddleware(new AuthMiddleware(auth)) } + private mileageReadingApiWithAuth(auth: Auth) { + return this.mileageReadingApi.withMiddleware(new AuthMiddleware(auth)) + } + public async validateVehicleForOwnerChange( auth: User, permno: string, ): Promise { // Note: since the vehiclecheck endpoint is funky, we will instead just use the personcheck endpoint // and send in dummy data where needed + const todayStr = new Date().toISOString() + + // Get current mileage reading + let currentMileage = 0 + try { + const mileageReadings = await this.mileageReadingApiWithAuth( + auth, + ).getMileageReading({ permno }) + currentMileage = mileageReadings?.[0]?.mileage || 0 + } catch (e) { + logger.error(e) + return { + hasError: true, + errorMessages: [{ defaultMessage: e.message }], + } + } + return await this.validateAllForOwnerChange(auth, { permno: permno, seller: { @@ -40,6 +69,7 @@ export class VehicleOwnerChangeClient { insuranceCompanyCode: null, operators: null, coOwners: null, + mileage: currentMileage + 1, }) } @@ -49,7 +79,7 @@ export class VehicleOwnerChangeClient { ): Promise { const useGroup = '000' - let errorList: ReturnTypeMessage[] | undefined + let errorMessages: ErrorMessage[] | undefined try { // Note: If insurance company has not been supplied (we have not required the user to fill in at this point), @@ -67,7 +97,7 @@ export class VehicleOwnerChangeClient { ownerChange.dateOfPurchaseTimestamp, ) - // Note: we have manually changed this endpoint to void, since the messages we want only + // Note: we have manually changed this endpoint to void (in clientConfig), since the messages we want only // come with error code 400. If this function returns an array of ReturnTypeMessage, then // we will get an error with code 204, since the openapi generator tries to convert empty result // into an array of ReturnTypeMessage @@ -92,44 +122,14 @@ export class VehicleOwnerChangeClient { }, }) } catch (e) { - // Note: We need to wrap in try-catch to get the error messages, because if this action results in error, - // we get 4xx error (instead of 200 with error messages) with the errorList in this field - // ("body.Errors" for input validation, and "body" for data validation (in database)), - // that is of the same class as 200 result schema - if (e?.body?.Errors && Array.isArray(e.body.Errors)) { - errorList = e.body.Errors as ReturnTypeMessage[] - } else if (e?.body && Array.isArray(e.body)) { - errorList = e.body as ReturnTypeMessage[] - } else { - throw e - } + // Note: We had to wrap in try-catch to get the error messages, because if this action results in error, + // we get 4xx error (instead of 200 with error messages) with the error messages in the body + errorMessages = getCleanErrorMessagesFromTryCatch(e) } - const warnSeverityError = 'E' - const warnSeverityLock = 'L' - errorList = errorList?.filter( - (x) => - x.errorMess && - (x.warnSever === warnSeverityError || x.warnSever === warnSeverityLock), - ) - return { - hasError: !!errorList?.length, - errorMessages: errorList?.map((item) => { - let errorNo = item.warningSerialNumber?.toString() - - // Note: For vehicle locks, we need to do some special parsing since - // the error number (warningSerialNumber) is always -1 for locks, - // but the number is included in the errorMess field (value before the first space) - if (item.warnSever === warnSeverityLock) { - errorNo = item.errorMess?.split(' ')[0] - } - - return { - errorNo: (item.warnSever || '_') + errorNo, - defaultMessage: item.errorMess, - } - }), + hasError: !!errorMessages?.length, + errorMessages: errorMessages, } } @@ -160,7 +160,7 @@ export class VehicleOwnerChangeClient { public async saveOwnerChange( auth: User, ownerChange: OwnerChange, - ): Promise { + ): Promise { const useGroup = '000' // Note: API throws error if timestamp is 00:00:00, so we will use @@ -170,31 +170,42 @@ export class VehicleOwnerChangeClient { ownerChange.dateOfPurchaseTimestamp, ) - await this.ownerchangeApiWithAuth(auth).rootPost({ - apiVersion: '2.0', - apiVersion2: '2.0', - postOwnerChange: { - permno: ownerChange.permno, - sellerPersonIdNumber: ownerChange.seller.ssn, - sellerEmail: ownerChange.seller.email, - buyerPersonIdNumber: ownerChange.buyer.ssn, - buyerEmail: ownerChange.buyer.email, - dateOfPurchase: purchaseDate, - saleAmount: ownerChange.saleAmount, - insuranceCompanyCode: ownerChange.insuranceCompanyCode || '', - useGroup: useGroup, - operatorEmail: ownerChange.operators?.find((x) => x.isMainOperator) - ?.email, - operators: ownerChange.operators?.map((operator) => ({ - personIdNumber: operator.ssn, - mainOperator: operator.isMainOperator ? 1 : 0, - })), - coOwners: ownerChange.coOwners?.map((coOwner) => ({ - personIdNumber: coOwner.ssn, - })), - reportingPersonIdNumber: auth.nationalId, - mileage: ownerChange.mileage, - }, - }) + let errorMessages: ErrorMessage[] | undefined + + try { + await this.ownerchangeApiWithAuth(auth).rootPost({ + apiVersion: '2.0', + apiVersion2: '2.0', + postOwnerChange: { + permno: ownerChange.permno, + sellerPersonIdNumber: ownerChange.seller.ssn, + sellerEmail: ownerChange.seller.email, + buyerPersonIdNumber: ownerChange.buyer.ssn, + buyerEmail: ownerChange.buyer.email, + dateOfPurchase: purchaseDate, + saleAmount: ownerChange.saleAmount, + insuranceCompanyCode: ownerChange.insuranceCompanyCode || '', + useGroup: useGroup, + operatorEmail: ownerChange.operators?.find((x) => x.isMainOperator) + ?.email, + operators: ownerChange.operators?.map((operator) => ({ + personIdNumber: operator.ssn, + mainOperator: operator.isMainOperator ? 1 : 0, + })), + coOwners: ownerChange.coOwners?.map((coOwner) => ({ + personIdNumber: coOwner.ssn, + })), + reportingPersonIdNumber: auth.nationalId, + mileage: ownerChange.mileage, + }, + }) + } catch (e) { + errorMessages = getCleanErrorMessagesFromTryCatch(e) + } + + return { + hasError: !!errorMessages?.length, + errorMessages: errorMessages, + } } } diff --git a/libs/clients/transport-authority/vehicle-owner-change/src/lib/vehicleOwnerChangeClient.utils.ts b/libs/clients/transport-authority/vehicle-owner-change/src/lib/vehicleOwnerChangeClient.utils.ts index 530e731c2a64..78b75aed8566 100644 --- a/libs/clients/transport-authority/vehicle-owner-change/src/lib/vehicleOwnerChangeClient.utils.ts +++ b/libs/clients/transport-authority/vehicle-owner-change/src/lib/vehicleOwnerChangeClient.utils.ts @@ -1,6 +1,69 @@ +import { ReturnTypeMessage } from '../../gen/fetch' + // Returns date object with at the selected timestamp export const getDateAtTimestamp = (oldDate: Date, timestamp: string): Date => { const newDate = oldDate instanceof Date && !isNaN(oldDate.getDate()) ? oldDate : new Date() return new Date(newDate.toISOString().substring(0, 10) + 'T' + timestamp) } + +export interface ErrorMessage { + errorNo: string | undefined + defaultMessage: string | null | undefined +} + +export const getCleanErrorMessagesFromTryCatch = (e: any): ErrorMessage[] => { + let errorList: ReturnTypeMessage[] | undefined + let filteredErrorList: ReturnTypeMessage[] | undefined + + // Note: Error message will be in the field "body.Errors" for input validation, + // and "body" for data validation (in database) + // Note: The schema for the errors is the same as the schema for the 200 response + // result schema (ReturnTypeMessage[]) + if (e?.body?.Errors && Array.isArray(e.body.Errors)) { + errorList = e.body.Errors as ReturnTypeMessage[] + } else if (e?.body && Array.isArray(e.body)) { + errorList = e.body as ReturnTypeMessage[] + } else { + throw e + } + + const warnSeverityError = 'E' + const warnSeverityLock = 'L' + const warnSeverityWarning = 'W' + + // Note: All three types of warnSever (E, L, W) will cause the api to throw error + // (and not continue execute on SGS side). But some messages are duplicated as both + // E and W. To prevent us from displaying the duplicated W error, we will first + // check for E and L, if none, then display W errors + + // First check if there are any E or L errors + filteredErrorList = errorList?.filter( + (x) => + x.errorMess && + (x.warnSever === warnSeverityError || x.warnSever === warnSeverityLock), + ) + + // If not, then check for W error + if (!filteredErrorList?.length) { + filteredErrorList = errorList?.filter( + (x) => x.errorMess && x.warnSever === warnSeverityWarning, + ) + } + + return filteredErrorList?.map((item) => { + let errorNo = item.warningSerialNumber?.toString() + + // Note: For vehicle locks, we need to do some special parsing since + // the error number (warningSerialNumber) is always -1 for locks, + // but the number is included in the errorMess field (value before the first space) + if (item.warnSever === warnSeverityLock) { + errorNo = item.errorMess?.split(' ')[0] + } + + return { + errorNo: errorNo ? (item.warnSever || '_') + errorNo : undefined, + defaultMessage: item.errorMess, + } + }) +} diff --git a/libs/clients/transport-authority/vehicle-plate-ordering/src/lib/vehiclePlateOrderingClient.service.ts b/libs/clients/transport-authority/vehicle-plate-ordering/src/lib/vehiclePlateOrderingClient.service.ts index 6120232c061b..069bb05e5bf9 100644 --- a/libs/clients/transport-authority/vehicle-plate-ordering/src/lib/vehiclePlateOrderingClient.service.ts +++ b/libs/clients/transport-authority/vehicle-plate-ordering/src/lib/vehiclePlateOrderingClient.service.ts @@ -1,6 +1,5 @@ import { Auth, AuthMiddleware, User } from '@island.is/auth-nest-tools' import { Injectable } from '@nestjs/common' -import { ReturnTypeMessage } from '../../gen/fetch' import { PlateOrderingApi } from '../../gen/fetch/apis' import { DeliveryStation, @@ -9,6 +8,10 @@ import { PlateOrder, PlateOrderValidation, } from './vehiclePlateOrderingClient.types' +import { + ErrorMessage, + getCleanErrorMessagesFromTryCatch, +} from '@island.is/clients/transport-authority/vehicle-owner-change' @Injectable() export class VehiclePlateOrderingClient { @@ -35,84 +38,93 @@ export class VehiclePlateOrderingClient { })) } - public async validatePlateOrder( + public async validateVehicleForPlateOrder( auth: User, permno: string, frontType: string, rearType: string, ): Promise { - let errorList: ReturnTypeMessage[] | undefined + // Dummy values + // Note: option "Pick up at Samgöngustofa" which is always valid + const deliveryStationType = SGS_DELIVERY_STATION_TYPE + const deliveryStationCode = SGS_DELIVERY_STATION_CODE + const expressOrder = false - try { - // Dummy values - // Note: option "Pick up at Samgöngustofa" which is always valid - const deliveryStationType = SGS_DELIVERY_STATION_TYPE - const deliveryStationCode = SGS_DELIVERY_STATION_CODE - const expressOrder = false + return await this.validateAllForPlateOrder( + auth, + permno, + frontType, + rearType, + deliveryStationType, + deliveryStationCode, + expressOrder, + ) + } + + public async validateAllForPlateOrder( + auth: User, + permno: string, + frontType: string, + rearType: string, + deliveryStationType: string, + deliveryStationCode: string, + expressOrder: boolean, + ): Promise { + let errorMessages: ErrorMessage[] | undefined + try { await this.plateOrderingApiWithAuth(auth).orderplatesPost({ apiVersion: '1.0', apiVersion2: '1.0', postOrderPlatesModel: { permno: permno, - frontType: frontType, - rearType: rearType, - stationToDeliverTo: deliveryStationCode, - stationType: deliveryStationType, + frontType: frontType || null, + rearType: rearType || null, + stationToDeliverTo: deliveryStationCode || '', + stationType: deliveryStationType || '', expressOrder: expressOrder, checkOnly: true, // to make sure we are only validating }, }) } catch (e) { - // Note: We need to wrap in try-catch to get the error messages, because if this action results in error, - // we get 4xx error (instead of 200 with error messages) with the errorList in this field - // ("body.Errors" for input validation, and "body" for data validation (in database)), - // that is of the same class as 200 result schema - if (e?.body?.Errors && Array.isArray(e.body.Errors)) { - errorList = e.body.Errors as ReturnTypeMessage[] - } else if (e?.body && Array.isArray(e.body)) { - errorList = e.body as ReturnTypeMessage[] - } else { - throw e - } + // Note: We had to wrap in try-catch to get the error messages, because if this action results in error, + // we get 4xx error (instead of 200 with error messages) with the error messages in the body + errorMessages = getCleanErrorMessagesFromTryCatch(e) } - const warnSeverityError = 'E' - const warnSeverityWarning = 'W' - errorList = errorList?.filter( - (x) => - x.errorMess && - (x.warnSever === warnSeverityError || - x.warnSever === warnSeverityWarning), - ) - return { - hasError: !!errorList?.length, - errorMessages: errorList?.map((item) => { - return { - errorNo: (item.warnSever || '_') + item.warningSerialNumber, - defaultMessage: item.errorMess, - } - }), + hasError: !!errorMessages?.length, + errorMessages: errorMessages, } } public async savePlateOrders( auth: User, plateOrder: PlateOrder, - ): Promise { - await this.plateOrderingApiWithAuth(auth).orderplatesPost({ - apiVersion: '1.0', - apiVersion2: '1.0', - postOrderPlatesModel: { - permno: plateOrder.permno, - frontType: plateOrder.frontType, - rearType: plateOrder.rearType || null, - stationToDeliverTo: plateOrder.deliveryStationCode || '', - stationType: plateOrder.deliveryStationType || '', - expressOrder: plateOrder.expressOrder, - checkOnly: false, - }, - }) + ): Promise { + let errorMessages: ErrorMessage[] | undefined + + try { + await this.plateOrderingApiWithAuth(auth).orderplatesPost({ + apiVersion: '1.0', + apiVersion2: '1.0', + postOrderPlatesModel: { + permno: plateOrder.permno, + frontType: plateOrder.frontType || null, + rearType: plateOrder.rearType || null, + stationToDeliverTo: plateOrder.deliveryStationCode || '', + stationType: plateOrder.deliveryStationType || '', + expressOrder: plateOrder.expressOrder, + checkOnly: false, + }, + }) + } catch (e) { + errorMessages = getCleanErrorMessagesFromTryCatch(e) + } + + return { + hasError: !!errorMessages?.length, + errorMessages: errorMessages, + } } } diff --git a/libs/clients/transport-authority/vehicle-plate-renewal/src/lib/vehiclePlateRenewalClient.service.ts b/libs/clients/transport-authority/vehicle-plate-renewal/src/lib/vehiclePlateRenewalClient.service.ts index 09502fddece5..d96b4fc29371 100644 --- a/libs/clients/transport-authority/vehicle-plate-renewal/src/lib/vehiclePlateRenewalClient.service.ts +++ b/libs/clients/transport-authority/vehicle-plate-renewal/src/lib/vehiclePlateRenewalClient.service.ts @@ -6,12 +6,10 @@ import { PlateOwnershipValidation, } from './vehiclePlateRenewalClient.types' import { PlateOwnershipApiWithoutIdsAuth } from './apiConfiguration' - -interface ReturnTypeMessage { - warnSever?: string | null - errorMess?: string | null - warningSerialNumber?: number | null -} +import { + ErrorMessage, + getCleanErrorMessagesFromTryCatch, +} from '@island.is/clients/transport-authority/vehicle-owner-change' @Injectable() export class VehiclePlateRenewalClient { @@ -49,7 +47,7 @@ export class VehiclePlateRenewalClient { auth: User, regno: string, ): Promise { - let errorList: ReturnTypeMessage[] | undefined + let errorMessages: ErrorMessage[] | undefined try { await this.plateOwnershipApiWithAuth(auth).renewplateownershipPost({ @@ -62,45 +60,41 @@ export class VehiclePlateRenewalClient { }, }) } catch (e) { - // Note: We need to wrap in try-catch to get the error messages, because if this action results in error, - // we get 4xx error (instead of 200 with error messages) with the errorList in this field - // ("body.Errors" for input validation, and "body" for data validation (in database)), - // that is of the same class as 200 result schema - if (e?.body?.Errors) { - errorList = e.body.Errors as ReturnTypeMessage[] - } else if (e?.body) { - errorList = e.body as ReturnTypeMessage[] - } else { - throw e - } + // Note: We had to wrap in try-catch to get the error messages, because if this action results in error, + // we get 4xx error (instead of 200 with error messages) with the error messages in the body + errorMessages = getCleanErrorMessagesFromTryCatch(e) } - const warnSeverityError = 'E' - errorList = errorList?.filter( - (x) => x.errorMess && x.warnSever === warnSeverityError, - ) - return { - hasError: !!errorList?.length, - errorMessages: errorList?.map((item) => { - return { - errorNo: (item.warnSever || '_') + item.warningSerialNumber, - defaultMessage: item.errorMess, - } - }), + hasError: !!errorMessages?.length, + errorMessages: errorMessages, } } - public async renewPlateOwnership(auth: User, regno: string): Promise { - await this.plateOwnershipApiWithAuth(auth).renewplateownershipPost({ - apiVersion: '1.0', - apiVersion2: '1.0', - postRenewPlateOwnershipModel: { - regno: regno, - persidno: auth.nationalId, - check: false, - }, - }) + public async renewPlateOwnership( + auth: User, + regno: string, + ): Promise { + let errorMessages: ErrorMessage[] | undefined + + try { + await this.plateOwnershipApiWithAuth(auth).renewplateownershipPost({ + apiVersion: '1.0', + apiVersion2: '1.0', + postRenewPlateOwnershipModel: { + regno: regno, + persidno: auth.nationalId, + check: false, + }, + }) + } catch (e) { + errorMessages = getCleanErrorMessagesFromTryCatch(e) + } + + return { + hasError: !!errorMessages?.length, + errorMessages: errorMessages, + } } public async getPlateAvailability(regno: string) { From 74eaed47771d0b8142c32e6644442ec98baa782b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=9Eorkell=20M=C3=A1ni=20=C3=9Eorkelsson?= Date: Mon, 18 Nov 2024 10:51:24 +0000 Subject: [PATCH 30/66] feat(grants): Grants plaza UI (#16505) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: wip grants home page * feat: add client * feat: init service * feat: can create on contentful * chore: nx format:write update dirty files * feat: add generic tags query * feat: populate tag groups * fix: add slug * feat: search resulsts page * feat: ui updates * feat: generate grant model * feat: generate types * feat: implement es * feat: add elastic search for grants * feat: fetching grant from cms works * feat: add plaza ui * fix: remove old stuff * chore: remove from base * feat: populate filter tags * feat: update as * feat: filtering works * chore: clean up logs * fix: applcation status filter * feat: create grant * feat: more routes * feat: single grant works * chore: rename card * chore: fix real import * fix: homepage links correctly to search results * fix: better es config * chore: add to environmetn * feat: Elastic search worksga . * fix: es filtering * feat: initial render filtering * feat: small fixes * feat: add fund type * feat: add fund to grant * feat: added fund to single grant page * feat: update content types * fix: add nothing found state * chore: add border radius * fix: search query * chore: nx format:write update dirty files * fix: deploy search indexer * chore: add todo reminder * chore: update tag * chore: update page title * fix: change string2 * chore: revert unexclusion * chore: update contentful Fund model * fix: update grant model2 * fix: change grant status default * fix: richtext ordering * fix: fund link works * chore: coderabbit improvements * chore: search labels * chore: simplify wrapper * fix: header image render * fix: coderabbit suggestions * fix: undefined dates * fix: bunny comments * fix: some fixes * fix: use undefined if applicationId missing * fix: wrong label * fix: image props * fix: remove loading * fix. dates * fix: update args * fix: alt text * fix: localize desc * fix: wrong desc * chore: forgot codeowners * fix: review comments plus simpler url param parsing * fix: remove grant from nested content types * fix: remove unnecessary locale passing * chore: revert graphql changes * chore: codeowners * fix: wrapper stuff * fix: remove loading * fix: mobile improvements * fix: no image if tablet * chore: also mobile * chore: extract content logic * chore: improts * fix: localization * fix: update types2 * fix: bunny suggestions * fix: bit o'padding * fix: add 404 if invalid grant * fix: build broke --------- Co-authored-by: Ásdís Erna Guðmundsdóttir Co-authored-by: andes-it Co-authored-by: Ásdís Erna Guðmundsdóttir Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- .github/CODEOWNERS | 5 +- .../HeaderWithImage/HeaderWithImage.css.ts | 11 + .../Grant/HeaderWithImage/HeaderWithImage.tsx | 80 ++++ .../components/Grant/HeaderWithImage/index.ts | 3 + .../Grant/SearchSection/SearchSection.css.ts | 11 + .../Grant/SearchSection/SearchSection.tsx | 62 +++ .../components/Grant/SearchSection/index.tsx | 3 + .../components/Grant/Wrapper/GrantWrapper.tsx | 32 ++ apps/web/components/Grant/index.ts | 3 + .../web/components/PlazaCard/PlazaCard.css.ts | 5 + apps/web/components/PlazaCard/PlazaCard.tsx | 171 ++++++++ .../SearchSection/SearchSection.tsx | 15 +- apps/web/components/real.ts | 2 + .../hooks/useLinkResolver/useLinkResolver.ts | 12 + apps/web/pages/styrkjatorg/index.ts | 11 + apps/web/pages/styrkjatorg/leit/index.ts | 12 + apps/web/pages/styrkjatorg/styrkur/[id].ts | 12 + apps/web/public/assets/sofa.svg | 1 + apps/web/screens/Grants/Grant/Grant.tsx | 220 ++++++++++ .../web/screens/Grants/Grant/GrantSidebar.tsx | 133 ++++++ apps/web/screens/Grants/Home/GrantsHome.tsx | 203 +++++++++ .../Grants/SearchResults/SearchResults.tsx | 413 ++++++++++++++++++ .../SearchResults/SearchResultsContent.tsx | 151 +++++++ .../SearchResults/SearchResultsFilter.tsx | 137 ++++++ apps/web/screens/Grants/messages.ts | 165 +++++++ apps/web/screens/queries/GenericTag.ts | 15 + apps/web/screens/queries/Grants.ts | 126 ++++++ apps/web/screens/queries/index.tsx | 1 + libs/cms/src/lib/cms.contentful.service.ts | 43 +- libs/cms/src/lib/cms.elasticsearch.service.ts | 118 +++++ libs/cms/src/lib/cms.resolver.ts | 30 ++ .../dto/getGenericTagsInTagGroups.input.ts | 14 + libs/cms/src/lib/dto/getGrants.input.ts | 45 ++ libs/cms/src/lib/dto/getSingleGrant.input.ts | 14 + libs/cms/src/lib/environments/environment.ts | 1 + .../src/lib/generated/contentfulTypes.d.ts | 167 ++++++- libs/cms/src/lib/models/fund.model.ts | 35 ++ libs/cms/src/lib/models/grant.model.ts | 129 ++++++ libs/cms/src/lib/models/grantList.model.ts | 12 + libs/cms/src/lib/search/cmsSync.module.ts | 2 + .../lib/search/importers/grants.service.ts | 133 ++++++ libs/cms/src/lib/search/mapping.service.ts | 3 + libs/shared/types/src/lib/api-cms-domain.ts | 1 + 43 files changed, 2749 insertions(+), 13 deletions(-) create mode 100644 apps/web/components/Grant/HeaderWithImage/HeaderWithImage.css.ts create mode 100644 apps/web/components/Grant/HeaderWithImage/HeaderWithImage.tsx create mode 100644 apps/web/components/Grant/HeaderWithImage/index.ts create mode 100644 apps/web/components/Grant/SearchSection/SearchSection.css.ts create mode 100644 apps/web/components/Grant/SearchSection/SearchSection.tsx create mode 100644 apps/web/components/Grant/SearchSection/index.tsx create mode 100644 apps/web/components/Grant/Wrapper/GrantWrapper.tsx create mode 100644 apps/web/components/Grant/index.ts create mode 100644 apps/web/components/PlazaCard/PlazaCard.css.ts create mode 100644 apps/web/components/PlazaCard/PlazaCard.tsx create mode 100644 apps/web/pages/styrkjatorg/index.ts create mode 100644 apps/web/pages/styrkjatorg/leit/index.ts create mode 100644 apps/web/pages/styrkjatorg/styrkur/[id].ts create mode 100644 apps/web/public/assets/sofa.svg create mode 100644 apps/web/screens/Grants/Grant/Grant.tsx create mode 100644 apps/web/screens/Grants/Grant/GrantSidebar.tsx create mode 100644 apps/web/screens/Grants/Home/GrantsHome.tsx create mode 100644 apps/web/screens/Grants/SearchResults/SearchResults.tsx create mode 100644 apps/web/screens/Grants/SearchResults/SearchResultsContent.tsx create mode 100644 apps/web/screens/Grants/SearchResults/SearchResultsFilter.tsx create mode 100644 apps/web/screens/Grants/messages.ts create mode 100644 apps/web/screens/queries/Grants.ts create mode 100644 libs/cms/src/lib/dto/getGenericTagsInTagGroups.input.ts create mode 100644 libs/cms/src/lib/dto/getGrants.input.ts create mode 100644 libs/cms/src/lib/dto/getSingleGrant.input.ts create mode 100644 libs/cms/src/lib/models/fund.model.ts create mode 100644 libs/cms/src/lib/models/grant.model.ts create mode 100644 libs/cms/src/lib/models/grantList.model.ts create mode 100644 libs/cms/src/lib/search/importers/grants.service.ts diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index df1c36fb075a..00932606d1b3 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -131,6 +131,9 @@ codemagic.yaml /apps/portals/my-pages*/ @island-is/hugsmidjan /apps/services/regulations-admin-backend/ @island-is/hugsmidjan /apps/services/user-profile/ @island-is/hugsmidjan @island-is/juni @island-is/aranja +/apps/web/components/Grant/ @island-is/hugsmidjan +/apps/web/components/PlazaCard/ @island-is/hugsmidjan +/apps/web/screens/Grants/ @island-is/hugsmidjan /apps/web/screens/Regulations/ @island-is/hugsmidjan /apps/web/components/Regulations/ @island-is/hugsmidjan /apps/web/screens/OfficialJournalOfIceland/ @island-is/hugsmidjan @@ -390,7 +393,7 @@ codemagic.yaml # QA /apps/system-e2e/ @island-is/qa -/libs/testing/e2e @island-is/qa +/libs/testing/e2e @island-is/qa # Islandis /apps/system-e2e/src/tests/islandis/admin-portal/ @island-is/aranja diff --git a/apps/web/components/Grant/HeaderWithImage/HeaderWithImage.css.ts b/apps/web/components/Grant/HeaderWithImage/HeaderWithImage.css.ts new file mode 100644 index 000000000000..459cc3529107 --- /dev/null +++ b/apps/web/components/Grant/HeaderWithImage/HeaderWithImage.css.ts @@ -0,0 +1,11 @@ +import { style } from '@vanilla-extract/css' + +import { spacing } from '@island.is/island-ui/theme' + +export const introImage = style({ + marginBottom: -spacing[2], + maxHeight: '17em', + display: 'block', + margin: 'auto', + width: '100%', +}) diff --git a/apps/web/components/Grant/HeaderWithImage/HeaderWithImage.tsx b/apps/web/components/Grant/HeaderWithImage/HeaderWithImage.tsx new file mode 100644 index 000000000000..9cd40930294d --- /dev/null +++ b/apps/web/components/Grant/HeaderWithImage/HeaderWithImage.tsx @@ -0,0 +1,80 @@ +import { ReactNode } from 'react' + +import { + Box, + GridColumn, + GridContainer, + GridRow, + Text, +} from '@island.is/island-ui/core' + +import * as styles from './HeaderWithImage.css' + +export type HeaderProps = { + title: string + description?: string + imageLayout?: 'left' | 'right' + breadcrumbs: ReactNode + children?: ReactNode +} + +export type ImageProps = HeaderProps & { + featuredImage: string + featuredImageAlt: string +} + +export type NoImageProps = HeaderProps & { + featuredImage: never + featuredImageAlt: never +} + +export type HeaderWithImageProps = ImageProps | NoImageProps + +export const HeaderWithImage = (props: HeaderWithImageProps) => { + const renderImage = () => { + if (!props.featuredImage) return null + + return ( + + + {props.featuredImageAlt} + + + ) + } + + const renderContent = () => ( + + {props.breadcrumbs} + + {props.title} + + {props.description && {props.description}} + {props.children} + + ) + + return ( + + + {props.imageLayout === 'left' && renderImage()} + {renderContent()} + {props.imageLayout === 'right' && renderImage()} + + + ) +} diff --git a/apps/web/components/Grant/HeaderWithImage/index.ts b/apps/web/components/Grant/HeaderWithImage/index.ts new file mode 100644 index 000000000000..a58794eff2d7 --- /dev/null +++ b/apps/web/components/Grant/HeaderWithImage/index.ts @@ -0,0 +1,3 @@ +import { HeaderWithImage } from './HeaderWithImage' + +export const GrantHeaderWithImage = HeaderWithImage diff --git a/apps/web/components/Grant/SearchSection/SearchSection.css.ts b/apps/web/components/Grant/SearchSection/SearchSection.css.ts new file mode 100644 index 000000000000..459cc3529107 --- /dev/null +++ b/apps/web/components/Grant/SearchSection/SearchSection.css.ts @@ -0,0 +1,11 @@ +import { style } from '@vanilla-extract/css' + +import { spacing } from '@island.is/island-ui/theme' + +export const introImage = style({ + marginBottom: -spacing[2], + maxHeight: '17em', + display: 'block', + margin: 'auto', + width: '100%', +}) diff --git a/apps/web/components/Grant/SearchSection/SearchSection.tsx b/apps/web/components/Grant/SearchSection/SearchSection.tsx new file mode 100644 index 000000000000..8eed1a10354f --- /dev/null +++ b/apps/web/components/Grant/SearchSection/SearchSection.tsx @@ -0,0 +1,62 @@ +import { + Box, + Inline, + Input, + Tag, + TagVariant, + Text, +} from '@island.is/island-ui/core' + +import { + HeaderWithImage, + HeaderWithImageProps, +} from '../HeaderWithImage/HeaderWithImage' + +type QuickLink = { + title: string + href: string + variant?: TagVariant +} + +type SearchSectionProps = HeaderWithImageProps & { + searchPlaceholder: string + quickLinks: Array + searchUrl: string + shortcutsTitle: string +} + +export const SearchSection = (props: SearchSectionProps) => { + return ( + + + + + + + + {props.shortcutsTitle} + + + {props.quickLinks.map((q) => ( + + {q.title} + + ))} + + + + ) +} diff --git a/apps/web/components/Grant/SearchSection/index.tsx b/apps/web/components/Grant/SearchSection/index.tsx new file mode 100644 index 000000000000..88f6803f6f8f --- /dev/null +++ b/apps/web/components/Grant/SearchSection/index.tsx @@ -0,0 +1,3 @@ +import { SearchSection } from './SearchSection' + +export const GrantSearchSection = SearchSection diff --git a/apps/web/components/Grant/Wrapper/GrantWrapper.tsx b/apps/web/components/Grant/Wrapper/GrantWrapper.tsx new file mode 100644 index 000000000000..7e0296669044 --- /dev/null +++ b/apps/web/components/Grant/Wrapper/GrantWrapper.tsx @@ -0,0 +1,32 @@ +import { ReactNode, useEffect, useState } from 'react' +import { useWindowSize } from 'react-use' + +import { BreadCrumbItem } from '@island.is/island-ui/core' +import { theme } from '@island.is/island-ui/theme' + +import { HeadWithSocialSharing } from '../../HeadWithSocialSharing/HeadWithSocialSharing' + +type WrapperProps = { + pageTitle: string + pageDescription?: string + pageFeaturedImage?: string + children?: ReactNode +} + +export const GrantWrapper = ({ + pageTitle, + pageDescription, + pageFeaturedImage, + children, +}: WrapperProps) => { + return ( + <> + + {children} + + ) +} diff --git a/apps/web/components/Grant/index.ts b/apps/web/components/Grant/index.ts new file mode 100644 index 000000000000..fc69b2811bdd --- /dev/null +++ b/apps/web/components/Grant/index.ts @@ -0,0 +1,3 @@ +export { GrantWrapper } from './Wrapper/GrantWrapper' +export { GrantSearchSection } from './SearchSection' +export { GrantHeaderWithImage } from './HeaderWithImage' diff --git a/apps/web/components/PlazaCard/PlazaCard.css.ts b/apps/web/components/PlazaCard/PlazaCard.css.ts new file mode 100644 index 000000000000..bb5b75f34928 --- /dev/null +++ b/apps/web/components/PlazaCard/PlazaCard.css.ts @@ -0,0 +1,5 @@ +import { style } from '@vanilla-extract/css' + +export const container = style({ + maxWidth: '476px', +}) diff --git a/apps/web/components/PlazaCard/PlazaCard.tsx b/apps/web/components/PlazaCard/PlazaCard.tsx new file mode 100644 index 000000000000..f18c1e2da060 --- /dev/null +++ b/apps/web/components/PlazaCard/PlazaCard.tsx @@ -0,0 +1,171 @@ +import * as React from 'react' + +import { + Box, + Button, + Icon, + IconMapIcon, + Stack, + Tag, + Text, +} from '@island.is/island-ui/core' +import { ActionCardProps } from '@island.is/island-ui/core/types' + +import * as styles from './PlazaCard.css' + +const eyebrowColor = 'blueberry600' + +interface Props { + title: string + text: string + logo?: string + logoAlt?: string + eyebrow?: string + subEyebrow?: string + detailLines?: Array<{ + icon: IconMapIcon + text: string + }> + tag?: ActionCardProps['tag'] + cta?: ActionCardProps['cta'] +} + +export const PlazaCard = ({ + title, + text, + eyebrow, + subEyebrow, + detailLines, + tag, + logo, + logoAlt, + cta, +}: Props) => { + const renderLogo = () => { + if (!logo) { + return null + } + + return ( + + {logoAlt} + + ) + } + + const renderEyebrow = () => { + if (!eyebrow) { + return null + } + + return ( + + {subEyebrow ? ( + + + {eyebrow} + + + {subEyebrow} + + + ) : ( + + {eyebrow} + + )} + {renderLogo()} + + ) + } + + const renderDetails = () => { + if (!detailLines?.length) { + return null + } + + return ( + + + {detailLines?.map((d, index) => ( + + + + {d.text} + + + ))} + + + ) + } + + const renderTag = () => { + if (!tag) { + return null + } + + return {tag.label} + } + + const renderCta = () => { + if (!cta) { + return null + } + + return ( + + ) + } + + return ( + + + {renderEyebrow()} + + {title} + + {text && ( + + {text} + + )} + {renderDetails()} + + {renderTag()} + {renderCta()} + + + + ) +} diff --git a/apps/web/components/SearchSection/SearchSection.tsx b/apps/web/components/SearchSection/SearchSection.tsx index 905d525b3f5f..2c19f84f4062 100644 --- a/apps/web/components/SearchSection/SearchSection.tsx +++ b/apps/web/components/SearchSection/SearchSection.tsx @@ -1,25 +1,26 @@ import React, { ReactNode, useEffect, useState } from 'react' import { useWindowSize } from 'react-use' import dynamic from 'next/dynamic' + import { - Text, + Box, + GridColumn, GridContainer, GridRow, - GridColumn, - Box, - Stack, Inline, - Tag, Link, + Stack, + Tag, + Text, } from '@island.is/island-ui/core' import { theme } from '@island.is/island-ui/theme' +import { TestSupport } from '@island.is/island-ui/utils' import { Locale } from '@island.is/shared/types' import { SearchInput } from '@island.is/web/components' -import { LinkType, useLinkResolver } from '@island.is/web/hooks/useLinkResolver' import { GetFrontpageQuery } from '@island.is/web/graphql/schema' +import { LinkType, useLinkResolver } from '@island.is/web/hooks/useLinkResolver' import * as styles from './SearchSection.css' -import { TestSupport } from '@island.is/island-ui/utils' const DefaultIllustration = dynamic(() => import('./Illustration'), { ssr: false, diff --git a/apps/web/components/real.ts b/apps/web/components/real.ts index e6f84f68ca80..d6e81e23def1 100644 --- a/apps/web/components/real.ts +++ b/apps/web/components/real.ts @@ -12,6 +12,7 @@ */ export * from './Card/Card' +export * from './PlazaCard/PlazaCard' export * from './Header/Header' export * from './SearchInput/SearchInput' export * from './LanguageToggler/LanguageToggler' @@ -21,6 +22,7 @@ export * from './SideMenu/SideMenu' export * from './StoryList/StoryList' export * from './ContentLink/ContentLink' export * from './NewsCard/NewsCard' +export * from './Grant' export * from './LogoList/LogoList' export * from './List/List' export * from './Bullet/Bullet' diff --git a/apps/web/hooks/useLinkResolver/useLinkResolver.ts b/apps/web/hooks/useLinkResolver/useLinkResolver.ts index 2e8796315fc5..b295b3f6c28b 100644 --- a/apps/web/hooks/useLinkResolver/useLinkResolver.ts +++ b/apps/web/hooks/useLinkResolver/useLinkResolver.ts @@ -307,6 +307,18 @@ export const routesTemplate = { is: '/undirskriftalistar', en: '/en/petitions', }, + styrkjatorg: { + is: '/styrkjatorg', + en: '', + }, + styrkjatorgsearch: { + is: '/styrkjatorg/leit', + en: '', + }, + styrkjatorggrant: { + is: '/styrkjatorg/styrkur/[id]', + en: '', + }, } // This considers one block ("[someVar]") to be one variable and ignores the path variables name diff --git a/apps/web/pages/styrkjatorg/index.ts b/apps/web/pages/styrkjatorg/index.ts new file mode 100644 index 000000000000..407e2ceaa326 --- /dev/null +++ b/apps/web/pages/styrkjatorg/index.ts @@ -0,0 +1,11 @@ +import withApollo from '@island.is/web/graphql/withApollo' +import { withLocale } from '@island.is/web/i18n' +import GrantsHome from '@island.is/web/screens/Grants/Home/GrantsHome' +import { getServerSidePropsWrapper } from '@island.is/web/utils/getServerSidePropsWrapper' +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore make web strict +const Screen = withApollo(withLocale('is')(GrantsHome)) + +export default Screen + +export const getServerSideProps = getServerSidePropsWrapper(Screen) diff --git a/apps/web/pages/styrkjatorg/leit/index.ts b/apps/web/pages/styrkjatorg/leit/index.ts new file mode 100644 index 000000000000..6360f482e3ff --- /dev/null +++ b/apps/web/pages/styrkjatorg/leit/index.ts @@ -0,0 +1,12 @@ +import withApollo from '@island.is/web/graphql/withApollo' +import { withLocale } from '@island.is/web/i18n' +import GrantsSearchResults from '@island.is/web/screens/Grants/SearchResults/SearchResults' +import { getServerSidePropsWrapper } from '@island.is/web/utils/getServerSidePropsWrapper' +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore make web strict +// +const Screen = withApollo(withLocale('is')(GrantsSearchResults)) + +export default Screen + +export const getServerSideProps = getServerSidePropsWrapper(Screen) diff --git a/apps/web/pages/styrkjatorg/styrkur/[id].ts b/apps/web/pages/styrkjatorg/styrkur/[id].ts new file mode 100644 index 000000000000..e59a8c014b13 --- /dev/null +++ b/apps/web/pages/styrkjatorg/styrkur/[id].ts @@ -0,0 +1,12 @@ +import withApollo from '@island.is/web/graphql/withApollo' +import { withLocale } from '@island.is/web/i18n' +import GrantSinglePage from '@island.is/web/screens/Grants/Grant/Grant' +import { getServerSidePropsWrapper } from '@island.is/web/utils/getServerSidePropsWrapper' +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore make web strict +// +const Screen = withApollo(withLocale('is')(GrantSinglePage)) + +export default Screen + +export const getServerSideProps = getServerSidePropsWrapper(Screen) diff --git a/apps/web/public/assets/sofa.svg b/apps/web/public/assets/sofa.svg new file mode 100644 index 000000000000..c0c403237583 --- /dev/null +++ b/apps/web/public/assets/sofa.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/web/screens/Grants/Grant/Grant.tsx b/apps/web/screens/Grants/Grant/Grant.tsx new file mode 100644 index 000000000000..d3f4caf7aa06 --- /dev/null +++ b/apps/web/screens/Grants/Grant/Grant.tsx @@ -0,0 +1,220 @@ +import { useIntl } from 'react-intl' +import NextLink from 'next/link' +import { useRouter } from 'next/router' + +import { SliceType } from '@island.is/island-ui/contentful' +import { + ActionCard, + Box, + Breadcrumbs, + Divider, + Stack, + Text, +} from '@island.is/island-ui/core' +import { Locale } from '@island.is/shared/types' +import { GrantWrapper } from '@island.is/web/components' +import { + ContentLanguage, + CustomPageUniqueIdentifier, + Grant, + Query, + QueryGetSingleGrantArgs, +} from '@island.is/web/graphql/schema' +import { useLinkResolver } from '@island.is/web/hooks' +import { withMainLayout } from '@island.is/web/layouts/main' +import { webRichText } from '@island.is/web/utils/richText' + +import { + CustomScreen, + withCustomPageWrapper, +} from '../../CustomPage/CustomPageWrapper' +import SidebarLayout from '../../Layouts/SidebarLayout' +import { GET_GRANT_QUERY } from '../../queries' +import { m } from '../messages' +import { GrantSidebar } from './GrantSidebar' +import { CustomNextError } from '@island.is/web/units/errors' + +const GrantSinglePage: CustomScreen = ({ grant, locale }) => { + const { formatMessage } = useIntl() + const { linkResolver } = useLinkResolver() + const router = useRouter() + + const baseUrl = linkResolver('styrkjatorg', [], locale).href + const currentUrl = linkResolver( + 'styrkjatorggrant', + [grant?.applicationId ?? ''], + locale, + ).href + + const breadcrumbItems = [ + { + title: 'Ísland.is', + href: linkResolver('homepage', [], locale).href, + }, + { + title: formatMessage(m.home.title), + href: baseUrl, + }, + { + title: grant?.name ?? formatMessage(m.home.grant), + href: currentUrl, + isTag: true, + }, + ] + + if (!grant) { + return null + } + + return ( + + } + > + + + { + return item?.href ? ( + + {link} + + ) : ( + link + ) + }} + /> + + + {grant.name} + + {grant.description} + + router.push(grant.applicationUrl?.slug ?? ''), + icon: 'open', + iconType: 'outline', + }} + /> + {grant.specialEmphasis?.length ? ( + <> + + {webRichText( + grant.specialEmphasis as SliceType[], + undefined, + locale, + )} + + + + ) : undefined} + {grant.whoCanApply?.length ? ( + <> + + {formatMessage(m.single.whoCanApply)} + + {webRichText( + grant.whoCanApply as SliceType[], + undefined, + locale, + )} + + + + + ) : undefined} + {grant.howToApply?.length ? ( + + {formatMessage(m.single.howToApply)} + + {webRichText( + grant.howToApply as SliceType[], + undefined, + locale, + )} + + + ) : undefined} + {grant.applicationDeadline?.length ? ( + + {webRichText( + grant.applicationDeadline as SliceType[], + undefined, + locale, + )} + + ) : undefined} + {grant.applicationHints?.length ? ( + + {webRichText( + grant.applicationHints as SliceType[], + undefined, + locale, + )} + + ) : undefined} + + + + ) +} + +interface GrantSingleProps { + grant?: Grant + locale: Locale +} + +const GrantSingle: CustomScreen = ({ + grant, + customPageData, + locale, +}) => { + return ( + + ) +} + +GrantSingle.getProps = async ({ apolloClient, locale, query }) => { + const { + data: { getSingleGrant: grant }, + } = await apolloClient.query({ + query: GET_GRANT_QUERY, + variables: { + input: { + lang: locale as ContentLanguage, + id: String(query.id), + }, + }, + }) + + if (!grant) { + throw new CustomNextError(404, 'Grant not found') + } + + return { + grant: grant ?? undefined, + locale: locale as Locale, + showSearchInHeader: false, + themeConfig: { + footerVersion: 'organization', + }, + } +} + +export default withMainLayout( + withCustomPageWrapper(CustomPageUniqueIdentifier.Grants, GrantSingle), +) diff --git a/apps/web/screens/Grants/Grant/GrantSidebar.tsx b/apps/web/screens/Grants/Grant/GrantSidebar.tsx new file mode 100644 index 000000000000..1d97d89b388c --- /dev/null +++ b/apps/web/screens/Grants/Grant/GrantSidebar.tsx @@ -0,0 +1,133 @@ +import { useMemo } from 'react' +import { useIntl } from 'react-intl' + +import { Box, Button, LinkV2, Stack, Text } from '@island.is/island-ui/core' +import { Locale } from '@island.is/shared/types' +import { isDefined } from '@island.is/shared/utils' +import { InstitutionPanel } from '@island.is/web/components' +import { Grant } from '@island.is/web/graphql/schema' +import { LinkType, useLinkResolver } from '@island.is/web/hooks' + +import { m } from '../messages' + +interface Props { + grant: Grant + locale: Locale +} + +const generateLine = (heading: string, content?: React.ReactNode) => { + if (!content) { + return null + } + return ( + + + {heading} + + {content} + + ) +} + +export const GrantSidebar = ({ grant, locale }: Props) => { + const { formatMessage } = useIntl() + const { linkResolver } = useLinkResolver() + + const detailPanelData = useMemo( + () => + [ + generateLine( + formatMessage(m.single.fund), + grant?.fund?.link?.slug ? ( + + + {grant.fund.title} + + + ) : undefined, + ), + generateLine( + formatMessage(m.single.category), + grant?.categoryTags + ? grant.categoryTags + .map((ct) => ct.title) + .filter(isDefined) + .join(', ') + : undefined, + ), + generateLine( + formatMessage(m.single.type), + grant?.typeTag?.title ? ( + {grant.typeTag?.title} + ) : undefined, + ), + generateLine( + formatMessage(m.single.deadline), + grant?.applicationDeadlineText ? ( + {grant.applicationDeadlineText} + ) : undefined, + ), + generateLine( + formatMessage(m.single.status), + grant?.statusText ? ( + {grant.statusText} + ) : undefined, + ), + ].filter(isDefined) ?? [], + [grant, formatMessage, linkResolver], + ) + + const filesPanelData = useMemo( + () => + grant.files + ?.map((f, index) => { + if (!f.url) { + return null + } + return ( + + + + ) + }) + .filter(isDefined) ?? [], + [grant.files], + ) + + return ( + + + {detailPanelData.length ? ( + + {detailPanelData} + + ) : undefined} + {filesPanelData.length ? ( + + {filesPanelData} + + ) : undefined} + + ) +} diff --git a/apps/web/screens/Grants/Home/GrantsHome.tsx b/apps/web/screens/Grants/Home/GrantsHome.tsx new file mode 100644 index 000000000000..d106bee459fe --- /dev/null +++ b/apps/web/screens/Grants/Home/GrantsHome.tsx @@ -0,0 +1,203 @@ +import { useIntl } from 'react-intl' +import NextLink from 'next/link' + +import { + ArrowLink, + Box, + Breadcrumbs, + CategoryCard, + GridColumn, + GridContainer, + GridRow, + Stack, + Text, +} from '@island.is/island-ui/core' +import { Locale } from '@island.is/shared/types' +import { GrantSearchSection } from '@island.is/web/components' +import { SLICE_SPACING } from '@island.is/web/constants' +import { + ContentLanguage, + CustomPageUniqueIdentifier, + GenericTag, + Query, + QueryGetGenericTagsInTagGroupsArgs, +} from '@island.is/web/graphql/schema' +import { useLinkResolver } from '@island.is/web/hooks' +import { withMainLayout } from '@island.is/web/layouts/main' + +import { + CustomScreen, + withCustomPageWrapper, +} from '../../CustomPage/CustomPageWrapper' +import { GET_GENERIC_TAGS_IN_TAG_GROUPS_QUERY } from '../../queries/GenericTag' +import { m } from '../messages' + +const GrantsHomePage: CustomScreen = ({ + categories, + locale, + customPageData, +}) => { + const { formatMessage } = useIntl() + const { linkResolver } = useLinkResolver() + + const baseUrl = linkResolver('styrkjatorg', [], locale).href + const searchUrl = linkResolver('styrkjatorgsearch', [], locale).href + + const breadcrumbItems = [ + { + title: 'Ísland.is', + href: linkResolver('homepage', [], locale).href, + }, + { + title: formatMessage(m.home.title), + href: baseUrl, + }, + ] + + return ( + + + { + return item?.href ? ( + + {link} + + ) : ( + link + ) + }} + /> + ) + } + /> + + + + + + {formatMessage(m.home.popularCategories)} + + + {formatMessage(m.home.allGrants)} + + + + + {categories?.map((c) => ( + + + + ))} + + + + + + ) +} + +interface GrantsHomeProps { + organization?: Query['getOrganization'] + categories?: Array + locale: Locale +} + +const GrantsHome: CustomScreen = ({ + categories, + organization, + customPageData, + locale, +}) => { + return ( + + ) +} + +GrantsHome.getProps = async ({ apolloClient, locale }) => { + const tagGroupCategory = 'grant-category' + //Todo: add more organizations ?? + + const { + data: { getGenericTagsInTagGroups: tags }, + } = await apolloClient.query({ + query: GET_GENERIC_TAGS_IN_TAG_GROUPS_QUERY, + variables: { + input: { + lang: locale as ContentLanguage, + tagGroupSlugs: [tagGroupCategory], + }, + }, + }) + + return { + categories: tags ?? [], + locale: locale as Locale, + showSearchInHeader: false, + themeConfig: { + footerVersion: 'organization', + }, + } +} + +export default withMainLayout( + withCustomPageWrapper(CustomPageUniqueIdentifier.Grants, GrantsHome), +) diff --git a/apps/web/screens/Grants/SearchResults/SearchResults.tsx b/apps/web/screens/Grants/SearchResults/SearchResults.tsx new file mode 100644 index 000000000000..b0ce8ffde03d --- /dev/null +++ b/apps/web/screens/Grants/SearchResults/SearchResults.tsx @@ -0,0 +1,413 @@ +import { useCallback, useEffect, useMemo, useState } from 'react' +import { useIntl } from 'react-intl' +import { useWindowSize } from 'react-use' +import debounce from 'lodash/debounce' +import NextLink from 'next/link' +import { useRouter } from 'next/router' +import { + parseAsArrayOf, + parseAsInteger, + parseAsString, +} from 'next-usequerystate' +import { useLazyQuery } from '@apollo/client' + +import { + Box, + BreadCrumbItem, + Breadcrumbs, + FilterInput, + Text, +} from '@island.is/island-ui/core' +import { theme } from '@island.is/island-ui/theme' +import { debounceTime } from '@island.is/shared/constants' +import { Locale } from '@island.is/shared/types' +import { GrantHeaderWithImage, GrantWrapper } from '@island.is/web/components' +import { + ContentLanguage, + CustomPageUniqueIdentifier, + GenericTag, + Grant, + GrantList, + Query, + QueryGetGenericTagsInTagGroupsArgs, + QueryGetGrantsArgs, +} from '@island.is/web/graphql/schema' +import { useLinkResolver } from '@island.is/web/hooks' +import { withMainLayout } from '@island.is/web/layouts/main' + +import { + CustomScreen, + withCustomPageWrapper, +} from '../../CustomPage/CustomPageWrapper' +import SidebarLayout from '../../Layouts/SidebarLayout' +import { GET_GENERIC_TAGS_IN_TAG_GROUPS_QUERY } from '../../queries/GenericTag' +import { GET_GRANTS_QUERY } from '../../queries/Grants' +import { m } from '../messages' +import { SearchResultsContent } from './SearchResultsContent' +import { GrantsSearchResultsFilter } from './SearchResultsFilter' + +export interface SearchState { + page?: number + query?: string + status?: Array + category?: Array + type?: Array + organization?: Array +} + +const GrantsSearchResultsPage: CustomScreen = ({ + locale, + initialGrants, + tags, +}) => { + const { formatMessage } = useIntl() + const router = useRouter() + const { linkResolver } = useLinkResolver() + + const parentUrl = linkResolver('styrkjatorg', [], locale).href + const currentUrl = linkResolver('styrkjatorgsearch', [], locale).href + + const [grants, setGrants] = useState>(initialGrants ?? []) + const [searchState, setSearchState] = useState() + const [initialRender, setInitialRender] = useState(true) + + const { width } = useWindowSize() + const isMobile = width <= theme.breakpoints.md + + const [getGrants, { error }] = useLazyQuery< + { getGrants: GrantList }, + QueryGetGrantsArgs + >(GET_GRANTS_QUERY) + + //load params into search state on first render + useEffect(() => { + const searchParams = new URLSearchParams(document.location.search) + const page = searchParams.get('page') + const statuses = searchParams.getAll('status') + const categories = searchParams.getAll('category') + const types = searchParams.getAll('type') + const organizations = searchParams.getAll('organization') + + setSearchState({ + page: page ? Number.parseInt(page) : undefined, + query: searchParams.get('query') ?? undefined, + status: statuses.length ? statuses : undefined, + category: categories.length ? categories : undefined, + type: types.length ? types : undefined, + organization: organizations.length ? organizations : undefined, + }) + }, []) + + const updateUrl = useCallback(() => { + if (!searchState) { + return + } + router.replace( + { + pathname: currentUrl, + query: Object.entries(searchState) + .filter(([_, value]) => !!value) + .reduce( + (accumulator, [searchStateKey, searchStateValue]) => ({ + ...accumulator, + [searchStateKey]: searchStateValue, + }), + {}, + ), + }, + undefined, + { shallow: true }, + ) + }, [searchState, router, currentUrl]) + + const fetchGrants = useCallback(() => { + if (initialRender) { + setInitialRender(false) + return + } + getGrants({ + variables: { + input: { + categories: searchState?.category, + lang: locale, + organizations: searchState?.organization, + page: searchState?.page, + search: searchState?.query, + size: 8, + statuses: searchState?.status, + types: searchState?.type, + }, + }, + }) + .then((res) => { + if (res.data) { + setGrants(res.data.getGrants.items) + } else if (res.error) { + setGrants([]) + console.error('Error fetching grants', res.error) + } + }) + .catch((err) => { + setGrants([]) + console.error('Error fetching grants', err) + }) + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [searchState, initialRender]) + + //SEARCH STATE UPDATES + const debouncedSearchUpdate = useMemo(() => { + return debounce(() => { + updateUrl() + fetchGrants() + }, debounceTime.search) + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [searchState]) + + useEffect(() => { + debouncedSearchUpdate() + return () => { + debouncedSearchUpdate.cancel() + } + }, [debouncedSearchUpdate]) + + const updateSearchStateValue = ( + categoryId: keyof SearchState, + values: unknown, + ) => { + setSearchState({ + ...searchState, + [categoryId]: values, + }) + } + + const breadcrumbItems: Array = [ + { + title: 'Ísland.is', + href: linkResolver('homepage', [], locale).href, + }, + { + title: formatMessage(m.home.title), + href: parentUrl, + }, + { + title: formatMessage(m.search.results), + href: currentUrl, + isTag: true, + }, + ] + + const onResetFilter = () => { + setSearchState({ + page: undefined, + query: undefined, + status: undefined, + category: undefined, + type: undefined, + organization: undefined, + }) + router.replace(currentUrl, {}, { shallow: true }) + } + + const hitsMessage = useMemo(() => { + if (!grants) { + return + } + if (grants.length === 1) { + return formatMessage(m.search.resultFound, { + arg: {grants.length}, + }) + } + return formatMessage(m.search.resultsFound, { + arg: {grants.length}, + }) + }, [formatMessage, grants]) + + return ( + + { + return item?.href ? ( + + {link} + + ) : ( + link + ) + }} + /> + ) + } + /> + + {!isMobile && ( + + + + {formatMessage(m.search.search)} + + + + + updateSearchStateValue('query', option) + } + /> + + + + } + > + + + + + )} + {isMobile && ( + + + + {formatMessage(m.search.search)} + + + + updateSearchStateValue('query', option)} + backgroundColor={'white'} + /> + + + {hitsMessage} + + + + + )} +
+ + ) +} + +interface GrantsHomeProps { + locale: Locale + initialGrants?: Array + tags?: Array +} + +const GrantsSearchResults: CustomScreen = ({ + initialGrants, + tags, + customPageData, + locale, +}) => { + return ( + + ) +} + +GrantsSearchResults.getProps = async ({ apolloClient, locale, query }) => { + const arrayParser = parseAsArrayOf(parseAsString) + + const parseArray = (arg: string | string[] | undefined) => { + const array = arrayParser.parseServerSide(arg) + + if (array && array.length > 0) { + return array + } + + return undefined + } + const [ + { + data: { getGrants }, + }, + { + data: { getGenericTagsInTagGroups }, + }, + ] = await Promise.all([ + apolloClient.query({ + query: GET_GRANTS_QUERY, + variables: { + input: { + lang: locale as ContentLanguage, + page: parseAsInteger.withDefault(1).parseServerSide(query?.page), + search: parseAsString.parseServerSide(query?.query) ?? undefined, + categories: parseArray(query?.category), + statuses: parseArray(query?.status), + types: parseArray(query?.type), + organizations: parseArray(query?.organization), + }, + }, + }), + apolloClient.query({ + query: GET_GENERIC_TAGS_IN_TAG_GROUPS_QUERY, + variables: { + input: { + lang: locale as ContentLanguage, + tagGroupSlugs: ['grant-category', 'grant-type'], + }, + }, + }), + ]) + return { + initialGrants: getGrants.items, + tags: getGenericTagsInTagGroups ?? undefined, + locale: locale as Locale, + themeConfig: { + footerVersion: 'organization', + }, + } +} + +export default withMainLayout( + withCustomPageWrapper(CustomPageUniqueIdentifier.Grants, GrantsSearchResults), +) diff --git a/apps/web/screens/Grants/SearchResults/SearchResultsContent.tsx b/apps/web/screens/Grants/SearchResults/SearchResultsContent.tsx new file mode 100644 index 000000000000..163c5f3b08c4 --- /dev/null +++ b/apps/web/screens/Grants/SearchResults/SearchResultsContent.tsx @@ -0,0 +1,151 @@ +import { useIntl } from 'react-intl' +import { useWindowSize } from 'react-use' +import format from 'date-fns/format' +import { useRouter } from 'next/router' + +import { Box, Inline, TagVariant, Text } from '@island.is/island-ui/core' +import { theme } from '@island.is/island-ui/theme' +import { Locale } from '@island.is/shared/types' +import { isDefined } from '@island.is/shared/utils' +import { PlazaCard } from '@island.is/web/components' +import { Grant, GrantStatus } from '@island.is/web/graphql/schema' +import { useLinkResolver } from '@island.is/web/hooks' + +import { m } from '../messages' + +interface Props { + grants?: Array + subheader?: React.ReactNode + locale: Locale +} + +export const SearchResultsContent = ({ grants, subheader, locale }: Props) => { + const { formatMessage } = useIntl() + const router = useRouter() + const { linkResolver } = useLinkResolver() + + const { width } = useWindowSize() + const isMobile = width <= theme.breakpoints.md + const isTablet = width <= theme.breakpoints.lg && width > theme.breakpoints.md + + return ( + <> + {!isMobile && ( + + {subheader} + + )} + {grants?.length ? ( + + {grants?.map((grant) => { + if (!grant) { + return null + } + + let tagVariant: TagVariant | undefined + switch (grant.status) { + case GrantStatus.Open: + tagVariant = 'mint' + break + case GrantStatus.Closed: + tagVariant = 'rose' + break + case GrantStatus.OpensSoon: + tagVariant = 'purple' + break + default: + break + } + + return ( + + {grant.applicationId && ( + { + router.push( + linkResolver( + 'styrkjatorggrant', + [grant?.applicationId ?? ''], + locale, + ).href, + ) + }, + icon: 'arrowForward', + }} + detailLines={[ + grant.dateFrom && grant.dateTo + ? { + icon: 'calendar' as const, + text: `${format( + new Date(grant.dateFrom), + 'dd.MM.', + )}-${format(new Date(grant.dateTo), 'dd.MM.yyyy')}`, + } + : null, + { + icon: 'time' as const, + //todo: fix when the text is ready + text: 'Frestur til 16.08.2024, kl. 15.00', + }, + grant.categoryTags + ? { + icon: 'informationCircle' as const, + text: grant.categoryTags + .map((ct) => ct.title) + .filter(isDefined) + .join(', '), + } + : undefined, + ].filter(isDefined)} + /> + )} + + ) + })} + + ) : undefined} + {!grants?.length && ( + + + + {formatMessage(m.search.noResultsFound)} + + + {!(isTablet || isMobile) && ( + {formatMessage(m.search.noResultsFound)} + )} + + )} + + ) +} diff --git a/apps/web/screens/Grants/SearchResults/SearchResultsFilter.tsx b/apps/web/screens/Grants/SearchResults/SearchResultsFilter.tsx new file mode 100644 index 000000000000..df716f5c3d7e --- /dev/null +++ b/apps/web/screens/Grants/SearchResults/SearchResultsFilter.tsx @@ -0,0 +1,137 @@ +import { useIntl } from 'react-intl' + +import { + Box, + Filter, + FilterMultiChoice, + FilterProps, +} from '@island.is/island-ui/core' +import { isDefined } from '@island.is/shared/utils' +import { GenericTag } from '@island.is/web/graphql/schema' + +import { m } from '../messages' +import { SearchState } from './SearchResults' + +interface Props { + onSearchUpdate: (categoryId: keyof SearchState, value: unknown) => void + onReset: () => void + searchState?: SearchState + tags: Array + url: string + variant?: FilterProps['variant'] +} + +export const GrantsSearchResultsFilter = ({ + onSearchUpdate, + onReset, + searchState, + tags, + url, + variant = 'default', +}: Props) => { + const { formatMessage } = useIntl() + const categoryFilters = tags?.filter( + (t) => t.genericTagGroup?.slug === 'grant-category', + ) + + const typeFilters = tags?.filter( + (t) => t.genericTagGroup?.slug === 'grant-type', + ) + + return ( + { + e.preventDefault() + }} + > + + + { + onSearchUpdate( + categoryId as keyof SearchState, + selected.length ? selected : undefined, + ) + }} + onClear={(categoryId) => { + onSearchUpdate(categoryId as keyof SearchState, undefined) + }} + categories={[ + { + id: 'status', + label: formatMessage(m.search.applicationStatus), + selected: searchState?.['status'] ?? [], + filters: [ + { + value: 'open', + label: formatMessage(m.search.applicationOpen), + }, + { + value: 'open-soon', + label: formatMessage(m.search.applicationOpensSoon), + }, + { + value: 'closed', + label: formatMessage(m.search.applicationClosed), + }, + ], + }, + categoryFilters + ? { + id: 'category', + label: formatMessage(m.search.category), + selected: searchState?.['category'] ?? [], + filters: categoryFilters.map((t) => ({ + value: t.slug, + label: t.title, + })), + } + : undefined, + typeFilters + ? { + id: 'type', + label: formatMessage(m.search.type), + selected: searchState?.['type'] ?? [], + filters: typeFilters.map((t) => ({ + value: t.slug, + label: t.title, + })), + } + : undefined, + { + id: 'organization', + label: formatMessage(m.search.organization), + + selected: searchState?.['organization'] ?? [], + filters: [ + { + value: 'rannis', + label: 'Rannís', + }, + { + value: 'tonlistarmidstod', + label: 'Tónlistarmiðstöð', + }, + { + value: 'kvikmyndastod', + label: 'Kvikmyndastöð', + }, + ], + }, + ].filter(isDefined)} + /> + + + + ) +} diff --git a/apps/web/screens/Grants/messages.ts b/apps/web/screens/Grants/messages.ts new file mode 100644 index 000000000000..15a1cf7d595a --- /dev/null +++ b/apps/web/screens/Grants/messages.ts @@ -0,0 +1,165 @@ +import { defineMessages } from 'react-intl' + +export const m = { + general: defineMessages({ + seeMore: { + id: 'web.grants:general.seeMore', + defaultMessage: 'Skoða nánar', + }, + }), + search: defineMessages({ + search: { + id: 'web.grants:search.search', + defaultMessage: 'Leit', + }, + description: { + id: 'web.grants:search.description', + defaultMessage: 'Lýsing', + }, + results: { + id: 'web.grants:search.results', + defaultMessage: 'Leitarniðurstöður', + }, + inputPlaceholder: { + id: 'web.grants:search.inputPlaceholder', + defaultMessage: 'Sía eftir leitarorði', + }, + clearFilters: { + id: 'web.grants:search.clearFilters', + defaultMessage: 'Hreinsa allar síur', + }, + clearFilterCategory: { + id: 'web.grants:search.clearFilterCategory', + defaultMessage: 'Hreinsa flokk', + }, + applicationStatus: { + id: 'web.grants:search.applicationStatus', + defaultMessage: 'Staða umsóknar', + }, + applicationOpen: { + id: 'web.grants:search.applicationOpen', + defaultMessage: 'Opið fyrir umsóknir', + }, + applicationClosed: { + id: 'web.grants:search.applicationClosed', + defaultMessage: 'Lokað fyrir umsóknir', + }, + applicationOpensSoon: { + id: 'web.grants:search.applicationOpensSoon', + defaultMessage: 'Opnar fljótlega', + }, + category: { + id: 'web.grants:search.category', + defaultMessage: 'Flokkun', + }, + type: { + id: 'web.grants:search.type', + defaultMessage: 'Tegund', + }, + resultFound: { + id: 'web.grants:search.resultFound', + defaultMessage: '{arg} styrkur fannst', + }, + resultsFound: { + id: 'web.grants:search.resultsFound', + defaultMessage: '{arg} styrkir fundust', + }, + noResultsFound: { + id: 'web.grants:search.noResultsFound', + defaultMessage: 'Engir styrkir fundust', + }, + organization: { + id: 'web.grants:search.organization', + defaultMessage: 'Stofnun', + }, + }), + single: defineMessages({ + fund: { + id: 'web.grants:single.fund', + defaultMessage: 'Sjóður', + }, + category: { + id: 'web.grants:single.category', + defaultMessage: 'Styrkjaflokkun', + }, + provider: { + id: 'web.grants:single.provider', + defaultMessage: 'Þjónustuaðili', + }, + unknownInstitution: { + id: 'web.grants:single.unknownInstitution', + defaultMessage: 'Óþekkt stofnun', + }, + type: { + id: 'web.grants:single.type', + defaultMessage: 'Tegund', + }, + deadline: { + id: 'web.grants:single.deadline', + defaultMessage: 'Umsóknarfrestur', + }, + status: { + id: 'web.grants:single.status', + defaultMessage: 'Staða', + }, + whatIsGranted: { + id: 'web.grants:single.whatIsGranted', + defaultMessage: 'Hvað er styrkt?', + }, + specialEmphasis: { + id: 'web.grants:single.specialEmphasis', + defaultMessage: 'Sérstakar áherslur', + }, + whoCanApply: { + id: 'web.grants:single.whoCanApply', + defaultMessage: 'Hverjir geta sótt um?', + }, + apply: { + id: 'web.grants:single.apply', + defaultMessage: 'Sækja um', + }, + howToApply: { + id: 'web.grants:single.howToApply', + defaultMessage: 'Hvernig er sótt um?', + }, + }), + home: defineMessages({ + title: { + id: 'web.grants:home.title', + defaultMessage: 'Styrkjatorg', + }, + grant: { + id: 'web.grants:home.gramt', + defaultMessage: 'Styrkur', + }, + description: { + id: 'web.grants:home.description', + defaultMessage: 'Styrkjatorg lýsing .....', + }, + featuredImage: { + id: 'web.grants:home.featuredImage', + defaultMessage: + 'https://images.ctfassets.net/8k0h54kbe6bj/5LqU9yD9nzO5oOijpZF0K0/b595e1cf3e72bc97b2f9d869a53f5da9/LE_-_Jobs_-_S3.png', + }, + featuredImageAlt: { + id: 'web.grants:home.featuredImageAlt', + defaultMessage: 'Mynd af klemmuspjaldi ásamt blýanti', + }, + inputPlaceholder: { + id: 'web.grants:home.inputPlaceholder', + defaultMessage: 'Leitaðu á styrkjatorgi', + }, + mostVisited: { + id: 'web.grants:home.mostVisited', + defaultMessage: 'Mest sótt', + }, + popularCategories: { + id: 'web.grants:home.popularCategories', + defaultMessage: 'Vinsælir flokkar', + }, + allGrants: { + id: 'web.grants:home.allGrants', + defaultMessage: 'Allir styrkir', + }, + }), +} diff --git a/apps/web/screens/queries/GenericTag.ts b/apps/web/screens/queries/GenericTag.ts index 91b0797138c8..7ed6c061300c 100644 --- a/apps/web/screens/queries/GenericTag.ts +++ b/apps/web/screens/queries/GenericTag.ts @@ -8,3 +8,18 @@ export const GET_GENERIC_TAG_BY_SLUG_QUERY = gql` } } ` + +export const GET_GENERIC_TAGS_IN_TAG_GROUPS_QUERY = gql` + query GetGenericTagInTagGroups($input: GetGenericTagsInTagGroupsInput!) { + getGenericTagsInTagGroups(input: $input) { + id + title + slug + genericTagGroup { + id + title + slug + } + } + } +` diff --git a/apps/web/screens/queries/Grants.ts b/apps/web/screens/queries/Grants.ts new file mode 100644 index 000000000000..b042c9e46aa4 --- /dev/null +++ b/apps/web/screens/queries/Grants.ts @@ -0,0 +1,126 @@ +import gql from 'graphql-tag' +import { nestedFields, slices } from './fragments' + +export const GET_GRANTS_QUERY = gql` + query GetGrants($input: GetGrantsInput!) { + getGrants(input: $input) { + items { + id + name + description + applicationId + applicationDeadlineText + applicationUrl { + slug + type + } + dateFrom + dateTo + isOpen + status + statusText + categoryTags { + id + title + genericTagGroup { + title + } + } + typeTag { + id + title + genericTagGroup { + title + } + } + fund { + id + title + link { + slug + type + } + featuredImage { + id + url + } + parentOrganization { + id + title + logo { + url + } + } + } + } + } + } +` + +export const GET_GRANT_QUERY = gql` + query GetGrant($input: GetSingleGrantInput!) { + getSingleGrant(input: $input) { + id + name + description + applicationId + applicationUrl { + slug + type + } + applicationDeadlineText + statusText + categoryTags { + id + title + } + typeTag { + id + title + } + files { + ...AssetFields + } + fund { + id + title + link { + slug + type + } + featuredImage { + id + url + } + parentOrganization { + id + title + logo { + url + } + } + } + specialEmphasis { + ...AllSlices + ${nestedFields} + } + whoCanApply { + ...AllSlices + ${nestedFields} + } + howToApply { + ...AllSlices + ${nestedFields} + } + applicationDeadline { + ...AllSlices + ${nestedFields} + } + applicationHints { + ...AllSlices + ${nestedFields} + } + } + } + ${slices} +` diff --git a/apps/web/screens/queries/index.tsx b/apps/web/screens/queries/index.tsx index a1e0347e1114..9b1c24ac57bc 100644 --- a/apps/web/screens/queries/index.tsx +++ b/apps/web/screens/queries/index.tsx @@ -13,6 +13,7 @@ export * from './Adgerdir' export * from './Frontpage' export * from './TellUsAStory' export * from './ServiceWebForms' +export * from './Grants' export * from './ApiCatalogue' export * from './SubpageHeader' export * from './ErrorPage' diff --git a/libs/cms/src/lib/cms.contentful.service.ts b/libs/cms/src/lib/cms.contentful.service.ts index 71bcfabb44cc..f54e8a4794c9 100644 --- a/libs/cms/src/lib/cms.contentful.service.ts +++ b/libs/cms/src/lib/cms.contentful.service.ts @@ -77,10 +77,13 @@ import { mapImage } from './models/image.model' import { EmailSignup, mapEmailSignup } from './models/emailSignup.model' import { GetTabSectionInput } from './dto/getTabSection.input' import { mapTabSection, TabSection } from './models/tabSection.model' -import { GetGenericTagBySlugInput } from './dto/getGenericTagBySlug.input' import { GenericTag, mapGenericTag } from './models/genericTag.model' import { GetEmailSignupInput } from './dto/getEmailSignup.input' import { LifeEventPage, mapLifeEventPage } from './models/lifeEventPage.model' +import { GetGenericTagBySlugInput } from './dto/getGenericTagBySlug.input' +import { GetGenericTagsInTagGroupsInput } from './dto/getGenericTagsInTagGroups.input' +import { Grant, mapGrant } from './models/grant.model' +import { GrantList } from './models/grantList.model' import { mapManual } from './models/manual.model' import { mapServiceWebPage } from './models/serviceWebPage.model' import { mapEvent } from './models/event.model' @@ -599,6 +602,19 @@ export class CmsContentfulService { return (result.items as types.INews[]).map(mapNews)[0] ?? null } + async getGrant(lang: string, id: string): Promise { + const params = { + ['content_type']: 'grant', + 'fields.grantApplicationId': id, + } + + const result = await this.contentfulRepository + .getLocalizedEntries(lang, params) + .catch(errorHandler('getGrant')) + + return (result.items as types.IGrant[]).map(mapGrant)[0] ?? null + } + async getSingleEvent(lang: string, slug: string) { const params = { ['content_type']: 'event', @@ -1110,4 +1126,29 @@ export class CmsContentfulService { return (result.items as types.IGenericTag[]).map(mapGenericTag)[0] ?? null } + + async getGenericTagsInTagGroups({ + lang = 'is', + tagGroupSlugs, + }: GetGenericTagsInTagGroupsInput): Promise | null> { + let params + if (tagGroupSlugs) { + params = { + ['content_type']: 'genericTag', + 'fields.genericTagGroup.fields.slug[in]': tagGroupSlugs.join(','), + 'fields.genericTagGroup.sys.contentType.sys.id': 'genericTagGroup', + } + } else { + params = { + ['content_type']: 'genericTag', + 'fields.genericTagGroup.sys.contentType.sys.id': 'genericTagGroup', + } + } + + const result = await this.contentfulRepository + .getLocalizedEntries(lang, params) + .catch(errorHandler('getGenericTag')) + + return (result.items as types.IGenericTag[]).map(mapGenericTag) + } } diff --git a/libs/cms/src/lib/cms.elasticsearch.service.ts b/libs/cms/src/lib/cms.elasticsearch.service.ts index 1a248a16e320..6f83b2649b4e 100644 --- a/libs/cms/src/lib/cms.elasticsearch.service.ts +++ b/libs/cms/src/lib/cms.elasticsearch.service.ts @@ -46,6 +46,10 @@ import { GetGenericListItemBySlugInput } from './dto/getGenericListItemBySlug.in import { GenericListItem } from './models/genericListItem.model' import { GetTeamMembersInput } from './dto/getTeamMembers.input' import { TeamMemberResponse } from './models/teamMemberResponse.model' +import { GetGrantsInput } from './dto/getGrants.input' +import { Grant } from './models/grant.model' +import { GrantList } from './models/grantList.model' +import { logger } from '@island.is/logging' @Injectable() export class CmsElasticsearchService { @@ -605,6 +609,120 @@ export class CmsElasticsearchService { .filter(Boolean) } + async getGrants( + index: string, + { + lang, + search, + page = 1, + size = 8, + statuses, + categories, + types, + organizations, + }: GetGrantsInput, + ): Promise { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const must: Record[] = [ + { + term: { + type: { + value: 'webGrant', + }, + }, + }, + ] + + let queryString = search ? search.toLowerCase() : '' + + if (lang === 'is') { + queryString = queryString.replace('`', '') + } + + const sort: ('_score' | sortRule)[] = [ + { + [SortField.RELEASE_DATE]: { + order: SortDirection.DESC, + }, + }, + // Sort items with equal values by ascending title order + { 'title.sort': { order: SortDirection.ASC } }, + ] + + // Order by score first in case there is a query string + if (queryString.length > 0 && queryString !== '*') { + sort.unshift('_score') + } + + if (queryString) { + must.push({ + simple_query_string: { + query: queryString + '*', + fields: ['title^100', 'content'], + analyze_wildcard: true, + }, + }) + } + + const tagFilters: Array> = [] + + if (categories) { + tagFilters.push(categories) + } + if (types) { + tagFilters.push(types) + } + if (statuses) { + tagFilters.push(statuses) + } + if (organizations) { + tagFilters.push(organizations) + } + + tagFilters.forEach((filter) => { + must.push({ + nested: { + path: 'tags', + query: { + bool: { + must: [ + { + terms: { + 'tags.key': filter, + }, + }, + { + term: { + 'tags.type': 'genericTag', + }, + }, + ], + }, + }, + }, + }) + }) + + const grantListResponse: ApiResponse> = + await this.elasticService.findByQuery(index, { + query: { + bool: { + must, + }, + }, + sort, + size, + from: (page - 1) * size, + }) + + return { + total: grantListResponse.body.hits.total.value, + items: grantListResponse.body.hits.hits.map((response) => + JSON.parse(response._source.response ?? '[]'), + ), + } + } + async getPublishedMaterial( index: string, { diff --git a/libs/cms/src/lib/cms.resolver.ts b/libs/cms/src/lib/cms.resolver.ts index 63ad79020440..462b5e4531ec 100644 --- a/libs/cms/src/lib/cms.resolver.ts +++ b/libs/cms/src/lib/cms.resolver.ts @@ -121,6 +121,11 @@ import { TeamMemberResponse } from './models/teamMemberResponse.model' import { TeamList } from './models/teamList.model' import { TeamMember } from './models/teamMember.model' import { LatestGenericListItems } from './models/latestGenericListItems.model' +import { GetGenericTagsInTagGroupsInput } from './dto/getGenericTagsInTagGroups.input' +import { Grant } from './models/grant.model' +import { GetGrantsInput } from './dto/getGrants.input' +import { GetSingleGrantInput } from './dto/getSingleGrant.input' +import { GrantList } from './models/grantList.model' const defaultCache: CacheControlOptions = { maxAge: CACHE_CONTROL_MAX_AGE } @@ -444,6 +449,23 @@ export class CmsResolver { ) } + @CacheControl(defaultCache) + @Query(() => GrantList) + async getGrants(@Args('input') input: GetGrantsInput): Promise { + return this.cmsElasticsearchService.getGrants( + getElasticsearchIndex(input.lang), + input, + ) + } + + @CacheControl(defaultCache) + @Query(() => Grant, { nullable: true }) + async getSingleGrant( + @Args('input') { lang, id }: GetSingleGrantInput, + ): Promise { + return this.cmsContentfulService.getGrant(lang, id) + } + @CacheControl(defaultCache) @Query(() => News, { nullable: true }) getSingleNews( @@ -606,6 +628,14 @@ export class CmsResolver { return this.cmsContentfulService.getGenericTagBySlug(input) } + @CacheControl(defaultCache) + @Query(() => [GenericTag], { nullable: true }) + getGenericTagsInTagGroups( + @Args('input') input: GetGenericTagsInTagGroupsInput, + ): Promise | null> { + return this.cmsContentfulService.getGenericTagsInTagGroups(input) + } + @CacheControl(defaultCache) @Query(() => Manual, { nullable: true }) getSingleManual( diff --git a/libs/cms/src/lib/dto/getGenericTagsInTagGroups.input.ts b/libs/cms/src/lib/dto/getGenericTagsInTagGroups.input.ts new file mode 100644 index 000000000000..b91d2891d97d --- /dev/null +++ b/libs/cms/src/lib/dto/getGenericTagsInTagGroups.input.ts @@ -0,0 +1,14 @@ +import { Field, InputType } from '@nestjs/graphql' +import { IsArray, IsOptional, IsString } from 'class-validator' + +@InputType() +export class GetGenericTagsInTagGroupsInput { + @Field(() => String) + @IsString() + lang = 'is-IS' + + @Field(() => [String], { nullable: true }) + @IsArray() + @IsOptional() + tagGroupSlugs?: Array +} diff --git a/libs/cms/src/lib/dto/getGrants.input.ts b/libs/cms/src/lib/dto/getGrants.input.ts new file mode 100644 index 000000000000..bfe512bad196 --- /dev/null +++ b/libs/cms/src/lib/dto/getGrants.input.ts @@ -0,0 +1,45 @@ +import { IsArray, IsInt, IsOptional, IsString } from 'class-validator' +import { Field, InputType, Int } from '@nestjs/graphql' +import { ElasticsearchIndexLocale } from '@island.is/content-search-index-manager' + +@InputType() +export class GetGrantsInput { + @Field({ nullable: true }) + @IsString() + @IsOptional() + search?: string + + @Field(() => String) + @IsString() + lang: ElasticsearchIndexLocale = 'is' + + @Field(() => Int, { nullable: true }) + @IsInt() + @IsOptional() + page?: number = 1 + + @Field(() => Int, { nullable: true }) + @IsInt() + @IsOptional() + size?: number = 8 + + @Field(() => [String], { nullable: true }) + @IsArray() + @IsOptional() + statuses?: string[] + + @Field(() => [String], { nullable: true }) + @IsArray() + @IsOptional() + categories?: string[] + + @Field(() => [String], { nullable: true }) + @IsArray() + @IsOptional() + types?: string[] + + @Field(() => [String], { nullable: true }) + @IsArray() + @IsOptional() + organizations?: string[] +} diff --git a/libs/cms/src/lib/dto/getSingleGrant.input.ts b/libs/cms/src/lib/dto/getSingleGrant.input.ts new file mode 100644 index 000000000000..95e668413368 --- /dev/null +++ b/libs/cms/src/lib/dto/getSingleGrant.input.ts @@ -0,0 +1,14 @@ +import { Field, InputType } from '@nestjs/graphql' +import { IsString } from 'class-validator' +import { ElasticsearchIndexLocale } from '@island.is/content-search-index-manager' + +@InputType() +export class GetSingleGrantInput { + @Field() + @IsString() + id!: string + + @Field(() => String) + @IsString() + lang: ElasticsearchIndexLocale = 'is' +} diff --git a/libs/cms/src/lib/environments/environment.ts b/libs/cms/src/lib/environments/environment.ts index 0e973855b528..6b4bb5935d35 100644 --- a/libs/cms/src/lib/environments/environment.ts +++ b/libs/cms/src/lib/environments/environment.ts @@ -8,6 +8,7 @@ export default { 'articleCategory', 'news', 'page', + 'grant', 'vidspyrnaPage', 'menu', 'groupedMenu', diff --git a/libs/cms/src/lib/generated/contentfulTypes.d.ts b/libs/cms/src/lib/generated/contentfulTypes.d.ts index 83dd0e9ffc84..1391d3119346 100644 --- a/libs/cms/src/lib/generated/contentfulTypes.d.ts +++ b/libs/cms/src/lib/generated/contentfulTypes.d.ts @@ -8,7 +8,7 @@ export interface IAccordionSliceFields { title?: string | undefined /** Type */ - type: 'accordion' | 'accordion_minimal' | 'CTA' | 'category_card' + type: 'accordion' | 'accordion_minimal' | 'category_card' /** Accordion Items */ accordionItems?: IOneColumnText[] | undefined @@ -770,6 +770,7 @@ export interface ICustomPageFields { | 'PensionCalculator' | 'OfficialJournalOfIceland' | 'Vacancies' + | 'Grants' | undefined /** Alert Banner */ @@ -1549,6 +1550,39 @@ export interface IFrontpageSlider extends Entry { } } +export interface IFundFields { + /** Title */ + fundTitle: string + + /** Link */ + fundLink?: IArticle | IOrganizationSubpage | ILinkUrl | undefined + + /** Featured Image */ + fundFeaturedImage: Asset + + /** Parent Organization */ + fundParentOrganization: IOrganization +} + +/** Fund is a part of "Styrkjatorg". */ + +export interface IFund extends Entry { + sys: { + id: string + type: string + createdAt: string + updatedAt: string + locale: string + contentType: { + sys: { + id: 'fund' + linkType: 'ContentType' + type: 'Link' + } + } + } +} + export interface IGenericListFields { /** Internal Title */ internalTitle: string @@ -1596,7 +1630,7 @@ export interface IGenericListItemFields { title: string /** Date */ - date: string + date?: string | undefined /** Card Intro */ cardIntro?: Document | undefined @@ -1749,6 +1783,9 @@ export interface IGenericTagGroupFields { /** Slug */ slug: string + + /** Items */ + items?: Record | undefined } /** A way to group together generic tags */ @@ -1770,6 +1807,85 @@ export interface IGenericTagGroup extends Entry { } } +export interface IGrantFields { + /** Title */ + grantName: string + + /** Description */ + grantDescription?: string | undefined + + /** Grant Application ID */ + grantApplicationId?: string | undefined + + /** Application deadline text */ + grantApplicationDeadlineText: string[] + + /** Application Url */ + granApplicationUrl?: ILinkUrl | undefined + + /** Special emphasis */ + grantSpecialEmphasis?: Document | undefined + + /** Who can apply? */ + grantWhoCanApply?: Document | undefined + + /** How to apply? */ + grantHowToApply?: Document | undefined + + /** Application deadline */ + grantApplicationDeadline?: Document | undefined + + /** Application hints */ + grantApplicationHints?: Document | undefined + + /** Date from */ + grantDateFrom?: string | undefined + + /** Date to */ + grantDateTo?: string | undefined + + /** Is open? */ + grantIsOpen?: boolean | undefined + + /** Status */ + grantStatus?: + | 'Opið fyrir umsóknir' + | 'Lokað fyrir umsóknir' + | 'Opnar fljótlega' + | undefined + + /** Files */ + grantFiles?: Asset[] | undefined + + /** Category tags */ + grantCategoryTags?: IGenericTag[] | undefined + + /** Type tag */ + grantTypeTag?: IGenericTag | undefined + + /** Fund */ + grantFund: IFund +} + +/** Grant is a part of "Styrkjatorg". */ + +export interface IGrant extends Entry { + sys: { + id: string + type: string + createdAt: string + updatedAt: string + locale: string + contentType: { + sys: { + id: 'grant' + linkType: 'ContentType' + type: 'Link' + } + } + } +} + export interface IGraphCardFields { /** Graph Title */ graphTitle: string @@ -1935,7 +2051,7 @@ export interface IIntroLinkImageFields { /** Image */ image: Asset - /** Left Image */ + /** Image Position */ leftImage?: boolean | undefined /** Link Title */ @@ -2011,7 +2127,7 @@ export interface ILatestGenericListItemsFields { genericList?: IGenericList | undefined /** See more page */ - seeMorePage?: IOrganizationSubpage | undefined + seeMorePage: IOrganizationSubpage /** See more link text */ seeMoreLinkText?: string | undefined @@ -2135,6 +2251,34 @@ export interface ILifeEventPage extends Entry { } } +export interface ILifeEventPageListSliceFields { + /** Title */ + title?: string | undefined + + /** List */ + lifeEventPageList?: (ILifeEventPage | IAnchorPage)[] | undefined +} + +/** !!DO NOT USE!! - This content type has been deprecated. Use Anchor Page List */ + +export interface ILifeEventPageListSlice + extends Entry { + sys: { + id: string + type: string + createdAt: string + updatedAt: string + locale: string + contentType: { + sys: { + id: 'lifeEventPageListSlice' + linkType: 'ContentType' + type: 'Link' + } + } + } +} + export interface ILinkFields { /** Text */ text: string @@ -2737,6 +2881,9 @@ export interface IOneColumnTextFields { /** Show Title */ showTitle?: boolean | undefined + + /** Filter tags */ + filterTags?: IGenericTag[] | undefined } export interface IOneColumnText extends Entry { @@ -2924,6 +3071,9 @@ export interface IOrganizationFields { /** Kennitala */ kennitala?: string | undefined + + /** Alert Banner */ + alertBanner?: IAlertBanner | undefined } export interface IOrganization extends Entry { @@ -2982,6 +3132,7 @@ export interface IOrganizationPageFields { | IAnchorPageList | ISectionWithImage | IChartNumberBox + | ILatestGenericListItems )[] | undefined @@ -3176,6 +3327,7 @@ export interface IOrganizationSubpageFields { | ISectionWithVideo | ISectionHeading | ILatestEventsSlice + | IGenericList )[] | undefined @@ -3878,6 +4030,10 @@ export interface ISliceConnectedComponentFields { | 'SpecificHousingBenefitSupportCalculator' | 'GrindavikResidentialPropertyPurchaseCalculator' | 'Ums/CostOfLivingCalculator' + | 'Sveinslisti/JourneymanList' + | 'Starfsrettindi/ProfessionRights' + | 'VMST/ParentalLeaveCalculator' + | 'DigitalIceland/BenefitsOfDigitalProcesses' | undefined /** Localized JSON */ @@ -5133,12 +5289,14 @@ export type CONTENT_TYPE = | 'formField' | 'frontpage' | 'frontpageSlider' + | 'fund' | 'genericList' | 'genericListItem' | 'genericOverviewPage' | 'genericPage' | 'genericTag' | 'genericTagGroup' + | 'grant' | 'graphCard' | 'groupedMenu' | 'hnippTemplate' @@ -5148,6 +5306,7 @@ export type CONTENT_TYPE = | 'latestGenericListItems' | 'latestNewsSlice' | 'lifeEventPage' + | 'lifeEventPageListSlice' | 'link' | 'linkedPage' | 'linkGroup' diff --git a/libs/cms/src/lib/models/fund.model.ts b/libs/cms/src/lib/models/fund.model.ts new file mode 100644 index 000000000000..447e103695d7 --- /dev/null +++ b/libs/cms/src/lib/models/fund.model.ts @@ -0,0 +1,35 @@ +import { Field, ObjectType, ID } from '@nestjs/graphql' + +import { IFund } from '../generated/contentfulTypes' +import { CacheField } from '@island.is/nest/graphql' +import { ReferenceLink, mapReferenceLink } from './referenceLink.model' +import { Image, mapImage } from './image.model' +import { Organization, mapOrganization } from './organization.model' + +@ObjectType('OrganizationFund') +export class Fund { + @Field(() => ID) + id!: string + + @Field() + title!: string + + @CacheField(() => ReferenceLink, { nullable: true }) + link?: ReferenceLink + + @CacheField(() => Image, { nullable: true }) + featuredImage?: Image | null + + @CacheField(() => Organization) + parentOrganization!: Organization +} + +export const mapFund = ({ fields, sys }: IFund): Fund => ({ + id: sys.id, + title: fields.fundTitle, + link: fields.fundLink ? mapReferenceLink(fields.fundLink) : undefined, + featuredImage: fields.fundFeaturedImage + ? mapImage(fields.fundFeaturedImage) + : undefined, + parentOrganization: mapOrganization(fields.fundParentOrganization), +}) diff --git a/libs/cms/src/lib/models/grant.model.ts b/libs/cms/src/lib/models/grant.model.ts new file mode 100644 index 000000000000..9a1d0e182a27 --- /dev/null +++ b/libs/cms/src/lib/models/grant.model.ts @@ -0,0 +1,129 @@ +import { Field, ObjectType, ID, registerEnumType } from '@nestjs/graphql' + +import { IGrant } from '../generated/contentfulTypes' +import { GenericTag, mapGenericTag } from './genericTag.model' +import { CacheField } from '@island.is/nest/graphql' +import { mapDocument, SliceUnion } from '../unions/slice.union' +import { Asset, mapAsset } from './asset.model' +import { ReferenceLink, mapReferenceLink } from './referenceLink.model' +import { Fund, mapFund } from './fund.model' + +enum GrantStatus { + CLOSED, + OPEN, + OPENS_SOON, + INACTIVE, +} + +registerEnumType(GrantStatus, { name: 'GrantStatus' }) + +@ObjectType() +export class Grant { + @Field(() => ID) + id!: string + + @Field() + name!: string + + @Field({ nullable: true }) + description?: string + + @Field({ nullable: true }) + applicationId?: string + + @Field(() => [String], { nullable: true }) + applicationDeadlineText?: Array + + @CacheField(() => ReferenceLink, { nullable: true }) + applicationUrl?: ReferenceLink + + @CacheField(() => [SliceUnion]) + specialEmphasis?: Array + + @CacheField(() => [SliceUnion]) + whoCanApply?: Array + + @CacheField(() => [SliceUnion]) + howToApply?: Array + + @CacheField(() => [SliceUnion]) + applicationDeadline?: Array + + @CacheField(() => [SliceUnion]) + applicationHints?: Array + + @Field({ nullable: true }) + dateFrom?: string + + @Field({ nullable: true }) + dateTo?: string + + @Field({ nullable: true }) + isOpen?: boolean + + @Field({ nullable: true }) + statusText?: string + + @CacheField(() => GrantStatus, { nullable: true }) + status?: GrantStatus + + @CacheField(() => [Asset], { nullable: true }) + files?: Array + + @CacheField(() => [GenericTag], { nullable: true }) + categoryTags?: Array + + @CacheField(() => GenericTag, { nullable: true }) + typeTag?: GenericTag + + @CacheField(() => Fund, { nullable: true }) + fund?: Fund +} + +export const mapGrant = ({ fields, sys }: IGrant): Grant => ({ + id: sys.id, + name: fields.grantName, + description: fields.grantDescription, + applicationId: fields.grantApplicationId, + applicationDeadlineText: fields.grantApplicationDeadlineText, + applicationUrl: fields.granApplicationUrl?.fields + ? mapReferenceLink(fields.granApplicationUrl) + : undefined, + + specialEmphasis: fields.grantSpecialEmphasis + ? mapDocument(fields.grantSpecialEmphasis, sys.id + ':special-emphasis') + : [], + whoCanApply: fields.grantWhoCanApply + ? mapDocument(fields.grantWhoCanApply, sys.id + ':who-can-apply') + : [], + howToApply: fields.grantHowToApply + ? mapDocument(fields.grantHowToApply, sys.id + ':how-to-apply') + : [], + applicationDeadline: fields.grantApplicationDeadline + ? mapDocument( + fields.grantApplicationDeadline, + sys.id + ':application-deadline', + ) + : [], + applicationHints: fields.grantApplicationHints + ? mapDocument(fields.grantApplicationHints, sys.id + ':application-hints') + : [], + dateFrom: fields.grantDateFrom, + dateTo: fields.grantDateTo, + isOpen: fields.grantIsOpen ?? undefined, + statusText: fields.grantStatus ?? 'Óvirkur sjóður', + status: + fields.grantStatus === 'Opið fyrir umsóknir' + ? GrantStatus.OPEN + : fields.grantStatus === 'Lokað fyrir umsóknir' + ? GrantStatus.CLOSED + : fields.grantStatus === 'Opnar fljótlega' + ? GrantStatus.OPENS_SOON + : undefined, + fund: fields.grantFund ? mapFund(fields.grantFund) : undefined, + files: (fields.grantFiles ?? []).map((file) => mapAsset(file)) ?? [], + categoryTags: fields.grantCategoryTags + ? fields.grantCategoryTags.map((tag) => mapGenericTag(tag)) + : undefined, + typeTag: fields.grantTypeTag ? mapGenericTag(fields.grantTypeTag) : undefined, +}) diff --git a/libs/cms/src/lib/models/grantList.model.ts b/libs/cms/src/lib/models/grantList.model.ts new file mode 100644 index 000000000000..43263d4ae912 --- /dev/null +++ b/libs/cms/src/lib/models/grantList.model.ts @@ -0,0 +1,12 @@ +import { Field, Int, ObjectType } from '@nestjs/graphql' +import { CacheField } from '@island.is/nest/graphql' +import { Grant } from './grant.model' + +@ObjectType() +export class GrantList { + @Field(() => Int) + total!: number + + @CacheField(() => [Grant]) + items!: Grant[] +} diff --git a/libs/cms/src/lib/search/cmsSync.module.ts b/libs/cms/src/lib/search/cmsSync.module.ts index d6edead06251..671094405728 100644 --- a/libs/cms/src/lib/search/cmsSync.module.ts +++ b/libs/cms/src/lib/search/cmsSync.module.ts @@ -33,6 +33,7 @@ import { CustomPageSyncService } from './importers/customPage.service' import { GenericListItemSyncService } from './importers/genericListItem.service' import { TeamListSyncService } from './importers/teamList.service' import { MappingService } from './mapping.service' +import { GrantsSyncService } from './importers/grants.service' @Module({ imports: [ @@ -54,6 +55,7 @@ import { MappingService } from './mapping.service' NewsSyncService, AdgerdirPageSyncService, MenuSyncService, + GrantsSyncService, GroupedMenuSyncService, OrganizationPageSyncService, OrganizationSubpageSyncService, diff --git a/libs/cms/src/lib/search/importers/grants.service.ts b/libs/cms/src/lib/search/importers/grants.service.ts new file mode 100644 index 000000000000..a1c35e33bb20 --- /dev/null +++ b/libs/cms/src/lib/search/importers/grants.service.ts @@ -0,0 +1,133 @@ +import { MappedData } from '@island.is/content-search-indexer/types' +import { logger } from '@island.is/logging' +import { Injectable } from '@nestjs/common' +import { Entry } from 'contentful' +import isCircular from 'is-circular' +import { IGrant } from '../../generated/contentfulTypes' +import { CmsSyncProvider, processSyncDataInput } from '../cmsSync.service' +import { + createTerms, + extractChildEntryIds, + extractStringsFromObject, + pruneNonSearchableSliceUnionFields, +} from './utils' +import { mapGrant } from '../../models/grant.model' +import { isDefined } from '@island.is/shared/utils' + +@Injectable() +export class GrantsSyncService implements CmsSyncProvider { + processSyncData(entries: processSyncDataInput) { + // only process grants that we consider not to be empty and dont have circular structures + return entries.filter( + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (entry: Entry): entry is IGrant => + entry.sys.contentType.sys.id === 'grant' && + entry.fields.grantName && + !isCircular(entry), + ) + } + + doMapping(entries: IGrant[]) { + return entries + .map((entry) => { + try { + const mapped = mapGrant(entry) + if (isCircular(mapped)) { + logger.warn('Circular reference found in grants', { + id: entry?.sys?.id, + }) + return false + } + + const content = [ + mapped.specialEmphasis + ? extractStringsFromObject( + mapped?.specialEmphasis?.map( + pruneNonSearchableSliceUnionFields, + ), + ) + : undefined, + mapped.whoCanApply + ? extractStringsFromObject( + mapped?.whoCanApply?.map(pruneNonSearchableSliceUnionFields), + ) + : undefined, + mapped.howToApply + ? extractStringsFromObject( + mapped?.howToApply?.map(pruneNonSearchableSliceUnionFields), + ) + : undefined, + mapped.applicationDeadline + ? extractStringsFromObject( + mapped?.applicationDeadline?.map( + pruneNonSearchableSliceUnionFields, + ), + ) + : undefined, + mapped?.applicationHints + ? extractStringsFromObject( + mapped?.applicationHints?.map( + pruneNonSearchableSliceUnionFields, + ), + ) + : undefined, + ] + .filter(isDefined) + .join() + + const tags: Array<{ + key: string + type: string + value?: string + }> = [ + mapped.typeTag + ? { + key: mapped.typeTag.slug, + type: 'genericTag', + value: mapped.typeTag.title, + } + : null, + ].filter(isDefined) + + mapped.categoryTags?.forEach((tag) => { + if (tag) { + tags.push({ + key: tag.slug, + type: 'genericTag', + value: tag.title, + }) + } + }) + + // Tag the document with the ids of its children so we can later look up what document a child belongs to + const childEntryIds = extractChildEntryIds(entry) + for (const id of childEntryIds) { + tags.push({ + key: id, + type: 'hasChildEntryWithId', + }) + } + + return { + _id: mapped.id, + title: mapped.name, + content, + contentWordCount: content.split(/\s+/).length, + type: 'webGrant', + termPool: createTerms([mapped.name]), + response: JSON.stringify({ ...mapped, typename: 'Grant' }), + tags, + dateCreated: entry.sys.createdAt, + dateUpdated: new Date().getTime().toString(), + } + } catch (error) { + logger.warn('Failed to import grants', { + error: error.message, + id: entry?.sys?.id, + }) + return false + } + }) + .filter((value): value is MappedData => Boolean(value)) + } +} diff --git a/libs/cms/src/lib/search/mapping.service.ts b/libs/cms/src/lib/search/mapping.service.ts index 981675af8792..51630b3c3e9b 100644 --- a/libs/cms/src/lib/search/mapping.service.ts +++ b/libs/cms/src/lib/search/mapping.service.ts @@ -25,6 +25,7 @@ import { CustomPageSyncService } from './importers/customPage.service' import { GenericListItemSyncService } from './importers/genericListItem.service' import { TeamListSyncService } from './importers/teamList.service' import type { CmsSyncProvider, processSyncDataInput } from './cmsSync.service' +import { GrantsSyncService } from './importers/grants.service' @Injectable() export class MappingService { @@ -53,6 +54,7 @@ export class MappingService { private readonly manualSyncService: ManualSyncService, private readonly manualChapterItemSyncService: ManualChapterItemSyncService, private readonly customPageSyncService: CustomPageSyncService, + private readonly grantSyncService: GrantsSyncService, private readonly genericListItemSyncService: GenericListItemSyncService, private readonly teamListSyncService: TeamListSyncService, ) { @@ -73,6 +75,7 @@ export class MappingService { this.supportQNASyncService, this.linkSyncService, this.enhancedAssetService, + this.grantSyncService, this.vacancyService, this.serviceWebPageSyncService, this.eventSyncService, diff --git a/libs/shared/types/src/lib/api-cms-domain.ts b/libs/shared/types/src/lib/api-cms-domain.ts index 8bfa67cde1eb..3f34d00e515f 100644 --- a/libs/shared/types/src/lib/api-cms-domain.ts +++ b/libs/shared/types/src/lib/api-cms-domain.ts @@ -6,6 +6,7 @@ export enum CustomPageUniqueIdentifier { PensionCalculator = 'PensionCalculator', OfficialJournalOfIceland = 'OfficialJournalOfIceland', Vacancies = 'Vacancies', + Grants = 'Grants', } export interface StatisticSourceValue { From 16dd1fb6ea5872b70ff43800a9de8a7dd370981c Mon Sep 17 00:00:00 2001 From: HjorturJ <34068269+HjorturJ@users.noreply.github.com> Date: Mon, 18 Nov 2024 11:42:04 +0000 Subject: [PATCH 31/66] fix(application-system-api): Copy object on upload fix (#16883) * bucket change and debug error log * removing log and adding post processing to presignedposts * chore: nx format:write update dirty files * replacing more buckets * adding bucket to env * undoing bucket changes * newline change * undo frontend change * double check its the right character at the end --------- Co-authored-by: andes-it Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- libs/nest/aws/src/lib/s3.service.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/libs/nest/aws/src/lib/s3.service.ts b/libs/nest/aws/src/lib/s3.service.ts index caa898cd2218..0e534dcd33c1 100644 --- a/libs/nest/aws/src/lib/s3.service.ts +++ b/libs/nest/aws/src/lib/s3.service.ts @@ -141,7 +141,12 @@ export class S3Service { params: PresignedPostOptions, ): Promise { try { - return await createPresignedPost(this.s3Client, params) + // The S3 Aws sdk v3 returns a trailing forward slash + const post = await createPresignedPost(this.s3Client, params) + if (post.url.endsWith('/')) { + post.url = post.url.slice(0, -1) + } + return post } catch (error) { this.logger.error( `An error occurred while trying to create a presigned post for file: ${params.Key} in bucket: ${params.Bucket}`, From f1ff30d817ad497c5657b0b2bdab466b34d9345b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=8Dvar=20Oddsson?= Date: Mon, 18 Nov 2024 11:59:07 +0000 Subject: [PATCH 32/66] fix(j-s): Civil claimants national id (#16780) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Save civil claimants national id even though its not found in the national registry * Remove debug code * Remove debug code * Remove debug code * Fix validation * Add React back --------- Co-authored-by: Guðjón Guðjónsson Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- .../Indictments/Processing/Processing.tsx | 15 +++++++------ .../island-ui/core/src/lib/Toast/Toast.css.ts | 10 ++++----- libs/island-ui/core/src/lib/Toast/Toast.tsx | 21 ++++++++++--------- 3 files changed, 25 insertions(+), 21 deletions(-) diff --git a/apps/judicial-system/web/src/routes/Prosecutor/Indictments/Processing/Processing.tsx b/apps/judicial-system/web/src/routes/Prosecutor/Indictments/Processing/Processing.tsx index c2a21ccaf8a9..f7b17f45e9e1 100644 --- a/apps/judicial-system/web/src/routes/Prosecutor/Indictments/Processing/Processing.tsx +++ b/apps/judicial-system/web/src/routes/Prosecutor/Indictments/Processing/Processing.tsx @@ -258,17 +258,20 @@ const Processing: FC = () => { ) useEffect(() => { - if (!personData || !personData.items || personData.items.length === 0) { - setNationalIdNotFound(true) + if (!civilClaimantNationalIdUpdate) { return } - setNationalIdNotFound(false) + const items = personData?.items || [] + const person = items[0] + + setNationalIdNotFound(items.length === 0) + const update = { caseId: workingCase.id, - civilClaimantId: civilClaimantNationalIdUpdate?.civilClaimantId || '', - name: personData?.items[0].name, - nationalId: personData.items[0].kennitala, + civilClaimantId: civilClaimantNationalIdUpdate.civilClaimantId || '', + nationalId: civilClaimantNationalIdUpdate.nationalId, + ...(person?.name ? { name: person.name } : {}), } handleUpdateCivilClaimant(update) diff --git a/libs/island-ui/core/src/lib/Toast/Toast.css.ts b/libs/island-ui/core/src/lib/Toast/Toast.css.ts index 4bfc19872fe2..1a6e0062a834 100644 --- a/libs/island-ui/core/src/lib/Toast/Toast.css.ts +++ b/libs/island-ui/core/src/lib/Toast/Toast.css.ts @@ -14,7 +14,7 @@ globalStyle(`${root} .Toastify__toast-container`, { transform: 'translate3d(0, 0, 9999px)', position: 'fixed', padding: '4px', - width: '320px', + width: '432px', boxSizing: 'border-box', color: theme.color.dark400, '@media': { @@ -97,18 +97,19 @@ globalStyle(`${root} .Toastify__toast`, { minHeight: '64px', boxSizing: 'border-box', marginBottom: theme.spacing[2], - padding: theme.spacing[1], + padding: theme.spacing[2], borderWidth: 1, borderStyle: 'solid', borderRadius: theme.border.radius.large, display: 'flex', - justifyContent: 'space-between', overflow: 'hidden', cursor: 'pointer', direction: 'ltr', fontWeight: theme.typography.medium, '@media': { [`(max-width: ${theme.breakpoints.sm}px)`]: { + padding: theme.spacing[1], + minHeight: '48px', marginBottom: 0, }, }, @@ -147,7 +148,6 @@ globalStyle(`${root} .Toastify__toast--error`, { }) globalStyle(`${root} .Toastify__toast-body`, { flex: '1 1 auto', - margin: 'auto 0', }) /** Close button **/ @@ -160,7 +160,7 @@ globalStyle(`${root} .Toastify__close-button`, { cursor: 'pointer', opacity: 0.7, transition: '0.3s ease', - alignSelf: 'flex-start', + alignSelf: 'center', }) globalStyle(`${root} .Toastify__close-button--default`, { color: '#000', diff --git a/libs/island-ui/core/src/lib/Toast/Toast.tsx b/libs/island-ui/core/src/lib/Toast/Toast.tsx index 4e221e38c91b..9d8de91f883e 100644 --- a/libs/island-ui/core/src/lib/Toast/Toast.tsx +++ b/libs/island-ui/core/src/lib/Toast/Toast.tsx @@ -1,4 +1,4 @@ -import * as React from 'react' +import React, { FC } from 'react' import { ToastContainer as ToastifyContainer, toast as toastify, @@ -6,10 +6,11 @@ import { ToastOptions, } from 'react-toastify' import cn from 'classnames' + import { Box } from '../Box/Box' -import { Icon } from '../Icon/Icon' import { Text } from '../Text/Text' import * as toastStyles from './Toast.css' +import { Icon } from '../IconRC/Icon' interface ToastProps { hideProgressBar?: boolean @@ -32,16 +33,16 @@ const RenderMessage = ({ info: 'blue400', } as const const icons = { - error: 'toasterError', - success: 'toasterSuccess', - warning: 'toasterWarning', - info: 'toasterInfo', + error: 'warning', + success: 'checkmarkCircle', + warning: 'warning', + info: 'informationCircle', } as const return ( - - - + + + {message} @@ -50,7 +51,7 @@ const RenderMessage = ({ ) } -export const ToastContainer: React.FC> = ({ +export const ToastContainer: FC = ({ hideProgressBar = false, timeout = 5000, closeButton = false, From 37d8204c867fad5a160e5b89a82892fcd4acd4b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=BAnar=20Vestmann?= <43557895+RunarVestmann@users.noreply.github.com> Date: Mon, 18 Nov 2024 12:12:38 +0000 Subject: [PATCH 33/66] feat(web): Change fallback theme for organization pages (#16913) Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- .../Organization/Wrapper/OrganizationWrapper.tsx | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/apps/web/components/Organization/Wrapper/OrganizationWrapper.tsx b/apps/web/components/Organization/Wrapper/OrganizationWrapper.tsx index d73d63528bda..784ebd3e9d98 100644 --- a/apps/web/components/Organization/Wrapper/OrganizationWrapper.tsx +++ b/apps/web/components/Organization/Wrapper/OrganizationWrapper.tsx @@ -205,13 +205,7 @@ export const getThemeConfig = ( } } - return { - themeConfig: { - headerColorScheme: 'white', - headerButtonColorScheme: 'negative', - footerVersion, - }, - } + return { themeConfig: { footerVersion } } } export const OrganizationHeader: React.FC< From 0159521caad1f06500b00b6c667948dc6cac108a Mon Sep 17 00:00:00 2001 From: norda-gunni <161026627+norda-gunni@users.noreply.github.com> Date: Mon, 18 Nov 2024 12:35:00 +0000 Subject: [PATCH 34/66] chore(application-system): Add normalization for sms phone numbers (#16900) * chore(application-system): Add normalization for sms phone numbers * Add tests for phone number normalization --------- Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- .../lib/modules/shared/shared.service.spec.ts | 159 ++++++++++++++++++ .../src/lib/modules/shared/shared.service.ts | 28 ++- 2 files changed, 185 insertions(+), 2 deletions(-) create mode 100644 libs/application/template-api-modules/src/lib/modules/shared/shared.service.spec.ts diff --git a/libs/application/template-api-modules/src/lib/modules/shared/shared.service.spec.ts b/libs/application/template-api-modules/src/lib/modules/shared/shared.service.spec.ts new file mode 100644 index 000000000000..ddc63927d4d0 --- /dev/null +++ b/libs/application/template-api-modules/src/lib/modules/shared/shared.service.spec.ts @@ -0,0 +1,159 @@ +import { Test } from '@nestjs/testing' +import { SharedTemplateApiService } from './shared.service' +import { LOGGER_PROVIDER } from '@island.is/logging' +import type { Logger } from '@island.is/logging' +import { EmailService } from '@island.is/email-service' +import { SmsService } from '@island.is/nova-sms' +import { ApplicationService } from '@island.is/application/api/core' +import { PaymentService } from '@island.is/application/api/payment' +import { sharedModuleConfig } from './shared.config' +import { FormValue } from '@island.is/application/types' +import { + Application, + ApplicationStatus, + ActionCardMetaData, +} from '@island.is/application/types' +import { ApplicationTypes } from '@island.is/application/types' + +describe('SharedTemplateApiService', () => { + let service: SharedTemplateApiService + let smsService: jest.Mocked + let logger: jest.Mocked + + const mockActionCard: ActionCardMetaData = { + title: 'Sample Application', + description: 'This is a sample application description', + tag: { + label: 'In Review', + variant: 'blue', + }, + history: [ + { + date: new Date('2024-03-20'), + log: 'Application submitted', + }, + ], + } + + const mockApplication: Application = { + id: '12345-abcde', + state: 'submitted', + actionCard: mockActionCard, + applicant: 'user123', + assignees: ['reviewer1', 'reviewer2'], + applicantActors: ['user123'], + typeId: ApplicationTypes.EXAMPLE, + modified: new Date('2024-03-20T10:30:00'), + created: new Date('2024-03-19T15:45:00'), + answers: { + firstName: 'John', + lastName: 'Doe', + email: 'john.doe@example.com', + }, + externalData: {}, + name: 'John Doe Application', + institution: 'Example University', + progress: 75, + status: ApplicationStatus.IN_PROGRESS, + draftTotalSteps: 4, + draftFinishedSteps: 3, + } + + const mockConfig = { + templateApi: { + clientLocationOrigin: 'http://example.com', + jwtSecret: 'secret', + email: 'test@example.com', + }, + } + + beforeEach(async () => { + const module = await Test.createTestingModule({ + providers: [ + SharedTemplateApiService, + { + provide: LOGGER_PROVIDER, + useValue: { + warn: jest.fn(), + }, + }, + { + provide: EmailService, + useValue: {}, + }, + { + provide: SmsService, + useValue: { + sendSms: jest.fn(), + }, + }, + { + provide: sharedModuleConfig.KEY, + useValue: mockConfig, + }, + { + provide: ApplicationService, + useValue: {}, + }, + { + provide: PaymentService, + useValue: {}, + }, + ], + }).compile() + + service = module.get(SharedTemplateApiService) + smsService = module.get(SmsService) + logger = module.get(LOGGER_PROVIDER) + }) + + describe('sendSms', () => { + it('should successfully send an SMS with normalized phone number', async () => { + // Arrange + const mockSmsTemplateGenerator = jest.fn().mockReturnValue({ + phoneNumber: '+354 1234567', + message: 'Test message', + }) + + // Act + await service.sendSms(mockSmsTemplateGenerator, mockApplication) + + // Assert + expect(mockSmsTemplateGenerator).toHaveBeenCalledWith(mockApplication, { + clientLocationOrigin: mockConfig.templateApi.clientLocationOrigin, + }) + expect(smsService.sendSms).toHaveBeenCalledWith('1234567', 'Test message') + expect(logger.warn).toHaveBeenCalledTimes(2) + }) + + it('should normalize phone numbers with special characters', async () => { + // Arrange + const mockSmsTemplateGenerator = jest.fn().mockReturnValue({ + phoneNumber: '+354-123-4567', + message: 'Test message', + }) + + // Act + await service.sendSms(mockSmsTemplateGenerator, mockApplication) + + // Assert + expect(smsService.sendSms).toHaveBeenCalledWith('1234567', 'Test message') + expect(logger.warn).toHaveBeenCalledTimes(2) + }) + + it('should handle phone numbers longer than 7 digits', async () => { + // Arrange + const mockSmsTemplateGenerator = jest.fn().mockReturnValue({ + phoneNumber: '3541234567', + message: 'Test message', + }) + + // Act + await service.sendSms(mockSmsTemplateGenerator, mockApplication) + + // Assert + expect(smsService.sendSms).toHaveBeenCalledWith('1234567', 'Test message') + expect(logger.warn).toHaveBeenCalledTimes(1) + }) + }) +}) diff --git a/libs/application/template-api-modules/src/lib/modules/shared/shared.service.ts b/libs/application/template-api-modules/src/lib/modules/shared/shared.service.ts index 64fdabb796a1..3f48ce61e62b 100644 --- a/libs/application/template-api-modules/src/lib/modules/shared/shared.service.ts +++ b/libs/application/template-api-modules/src/lib/modules/shared/shared.service.ts @@ -58,7 +58,12 @@ export class SharedTemplateApiService { clientLocationOrigin, }) - return this.smsService.sendSms(phoneNumber, message) + const normalizedPhoneNumber = this.normalizePhoneNumber( + phoneNumber, + application.id, + ) + + return this.smsService.sendSms(normalizedPhoneNumber, message) } async assignApplicationThroughSms( @@ -75,7 +80,26 @@ export class SharedTemplateApiService { assignLink, ) - return this.smsService.sendSms(phoneNumber, message) + const normalizedPhoneNumber = this.normalizePhoneNumber( + phoneNumber, + application.id, + ) + + return this.smsService.sendSms(normalizedPhoneNumber, message) + } + + normalizePhoneNumber(phoneNumber: string, applicationId: string) { + if (phoneNumber.trim().length > 7) { + this.logger.warn( + `Recipient number for application ${applicationId} is longer than 7 characters, attempting to recover`, + ) + } + if (phoneNumber.match(/\D/g)) { + this.logger.warn( + `Recipient number for application ${applicationId} contains non-numeric characters, attempting to recover`, + ) + } + return phoneNumber.trim().replace(/\D/g, '').slice(-7) } async sendEmail( From b19bea9f3c6bddf43448eb822f18b11b33532cf7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=9E=C3=B3r=C3=B0ur=20H?= Date: Mon, 18 Nov 2024 12:48:30 +0000 Subject: [PATCH 35/66] fix(my-pages): Tsconfig paths (#16901) Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- libs/portals/my-pages/air-discount/tsconfig.json | 2 +- .../my-pages/air-discount/tsconfig.lib.json | 4 ++-- libs/portals/my-pages/applications/tsconfig.json | 2 +- .../my-pages/applications/tsconfig.lib.json | 14 +++++++++----- libs/portals/my-pages/assets/tsconfig.json | 2 +- libs/portals/my-pages/consent/tsconfig.json | 2 +- libs/portals/my-pages/consent/tsconfig.lib.json | 4 ++-- libs/portals/my-pages/constants/tsconfig.json | 2 +- libs/portals/my-pages/constants/tsconfig.lib.json | 4 ++-- libs/portals/my-pages/core/tsconfig.json | 2 +- libs/portals/my-pages/documents/tsconfig.json | 2 +- libs/portals/my-pages/documents/tsconfig.lib.json | 14 +++++++++----- .../my-pages/education-career/tsconfig.json | 2 +- .../my-pages/education-career/tsconfig.lib.json | 4 ++-- .../my-pages/education-degree/tsconfig.json | 2 +- .../my-pages/education-degree/tsconfig.lib.json | 4 ++-- .../my-pages/education-license/tsconfig.json | 2 +- .../my-pages/education-license/tsconfig.lib.json | 4 ++-- .../education-student-assessment/tsconfig.json | 2 +- .../education-student-assessment/tsconfig.lib.json | 4 ++-- libs/portals/my-pages/education/tsconfig.json | 2 +- libs/portals/my-pages/education/tsconfig.lib.json | 14 +++++++++----- libs/portals/my-pages/education/tsconfig.spec.json | 4 ++-- libs/portals/my-pages/finance/tsconfig.json | 2 +- libs/portals/my-pages/finance/tsconfig.lib.json | 4 ++-- libs/portals/my-pages/graphql/tsconfig.json | 2 +- libs/portals/my-pages/health/tsconfig.json | 2 +- libs/portals/my-pages/health/tsconfig.lib.json | 4 ++-- libs/portals/my-pages/information/tsconfig.json | 2 +- .../portals/my-pages/information/tsconfig.lib.json | 4 ++-- libs/portals/my-pages/law-and-order/tsconfig.json | 2 +- libs/portals/my-pages/licenses/tsconfig.json | 2 +- libs/portals/my-pages/licenses/tsconfig.lib.json | 4 ++-- .../my-pages/occupational-licenses/tsconfig.json | 2 +- .../occupational-licenses/tsconfig.lib.json | 4 ++-- libs/portals/my-pages/petitions/tsconfig.json | 2 +- libs/portals/my-pages/petitions/tsconfig.lib.json | 4 ++-- libs/portals/my-pages/restrictions/tsconfig.json | 2 +- libs/portals/my-pages/sessions/tsconfig.json | 2 +- libs/portals/my-pages/sessions/tsconfig.lib.json | 4 ++-- .../signature-collection/tsconfig.lib.json | 4 ++-- .../social-insurance-maintenance/tsconfig.json | 2 +- .../social-insurance-maintenance/tsconfig.lib.json | 4 ++-- 43 files changed, 84 insertions(+), 72 deletions(-) diff --git a/libs/portals/my-pages/air-discount/tsconfig.json b/libs/portals/my-pages/air-discount/tsconfig.json index 4b421814593c..3512bf7afeea 100644 --- a/libs/portals/my-pages/air-discount/tsconfig.json +++ b/libs/portals/my-pages/air-discount/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../../tsconfig.base.json", "compilerOptions": { "jsx": "react-jsx", "allowJs": true, diff --git a/libs/portals/my-pages/air-discount/tsconfig.lib.json b/libs/portals/my-pages/air-discount/tsconfig.lib.json index b1fdab0f8413..9668c0996130 100644 --- a/libs/portals/my-pages/air-discount/tsconfig.lib.json +++ b/libs/portals/my-pages/air-discount/tsconfig.lib.json @@ -5,8 +5,8 @@ "types": ["node"] }, "files": [ - "../../../node_modules/@nx/react/typings/cssmodule.d.ts", - "../../../node_modules/@nx/react/typings/image.d.ts" + "../../../../node_modules/@nx/react/typings/cssmodule.d.ts", + "../../../../node_modules/@nx/react/typings/image.d.ts" ], "exclude": [ "**/*.spec.ts", diff --git a/libs/portals/my-pages/applications/tsconfig.json b/libs/portals/my-pages/applications/tsconfig.json index 45d3d172fde4..4aee5eb425be 100644 --- a/libs/portals/my-pages/applications/tsconfig.json +++ b/libs/portals/my-pages/applications/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../../tsconfig.base.json", "compilerOptions": { "jsx": "react-jsx", "allowJs": true diff --git a/libs/portals/my-pages/applications/tsconfig.lib.json b/libs/portals/my-pages/applications/tsconfig.lib.json index 1d50996ab513..9668c0996130 100644 --- a/libs/portals/my-pages/applications/tsconfig.lib.json +++ b/libs/portals/my-pages/applications/tsconfig.lib.json @@ -4,16 +4,20 @@ "outDir": "../../../../dist/out-tsc", "types": ["node"] }, + "files": [ + "../../../../node_modules/@nx/react/typings/cssmodule.d.ts", + "../../../../node_modules/@nx/react/typings/image.d.ts" + ], "exclude": [ "**/*.spec.ts", "**/*.test.ts", "**/*.spec.tsx", "**/*.test.tsx", + "**/*.spec.js", + "**/*.test.js", + "**/*.spec.jsx", + "**/*.test.jsx", "jest.config.ts" ], - "include": ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx"], - "files": [ - "../../../node_modules/@nx/react/typings/cssmodule.d.ts", - "../../../node_modules/@nx/react/typings/image.d.ts" - ] + "include": ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx"] } diff --git a/libs/portals/my-pages/assets/tsconfig.json b/libs/portals/my-pages/assets/tsconfig.json index 45d3d172fde4..4aee5eb425be 100644 --- a/libs/portals/my-pages/assets/tsconfig.json +++ b/libs/portals/my-pages/assets/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../../tsconfig.base.json", "compilerOptions": { "jsx": "react-jsx", "allowJs": true diff --git a/libs/portals/my-pages/consent/tsconfig.json b/libs/portals/my-pages/consent/tsconfig.json index 4b421814593c..3512bf7afeea 100644 --- a/libs/portals/my-pages/consent/tsconfig.json +++ b/libs/portals/my-pages/consent/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../../tsconfig.base.json", "compilerOptions": { "jsx": "react-jsx", "allowJs": true, diff --git a/libs/portals/my-pages/consent/tsconfig.lib.json b/libs/portals/my-pages/consent/tsconfig.lib.json index b1fdab0f8413..9668c0996130 100644 --- a/libs/portals/my-pages/consent/tsconfig.lib.json +++ b/libs/portals/my-pages/consent/tsconfig.lib.json @@ -5,8 +5,8 @@ "types": ["node"] }, "files": [ - "../../../node_modules/@nx/react/typings/cssmodule.d.ts", - "../../../node_modules/@nx/react/typings/image.d.ts" + "../../../../node_modules/@nx/react/typings/cssmodule.d.ts", + "../../../../node_modules/@nx/react/typings/image.d.ts" ], "exclude": [ "**/*.spec.ts", diff --git a/libs/portals/my-pages/constants/tsconfig.json b/libs/portals/my-pages/constants/tsconfig.json index 45d3d172fde4..4aee5eb425be 100644 --- a/libs/portals/my-pages/constants/tsconfig.json +++ b/libs/portals/my-pages/constants/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../../tsconfig.base.json", "compilerOptions": { "jsx": "react-jsx", "allowJs": true diff --git a/libs/portals/my-pages/constants/tsconfig.lib.json b/libs/portals/my-pages/constants/tsconfig.lib.json index 1d50996ab513..df044b77b9a5 100644 --- a/libs/portals/my-pages/constants/tsconfig.lib.json +++ b/libs/portals/my-pages/constants/tsconfig.lib.json @@ -13,7 +13,7 @@ ], "include": ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx"], "files": [ - "../../../node_modules/@nx/react/typings/cssmodule.d.ts", - "../../../node_modules/@nx/react/typings/image.d.ts" + "../../../../node_modules/@nx/react/typings/cssmodule.d.ts", + "../../../../node_modules/@nx/react/typings/image.d.ts" ] } diff --git a/libs/portals/my-pages/core/tsconfig.json b/libs/portals/my-pages/core/tsconfig.json index 45d3d172fde4..4aee5eb425be 100644 --- a/libs/portals/my-pages/core/tsconfig.json +++ b/libs/portals/my-pages/core/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../../tsconfig.base.json", "compilerOptions": { "jsx": "react-jsx", "allowJs": true diff --git a/libs/portals/my-pages/documents/tsconfig.json b/libs/portals/my-pages/documents/tsconfig.json index 45d3d172fde4..4aee5eb425be 100644 --- a/libs/portals/my-pages/documents/tsconfig.json +++ b/libs/portals/my-pages/documents/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../../tsconfig.base.json", "compilerOptions": { "jsx": "react-jsx", "allowJs": true diff --git a/libs/portals/my-pages/documents/tsconfig.lib.json b/libs/portals/my-pages/documents/tsconfig.lib.json index 1d50996ab513..9668c0996130 100644 --- a/libs/portals/my-pages/documents/tsconfig.lib.json +++ b/libs/portals/my-pages/documents/tsconfig.lib.json @@ -4,16 +4,20 @@ "outDir": "../../../../dist/out-tsc", "types": ["node"] }, + "files": [ + "../../../../node_modules/@nx/react/typings/cssmodule.d.ts", + "../../../../node_modules/@nx/react/typings/image.d.ts" + ], "exclude": [ "**/*.spec.ts", "**/*.test.ts", "**/*.spec.tsx", "**/*.test.tsx", + "**/*.spec.js", + "**/*.test.js", + "**/*.spec.jsx", + "**/*.test.jsx", "jest.config.ts" ], - "include": ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx"], - "files": [ - "../../../node_modules/@nx/react/typings/cssmodule.d.ts", - "../../../node_modules/@nx/react/typings/image.d.ts" - ] + "include": ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx"] } diff --git a/libs/portals/my-pages/education-career/tsconfig.json b/libs/portals/my-pages/education-career/tsconfig.json index 45d3d172fde4..4aee5eb425be 100644 --- a/libs/portals/my-pages/education-career/tsconfig.json +++ b/libs/portals/my-pages/education-career/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../../tsconfig.base.json", "compilerOptions": { "jsx": "react-jsx", "allowJs": true diff --git a/libs/portals/my-pages/education-career/tsconfig.lib.json b/libs/portals/my-pages/education-career/tsconfig.lib.json index bc322cb27aa7..d547efefcf0b 100644 --- a/libs/portals/my-pages/education-career/tsconfig.lib.json +++ b/libs/portals/my-pages/education-career/tsconfig.lib.json @@ -5,8 +5,8 @@ "types": ["node"] }, "files": [ - "../../../node_modules/@nx/react/typings/cssmodule.d.ts", - "../../../node_modules/@nx/react/typings/image.d.ts" + "../../../../node_modules/@nx/react/typings/cssmodule.d.ts", + "../../../../node_modules/@nx/react/typings/image.d.ts" ], "exclude": [ "**/*.spec.ts", diff --git a/libs/portals/my-pages/education-degree/tsconfig.json b/libs/portals/my-pages/education-degree/tsconfig.json index 45d3d172fde4..4aee5eb425be 100644 --- a/libs/portals/my-pages/education-degree/tsconfig.json +++ b/libs/portals/my-pages/education-degree/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../../tsconfig.base.json", "compilerOptions": { "jsx": "react-jsx", "allowJs": true diff --git a/libs/portals/my-pages/education-degree/tsconfig.lib.json b/libs/portals/my-pages/education-degree/tsconfig.lib.json index bc322cb27aa7..d547efefcf0b 100644 --- a/libs/portals/my-pages/education-degree/tsconfig.lib.json +++ b/libs/portals/my-pages/education-degree/tsconfig.lib.json @@ -5,8 +5,8 @@ "types": ["node"] }, "files": [ - "../../../node_modules/@nx/react/typings/cssmodule.d.ts", - "../../../node_modules/@nx/react/typings/image.d.ts" + "../../../../node_modules/@nx/react/typings/cssmodule.d.ts", + "../../../../node_modules/@nx/react/typings/image.d.ts" ], "exclude": [ "**/*.spec.ts", diff --git a/libs/portals/my-pages/education-license/tsconfig.json b/libs/portals/my-pages/education-license/tsconfig.json index 45d3d172fde4..4aee5eb425be 100644 --- a/libs/portals/my-pages/education-license/tsconfig.json +++ b/libs/portals/my-pages/education-license/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../../tsconfig.base.json", "compilerOptions": { "jsx": "react-jsx", "allowJs": true diff --git a/libs/portals/my-pages/education-license/tsconfig.lib.json b/libs/portals/my-pages/education-license/tsconfig.lib.json index bc322cb27aa7..d547efefcf0b 100644 --- a/libs/portals/my-pages/education-license/tsconfig.lib.json +++ b/libs/portals/my-pages/education-license/tsconfig.lib.json @@ -5,8 +5,8 @@ "types": ["node"] }, "files": [ - "../../../node_modules/@nx/react/typings/cssmodule.d.ts", - "../../../node_modules/@nx/react/typings/image.d.ts" + "../../../../node_modules/@nx/react/typings/cssmodule.d.ts", + "../../../../node_modules/@nx/react/typings/image.d.ts" ], "exclude": [ "**/*.spec.ts", diff --git a/libs/portals/my-pages/education-student-assessment/tsconfig.json b/libs/portals/my-pages/education-student-assessment/tsconfig.json index 45d3d172fde4..4aee5eb425be 100644 --- a/libs/portals/my-pages/education-student-assessment/tsconfig.json +++ b/libs/portals/my-pages/education-student-assessment/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../../tsconfig.base.json", "compilerOptions": { "jsx": "react-jsx", "allowJs": true diff --git a/libs/portals/my-pages/education-student-assessment/tsconfig.lib.json b/libs/portals/my-pages/education-student-assessment/tsconfig.lib.json index bc322cb27aa7..d547efefcf0b 100644 --- a/libs/portals/my-pages/education-student-assessment/tsconfig.lib.json +++ b/libs/portals/my-pages/education-student-assessment/tsconfig.lib.json @@ -5,8 +5,8 @@ "types": ["node"] }, "files": [ - "../../../node_modules/@nx/react/typings/cssmodule.d.ts", - "../../../node_modules/@nx/react/typings/image.d.ts" + "../../../../node_modules/@nx/react/typings/cssmodule.d.ts", + "../../../../node_modules/@nx/react/typings/image.d.ts" ], "exclude": [ "**/*.spec.ts", diff --git a/libs/portals/my-pages/education/tsconfig.json b/libs/portals/my-pages/education/tsconfig.json index 45d3d172fde4..4aee5eb425be 100644 --- a/libs/portals/my-pages/education/tsconfig.json +++ b/libs/portals/my-pages/education/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../../tsconfig.base.json", "compilerOptions": { "jsx": "react-jsx", "allowJs": true diff --git a/libs/portals/my-pages/education/tsconfig.lib.json b/libs/portals/my-pages/education/tsconfig.lib.json index 1d50996ab513..9668c0996130 100644 --- a/libs/portals/my-pages/education/tsconfig.lib.json +++ b/libs/portals/my-pages/education/tsconfig.lib.json @@ -4,16 +4,20 @@ "outDir": "../../../../dist/out-tsc", "types": ["node"] }, + "files": [ + "../../../../node_modules/@nx/react/typings/cssmodule.d.ts", + "../../../../node_modules/@nx/react/typings/image.d.ts" + ], "exclude": [ "**/*.spec.ts", "**/*.test.ts", "**/*.spec.tsx", "**/*.test.tsx", + "**/*.spec.js", + "**/*.test.js", + "**/*.spec.jsx", + "**/*.test.jsx", "jest.config.ts" ], - "include": ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx"], - "files": [ - "../../../node_modules/@nx/react/typings/cssmodule.d.ts", - "../../../node_modules/@nx/react/typings/image.d.ts" - ] + "include": ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx"] } diff --git a/libs/portals/my-pages/education/tsconfig.spec.json b/libs/portals/my-pages/education/tsconfig.spec.json index 9c453e8cbe59..47e877796468 100644 --- a/libs/portals/my-pages/education/tsconfig.spec.json +++ b/libs/portals/my-pages/education/tsconfig.spec.json @@ -18,7 +18,7 @@ "jest.config.ts" ], "files": [ - "../../../node_modules/@nx/react/typings/cssmodule.d.ts", - "../../../node_modules/@nx/react/typings/image.d.ts" + "../../../../node_modules/@nx/react/typings/cssmodule.d.ts", + "../../../../node_modules/@nx/react/typings/image.d.ts" ] } diff --git a/libs/portals/my-pages/finance/tsconfig.json b/libs/portals/my-pages/finance/tsconfig.json index 45d3d172fde4..4aee5eb425be 100644 --- a/libs/portals/my-pages/finance/tsconfig.json +++ b/libs/portals/my-pages/finance/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../../tsconfig.base.json", "compilerOptions": { "jsx": "react-jsx", "allowJs": true diff --git a/libs/portals/my-pages/finance/tsconfig.lib.json b/libs/portals/my-pages/finance/tsconfig.lib.json index 1d50996ab513..df044b77b9a5 100644 --- a/libs/portals/my-pages/finance/tsconfig.lib.json +++ b/libs/portals/my-pages/finance/tsconfig.lib.json @@ -13,7 +13,7 @@ ], "include": ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx"], "files": [ - "../../../node_modules/@nx/react/typings/cssmodule.d.ts", - "../../../node_modules/@nx/react/typings/image.d.ts" + "../../../../node_modules/@nx/react/typings/cssmodule.d.ts", + "../../../../node_modules/@nx/react/typings/image.d.ts" ] } diff --git a/libs/portals/my-pages/graphql/tsconfig.json b/libs/portals/my-pages/graphql/tsconfig.json index f094e2ad0a12..55d3aaeea3e3 100644 --- a/libs/portals/my-pages/graphql/tsconfig.json +++ b/libs/portals/my-pages/graphql/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../../tsconfig.base.json", "include": [], "files": [], "references": [ diff --git a/libs/portals/my-pages/health/tsconfig.json b/libs/portals/my-pages/health/tsconfig.json index 45d3d172fde4..4aee5eb425be 100644 --- a/libs/portals/my-pages/health/tsconfig.json +++ b/libs/portals/my-pages/health/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../../tsconfig.base.json", "compilerOptions": { "jsx": "react-jsx", "allowJs": true diff --git a/libs/portals/my-pages/health/tsconfig.lib.json b/libs/portals/my-pages/health/tsconfig.lib.json index 1d50996ab513..df044b77b9a5 100644 --- a/libs/portals/my-pages/health/tsconfig.lib.json +++ b/libs/portals/my-pages/health/tsconfig.lib.json @@ -13,7 +13,7 @@ ], "include": ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx"], "files": [ - "../../../node_modules/@nx/react/typings/cssmodule.d.ts", - "../../../node_modules/@nx/react/typings/image.d.ts" + "../../../../node_modules/@nx/react/typings/cssmodule.d.ts", + "../../../../node_modules/@nx/react/typings/image.d.ts" ] } diff --git a/libs/portals/my-pages/information/tsconfig.json b/libs/portals/my-pages/information/tsconfig.json index 4f13c3264df0..f621b7e9bab5 100644 --- a/libs/portals/my-pages/information/tsconfig.json +++ b/libs/portals/my-pages/information/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../../tsconfig.base.json", "compilerOptions": { "jsx": "react-jsx", "allowJs": true, diff --git a/libs/portals/my-pages/information/tsconfig.lib.json b/libs/portals/my-pages/information/tsconfig.lib.json index bc322cb27aa7..d547efefcf0b 100644 --- a/libs/portals/my-pages/information/tsconfig.lib.json +++ b/libs/portals/my-pages/information/tsconfig.lib.json @@ -5,8 +5,8 @@ "types": ["node"] }, "files": [ - "../../../node_modules/@nx/react/typings/cssmodule.d.ts", - "../../../node_modules/@nx/react/typings/image.d.ts" + "../../../../node_modules/@nx/react/typings/cssmodule.d.ts", + "../../../../node_modules/@nx/react/typings/image.d.ts" ], "exclude": [ "**/*.spec.ts", diff --git a/libs/portals/my-pages/law-and-order/tsconfig.json b/libs/portals/my-pages/law-and-order/tsconfig.json index 4daaf45cd328..c88d07daddd5 100644 --- a/libs/portals/my-pages/law-and-order/tsconfig.json +++ b/libs/portals/my-pages/law-and-order/tsconfig.json @@ -16,5 +16,5 @@ "path": "./tsconfig.spec.json" } ], - "extends": "../../../tsconfig.base.json" + "extends": "../../../../tsconfig.base.json" } diff --git a/libs/portals/my-pages/licenses/tsconfig.json b/libs/portals/my-pages/licenses/tsconfig.json index 45d3d172fde4..4aee5eb425be 100644 --- a/libs/portals/my-pages/licenses/tsconfig.json +++ b/libs/portals/my-pages/licenses/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../../tsconfig.base.json", "compilerOptions": { "jsx": "react-jsx", "allowJs": true diff --git a/libs/portals/my-pages/licenses/tsconfig.lib.json b/libs/portals/my-pages/licenses/tsconfig.lib.json index bc322cb27aa7..d547efefcf0b 100644 --- a/libs/portals/my-pages/licenses/tsconfig.lib.json +++ b/libs/portals/my-pages/licenses/tsconfig.lib.json @@ -5,8 +5,8 @@ "types": ["node"] }, "files": [ - "../../../node_modules/@nx/react/typings/cssmodule.d.ts", - "../../../node_modules/@nx/react/typings/image.d.ts" + "../../../../node_modules/@nx/react/typings/cssmodule.d.ts", + "../../../../node_modules/@nx/react/typings/image.d.ts" ], "exclude": [ "**/*.spec.ts", diff --git a/libs/portals/my-pages/occupational-licenses/tsconfig.json b/libs/portals/my-pages/occupational-licenses/tsconfig.json index 45d3d172fde4..4aee5eb425be 100644 --- a/libs/portals/my-pages/occupational-licenses/tsconfig.json +++ b/libs/portals/my-pages/occupational-licenses/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../../tsconfig.base.json", "compilerOptions": { "jsx": "react-jsx", "allowJs": true diff --git a/libs/portals/my-pages/occupational-licenses/tsconfig.lib.json b/libs/portals/my-pages/occupational-licenses/tsconfig.lib.json index bc322cb27aa7..d547efefcf0b 100644 --- a/libs/portals/my-pages/occupational-licenses/tsconfig.lib.json +++ b/libs/portals/my-pages/occupational-licenses/tsconfig.lib.json @@ -5,8 +5,8 @@ "types": ["node"] }, "files": [ - "../../../node_modules/@nx/react/typings/cssmodule.d.ts", - "../../../node_modules/@nx/react/typings/image.d.ts" + "../../../../node_modules/@nx/react/typings/cssmodule.d.ts", + "../../../../node_modules/@nx/react/typings/image.d.ts" ], "exclude": [ "**/*.spec.ts", diff --git a/libs/portals/my-pages/petitions/tsconfig.json b/libs/portals/my-pages/petitions/tsconfig.json index 45d3d172fde4..4aee5eb425be 100644 --- a/libs/portals/my-pages/petitions/tsconfig.json +++ b/libs/portals/my-pages/petitions/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../../tsconfig.base.json", "compilerOptions": { "jsx": "react-jsx", "allowJs": true diff --git a/libs/portals/my-pages/petitions/tsconfig.lib.json b/libs/portals/my-pages/petitions/tsconfig.lib.json index 6394d9f9cd81..ae80da66e65a 100644 --- a/libs/portals/my-pages/petitions/tsconfig.lib.json +++ b/libs/portals/my-pages/petitions/tsconfig.lib.json @@ -5,8 +5,8 @@ "types": ["node"] }, "files": [ - "../../../node_modules/@nx/react/typings/cssmodule.d.ts", - "../../../node_modules/@nx/react/typings/image.d.ts" + "../../../../node_modules/@nx/react/typings/cssmodule.d.ts", + "../../../../node_modules/@nx/react/typings/image.d.ts" ], "exclude": ["**/*.spec.ts", "**/*.test.ts", "**/*.spec.tsx", "**/*.test.tsx"], "include": ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx"] diff --git a/libs/portals/my-pages/restrictions/tsconfig.json b/libs/portals/my-pages/restrictions/tsconfig.json index 89f8ac0850c1..93614c49d348 100644 --- a/libs/portals/my-pages/restrictions/tsconfig.json +++ b/libs/portals/my-pages/restrictions/tsconfig.json @@ -13,5 +13,5 @@ "path": "./tsconfig.lib.json" } ], - "extends": "../../../tsconfig.base.json" + "extends": "../../../../tsconfig.base.json" } diff --git a/libs/portals/my-pages/sessions/tsconfig.json b/libs/portals/my-pages/sessions/tsconfig.json index 4b421814593c..3512bf7afeea 100644 --- a/libs/portals/my-pages/sessions/tsconfig.json +++ b/libs/portals/my-pages/sessions/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../../tsconfig.base.json", "compilerOptions": { "jsx": "react-jsx", "allowJs": true, diff --git a/libs/portals/my-pages/sessions/tsconfig.lib.json b/libs/portals/my-pages/sessions/tsconfig.lib.json index b1fdab0f8413..9668c0996130 100644 --- a/libs/portals/my-pages/sessions/tsconfig.lib.json +++ b/libs/portals/my-pages/sessions/tsconfig.lib.json @@ -5,8 +5,8 @@ "types": ["node"] }, "files": [ - "../../../node_modules/@nx/react/typings/cssmodule.d.ts", - "../../../node_modules/@nx/react/typings/image.d.ts" + "../../../../node_modules/@nx/react/typings/cssmodule.d.ts", + "../../../../node_modules/@nx/react/typings/image.d.ts" ], "exclude": [ "**/*.spec.ts", diff --git a/libs/portals/my-pages/signature-collection/tsconfig.lib.json b/libs/portals/my-pages/signature-collection/tsconfig.lib.json index 6394d9f9cd81..ae80da66e65a 100644 --- a/libs/portals/my-pages/signature-collection/tsconfig.lib.json +++ b/libs/portals/my-pages/signature-collection/tsconfig.lib.json @@ -5,8 +5,8 @@ "types": ["node"] }, "files": [ - "../../../node_modules/@nx/react/typings/cssmodule.d.ts", - "../../../node_modules/@nx/react/typings/image.d.ts" + "../../../../node_modules/@nx/react/typings/cssmodule.d.ts", + "../../../../node_modules/@nx/react/typings/image.d.ts" ], "exclude": ["**/*.spec.ts", "**/*.test.ts", "**/*.spec.tsx", "**/*.test.tsx"], "include": ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx"] diff --git a/libs/portals/my-pages/social-insurance-maintenance/tsconfig.json b/libs/portals/my-pages/social-insurance-maintenance/tsconfig.json index 89f8ac0850c1..93614c49d348 100644 --- a/libs/portals/my-pages/social-insurance-maintenance/tsconfig.json +++ b/libs/portals/my-pages/social-insurance-maintenance/tsconfig.json @@ -13,5 +13,5 @@ "path": "./tsconfig.lib.json" } ], - "extends": "../../../tsconfig.base.json" + "extends": "../../../../tsconfig.base.json" } diff --git a/libs/portals/my-pages/social-insurance-maintenance/tsconfig.lib.json b/libs/portals/my-pages/social-insurance-maintenance/tsconfig.lib.json index 6394d9f9cd81..ae80da66e65a 100644 --- a/libs/portals/my-pages/social-insurance-maintenance/tsconfig.lib.json +++ b/libs/portals/my-pages/social-insurance-maintenance/tsconfig.lib.json @@ -5,8 +5,8 @@ "types": ["node"] }, "files": [ - "../../../node_modules/@nx/react/typings/cssmodule.d.ts", - "../../../node_modules/@nx/react/typings/image.d.ts" + "../../../../node_modules/@nx/react/typings/cssmodule.d.ts", + "../../../../node_modules/@nx/react/typings/image.d.ts" ], "exclude": ["**/*.spec.ts", "**/*.test.ts", "**/*.spec.tsx", "**/*.test.tsx"], "include": ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx"] From cbecc81b6235bc7a76e2b32fd66d3527dfb3a8a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Svanhildur=20Einarsd=C3=B3ttir?= <54863023+svanaeinars@users.noreply.github.com> Date: Mon, 18 Nov 2024 13:13:19 +0000 Subject: [PATCH 36/66] chore(tests): Standardize imports and add page navigavion helper (#16914) Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- libs/testing/e2e/src/index.ts | 3 ++- libs/testing/e2e/src/lib/helpers/api-tools.ts | 18 +++++++++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/libs/testing/e2e/src/index.ts b/libs/testing/e2e/src/index.ts index 1e4c8baa004e..f7fba34a0d79 100644 --- a/libs/testing/e2e/src/index.ts +++ b/libs/testing/e2e/src/index.ts @@ -9,4 +9,5 @@ export * from './lib/session/session' export * from './lib/modules/urls' export * from './lib/helpers/utils' export * from './lib/config/playwright-config' -export { test, expect, Page, Locator, BrowserContext } from '@playwright/test' +export { test, expect } from '@playwright/test' +export type { Page, Locator, BrowserContext } from '@playwright/test' diff --git a/libs/testing/e2e/src/lib/helpers/api-tools.ts b/libs/testing/e2e/src/lib/helpers/api-tools.ts index 09e4042c1b3f..a4fd275f2143 100644 --- a/libs/testing/e2e/src/lib/helpers/api-tools.ts +++ b/libs/testing/e2e/src/lib/helpers/api-tools.ts @@ -1,4 +1,4 @@ -import { Page } from '@playwright/test' +import { Page, BrowserContext } from '@playwright/test' /** * Waits for a network request to complete and verifies its operation name. @@ -21,3 +21,19 @@ export const verifyRequestCompletion = async ( return await response.json() } + +/** + * Creates a new page in the given browser context and navigates to the specified URL. + * + * @param context - The browser context in which to create the new page. + * @param url - The URL to navigate to. + * @returns A promise that resolves to the created page. + */ +export const createPageAndNavigate = async ( + context: BrowserContext, + url: string, +) => { + const page = await context.newPage() + await page.goto(url) + return page +} From aab5c31e6fa10d3f5cb4c34c13f9005658e85e79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Svanhildur=20Einarsd=C3=B3ttir?= <54863023+svanaeinars@users.noreply.github.com> Date: Mon, 18 Nov 2024 13:26:22 +0000 Subject: [PATCH 37/66] chore(tests): Improve E2E Documentation (#16909) * chore(tests): Improve E2E Documentation * Update libs/testing/e2e/README.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- libs/testing/e2e/README.md | 221 ++++++++++++++++++++++++++++++++----- 1 file changed, 194 insertions(+), 27 deletions(-) diff --git a/libs/testing/e2e/README.md b/libs/testing/e2e/README.md index 7fa5ac12b3db..22bb04155947 100644 --- a/libs/testing/e2e/README.md +++ b/libs/testing/e2e/README.md @@ -1,48 +1,215 @@ -# E2E Testing +# E2E Testing Library -This library was generated with [Nx](https://nx.dev). It contains utility functions and configuration files that assist with end-to-end (E2E) testing in Playwright for various apps. +This library contains utility functions, shared configuration, and documentation to assist with end-to-end (E2E) testing for all apps using Playwright. -## Overview +## 📚 Overview -This library includes: +### Contents -- **Helper Functions:** Utility functions designed to streamline E2E testing with Playwright. These functions cater to different applications across the project and help automate common testing workflows. -- **Global Playwright Configuration:** The `createGlobalConfig` function provides a shared Playwright configuration used across multiple applications. It standardizes the testing environment. +- **🔧 Helper Functions**: Utility functions to simplify and standardize E2E testing across apps. +- **⚙️ Shared Playwright Configuration**: A common configuration used as the base for all app-specific Playwright configurations. +- **🌍 Multi-Environment Testing**: Support for running tests in `local`, `dev`, `staging`, and `prod` environments. -## Mockoon Usage Guide for E2E Tests +## 🚀 How to Use This Library -This section explains how to use [Mockoon](https://mockoon.com/) to set up mock APIs for end-to-end (e2e) testing. +### Importing Helper Functions -### What is Mockoon? +To use helper functions in your tests, import them directly from this library: -[Mockoon](https://mockoon.com/) is an open-source tool for creating mock APIs quickly and easily. It allows developers to simulate backend servers without relying on live backend services. This is especially useful for e2e testing, where consistency and repeatability of backend responses are important. +```typescript +import { myHelperFunction } from '@island.is/testing/e2e' +``` + +### Extending the Common Playwright Config + +Each app should create its own `playwright.config.ts` file that extends the shared configuration: + +```typescript +import { createPlaywrightConfig } from '@island.is/testing/e2e' + +const playwrightConfig = createPlaywrightConfig({ + webServerUrl: '', + command: '', + // Add any app-specific configurations here +}) + +export default playwrightConfig +``` + +## 🏃 Running Tests + +Use the following command structure to run tests for any app: + +```bash +yarn e2e +``` + +### Useful Playwright Commands and Flags -Mockoon provides both a graphical user interface (GUI) for managing API mock files and a command-line interface (CLI) for running these mock APIs in various environments, such as pipelines. +- **Run with UI Mode**: Launch the tests with a UI to select and debug tests interactively. -### Opening an Existing Mock File in Mockoon + ```bash + yarn e2e --ui + ``` -To view or modify an existing mock file: +- **Run Tests Without Caching**: Ensure a fresh run of tests without using cached results. -1. Open Mockoon. -2. Click on **+** and then click on **Open Local Environment**. -3. Choose the desired mock file, such as `apps//e2e/mocks/.json`. + ```bash + yarn e2e --skip-nx-cache + ``` -This will load the mock configuration into the Mockoon UI, allowing you to inspect and edit the mock endpoints. +- **Run a Specific Project**: Run only the tests defined under a specific project in your Playwright config: -### Creating a Mock File with Mockoon UI + ```bash + yarn e2e -- --project=smoke + yarn e2e -- --project=acceptance + yarn e2e -- --project=everything + ``` -To create or modify a mock file: +- **View the Test Report**: After running tests, use this command to view the generated report: -1. Download and install [Mockoon](https://mockoon.com/download/) if you haven't already. -2. Open Mockoon and create a new environment: - - Click on **+** and then click on **New Local Environment**. - - Nema your mock file and choose a location for it e.g. `apps//e2e/mocks/.json`. - - Add endpoints, routes, and response details as needed. + ```bash + yarn playwright show-report + ``` -### Running a Mockoon Server with the CLI +- **Run Specific Tests**: Use `--grep` to run tests matching a specific pattern: -To run a mock server with the cli, use the following command: + ```bash + yarn e2e --grep "Home Page Test" + ``` + +- **Debug Mode**: Run tests in debug mode for better visibility: + + ```bash + yarn e2e --debug + ``` + +## ✍️ Writing Tests + +Run `yarn playwright codegen --output ` and modify the output. The selectors need special attention; they should be transformed to use roles or `data-testid` attributes for stability (see below on how to). + +### 🤔 What to Test + +Writing tests for every possible combination is time-consuming for you and the CI pipeline, with diminishing value beyond the most common cases. + +You should therefore aim to write test for: + +- Most common usage patterns +- Usage/patterns that MUST NOT break +- Problematic cases likely to cause an error/bug + +### 🏗️ Test structure + +Test cases are written in spec files. Tests that do not modify anything (e.g., _create_ an application, _change_ the user’s name, etc.) and verify basic functionality are called **smoke tests**. Tests that are more detailed and/or make any changes at all, are called **acceptance tests**. Test cases are put into folders by what app they are testing, smoke/acceptance test, and each file tests some aspect of an app. Here is an example of the folder layout for testing the search engine and front-page of the `web` project (within the system-e2e app): + +```shell +web/ (app name) +├── smoke/ (test type) +│ └── home-page.spec.ts (feature name, kebab-case) +└── acceptance/ + └── search.spec.ts +``` + +### 🗃️ Spec files + +A spec file should have only one description (`test.describe`) of what part of an app is being tested. Therein can be one or more test cases (`test`) with a description of what scenario each test case is testing. Setup and tear down can be done in `test.beforeAll`, `test.beforeEach`, `test.afterAll`, and `test.afterEach`. You should not _rely_ on `after*` ever running, and you should prepare your environment every time _before_ each test. For example: + +```jsx +test.describe('Overview part of banking app', () => { + test.beforeAll(() => { + // Create/clear database + // Seed database + }) + + /* NOTE: there is no guarantee this will run */ + test.afterAll(() => { + // Tear down database + // Log out + }) + + test.beforeEach(() => { + // Log in + // Basic state reset, e.g. clear inbox + }) + + test('should get paid', () => { + // Make user get money using page.selector, page.click, etc. + // Verify money is present + }) +}) +``` + +Each test case (`test`) should test a specific scenario from end-to-end. If your test is getting long and complicated consider breaking it up within a `test` with `test.step`; each step will run in succession and the failure/success report is easier to read. Let’s take the operating licence application as an example; test various routes/cases: + +- Hotel permit with food, but no alcohol +- Hotel permit with food and alcohol +- Bar with only alcohol +- Home accommodation (AirBnB style), no food, no alcohol + +### 🧰 Using Fixtures and Mocking Server Responses + +Fixtures are essential for setting up controlled test data to ensure predictable test behavior. Mocking server responses can help simulate specific backend scenarios without relying on live data. Use the following approach to mock server responses: + +```typescript +await page.route('/api/endpoint', (route) => + route.fulfill({ + status: 200, + body: JSON.stringify({ key: 'mockData' }), + }), +) +``` + +### 😬 Tricky element searching + +Some apps, like service-portal and application-system-form, load their components _very_ asynchronously. This can be an issue when targeting some elements, but they do not appear on the first page load, but instead load after the basic page has loaded. + +In such cases you can wait for the elements to exist with `page.waitFor*` ([docs](https://playwright.dev/docs/api/class-page#page-wait-for-event)): + +```jsx +// Wait for there to be at least 3 checkboxes +await page.waitForSelector(':nth-match("role=checkbox", 3') +// Wait for any arbitrary function +await page.waitForFunction(async () => { + const timer = page.locator('role=timer') + const timeLeft = await timer.textContent() + return Number(timeLeft) < 10 +}) +``` + +## 🤖 Mockoon Usage Guide for E2E Tests + +### ❓ What is Mockoon? + +[Mockoon](https://mockoon.com/) is a tool for creating mock APIs, useful for simulating backend services during E2E testing. + +### 📂 Opening and Creating Mock Files + +- **To open an existing mock file**: Navigate to `apps//e2e/mocks/.json` in the Mockoon UI. +- **To create a new mock file**: + 1. Download [Mockoon](https://mockoon.com/download/). + 2. Create a new environment and save it to `apps//e2e/mocks/`. + +### 🖥️ Running Mockoon Server with CLI + +To start a mock server: ```bash -yarn mockoon-cli start --data ./apps//e2e/mocks/.json --port +yarn mockoon-cli start --data ./apps//e2e/mocks/.json --port ``` + +## 🛠️ Troubleshooting and FAQs + +### 🔄 Common Issues + +- **500: Internal Server Error**: If not related to your code, contact the DevOps team. +- **💀 ESOCKETTIMEDOUT**: Likely an infrastructure issue. Reach out to DevOps if persistent. +- **⌛ Tests Timing Out**: Increase the timeout if known network issues exist: + + ```typescript + await page.goto('/my-url', { timeout: Timeout.medium }) + ``` + +## 📖 Additional Resources + +- Refer to each app directory's `README.md` for app-specific details and usage instructions. +- Check out the [Playwright Documentation](https://playwright.dev) for further information. From 23b699566b1db81dcf95ec0acf16dc05b8af6f1c Mon Sep 17 00:00:00 2001 From: kksteini <77672665+kksteini@users.noreply.github.com> Date: Mon, 18 Nov 2024 13:34:40 +0000 Subject: [PATCH 38/66] fix(application-ir): Separate texts (#16902) * fix(application-ir): Separate texts * Update libs/application/templates/inheritance-report/src/lib/messages.ts Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Use updated message in view --------- Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- .../src/forms/sections/prepaidInheritance/applicant.ts | 2 +- .../templates/inheritance-report/src/lib/messages.ts | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/libs/application/templates/inheritance-report/src/forms/sections/prepaidInheritance/applicant.ts b/libs/application/templates/inheritance-report/src/forms/sections/prepaidInheritance/applicant.ts index 2de640649a88..dc53eb07648d 100644 --- a/libs/application/templates/inheritance-report/src/forms/sections/prepaidInheritance/applicant.ts +++ b/libs/application/templates/inheritance-report/src/forms/sections/prepaidInheritance/applicant.ts @@ -16,7 +16,7 @@ export const prePaidApplicant = buildSection({ buildMultiField({ id: 'prePaidApplicant', title: m.applicantsInfo, - description: m.applicantsInfoSubtitle, + description: m.applicantsPrePaidInfoSubtitle, children: [ buildNationalIdWithNameField({ id: 'prePaidApplicant', diff --git a/libs/application/templates/inheritance-report/src/lib/messages.ts b/libs/application/templates/inheritance-report/src/lib/messages.ts index fc3969ea9920..8880f3a158e1 100644 --- a/libs/application/templates/inheritance-report/src/lib/messages.ts +++ b/libs/application/templates/inheritance-report/src/lib/messages.ts @@ -227,6 +227,12 @@ export const m = defineMessages({ 'Vinsamlegast farðu yfir upplýsingarnar og athugaðu hvort þær séu réttar.', description: '', }, + applicantsPrePaidInfoSubtitle: { + id: 'ir.application:applicantsPrePaidInfoSubtitle', + defaultMessage: + 'Vinsamlegast farðu yfir upplýsingarnar og athugaðu hvort þær séu réttar.', + description: 'Subtitle text shown above prepaid applicant information form', + }, name: { id: 'ir.application:name', defaultMessage: 'Nafn', From 882582391aff736ae9ad6c1b76f4f7de8115e6c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gunnlaugur=20Gu=C3=B0mundsson?= <34029342+GunnlaugurG@users.noreply.github.com> Date: Mon, 18 Nov 2024 13:43:07 +0000 Subject: [PATCH 39/66] feat(ids-admin): Change delete to archive (#16917) Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- libs/portals/admin/ids-admin/src/lib/messages.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libs/portals/admin/ids-admin/src/lib/messages.ts b/libs/portals/admin/ids-admin/src/lib/messages.ts index 37ca1fe0afaa..4fa97ac192d2 100644 --- a/libs/portals/admin/ids-admin/src/lib/messages.ts +++ b/libs/portals/admin/ids-admin/src/lib/messages.ts @@ -836,11 +836,11 @@ export const m = defineMessages({ }, successDeletingClient: { id: 'ap.ids-admin:success-deleting-client', - defaultMessage: 'Successfully deleted application', + defaultMessage: 'Successfully archived application', }, delete: { id: 'ap.ids-admin:delete', - defaultMessage: 'Delete', + defaultMessage: 'Archive', }, closeDeleteModal: { id: 'ap.ids-admin:close-delete-modal', @@ -852,12 +852,12 @@ export const m = defineMessages({ }, deleteClient: { id: 'ap.ids-admin:delete-client-all-env', - defaultMessage: 'Delete application', + defaultMessage: 'Archive application', }, deleteClientAlertMessage: { id: 'ap.ids-admin:delete-client-alert-message', defaultMessage: - 'The client ID will be deleted from all available environments and cannot be reused. Authentications will stop working immediately for your application.', + 'The client ID will be archived from all available environments and cannot be reused. Authentications will stop working immediately for your application.', }, partiallyCreatedClient: { id: 'ap.ids-admin:partially-created-client', From 16e680448b9e6f4d1d54124f46e2ea371cc5d85e Mon Sep 17 00:00:00 2001 From: Ylfa <55542991+ylfahfa@users.noreply.github.com> Date: Mon, 18 Nov 2024 13:52:27 +0000 Subject: [PATCH 40/66] fix(income-plan): amend dynamic eligible messages (#16918) * use correct variable to determine ip year * add option to dynamic eligible text * format * fix text --------- Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- .../income-plan/src/forms/IncomePlanForm.ts | 7 ++++--- .../income-plan/src/lib/constants.ts | 1 + .../income-plan/src/lib/incomePlanUtils.ts | 5 +++-- .../income-plan/src/lib/messages.ts | 9 ++++++++- 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/libs/application/templates/social-insurance-administration/income-plan/src/forms/IncomePlanForm.ts b/libs/application/templates/social-insurance-administration/income-plan/src/forms/IncomePlanForm.ts index 1ca22ef46eba..d7d70518d272 100644 --- a/libs/application/templates/social-insurance-administration/income-plan/src/forms/IncomePlanForm.ts +++ b/libs/application/templates/social-insurance-administration/income-plan/src/forms/IncomePlanForm.ts @@ -69,8 +69,9 @@ export const IncomePlanForm: Form = buildForm({ id: 'incomePlanTable', title: incomePlanFormMessage.info.section, description: (application: Application) => { - const { incomePlanConditions, latestIncomePlan } = - getApplicationExternalData(application.externalData) + const { latestIncomePlan } = getApplicationExternalData( + application.externalData, + ) const hasLatestIncomePlan = !isEmpty(latestIncomePlan) const baseMessage = hasLatestIncomePlan ? incomePlanFormMessage.incomePlan @@ -80,7 +81,7 @@ export const IncomePlanForm: Form = buildForm({ return { ...baseMessage, values: { - incomePlanYear: incomePlanConditions.incomePlanYear, + incomePlanYear: latestIncomePlan.year, }, } }, diff --git a/libs/application/templates/social-insurance-administration/income-plan/src/lib/constants.ts b/libs/application/templates/social-insurance-administration/income-plan/src/lib/constants.ts index a87cc7cbb9f7..83ac9bea41be 100644 --- a/libs/application/templates/social-insurance-administration/income-plan/src/lib/constants.ts +++ b/libs/application/templates/social-insurance-administration/income-plan/src/lib/constants.ts @@ -10,6 +10,7 @@ export const DIVIDENDS_IN_FOREIGN_BANKS = export const ISK = 'IKR' export const INCOME = 'Atvinnutekjur' export const INCOME_PLANS_CLOSED = 'INCOME_PLANS_CLOSED' +export const NO_ACTIVE_APPLICATIONS = 'NO_ACTIVE_APPLICATIONS' export enum RatioType { YEARLY = 'yearly', diff --git a/libs/application/templates/social-insurance-administration/income-plan/src/lib/incomePlanUtils.ts b/libs/application/templates/social-insurance-administration/income-plan/src/lib/incomePlanUtils.ts index a9a021aea627..a01e51b430bb 100644 --- a/libs/application/templates/social-insurance-administration/income-plan/src/lib/incomePlanUtils.ts +++ b/libs/application/templates/social-insurance-administration/income-plan/src/lib/incomePlanUtils.ts @@ -8,7 +8,7 @@ import { LatestIncomePlan, WithholdingTax, } from '../types' -import { INCOME_PLANS_CLOSED } from './constants' +import { NO_ACTIVE_APPLICATIONS, INCOME_PLANS_CLOSED } from './constants' import { incomePlanFormMessage } from './messages' export const getApplicationExternalData = ( @@ -133,8 +133,9 @@ export const isEligible = (externalData: ExternalData): boolean => { export const eligibleText = (externalData: ExternalData) => { const { isEligible } = getApplicationExternalData(externalData) - return isEligible.reasonCode === INCOME_PLANS_CLOSED ? incomePlanFormMessage.pre.isNotEligibleClosedDescription + : isEligible.reasonCode === NO_ACTIVE_APPLICATIONS + ? incomePlanFormMessage.pre.isNotEligibleNoActiveApplicationDescription : incomePlanFormMessage.pre.isNotEligibleDescription } diff --git a/libs/application/templates/social-insurance-administration/income-plan/src/lib/messages.ts b/libs/application/templates/social-insurance-administration/income-plan/src/lib/messages.ts index 1fd0c4c269c2..cc32fe4202c6 100644 --- a/libs/application/templates/social-insurance-administration/income-plan/src/lib/messages.ts +++ b/libs/application/templates/social-insurance-administration/income-plan/src/lib/messages.ts @@ -24,10 +24,17 @@ export const incomePlanFormMessage: MessageDir = { isNotEligibleDescription: { id: 'ip.application:is.not.eligible.description#markdown', defaultMessage: - '* Það eru innan við 10 dagar síðan síðasta tekjuáætlun þín var tekin í vinnslu hjá Tryggingastofnun.\n\nEf þú telur það ekki eiga við um þig, vinsamlegast hafið samband við [tr@tr.is](mailto:tr@tr.is)', + 'Ástæðan fyrir því er eftirfarandi:\n* Það eru innan við 10 dagar síðan síðasta tekjuáætlun þín var tekin í vinnslu hjá Tryggingastofnun.\n\nEf þú telur það ekki eiga við um þig, vinsamlegast hafið samband við [tr@tr.is](mailto:tr@tr.is)', description: '* It has been less than 10 days since your last income plan was processed by the Social Insurance Administration.\n\nIf you do not think that apply to you, please contact [tr@tr.is](mailto:tr @tr.is)', }, + isNotEligibleNoActiveApplicationDescription: { + id: 'ip.application:is.not.eligible.no.active.application.description#markdown', + defaultMessage: + 'Ástæðan fyrir því er eftirfarandi:\n* Þú ert ekki með virka umsókn hjá Tryggingastofnun.\n\nEf þú telur það ekki eiga við um þig, vinsamlegast hafið samband við [tr@tr.is](mailto:tr@tr.is)', + description: + 'The reason for this is the following:\n* You do not have any active applications at the Social Insurance Administration.\n\nIf you do not think that apply to you, please contact [tr@tr.is](mailto:tr @tr.is)', + }, isNotEligibleClosedDescription: { id: 'ip.application:is.not.eligible.closed.description#markdown', defaultMessage: From 487c5989194853ee7b05dd45eea319a4be0a1dbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B3hanna=20Magn=C3=BAsd=C3=B3ttir?= Date: Mon, 18 Nov 2024 14:14:48 +0000 Subject: [PATCH 41/66] fix(samgongustofa): update instructor - dont log unecessary errors (#16916) Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- libs/application/core/src/lib/messages.ts | 5 +++++ .../driving-license-book-update-instructor.service.ts | 10 +++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/libs/application/core/src/lib/messages.ts b/libs/application/core/src/lib/messages.ts index d39632da5fcf..bf55e326b06a 100644 --- a/libs/application/core/src/lib/messages.ts +++ b/libs/application/core/src/lib/messages.ts @@ -739,6 +739,11 @@ export const coreErrorMessages = defineMessages({ defaultMessage: 'Þú uppfyllir ekki skilyrði fyrir umsókn um nafnskírteini', description: 'Requirements for id card application not met', }, + drivingLicenseBookActiveBookNotFound: { + id: 'application.system:core.fetch.data.drivingLicenseBookActiveBookNotFound', + defaultMessage: 'Ekki fannst virk ökunámsbók', + description: 'Did not find active student book', + }, }) export const coreDelegationsMessages = defineMessages({ diff --git a/libs/application/template-api-modules/src/lib/modules/templates/driving-license-book-update-instructor/driving-license-book-update-instructor.service.ts b/libs/application/template-api-modules/src/lib/modules/templates/driving-license-book-update-instructor/driving-license-book-update-instructor.service.ts index 39075c44bea1..b24b7fadd825 100644 --- a/libs/application/template-api-modules/src/lib/modules/templates/driving-license-book-update-instructor/driving-license-book-update-instructor.service.ts +++ b/libs/application/template-api-modules/src/lib/modules/templates/driving-license-book-update-instructor/driving-license-book-update-instructor.service.ts @@ -4,6 +4,8 @@ import { DrivingLicenseBookUpdateInstructorAnswers } from '@island.is/applicatio import { BaseTemplateApiService } from '../../base-template-api.service' import { ApplicationTypes } from '@island.is/application/types' import { DrivingLicenseBookClientApiFactory } from '@island.is/clients/driving-license-book' +import { TemplateApiError } from '@island.is/nest/problem' +import { coreErrorMessages } from '@island.is/application/core' @Injectable() export class DrivingLicenseBookUpdateInstructorService extends BaseTemplateApiService { @@ -21,7 +23,13 @@ export class DrivingLicenseBookUpdateInstructorService extends BaseTemplateApiSe ) if (!overview?.active) { - throw new Error('Did not find active student book') + throw new TemplateApiError( + { + title: coreErrorMessages.drivingLicenseBookActiveBookNotFound, + summary: coreErrorMessages.drivingLicenseBookActiveBookNotFound, + }, + 400, + ) } const teacherNationalId = overview.book?.teacherNationalId From 760b5fe26e97042d2b4918f508bac1a4a5def3f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=BAnar=20Vestmann?= <43557895+RunarVestmann@users.noreply.github.com> Date: Mon, 18 Nov 2024 14:33:32 +0000 Subject: [PATCH 42/66] feat(web): Outbound link tracking in Plausible (#16899) Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- apps/web/constants/index.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/web/constants/index.ts b/apps/web/constants/index.ts index c52757d262e3..09b99769622a 100644 --- a/apps/web/constants/index.ts +++ b/apps/web/constants/index.ts @@ -7,6 +7,7 @@ export const PROJECT_STORIES_TAG_ID = '9yqOTwQYzgyej5kItFTtd' export const ADGERDIR_INDIVIDUALS_TAG_ID = '4kLt3eRht5yJoakIHWsusb' export const ADGERDIR_COMPANIES_TAG_ID = '4ZWcwoW2IiB2AhtzQpzdIW' export const FRONTPAGE_NEWS_TAG_ID = 'forsidufrettir' -export const PLAUSIBLE_SCRIPT_SRC = 'https://plausible.io/js/plausible.js' +export const PLAUSIBLE_SCRIPT_SRC = + 'https://plausible.io/js/script.outbound-links.js' export const DIGITAL_ICELAND_PLAUSIBLE_TRACKING_DOMAIN = 'island.is/s/stafraent-island' From d33043ff959797b37e993ccb38a2e22b64a90680 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sigr=C3=BAn=20Tinna=20Gissurard=C3=B3ttir?= <39527334+sigruntg@users.noreply.github.com> Date: Mon, 18 Nov 2024 15:23:31 +0000 Subject: [PATCH 43/66] fix(work-accident-notification): work accident bug fixes (#16922) * moving part of companyinfo to basicinfo to stop autofill * some fixes * extract strings * fix inputs being empty on back button click --------- Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- .../application/core/src/lib/fieldBuilders.ts | 4 ++++ .../work-accident-notification.service.ts | 12 +++++------ .../work-accident-notification/project.json | 6 ++++++ .../src/fields/AccidentLocation/index.tsx | 19 +++++++++++++----- .../fields/EmployeeStartTimeError/index.tsx | 11 ++++++++-- .../AccidentSection/about.ts | 7 ++----- .../EmployeeSection/employee.ts | 16 +++------------ .../InformationSection/companySection.ts | 15 ++++++++------ .../prerequisitesSection.ts | 1 - .../src/lib/dataSchema.ts | 9 +++++++-- .../src/lib/messages/accident.ts | 6 +++--- .../utils/getCompanyInformationForOverview.ts | 20 ++++++++++++++----- .../src/utils/index.ts | 1 + libs/application/types/src/lib/Fields.ts | 2 ++ .../src/lib/DateFormField/DateFormField.tsx | 4 ++++ 15 files changed, 84 insertions(+), 49 deletions(-) diff --git a/libs/application/core/src/lib/fieldBuilders.ts b/libs/application/core/src/lib/fieldBuilders.ts index af82c47fc7f8..2f1a86f6a03c 100644 --- a/libs/application/core/src/lib/fieldBuilders.ts +++ b/libs/application/core/src/lib/fieldBuilders.ts @@ -118,6 +118,8 @@ export const buildDateField = ( const { maxDate, minDate, + minYear, + maxYear, excludeDates, placeholder, backgroundColor = 'blue', @@ -130,6 +132,8 @@ export const buildDateField = ( placeholder, maxDate, minDate, + minYear, + maxYear, excludeDates, type: FieldTypes.DATE, component: FieldComponents.DATE, diff --git a/libs/application/template-api-modules/src/lib/modules/templates/aosh/work-accident-notification/work-accident-notification.service.ts b/libs/application/template-api-modules/src/lib/modules/templates/aosh/work-accident-notification/work-accident-notification.service.ts index 54839ce19a07..b078f12def46 100644 --- a/libs/application/template-api-modules/src/lib/modules/templates/aosh/work-accident-notification/work-accident-notification.service.ts +++ b/libs/application/template-api-modules/src/lib/modules/templates/aosh/work-accident-notification/work-accident-notification.service.ts @@ -12,10 +12,8 @@ import { } from '@island.is/clients/work-accident-ver' import { getDateAndTime, - getValueList, mapVictimData, } from './work-accident-notification.utils' -import { getValueViaPath } from '@island.is/application/core' import { TemplateApiError } from '@island.is/nest/problem' @Injectable() @@ -57,20 +55,20 @@ export class WorkAccidentNotificationTemplateService extends BaseTemplateApiServ const answers = application.answers as unknown as WorkAccidentNotification const payload = { accidentForCreationDto: { - companySSN: answers.companyInformation.nationalId, + companySSN: answers.basicInformation.nationalId, sizeOfEnterprise: parseInt( - answers.companyInformation.numberOfEmployees, + answers.basicInformation.numberOfEmployees, 10, ), nameOfBranchOrDepartment: answers.companyInformation.nameOfBranch ?? - answers.companyInformation.name, + answers.basicInformation.name, address: answers.companyInformation.addressOfBranch ?? - answers.companyInformation.address, + answers.basicInformation.address, postcode: answers.companyInformation.postnumberOfBranch?.slice(0, 3) ?? - answers.companyInformation.postnumber.slice(0, 3), + answers.basicInformation.postnumber.slice(0, 3), workplaceHealthAndSafety: answers.companyLaborProtection.workhealthAndSafetyOccupation?.map( (code: string) => { diff --git a/libs/application/templates/aosh/work-accident-notification/project.json b/libs/application/templates/aosh/work-accident-notification/project.json index ab889cfaf462..a2309411789d 100644 --- a/libs/application/templates/aosh/work-accident-notification/project.json +++ b/libs/application/templates/aosh/work-accident-notification/project.json @@ -7,6 +7,12 @@ "targets": { "lint": { "executor": "@nx/eslint:lint" + }, + "extract-strings": { + "executor": "nx:run-commands", + "options": { + "command": "yarn ts-node -P libs/localization/tsconfig.lib.json libs/localization/scripts/extract 'libs/application/templates/aosh/work-accident-notification/src/**/*.{js,ts,tsx}'" + } } } } diff --git a/libs/application/templates/aosh/work-accident-notification/src/fields/AccidentLocation/index.tsx b/libs/application/templates/aosh/work-accident-notification/src/fields/AccidentLocation/index.tsx index df31e4cfa436..69426791673e 100644 --- a/libs/application/templates/aosh/work-accident-notification/src/fields/AccidentLocation/index.tsx +++ b/libs/application/templates/aosh/work-accident-notification/src/fields/AccidentLocation/index.tsx @@ -42,7 +42,15 @@ export const AccidentLocation: FC> = ( ) const [minorGroupOptions, setMinorGroupOptions] = useState< WorkingEnvironmentDto[] - >([]) + >( + selectedMajorGroup + ? minorGroups.filter( + (group) => + group.code?.substring(0, 2) === + selectedMajorGroup?.value?.substring(0, 2), + ) + : [], + ) return ( @@ -56,7 +64,7 @@ export const AccidentLocation: FC> = ( label={formatMessage( accident.about.locationOfAccidentMajorGroup, )} - name="subMajorGroupSelect" + name="accident.accidentLocationParentGroup" options={majorGroups.map((option) => ({ label: option.name || '', value: option.code, @@ -80,7 +88,7 @@ export const AccidentLocation: FC> = ( /> ) }} - name={'subMajorGroup'} + name={'accident.accidentLocationParentGroup'} /> @@ -92,11 +100,12 @@ export const AccidentLocation: FC> = ( label={formatMessage( accident.about.locationOfAccidentMinorGroup, )} - name="subMajorGroupSelect" + name="accident.accidentLocation" options={minorGroupOptions.map((group) => ({ label: group.name || '', value: group.code, }))} + isDisabled={!selectedMajorGroup} value={selectedMinorGroup} backgroundColor="blue" onChange={(v) => { @@ -113,7 +122,7 @@ export const AccidentLocation: FC> = ( /> ) }} - name={'subMajorGroup'} + name={'accident.accidentLocation'} /> diff --git a/libs/application/templates/aosh/work-accident-notification/src/fields/EmployeeStartTimeError/index.tsx b/libs/application/templates/aosh/work-accident-notification/src/fields/EmployeeStartTimeError/index.tsx index 03bcd17321be..2d9bfe513c0e 100644 --- a/libs/application/templates/aosh/work-accident-notification/src/fields/EmployeeStartTimeError/index.tsx +++ b/libs/application/templates/aosh/work-accident-notification/src/fields/EmployeeStartTimeError/index.tsx @@ -5,7 +5,8 @@ import { useFormContext } from 'react-hook-form' import { employee } from '../../lib/messages' import { useLocale } from '@island.is/localization' import { WorkAccidentNotification } from '../../lib/dataSchema' -import { dateIsWithin36Hours } from '../../utils' +import { dateIsWithin36Hours, formatDate } from '../../utils' +import { getValueViaPath } from '@island.is/application/core' interface EmployeeStartTimeErrorProps { field: { @@ -23,6 +24,10 @@ export const EmployeeStartTimeError: FC< const { getValues } = useFormContext() const { formatMessage } = useLocale() const [inputError, setInputError] = useState(false) + const startDate = + getValueViaPath(application.answers, 'accident.date') ?? '' + const startTime = + getValueViaPath(application.answers, 'accident.time') ?? '' setBeforeSubmitCallback?.(async () => { const values = getValues('employee') @@ -48,7 +53,9 @@ export const EmployeeStartTimeError: FC< {inputError && ( - {formatMessage(employee.employee.errorMessage)} + {`${formatMessage(employee.employee.errorMessage)}, ${formatDate( + startDate, + )} ${startTime.slice(0, 2)}:${startTime.slice(2, 4)}`} )} diff --git a/libs/application/templates/aosh/work-accident-notification/src/forms/WorkAccidentNotificationForm/AccidentSection/about.ts b/libs/application/templates/aosh/work-accident-notification/src/forms/WorkAccidentNotificationForm/AccidentSection/about.ts index 96e389a19054..7c583e68c242 100644 --- a/libs/application/templates/aosh/work-accident-notification/src/forms/WorkAccidentNotificationForm/AccidentSection/about.ts +++ b/libs/application/templates/aosh/work-accident-notification/src/forms/WorkAccidentNotificationForm/AccidentSection/about.ts @@ -3,7 +3,6 @@ import { buildCustomField, buildDateField, buildDescriptionField, - buildHiddenInput, buildMultiField, buildSelectField, buildSubSection, @@ -34,6 +33,7 @@ export const aboutSection = buildSubSection({ width: 'half', required: true, minDate: new Date('1.1.2020'), + maxDate: new Date(), }), buildTextField({ id: 'accident.time', @@ -155,11 +155,8 @@ export const aboutSection = buildSubSection({ title: accident.about.locationOfAccidentHeading, marginTop: 3, }), - buildHiddenInput({ - id: 'accident.accidentLocationParentGroup', - }), buildCustomField({ - id: 'accident.accidentLocation', + id: 'accident', title: '', component: 'AccidentLocation', }), diff --git a/libs/application/templates/aosh/work-accident-notification/src/forms/WorkAccidentNotificationForm/EmployeeSection/employee.ts b/libs/application/templates/aosh/work-accident-notification/src/forms/WorkAccidentNotificationForm/EmployeeSection/employee.ts index bb0fa88d47a3..afb361691175 100644 --- a/libs/application/templates/aosh/work-accident-notification/src/forms/WorkAccidentNotificationForm/EmployeeSection/employee.ts +++ b/libs/application/templates/aosh/work-accident-notification/src/forms/WorkAccidentNotificationForm/EmployeeSection/employee.ts @@ -3,7 +3,6 @@ import { buildCustomField, buildDateField, buildDescriptionField, - buildHiddenInput, buildMultiField, buildNationalIdWithNameField, buildSelectField, @@ -118,6 +117,9 @@ export const employeeSubSection = (index: number) => width: 'half', required: true, title: employee.employee.startDate, + maxDate: new Date(), + minYear: 1940, + maxYear: new Date().getFullYear(), }), buildSelectField({ id: `employee[${index}].employmentTime`, @@ -235,18 +237,6 @@ export const employeeSubSection = (index: number) => titleVariant: 'h5', marginTop: 3, }), - buildHiddenInput({ - id: `employee[${index}].victimsOccupationMajor`, - }), - buildHiddenInput({ - id: `employee[${index}].victimsOccupationSubMajor`, - }), - buildHiddenInput({ - id: `employee[${index}].victimsOccupationMinor`, - }), - buildHiddenInput({ - id: `employee[${index}].victimsOccupationUnit`, - }), buildCustomField( { id: `employee[${index}].victimsOccupation`, diff --git a/libs/application/templates/aosh/work-accident-notification/src/forms/WorkAccidentNotificationForm/InformationSection/companySection.ts b/libs/application/templates/aosh/work-accident-notification/src/forms/WorkAccidentNotificationForm/InformationSection/companySection.ts index 2575705bba0f..99818937fb19 100644 --- a/libs/application/templates/aosh/work-accident-notification/src/forms/WorkAccidentNotificationForm/InformationSection/companySection.ts +++ b/libs/application/templates/aosh/work-accident-notification/src/forms/WorkAccidentNotificationForm/InformationSection/companySection.ts @@ -38,12 +38,12 @@ export const companySection = buildSubSection({ }, }), buildDescriptionField({ - id: 'companyInformation.description', + id: 'basicInformation.description', title: information.labels.company.descriptionField, titleVariant: 'h5', }), buildTextField({ - id: 'companyInformation.nationalId', + id: 'basicInformation.nationalId', title: information.labels.company.nationalId, backgroundColor: 'white', width: 'half', @@ -59,10 +59,11 @@ export const companySection = buildSubSection({ }, }), buildTextField({ - id: 'companyInformation.name', + id: 'basicInformation.name', title: information.labels.company.name, backgroundColor: 'white', width: 'half', + readOnly: true, defaultValue: (application: Application) => { const name = getValueViaPath( application.externalData, @@ -73,10 +74,11 @@ export const companySection = buildSubSection({ }, }), buildTextField({ - id: 'companyInformation.address', + id: 'basicInformation.address', title: information.labels.company.address, backgroundColor: 'white', width: 'half', + readOnly: true, defaultValue: (application: Application) => { const streetAddress = getValueViaPath( application.externalData, @@ -87,10 +89,11 @@ export const companySection = buildSubSection({ }, }), buildTextField({ - id: 'companyInformation.postnumber', + id: 'basicInformation.postnumber', title: information.labels.company.postNumberAndTown, backgroundColor: 'white', width: 'half', + readOnly: true, defaultValue: (application: Application) => { const postalCode = getValueViaPath( application.externalData, @@ -105,7 +108,7 @@ export const companySection = buildSubSection({ }, }), buildSelectField({ - id: 'companyInformation.numberOfEmployees', + id: 'basicInformation.numberOfEmployees', title: information.labels.company.numberOfEmployees, width: 'half', required: true, diff --git a/libs/application/templates/aosh/work-accident-notification/src/forms/WorkAccidentNotificationForm/prerequisitesSection.ts b/libs/application/templates/aosh/work-accident-notification/src/forms/WorkAccidentNotificationForm/prerequisitesSection.ts index 11a5028f4ece..f7ef164ff598 100644 --- a/libs/application/templates/aosh/work-accident-notification/src/forms/WorkAccidentNotificationForm/prerequisitesSection.ts +++ b/libs/application/templates/aosh/work-accident-notification/src/forms/WorkAccidentNotificationForm/prerequisitesSection.ts @@ -4,7 +4,6 @@ import { buildDataProviderItem, buildSubmitField, coreMessages, - buildHiddenInput, } from '@island.is/application/core' import { externalData } from '../../lib/messages' import { diff --git a/libs/application/templates/aosh/work-accident-notification/src/lib/dataSchema.ts b/libs/application/templates/aosh/work-accident-notification/src/lib/dataSchema.ts index f2c032533d83..34fd239f7894 100644 --- a/libs/application/templates/aosh/work-accident-notification/src/lib/dataSchema.ts +++ b/libs/application/templates/aosh/work-accident-notification/src/lib/dataSchema.ts @@ -27,7 +27,7 @@ const accidentSchema = z.object({ wentWrong: z.string().min(1).max(499), }) -const companySchema = z.object({ +const basicCompanySchema = z.object({ nationalId: z .string() .refine( @@ -35,10 +35,13 @@ const companySchema = z.object({ nationalId && nationalId.length !== 0 && kennitala.isValid(nationalId), ), address: z.string(), - addressOfBranch: z.string().optional(), name: z.string(), numberOfEmployees: z.string(), postnumber: z.string(), +}) + +const companySchema = z.object({ + addressOfBranch: z.string().optional(), nameOfBranch: z.string().optional(), // VER needs to confirm requirement here for individuals vs company postnumberOfBranch: z.string().optional(), industryClassification: z.string().optional(), @@ -191,6 +194,7 @@ const projectPurchaseSchema = z export const WorkAccidentNotificationAnswersSchema = z.object({ approveExternalData: z.boolean().refine((v) => v), + basicInformation: basicCompanySchema, companyInformation: companySchema, companyLaborProtection: companyLaborProtectionSchema, accident: accidentSchema, @@ -208,6 +212,7 @@ export const WorkAccidentNotificationAnswersSchema = z.object({ export type WorkAccidentNotification = z.TypeOf< typeof WorkAccidentNotificationAnswersSchema > +export type BasicCompanyType = z.TypeOf export type CompanyType = z.TypeOf export type CompanyLaborProtectionType = z.TypeOf< typeof companyLaborProtectionSchema diff --git a/libs/application/templates/aosh/work-accident-notification/src/lib/messages/accident.ts b/libs/application/templates/aosh/work-accident-notification/src/lib/messages/accident.ts index 2b54f6e6b49b..185bde25b75e 100644 --- a/libs/application/templates/aosh/work-accident-notification/src/lib/messages/accident.ts +++ b/libs/application/templates/aosh/work-accident-notification/src/lib/messages/accident.ts @@ -84,7 +84,7 @@ export const accident = { wasDoingPlaceholder: { id: 'aosh.wan.application:accident.about.wasDoingPlaceholder#markdown', defaultMessage: - 'Tilgreinið hvaða verkfæri eða vélar voru notaðar.\nDæmi:\n - Vann með handborvél\n - Vann með handborvél', + 'Tilgreinið hvaða verkfæri eða vélar voru notaðar.\nDæmi:\n - Vann með handborvél\n - Var að styðja sjúkling á leið til baðherbergis', description: 'Placeholder of wasDoing text area', }, wentWrongTitle: { @@ -95,7 +95,7 @@ export const accident = { wenWrongPlaceholder: { id: 'aosh.wan.application:accident.about.wenWrongPlaceholder#markdown', defaultMessage: - 'Tilgreinið hvaða verkfæri eða vélar voru notaðar.\nDæmi:\n - Vann með handborvél\n - Vann með handborvél', + 'Tilgreinið hvaða verkfæri, vélar eða byrði áttu þátt í því.\nDæmi:\n - Borinn brotnaði í efninu\n - Sjúklingurinn gat skyndilega ekki staðið á fótunum', description: 'Placeholder of wentWrong text area', }, howTitle: { @@ -106,7 +106,7 @@ export const accident = { howPlaceholder: { id: 'aosh.wan.application:accident.about.howPlaceholder#markdown', defaultMessage: - 'Tilgreinið hvaða verkfæri eða vélar voru notaðar.\nDæmi:\n - Vann með handborvél\n - Vann með handborvél', + 'Tilgreinið hvaða verkfæri, vélar eða byrði var orsök slyssins.\nDæmi:\n - Borinn lenti í hendinni\n - Við að reyna að halda sjúklingnum uppi hrasaði slasaði og fékk hnykk á bakið', description: 'Placeholder of how text area', }, locationOfAccidentHeading: { diff --git a/libs/application/templates/aosh/work-accident-notification/src/utils/getCompanyInformationForOverview.ts b/libs/application/templates/aosh/work-accident-notification/src/utils/getCompanyInformationForOverview.ts index 81a8637ffe61..bdc845fa82e8 100644 --- a/libs/application/templates/aosh/work-accident-notification/src/utils/getCompanyInformationForOverview.ts +++ b/libs/application/templates/aosh/work-accident-notification/src/utils/getCompanyInformationForOverview.ts @@ -6,7 +6,11 @@ import { } from '@island.is/application/types' import { information, overview } from '../lib/messages' import { format as formatKennitala } from 'kennitala' -import { CompanyLaborProtectionType, CompanyType } from '../lib/dataSchema' +import { + BasicCompanyType, + CompanyLaborProtectionType, + CompanyType, +} from '../lib/dataSchema' import { SizeOfTheEnterpriseDto, WorkplaceHealthAndSafetyDto, @@ -18,6 +22,10 @@ export const getCompanyInformationForOverview = ( externalData: ExternalData, formatMessage: FormatMessage, ) => { + const basicCompany = getValueViaPath( + answers, + 'basicInformation', + ) const company = getValueViaPath(answers, 'companyInformation') const companyLaborProtection = getValueViaPath( answers, @@ -34,13 +42,15 @@ export const getCompanyInformationForOverview = ( 'aoshData.data.workplaceHealthAndSafety', ) ?? [] const chosenSizeOfEnterprise = sizeOfEnterprises.find( - (size) => company?.numberOfEmployees === size?.code, + (size) => basicCompany?.numberOfEmployees === size?.code, ) return [ - company?.name ?? undefined, - company?.nationalId ? formatKennitala(company.nationalId) : undefined, - `${company?.address ?? ''}, ${company?.postnumber ?? ''}`, + basicCompany?.name ?? undefined, + basicCompany?.nationalId + ? formatKennitala(basicCompany.nationalId) + : undefined, + `${basicCompany?.address ?? ''}, ${basicCompany?.postnumber ?? ''}`, company?.industryClassification ?? undefined, chosenSizeOfEnterprise?.name ?? undefined, `${formatMessage(information.labels.workhealth.sectionTitle)}: ${ diff --git a/libs/application/templates/aosh/work-accident-notification/src/utils/index.ts b/libs/application/templates/aosh/work-accident-notification/src/utils/index.ts index e3e0d34b45e6..8dd880060ee4 100644 --- a/libs/application/templates/aosh/work-accident-notification/src/utils/index.ts +++ b/libs/application/templates/aosh/work-accident-notification/src/utils/index.ts @@ -9,3 +9,4 @@ export { isValidPhoneNumber, } from './dateManipulation' export { isCompany } from './isCompany' +export { formatDate } from './formatDate' diff --git a/libs/application/types/src/lib/Fields.ts b/libs/application/types/src/lib/Fields.ts index e4bab487a79d..138b02bce010 100644 --- a/libs/application/types/src/lib/Fields.ts +++ b/libs/application/types/src/lib/Fields.ts @@ -313,6 +313,8 @@ export interface DateField extends InputField { component: FieldComponents.DATE maxDate?: MaybeWithApplicationAndField minDate?: MaybeWithApplicationAndField + minYear?: number + maxYear?: number excludeDates?: MaybeWithApplicationAndField backgroundColor?: DatePickerBackgroundColor onChange?(date: string): void diff --git a/libs/application/ui-fields/src/lib/DateFormField/DateFormField.tsx b/libs/application/ui-fields/src/lib/DateFormField/DateFormField.tsx index faeb76a86d30..3b90993c051d 100644 --- a/libs/application/ui-fields/src/lib/DateFormField/DateFormField.tsx +++ b/libs/application/ui-fields/src/lib/DateFormField/DateFormField.tsx @@ -41,6 +41,8 @@ export const DateFormField: FC> = ({ excludeDates, minDate, maxDate, + minYear, + maxYear, onChange, readOnly, } = field @@ -139,6 +141,8 @@ export const DateFormField: FC> = ({ excludeDates={finalExcludeDates} minDate={finalMinDate} maxDate={finalMaxDate} + minYear={minYear} + maxYear={maxYear} backgroundColor={backgroundColor} readOnly={readOnly} label={formatTextWithLocale(title, application, lang, formatMessage)} From a8e03f5c275b6d708d6a6d4615b0150bd10f0078 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gu=C3=B0j=C3=B3n=20Gu=C3=B0j=C3=B3nsson?= Date: Mon, 18 Nov 2024 16:21:07 +0000 Subject: [PATCH 44/66] fix(j-s): String Length Validation (#16924) Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- .../src/app/modules/case/dto/createCase.dto.ts | 8 ++++++++ .../src/app/modules/case/dto/updateCase.dto.ts | 13 +++++++++++++ .../modules/defendant/dto/createDefendant.dto.ts | 16 +++++++++++++++- .../defendant/dto/updateCivilClaimant.dto.ts | 8 +++++++- .../modules/defendant/dto/updateDefendant.dto.ts | 11 +++++++++++ .../src/app/modules/file/dto/createFile.dto.ts | 6 ++++++ .../modules/file/dto/createPresignedPost.dto.ts | 4 +++- .../src/app/modules/file/dto/updateFile.dto.ts | 2 ++ .../dto/updateIndictmentCount.dto.ts | 3 +++ .../modules/subpoena/dto/updateSubpoena.dto.ts | 9 ++++++++- .../src/app/modules/user/dto/createUser.dto.ts | 6 ++++++ .../src/app/modules/user/dto/updateUser.dto.ts | 5 +++++ .../InvestigationCase/Defendant/Defendant.tsx | 1 + 13 files changed, 88 insertions(+), 4 deletions(-) diff --git a/apps/judicial-system/backend/src/app/modules/case/dto/createCase.dto.ts b/apps/judicial-system/backend/src/app/modules/case/dto/createCase.dto.ts index f3f920723a31..32bf0f7589d1 100644 --- a/apps/judicial-system/backend/src/app/modules/case/dto/createCase.dto.ts +++ b/apps/judicial-system/backend/src/app/modules/case/dto/createCase.dto.ts @@ -6,6 +6,7 @@ import { IsObject, IsOptional, IsString, + MaxLength, } from 'class-validator' import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger' @@ -31,6 +32,7 @@ export class CreateCaseDto { readonly indictmentSubtypes?: IndictmentSubtypeMap @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly description?: string @@ -38,26 +40,31 @@ export class CreateCaseDto { @IsNotEmpty() @IsArray() @ArrayMinSize(1) + @MaxLength(255) @IsString({ each: true }) @ApiProperty({ type: String, isArray: true }) readonly policeCaseNumbers!: string[] @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly defenderName?: string @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly defenderNationalId?: string @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly defenderEmail?: string @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly defenderPhoneNumber?: string @@ -68,6 +75,7 @@ export class CreateCaseDto { readonly requestSharedWithDefender?: RequestSharedWithDefender @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly leadInvestigator?: string diff --git a/apps/judicial-system/backend/src/app/modules/case/dto/updateCase.dto.ts b/apps/judicial-system/backend/src/app/modules/case/dto/updateCase.dto.ts index 4930b0b976bb..a34a8a14d219 100644 --- a/apps/judicial-system/backend/src/app/modules/case/dto/updateCase.dto.ts +++ b/apps/judicial-system/backend/src/app/modules/case/dto/updateCase.dto.ts @@ -9,6 +9,7 @@ import { IsOptional, IsString, IsUUID, + MaxLength, ValidateNested, } from 'class-validator' @@ -43,6 +44,7 @@ class UpdateDateLog { readonly date?: Date @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly location?: string @@ -60,6 +62,7 @@ export class UpdateCaseDto { readonly indictmentSubtypes?: IndictmentSubtypeMap @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly description?: string @@ -67,26 +70,31 @@ export class UpdateCaseDto { @IsOptional() @IsArray() @ArrayMinSize(1) + @MaxLength(255) @IsString({ each: true }) @ApiPropertyOptional({ type: String, isArray: true }) readonly policeCaseNumbers?: string[] @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly defenderName?: string @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly defenderNationalId?: string @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly defenderEmail?: string @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly defenderPhoneNumber?: string @@ -107,6 +115,7 @@ export class UpdateCaseDto { readonly courtId?: string @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly leadInvestigator?: string @@ -124,6 +133,7 @@ export class UpdateCaseDto { readonly requestedCourtDate?: Date @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly translator?: string @@ -207,6 +217,7 @@ export class UpdateCaseDto { readonly sharedWithProsecutorsOfficeId?: string @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly courtCaseNumber?: string @@ -229,6 +240,7 @@ export class UpdateCaseDto { readonly courtDate?: UpdateDateLog @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly courtLocation?: string @@ -407,6 +419,7 @@ export class UpdateCaseDto { readonly defendantStatementDate?: Date @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly appealCaseNumber?: string diff --git a/apps/judicial-system/backend/src/app/modules/defendant/dto/createDefendant.dto.ts b/apps/judicial-system/backend/src/app/modules/defendant/dto/createDefendant.dto.ts index eee5ea58da99..9c32a38660c7 100644 --- a/apps/judicial-system/backend/src/app/modules/defendant/dto/createDefendant.dto.ts +++ b/apps/judicial-system/backend/src/app/modules/defendant/dto/createDefendant.dto.ts @@ -1,4 +1,10 @@ -import { IsBoolean, IsEnum, IsOptional, IsString } from 'class-validator' +import { + IsBoolean, + IsEnum, + IsOptional, + IsString, + MaxLength, +} from 'class-validator' import { ApiPropertyOptional } from '@nestjs/swagger' @@ -11,11 +17,13 @@ export class CreateDefendantDto { readonly noNationalId?: boolean @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly nationalId?: string @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly name?: string @@ -26,31 +34,37 @@ export class CreateDefendantDto { readonly gender?: Gender @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly address?: string @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly citizenship?: string @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly defenderName?: string @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly defenderNationalId?: string @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly defenderEmail?: string @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly defenderPhoneNumber?: string diff --git a/apps/judicial-system/backend/src/app/modules/defendant/dto/updateCivilClaimant.dto.ts b/apps/judicial-system/backend/src/app/modules/defendant/dto/updateCivilClaimant.dto.ts index 3f85ec624a7f..44bcbed23e49 100644 --- a/apps/judicial-system/backend/src/app/modules/defendant/dto/updateCivilClaimant.dto.ts +++ b/apps/judicial-system/backend/src/app/modules/defendant/dto/updateCivilClaimant.dto.ts @@ -1,4 +1,4 @@ -import { IsBoolean, IsOptional, IsString } from 'class-validator' +import { IsBoolean, IsOptional, IsString, MaxLength } from 'class-validator' import { ApiPropertyOptional } from '@nestjs/swagger' @@ -9,11 +9,13 @@ export class UpdateCivilClaimantDto { readonly noNationalId?: boolean @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly name?: string @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly nationalId?: string @@ -29,21 +31,25 @@ export class UpdateCivilClaimantDto { readonly spokespersonIsLawyer?: boolean @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly spokespersonNationalId?: string @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly spokespersonName?: string @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly spokespersonEmail?: string @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly spokespersonPhoneNumber?: string diff --git a/apps/judicial-system/backend/src/app/modules/defendant/dto/updateDefendant.dto.ts b/apps/judicial-system/backend/src/app/modules/defendant/dto/updateDefendant.dto.ts index 8e9321fbf730..c59f91dcaa0d 100644 --- a/apps/judicial-system/backend/src/app/modules/defendant/dto/updateDefendant.dto.ts +++ b/apps/judicial-system/backend/src/app/modules/defendant/dto/updateDefendant.dto.ts @@ -5,6 +5,7 @@ import { IsEnum, IsOptional, IsString, + MaxLength, } from 'class-validator' import { ApiPropertyOptional } from '@nestjs/swagger' @@ -24,11 +25,13 @@ export class UpdateDefendantDto { readonly noNationalId?: boolean @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly nationalId?: string @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly name?: string @@ -39,31 +42,37 @@ export class UpdateDefendantDto { readonly gender?: Gender @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly address?: string @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly citizenship?: string @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly defenderName?: string @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly defenderNationalId?: string @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly defenderEmail?: string @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly defenderPhoneNumber?: string @@ -106,11 +115,13 @@ export class UpdateDefendantDto { readonly requestedDefenderChoice?: DefenderChoice @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly requestedDefenderNationalId?: string @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly requestedDefenderName?: string diff --git a/apps/judicial-system/backend/src/app/modules/file/dto/createFile.dto.ts b/apps/judicial-system/backend/src/app/modules/file/dto/createFile.dto.ts index de31caf5e46b..b17cfaaacb6c 100644 --- a/apps/judicial-system/backend/src/app/modules/file/dto/createFile.dto.ts +++ b/apps/judicial-system/backend/src/app/modules/file/dto/createFile.dto.ts @@ -6,6 +6,7 @@ import { IsNumber, IsOptional, IsString, + MaxLength, } from 'class-validator' import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger' @@ -14,6 +15,7 @@ import { CaseFileCategory } from '@island.is/judicial-system/types' export class CreateFileDto { @IsNotEmpty() + @MaxLength(255) @IsString() @ApiProperty({ type: String }) readonly type!: string @@ -24,6 +26,7 @@ export class CreateFileDto { readonly category?: CaseFileCategory @IsNotEmpty() + @MaxLength(255) @IsString() @ApiProperty({ type: String }) readonly key!: string @@ -34,6 +37,7 @@ export class CreateFileDto { readonly size!: number @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly policeCaseNumber?: string @@ -55,11 +59,13 @@ export class CreateFileDto { readonly displayDate?: Date @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly policeFileId?: string @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly userGeneratedFilename?: string diff --git a/apps/judicial-system/backend/src/app/modules/file/dto/createPresignedPost.dto.ts b/apps/judicial-system/backend/src/app/modules/file/dto/createPresignedPost.dto.ts index 1dc58cf5f6db..e9bdeb9d4a7a 100644 --- a/apps/judicial-system/backend/src/app/modules/file/dto/createPresignedPost.dto.ts +++ b/apps/judicial-system/backend/src/app/modules/file/dto/createPresignedPost.dto.ts @@ -1,14 +1,16 @@ -import { IsNotEmpty, IsString } from 'class-validator' +import { IsNotEmpty, IsString, MaxLength } from 'class-validator' import { ApiProperty } from '@nestjs/swagger' export class CreatePresignedPostDto { @IsNotEmpty() + @MaxLength(255) @IsString() @ApiProperty({ type: String }) readonly fileName!: string @IsNotEmpty() + @MaxLength(255) @IsString() @ApiProperty({ type: String }) readonly type!: string diff --git a/apps/judicial-system/backend/src/app/modules/file/dto/updateFile.dto.ts b/apps/judicial-system/backend/src/app/modules/file/dto/updateFile.dto.ts index f645b71bf9bb..a769eeda2ddb 100644 --- a/apps/judicial-system/backend/src/app/modules/file/dto/updateFile.dto.ts +++ b/apps/judicial-system/backend/src/app/modules/file/dto/updateFile.dto.ts @@ -7,6 +7,7 @@ import { IsOptional, IsString, IsUUID, + MaxLength, Min, ValidateIf, ValidateNested, @@ -21,6 +22,7 @@ export class UpdateFileDto { readonly id!: string @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly userGeneratedFilename?: string diff --git a/apps/judicial-system/backend/src/app/modules/indictment-count/dto/updateIndictmentCount.dto.ts b/apps/judicial-system/backend/src/app/modules/indictment-count/dto/updateIndictmentCount.dto.ts index 103ce2051ea3..b1226cdc54e0 100644 --- a/apps/judicial-system/backend/src/app/modules/indictment-count/dto/updateIndictmentCount.dto.ts +++ b/apps/judicial-system/backend/src/app/modules/indictment-count/dto/updateIndictmentCount.dto.ts @@ -4,6 +4,7 @@ import { IsObject, IsOptional, IsString, + MaxLength, } from 'class-validator' import { ApiPropertyOptional } from '@nestjs/swagger' @@ -13,11 +14,13 @@ import { IndictmentCountOffense } from '@island.is/judicial-system/types' export class UpdateIndictmentCountDto { @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly policeCaseNumber?: string @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly vehicleRegistrationNumber?: string diff --git a/apps/judicial-system/backend/src/app/modules/subpoena/dto/updateSubpoena.dto.ts b/apps/judicial-system/backend/src/app/modules/subpoena/dto/updateSubpoena.dto.ts index 36a14e1be0ef..89e83477f4a2 100644 --- a/apps/judicial-system/backend/src/app/modules/subpoena/dto/updateSubpoena.dto.ts +++ b/apps/judicial-system/backend/src/app/modules/subpoena/dto/updateSubpoena.dto.ts @@ -1,4 +1,4 @@ -import { IsBoolean, IsEnum, IsOptional, IsString } from 'class-validator' +import { IsEnum, IsOptional, IsString, MaxLength } from 'class-validator' import { ApiPropertyOptional } from '@nestjs/swagger' @@ -11,6 +11,7 @@ export class UpdateSubpoenaDto { readonly serviceStatus?: ServiceStatus @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly servedBy?: string @@ -31,21 +32,25 @@ export class UpdateSubpoenaDto { readonly defenderChoice?: DefenderChoice @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly defenderNationalId?: string @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly defenderName?: string @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly defenderEmail?: string @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly defenderPhoneNumber?: string @@ -56,11 +61,13 @@ export class UpdateSubpoenaDto { readonly requestedDefenderChoice?: DefenderChoice @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly requestedDefenderNationalId?: string @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly requestedDefenderName?: string diff --git a/apps/judicial-system/backend/src/app/modules/user/dto/createUser.dto.ts b/apps/judicial-system/backend/src/app/modules/user/dto/createUser.dto.ts index 1460431b37f7..d6b8207fba4d 100644 --- a/apps/judicial-system/backend/src/app/modules/user/dto/createUser.dto.ts +++ b/apps/judicial-system/backend/src/app/modules/user/dto/createUser.dto.ts @@ -4,6 +4,7 @@ import { IsNotEmpty, IsString, IsUUID, + MaxLength, } from 'class-validator' import { ApiProperty } from '@nestjs/swagger' @@ -12,26 +13,31 @@ import { UserRole } from '@island.is/judicial-system/types' export class CreateUserDto { @IsNotEmpty() + @MaxLength(255) @IsString() @ApiProperty({ type: String }) readonly nationalId!: string @IsNotEmpty() + @MaxLength(255) @IsString() @ApiProperty({ type: String }) readonly name!: string @IsNotEmpty() + @MaxLength(255) @IsString() @ApiProperty({ type: String }) readonly title!: string @IsNotEmpty() + @MaxLength(255) @IsString() @ApiProperty({ type: String }) readonly mobileNumber!: string @IsNotEmpty() + @MaxLength(255) @IsString() @ApiProperty({ type: String }) readonly email!: string diff --git a/apps/judicial-system/backend/src/app/modules/user/dto/updateUser.dto.ts b/apps/judicial-system/backend/src/app/modules/user/dto/updateUser.dto.ts index fcebedbf7405..071bd218261b 100644 --- a/apps/judicial-system/backend/src/app/modules/user/dto/updateUser.dto.ts +++ b/apps/judicial-system/backend/src/app/modules/user/dto/updateUser.dto.ts @@ -4,6 +4,7 @@ import { IsOptional, IsString, IsUUID, + MaxLength, } from 'class-validator' import { ApiPropertyOptional } from '@nestjs/swagger' @@ -12,21 +13,25 @@ import { UserRole } from '@island.is/judicial-system/types' export class UpdateUserDto { @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly name?: string @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly title?: string @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly mobileNumber?: string @IsOptional() + @MaxLength(255) @IsString() @ApiPropertyOptional({ type: String }) readonly email?: string diff --git a/apps/judicial-system/web/src/routes/Prosecutor/InvestigationCase/Defendant/Defendant.tsx b/apps/judicial-system/web/src/routes/Prosecutor/InvestigationCase/Defendant/Defendant.tsx index 58d28cb6146b..2470cb389ec4 100644 --- a/apps/judicial-system/web/src/routes/Prosecutor/InvestigationCase/Defendant/Defendant.tsx +++ b/apps/judicial-system/web/src/routes/Prosecutor/InvestigationCase/Defendant/Defendant.tsx @@ -336,6 +336,7 @@ const Defendant = () => { setWorkingCase, ) } + maxLength={255} /> From 6e102a02cfa4bffff2b292b2fc553f1a28155eac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=BAnar=20Vestmann?= <43557895+RunarVestmann@users.noreply.github.com> Date: Mon, 18 Nov 2024 16:48:47 +0000 Subject: [PATCH 45/66] chore(web): Move organization subpage content into separate component (#16915) Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- apps/web/screens/Organization/SubPage.tsx | 285 ++++++++++++---------- 1 file changed, 156 insertions(+), 129 deletions(-) diff --git a/apps/web/screens/Organization/SubPage.tsx b/apps/web/screens/Organization/SubPage.tsx index 0db2c57fee70..b9a118306519 100644 --- a/apps/web/screens/Organization/SubPage.tsx +++ b/apps/web/screens/Organization/SubPage.tsx @@ -1,4 +1,3 @@ -import { Locale } from '@island.is/shared/types' import { useRouter } from 'next/router' import { ParsedUrlQuery } from 'querystring' @@ -14,6 +13,7 @@ import { Stack, Text, } from '@island.is/island-ui/core' +import { Locale } from '@island.is/shared/types' import { getThemeConfig, OrganizationWrapper, @@ -60,46 +60,13 @@ export interface SubPageProps { customContentfulIds?: (string | undefined)[] } -const SubPage: Screen = ({ - organizationPage, +const SubPageContent = ({ subpage, namespace, - locale, - customContent, - customBreadcrumbItems, - customContentfulIds, - backLink, -}) => { - const router = useRouter() - const { activeLocale } = useI18n() - + organizationPage, +}: Pick) => { const n = useNamespace(namespace) - const { linkResolver } = useLinkResolver() - - const contentfulIds = customContentfulIds - ? customContentfulIds - : [organizationPage?.id, subpage?.id] - - useContentfulId(...contentfulIds) - - const pathname = new URL(router.asPath, 'https://island.is').pathname - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore make web strict - const navList: NavigationItem[] = organizationPage?.menuLinks.map( - ({ primaryLink, childrenLinks }) => ({ - title: primaryLink?.text, - href: primaryLink?.url, - active: - primaryLink?.url === pathname || - childrenLinks.some((link) => link.url === pathname), - items: childrenLinks.map(({ text, url }) => ({ - title: text, - href: url, - active: url === pathname, - })), - }), - ) - + const { activeLocale } = useI18n() const content = ( <> {subpage?.showTableOfContents && ( @@ -147,45 +114,8 @@ const SubPage: Screen = ({ ) - return ( - + <> @@ -199,62 +129,58 @@ const SubPage: Screen = ({ subpage?.links?.length ? '7/12' : '12/12', ]} > - {customContent ? ( - customContent - ) : ( - <> - - - {subpage?.title} - - - - + + + {subpage?.title} + + + + + {subpage?.signLanguageVideo?.url && ( + + + {subpage.title} + + {content} + {renderSlices( + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore make web strict + subpage.slices, + subpage.sliceCustomRenderer, + subpage.sliceExtraText, + namespace, + organizationPage?.slug, + )} + + } /> - {subpage?.signLanguageVideo?.url && ( - - - {subpage.title} - - {content} - {renderSlices( - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore make web strict - subpage.slices, - subpage.sliceCustomRenderer, - subpage.sliceExtraText, - namespace, - organizationPage?.slug, - )} - - } - /> - )} - - - )} + )} + + - {!customContent && content} + {content} @@ -277,6 +203,107 @@ const SubPage: Screen = ({ organizationPage.slug, )} + + ) +} + +const SubPage: Screen = ({ + organizationPage, + subpage, + namespace, + locale, + customContent, + customBreadcrumbItems, + customContentfulIds, + backLink, +}) => { + const router = useRouter() + + const n = useNamespace(namespace) + const { linkResolver } = useLinkResolver() + + const contentfulIds = customContentfulIds + ? customContentfulIds + : [organizationPage?.id, subpage?.id] + + useContentfulId(...contentfulIds) + + const pathname = new URL(router.asPath, 'https://island.is').pathname + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore make web strict + const navList: NavigationItem[] = organizationPage?.menuLinks.map( + ({ primaryLink, childrenLinks }) => ({ + title: primaryLink?.text, + href: primaryLink?.url, + active: + primaryLink?.url === pathname || + childrenLinks.some((link) => link.url === pathname), + items: childrenLinks.map(({ text, url }) => ({ + title: text, + href: url, + active: url === pathname, + })), + }), + ) + + return ( + + {customContent ? ( + + + + + {customContent} + + + + + ) : ( + + )} ) } From a2b25ec5e9e127cae18612134d49e8590a9444bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sigr=C3=BAn=20Tinna=20Gissurard=C3=B3ttir?= <39527334+sigruntg@users.noreply.github.com> Date: Mon, 18 Nov 2024 17:20:38 +0000 Subject: [PATCH 46/66] fix(work-accident-notification): alert message (#16925) * moving part of companyinfo to basicinfo to stop autofill * some fixes * extract strings * fix inputs being empty on back button click * adding alert --------- Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- .../EmployeeSection/employee.ts | 7 +++++++ .../src/lib/messages/employee.ts | 10 ++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/libs/application/templates/aosh/work-accident-notification/src/forms/WorkAccidentNotificationForm/EmployeeSection/employee.ts b/libs/application/templates/aosh/work-accident-notification/src/forms/WorkAccidentNotificationForm/EmployeeSection/employee.ts index afb361691175..5ac5d07f705b 100644 --- a/libs/application/templates/aosh/work-accident-notification/src/forms/WorkAccidentNotificationForm/EmployeeSection/employee.ts +++ b/libs/application/templates/aosh/work-accident-notification/src/forms/WorkAccidentNotificationForm/EmployeeSection/employee.ts @@ -166,6 +166,13 @@ export const employeeSubSection = (index: number) => })) }, }), + buildAlertMessageField({ + id: 'employee.startTimeAlert', + title: '', + message: employee.employee.startTimeAlert, + alertType: 'info', + marginBottom: 0, + }), buildDateField({ id: `employee[${index}].startOfWorkdayDate`, width: 'half', diff --git a/libs/application/templates/aosh/work-accident-notification/src/lib/messages/employee.ts b/libs/application/templates/aosh/work-accident-notification/src/lib/messages/employee.ts index dad48b068ec9..48156be856d6 100644 --- a/libs/application/templates/aosh/work-accident-notification/src/lib/messages/employee.ts +++ b/libs/application/templates/aosh/work-accident-notification/src/lib/messages/employee.ts @@ -80,12 +80,12 @@ export const employee = { }, startOfWorkdayDate: { id: 'aosh.wan.application:employee.time', - defaultMessage: 'Dagsetning byrjun starfsdags', + defaultMessage: 'Dagsetning', description: 'Start of employees workday date', }, time: { id: 'aosh.wan.application:employee.time', - defaultMessage: 'Tími byrjun starfsdags', + defaultMessage: 'Tími', description: 'Start of employees workday time', }, timePlaceholder: { @@ -155,5 +155,11 @@ export const employee = { 'Starfsdagur má byrja allt að 36 tímum fyrir slys og að tímasetningu slyss', description: 'Error message for employee start time', }, + startTimeAlert: { + id: 'aosh.wan.application:employee.startTimeAlert', + defaultMessage: + 'Dagsetning og tími þegar starfsmaður mætti til vinnu á slysadegi', + description: 'Error message for employee start time', + }, }), } From b3e05fdf3beed56056bedfc26bbd9e7fbb550e79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=8Dvar=20Oddsson?= Date: Tue, 19 Nov 2024 09:04:12 +0000 Subject: [PATCH 47/66] fix(j-s): Validation fix (#16930) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Checkpoint * Refactor AlertMessage * Format date * Cleanup * Cleanup * Merge * Add key * Refactor * Remove console.log * Merge * Merge * Fix e2e * Resolve merge conflict --------- Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> Co-authored-by: Guðjón Guðjónsson --- .../backend/src/app/modules/case/dto/createCase.dto.ts | 2 +- .../backend/src/app/modules/case/dto/updateCase.dto.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/judicial-system/backend/src/app/modules/case/dto/createCase.dto.ts b/apps/judicial-system/backend/src/app/modules/case/dto/createCase.dto.ts index 32bf0f7589d1..a54904d19aab 100644 --- a/apps/judicial-system/backend/src/app/modules/case/dto/createCase.dto.ts +++ b/apps/judicial-system/backend/src/app/modules/case/dto/createCase.dto.ts @@ -40,7 +40,7 @@ export class CreateCaseDto { @IsNotEmpty() @IsArray() @ArrayMinSize(1) - @MaxLength(255) + @MaxLength(255, { each: true }) @IsString({ each: true }) @ApiProperty({ type: String, isArray: true }) readonly policeCaseNumbers!: string[] diff --git a/apps/judicial-system/backend/src/app/modules/case/dto/updateCase.dto.ts b/apps/judicial-system/backend/src/app/modules/case/dto/updateCase.dto.ts index a34a8a14d219..6eec48f22a86 100644 --- a/apps/judicial-system/backend/src/app/modules/case/dto/updateCase.dto.ts +++ b/apps/judicial-system/backend/src/app/modules/case/dto/updateCase.dto.ts @@ -70,7 +70,7 @@ export class UpdateCaseDto { @IsOptional() @IsArray() @ArrayMinSize(1) - @MaxLength(255) + @MaxLength(255, { each: true }) @IsString({ each: true }) @ApiPropertyOptional({ type: String, isArray: true }) readonly policeCaseNumbers?: string[] From d743d2e0323e95dcc54302c85d81afdc6f951b22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafn=20=C3=81rnason?= Date: Tue, 19 Nov 2024 10:20:21 +0000 Subject: [PATCH 48/66] fix(endorsment-system): Add assets to project (#16923) Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- apps/services/endorsements/api/project.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/apps/services/endorsements/api/project.json b/apps/services/endorsements/api/project.json index 22c4fe386761..6298812ea242 100644 --- a/apps/services/endorsements/api/project.json +++ b/apps/services/endorsements/api/project.json @@ -33,6 +33,11 @@ "glob": "*", "input": "libs/email-service/src/tools/design", "output": "./email-service-assets" + }, + { + "glob": "*", + "input": "apps/services/endorsements/api/src/assets", + "output": "apps/services/endorsements/api/src/assets" } ] }, From 910627cb5748c8755377c2e9d9a596ed5f69eb4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=9E=C3=B3rarinn=20Gunnar=20=C3=81rnason?= Date: Tue, 19 Nov 2024 10:30:25 +0000 Subject: [PATCH 49/66] fix(application-system): TableRepeater cancel option (#16929) * cancel active item functionality * setup default row and header support for nationalidWithname --------- Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- libs/application/core/src/lib/messages.ts | 15 +++++++ libs/application/types/src/lib/Fields.ts | 1 + .../TableRepeaterFormField.tsx | 42 ++++++++++++++----- .../src/lib/TableRepeaterFormField/utils.ts | 25 ++++++++++- 4 files changed, 71 insertions(+), 12 deletions(-) diff --git a/libs/application/core/src/lib/messages.ts b/libs/application/core/src/lib/messages.ts index bf55e326b06a..3190a3542b1a 100644 --- a/libs/application/core/src/lib/messages.ts +++ b/libs/application/core/src/lib/messages.ts @@ -41,6 +41,11 @@ export const coreMessages = defineMessages({ defaultMessage: 'Bæta við', description: 'Add button', }, + buttonCancel: { + id: 'application.system:button.cancel', + defaultMessage: 'Hætta við', + description: 'Cancel button', + }, cardButtonInProgress: { id: 'application.system:card.button.inProgress', defaultMessage: 'Opna umsókn', @@ -136,6 +141,16 @@ export const coreMessages = defineMessages({ defaultMessage: 'Ekki tókst að búa til umsókn af gerðinni: {type}', description: 'Failed to create application of type: {type}', }, + nationalId: { + id: 'application.system:nationalId', + defaultMessage: 'Kennitala', + description: 'National ID', + }, + name: { + id: 'application.system:name', + defaultMessage: 'Nafn', + description: 'Name', + }, applications: { id: 'application.system:applications', defaultMessage: 'Þínar umsóknir', diff --git a/libs/application/types/src/lib/Fields.ts b/libs/application/types/src/lib/Fields.ts index 138b02bce010..19ed08cafa1d 100644 --- a/libs/application/types/src/lib/Fields.ts +++ b/libs/application/types/src/lib/Fields.ts @@ -626,6 +626,7 @@ export type TableRepeaterField = BaseField & { component: FieldComponents.TABLE_REPEATER formTitle?: StaticText addItemButtonText?: StaticText + cancelButtonText?: StaticText saveItemButtonText?: StaticText getStaticTableData?: (application: Application) => Record[] removeButtonTooltipText?: StaticText diff --git a/libs/application/ui-fields/src/lib/TableRepeaterFormField/TableRepeaterFormField.tsx b/libs/application/ui-fields/src/lib/TableRepeaterFormField/TableRepeaterFormField.tsx index 5d3b8f3f6bc0..ec1e39bf08f0 100644 --- a/libs/application/ui-fields/src/lib/TableRepeaterFormField/TableRepeaterFormField.tsx +++ b/libs/application/ui-fields/src/lib/TableRepeaterFormField/TableRepeaterFormField.tsx @@ -22,7 +22,11 @@ import { useLocale } from '@island.is/localization' import { FieldDescription } from '@island.is/shared/form-fields' import { FC, useState } from 'react' import { useFieldArray, useFormContext, useWatch } from 'react-hook-form' -import { handleCustomMappedValues } from './utils' +import { + buildDefaultTableHeader, + buildDefaultTableRows, + handleCustomMappedValues, +} from './utils' import { Item } from './TableRepeaterItem' import { Locale } from '@island.is/shared/types' @@ -47,6 +51,7 @@ export const TableRepeaterFormField: FC = ({ title, titleVariant = 'h4', addItemButtonText = coreMessages.buttonAdd, + cancelButtonText = coreMessages.buttonCancel, saveItemButtonText = coreMessages.reviewButtonSubmit, removeButtonTooltipText = coreMessages.deleteFieldText, editButtonTooltipText = coreMessages.editFieldText, @@ -71,8 +76,8 @@ export const TableRepeaterFormField: FC = ({ const activeField = activeIndex >= 0 ? fields[activeIndex] : null const savedFields = fields.filter((_, index) => index !== activeIndex) const tableItems = items.filter((x) => x.displayInTable !== false) - const tableHeader = table?.header ?? tableItems.map((item) => item.label) - const tableRows = table?.rows ?? tableItems.map((item) => item.id) + const tableHeader = table?.header ?? buildDefaultTableHeader(tableItems) + const tableRows = table?.rows ?? buildDefaultTableRows(tableItems) const staticData = getStaticTableData?.(application) const canAddItem = maxRows ? savedFields.length < maxRows : true @@ -89,6 +94,11 @@ export const TableRepeaterFormField: FC = ({ } } + const handleCancelItem = (index: number) => { + setActiveIndex(-1) + remove(index) + } + const handleNewItem = () => { append({}) setActiveIndex(fields.length) @@ -239,14 +249,24 @@ export const TableRepeaterFormField: FC = ({ /> ))} - - + + + + + + + ) : ( diff --git a/libs/application/ui-fields/src/lib/TableRepeaterFormField/utils.ts b/libs/application/ui-fields/src/lib/TableRepeaterFormField/utils.ts index fd1962a41f14..f1b0c79ee077 100644 --- a/libs/application/ui-fields/src/lib/TableRepeaterFormField/utils.ts +++ b/libs/application/ui-fields/src/lib/TableRepeaterFormField/utils.ts @@ -1,3 +1,4 @@ +import { coreMessages } from '@island.is/application/core' import { TableRepeaterItem } from '@island.is/application/types' type Item = { @@ -31,7 +32,7 @@ const handleNationalIdWithNameItem = ( // with a nested object inside it. This function will extract the nested // object and merge it with the rest of the values. const newValues = values.map((value) => { - if (typeof value[item.id] === 'object' && value[item.id] !== null) { + if (!!value[item.id] && typeof value[item.id] === 'object') { const { [item.id]: nestedObject, ...rest } = value return { ...nestedObject, ...rest } } @@ -40,3 +41,25 @@ const handleNationalIdWithNameItem = ( return newValues } + +export const buildDefaultTableHeader = (items: Array) => + items + .map((item) => + // nationalIdWithName is a special case where the value is an object of name and nationalId + item.component === 'nationalIdWithName' + ? [coreMessages.name, coreMessages.nationalId] + : item.label, + ) + .flat(2) + +export const buildDefaultTableRows = ( + items: Array, +) => + items + .map((item) => + // nationalIdWithName is a special case where the value is an object of name and nationalId + item.component === 'nationalIdWithName' + ? ['name', 'nationalId'] + : item.id, + ) + .flat(2) From 01c8d4de847f56522863308df92847a0cfaccc81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B3n=20Levy?= Date: Tue, 19 Nov 2024 10:46:46 +0000 Subject: [PATCH 50/66] fix(datadog): disable rum (#16876) * fix(datadog): disable rum * fix: mask all data * fix: only disable trackInteractions * fix: cleanup --------- Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- libs/user-monitoring/src/lib/user-monitoring.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/user-monitoring/src/lib/user-monitoring.ts b/libs/user-monitoring/src/lib/user-monitoring.ts index e1315a4118b5..478d458340a7 100644 --- a/libs/user-monitoring/src/lib/user-monitoring.ts +++ b/libs/user-monitoring/src/lib/user-monitoring.ts @@ -20,7 +20,7 @@ const initDdRum = (params: DdRumInitParams) => { version: params.version, sampleRate: 100, sessionReplaySampleRate: 0, - trackInteractions: true, + trackInteractions: false, allowedTracingOrigins: [ 'https://island.is', /https:\/\/.*\.island\.is/, From 53378fd06da10fb4c534ecd31c2d414bab020d67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sigr=C3=BAn=20Tinna=20Gissurard=C3=B3ttir?= <39527334+sigruntg@users.noreply.github.com> Date: Tue, 19 Nov 2024 11:32:02 +0000 Subject: [PATCH 51/66] fix(work-accident-notification): fixing duplicate message ids (#16935) --- .../src/lib/messages/employee.ts | 4 ++-- .../src/lib/messages/information.ts | 2 +- .../src/lib/messages/overview.ts | 14 +++++++------- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/libs/application/templates/aosh/work-accident-notification/src/lib/messages/employee.ts b/libs/application/templates/aosh/work-accident-notification/src/lib/messages/employee.ts index 48156be856d6..f8d0d5e135a4 100644 --- a/libs/application/templates/aosh/work-accident-notification/src/lib/messages/employee.ts +++ b/libs/application/templates/aosh/work-accident-notification/src/lib/messages/employee.ts @@ -69,7 +69,7 @@ export const employee = { description: 'Employment time in the same job', }, employmentRate: { - id: 'aosh.wan.application:employee.employmentTime', + id: 'aosh.wan.application:employee.employmentRate', defaultMessage: 'Starfshlutfall', description: 'Employment rate %', }, @@ -79,7 +79,7 @@ export const employee = { description: 'Employees work hour arrangement', }, startOfWorkdayDate: { - id: 'aosh.wan.application:employee.time', + id: 'aosh.wan.application:employee.startOfWorkdayDate', defaultMessage: 'Dagsetning', description: 'Start of employees workday date', }, diff --git a/libs/application/templates/aosh/work-accident-notification/src/lib/messages/information.ts b/libs/application/templates/aosh/work-accident-notification/src/lib/messages/information.ts index ae458fb96080..f8e92b4b6986 100644 --- a/libs/application/templates/aosh/work-accident-notification/src/lib/messages/information.ts +++ b/libs/application/templates/aosh/work-accident-notification/src/lib/messages/information.ts @@ -14,7 +14,7 @@ export const information = { description: 'Description of information page', }, pageTitle: { - id: 'aosh.wan.application:information.company.pageTitle', + id: 'aosh.wan.application:information.general.pageTitle', defaultMessage: 'Tilkynningaraðili', description: 'Title of company information section', }, diff --git a/libs/application/templates/aosh/work-accident-notification/src/lib/messages/overview.ts b/libs/application/templates/aosh/work-accident-notification/src/lib/messages/overview.ts index e364a4957dc8..715d57d0654b 100644 --- a/libs/application/templates/aosh/work-accident-notification/src/lib/messages/overview.ts +++ b/libs/application/templates/aosh/work-accident-notification/src/lib/messages/overview.ts @@ -47,37 +47,37 @@ export const overview = { description: 'Date and time label', }, didAoshCome: { - id: 'aosh.wan.application:overview.labels.dateAndTime', + id: 'aosh.wan.application:overview.labels.didAoshCome', defaultMessage: 'Kom Vinnueftirlitið?', description: 'Date and time label', }, didPoliceCome: { - id: 'aosh.wan.application:overview.labels.dateAndTime', + id: 'aosh.wan.application:overview.labels.didPoliceCome', defaultMessage: 'Kom Lögreglan?', description: 'Date and time label', }, injuredAmount: { - id: 'aosh.wan.application:overview.labels.dateAndTime', + id: 'aosh.wan.application:overview.labels.injuredAmount', defaultMessage: 'Fjöldi slasaðra', description: 'Date and time label', }, municipality: { - id: 'aosh.wan.application:overview.labels.dateAndTime', + id: 'aosh.wan.application:overview.labels.municipality', defaultMessage: 'Sveitarfélag þar sem slysið átti sér stað', description: 'Date and time label', }, exactLocation: { - id: 'aosh.wan.application:overview.labels.dateAndTime', + id: 'aosh.wan.application:overview.labels.exactLocation', defaultMessage: 'Nákvæm staðsetning slyssins', description: 'Date and time label', }, accidentDescription: { - id: 'aosh.wan.application:overview.labels.dateAndTime', + id: 'aosh.wan.application:overview.labels.accidentDescription', defaultMessage: 'Tildrög slyssins', description: 'Date and time label', }, locationOfAccident: { - id: 'aosh.wan.application:overview.labels.dateAndTime', + id: 'aosh.wan.application:overview.labels.locationOfAccident', defaultMessage: 'Vettvangur slyssins', description: 'Date and time label', }, From 025f1f8ea6a5125c3987690bf42da1352ddbe0c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B3hanna=20Magn=C3=BAsd=C3=B3ttir?= Date: Tue, 19 Nov 2024 11:43:22 +0000 Subject: [PATCH 52/66] fix(samgongustofa): shared vehicle radio form field (#16905) * Fix typo * Fix mileageReading vs isRequired Stop using mileageRequired from answers in getSelectedVehicle and always look at the value from externalData (it should not change) * Make sure to always use requiresMileageRegistration from currentvehicleswithmileageandinsp (not basicVehicleInformation) Cleanup make+vehcom (basicVehicleInformation) vs make (currentvehicles) * Cleanup * cleanup * cleanup * cleanup * Use shared function to extract messages from error body Display always E, L and W messages (but E and L first) * Use dummy mileage value when validating per vehicle (owner/operator change) * Catch error from mileage api * Fix the way validation errors are displayed in SGS ownerchange Allow all users to retry submit application if all approvals are finished * Apply same change to change co-owner + change operator Display ValidationErrorMessages always in overview, no matter who is reviewing * Cleanup * Cleanup in LicensePlateRenewal + OrderVehicleLicensePlate Add validation per plate if user has more than 5 * Fix the way vehicle subModel is displayed * Fixes after review * Fix the way errors are displayed for RenewLicensePlate Add MocablePayment * Add validation for OrderVehicleLicensePlate * Cleanup * Fix comment * Create RadioFormField * Fix field currentVehicleList * Use RadioFormField in all SGS applications * Use RadioFormField in all SGS applications * Cleanup * cleanup * cleanup field names * Fixes after review --------- Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- .../VehiclesField/VehicleRadioField.tsx | 142 --------- .../src/fields/VehiclesField/index.tsx | 28 +- .../VehiclesField/VehicleRadioField.tsx | 142 --------- .../src/fields/VehiclesField/index.tsx | 28 +- .../src/fields/PlateField/PlateRadioField.tsx | 110 ------- .../src/fields/PlateField/index.tsx | 30 +- .../src/lib/dataSchema.ts | 2 +- .../VehiclesField/VehicleRadioField.tsx | 119 -------- .../src/fields/VehiclesField/index.tsx | 23 +- .../InformationSection/plateSizeSubSection.ts | 4 +- .../VehiclesField/VehicleRadioField.tsx | 62 ---- .../VehiclesField/VehicleSelectField.tsx | 19 +- .../src/fields/VehiclesField/index.tsx | 28 +- .../InformationSection/vehicleSubSection.ts | 4 +- .../VehiclesField/VehicleRadioField.tsx | 142 --------- .../src/fields/VehiclesField/index.tsx | 28 +- libs/application/types/src/lib/Fields.ts | 19 ++ .../VehicleRadioFormField/VehicleDetails.ts | 22 ++ .../VehicleRadioFormField.tsx | 281 ++++++++++++++++++ libs/application/ui-fields/src/lib/index.ts | 1 + 20 files changed, 478 insertions(+), 756 deletions(-) delete mode 100644 libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/fields/VehiclesField/VehicleRadioField.tsx delete mode 100644 libs/application/templates/transport-authority/change-operator-of-vehicle/src/fields/VehiclesField/VehicleRadioField.tsx delete mode 100644 libs/application/templates/transport-authority/license-plate-renewal/src/fields/PlateField/PlateRadioField.tsx delete mode 100644 libs/application/templates/transport-authority/order-vehicle-license-plate/src/fields/VehiclesField/VehicleRadioField.tsx delete mode 100644 libs/application/templates/transport-authority/order-vehicle-registration-certificate/src/fields/VehiclesField/VehicleRadioField.tsx delete mode 100644 libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/fields/VehiclesField/VehicleRadioField.tsx create mode 100644 libs/application/ui-fields/src/lib/VehicleRadioFormField/VehicleDetails.ts create mode 100644 libs/application/ui-fields/src/lib/VehicleRadioFormField/VehicleRadioFormField.tsx diff --git a/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/fields/VehiclesField/VehicleRadioField.tsx b/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/fields/VehiclesField/VehicleRadioField.tsx deleted file mode 100644 index 72ac2c0a3258..000000000000 --- a/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/fields/VehiclesField/VehicleRadioField.tsx +++ /dev/null @@ -1,142 +0,0 @@ -import { - Box, - Text, - AlertMessage, - BulletList, - Bullet, - InputError, -} from '@island.is/island-ui/core' -import { FC, useState } from 'react' -import { VehiclesCurrentVehicleWithOwnerchangeChecks } from '../../shared' -import { RadioController } from '@island.is/shared/form-fields' -import { useFormContext } from 'react-hook-form' -import { getValueViaPath } from '@island.is/application/core' -import { FieldBaseProps } from '@island.is/application/types' -import { useLocale } from '@island.is/localization' -import { applicationCheck, information, error } from '../../lib/messages' - -interface Option { - value: string - label: React.ReactNode - disabled?: boolean -} - -interface VehicleSearchFieldProps { - currentVehicleList: VehiclesCurrentVehicleWithOwnerchangeChecks[] -} - -export const VehicleRadioField: FC< - React.PropsWithChildren -> = ({ currentVehicleList, application, errors }) => { - const { formatMessage } = useLocale() - const { setValue } = useFormContext() - - const [plate, setPlate] = useState( - getValueViaPath(application.answers, 'pickVehicle.plate', '') as string, - ) - - const onRadioControllerSelect = (s: string) => { - const currentVehicle = currentVehicleList[parseInt(s, 10)] - const permno = currentVehicle.permno || '' - - setPlate(permno) - setValue('pickVehicle.plate', permno) - setValue('pickVehicle.color', currentVehicle.color || undefined) - setValue('pickVehicle.type', currentVehicle.make || undefined) - setValue('vehicleMileage.requireMileage', currentVehicle?.requireMileage) - setValue('vehicleMileage.mileageReading', currentVehicle?.mileageReading) - if (permno) setValue('vehicleInfo.plate', permno) - if (permno) setValue('vehicleInfo.type', currentVehicle.make) - } - - const vehicleOptions = ( - vehicles: VehiclesCurrentVehicleWithOwnerchangeChecks[], - ) => { - const options = [] as Option[] - - for (const [index, vehicle] of vehicles.entries()) { - const disabled = - !vehicle.isDebtLess || !!vehicle.validationErrorMessages?.length - options.push({ - value: `${index}`, - label: ( - - - - {vehicle.make} - - - {vehicle.color} - {vehicle.permno} - - - {disabled && ( - - - - {!vehicle.isDebtLess && ( - - {formatMessage( - information.labels.pickVehicle.isNotDebtLessTag, - )} - - )} - {!!vehicle.validationErrorMessages?.length && - vehicle.validationErrorMessages?.map((error) => { - const message = formatMessage( - getValueViaPath( - applicationCheck.validation, - error.errorNo || '', - ), - ) - const defaultMessage = error.defaultMessage - const fallbackMessage = - formatMessage( - applicationCheck.validation - .fallbackErrorMessage, - ) + - ' - ' + - error.errorNo - - return ( - - {message || defaultMessage || fallbackMessage} - - ) - })} - - - } - /> - - )} - - ), - disabled: disabled, - }) - } - return options - } - - return ( -
- - {plate.length === 0 && (errors as any)?.pickVehicle && ( - - )} -
- ) -} diff --git a/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/fields/VehiclesField/index.tsx b/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/fields/VehiclesField/index.tsx index 3adad308746b..11c7b5ca4819 100644 --- a/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/fields/VehiclesField/index.tsx +++ b/libs/application/templates/transport-authority/change-co-owner-of-vehicle/src/fields/VehiclesField/index.tsx @@ -6,12 +6,14 @@ import { import { Box } from '@island.is/island-ui/core' import { FC, useCallback, useEffect } from 'react' import { CurrentVehiclesAndRecords } from '../../shared' -import { VehicleRadioField } from './VehicleRadioField' import { useFormContext } from 'react-hook-form' import { ApolloQueryResult, useMutation } from '@apollo/client' import { UPDATE_APPLICATION } from '@island.is/application/graphql' import { useLocale } from '@island.is/localization' -import { FindVehicleFormField } from '@island.is/application/ui-fields' +import { + FindVehicleFormField, + VehicleRadioFormField, +} from '@island.is/application/ui-fields' import { applicationCheck, error, information } from '../../lib/messages' import { useLazyVehicleDetails } from '../../hooks/useLazyVehicleDetails' import { VehicleSelectField } from './VehicleSelectField' @@ -92,9 +94,27 @@ export const VehiclesField: FC> = ( {...props} /> ) : ( - )}
diff --git a/libs/application/templates/transport-authority/change-operator-of-vehicle/src/fields/VehiclesField/VehicleRadioField.tsx b/libs/application/templates/transport-authority/change-operator-of-vehicle/src/fields/VehiclesField/VehicleRadioField.tsx deleted file mode 100644 index 8f72e958cdba..000000000000 --- a/libs/application/templates/transport-authority/change-operator-of-vehicle/src/fields/VehiclesField/VehicleRadioField.tsx +++ /dev/null @@ -1,142 +0,0 @@ -import { - Box, - Text, - AlertMessage, - BulletList, - Bullet, - InputError, -} from '@island.is/island-ui/core' -import { FC, useState } from 'react' -import { VehiclesCurrentVehicleWithOperatorChangeChecks } from '../../shared' -import { RadioController } from '@island.is/shared/form-fields' -import { useFormContext } from 'react-hook-form' -import { getValueViaPath } from '@island.is/application/core' -import { FieldBaseProps } from '@island.is/application/types' -import { useLocale } from '@island.is/localization' -import { applicationCheck, information, error } from '../../lib/messages' - -interface Option { - value: string - label: React.ReactNode - disabled?: boolean -} - -interface VehicleSearchFieldProps { - currentVehicleList: VehiclesCurrentVehicleWithOperatorChangeChecks[] -} - -export const VehicleRadioField: FC< - React.PropsWithChildren -> = ({ currentVehicleList, application, errors }) => { - const { formatMessage } = useLocale() - const { setValue } = useFormContext() - - const [plate, setPlate] = useState( - getValueViaPath(application.answers, 'pickVehicle.plate', '') as string, - ) - - const onRadioControllerSelect = (s: string) => { - const currentVehicle = currentVehicleList[parseInt(s, 10)] - const permno = currentVehicle.permno || '' - - setPlate(permno) - setValue('pickVehicle.plate', permno) - setValue('pickVehicle.color', currentVehicle.color || undefined) - setValue('pickVehicle.type', currentVehicle.make || undefined) - setValue('vehicleMileage.requireMileage', currentVehicle?.requireMileage) - setValue('vehicleMileage.mileageReading', currentVehicle?.mileageReading) - if (permno) setValue('vehicleInfo.plate', permno) - if (permno) setValue('vehicleInfo.type', currentVehicle.make) - } - - const vehicleOptions = ( - vehicles: VehiclesCurrentVehicleWithOperatorChangeChecks[], - ) => { - const options = [] as Option[] - - for (const [index, vehicle] of vehicles.entries()) { - const disabled = - !vehicle.isDebtLess || !!vehicle.validationErrorMessages?.length - options.push({ - value: `${index}`, - label: ( - - - - {vehicle.make} - - - {vehicle.color} - {vehicle.permno} - - - {disabled && ( - - - - {!vehicle.isDebtLess && ( - - {formatMessage( - information.labels.pickVehicle.isNotDebtLessTag, - )} - - )} - {!!vehicle.validationErrorMessages?.length && - vehicle.validationErrorMessages?.map((error) => { - const message = formatMessage( - getValueViaPath( - applicationCheck.validation, - error.errorNo || '', - ), - ) - const defaultMessage = error.defaultMessage - const fallbackMessage = - formatMessage( - applicationCheck.validation - .fallbackErrorMessage, - ) + - ' - ' + - error.errorNo - - return ( - - {message || defaultMessage || fallbackMessage} - - ) - })} - - - } - /> - - )} -
- ), - disabled: disabled, - }) - } - return options - } - - return ( -
- - {plate.length === 0 && (errors as any)?.pickVehicle && ( - - )} -
- ) -} diff --git a/libs/application/templates/transport-authority/change-operator-of-vehicle/src/fields/VehiclesField/index.tsx b/libs/application/templates/transport-authority/change-operator-of-vehicle/src/fields/VehiclesField/index.tsx index 7ab26655af07..3e0019887e76 100644 --- a/libs/application/templates/transport-authority/change-operator-of-vehicle/src/fields/VehiclesField/index.tsx +++ b/libs/application/templates/transport-authority/change-operator-of-vehicle/src/fields/VehiclesField/index.tsx @@ -6,12 +6,14 @@ import { import { Box } from '@island.is/island-ui/core' import { FC, useCallback, useEffect } from 'react' import { CurrentVehiclesAndRecords } from '../../shared' -import { VehicleRadioField } from './VehicleRadioField' import { useFormContext } from 'react-hook-form' import { ApolloQueryResult, useMutation } from '@apollo/client' import { UPDATE_APPLICATION } from '@island.is/application/graphql' import { useLocale } from '@island.is/localization' -import { FindVehicleFormField } from '@island.is/application/ui-fields' +import { + FindVehicleFormField, + VehicleRadioFormField, +} from '@island.is/application/ui-fields' import { useLazyVehicleDetails } from '../../hooks/useLazyVehicleDetails' import { applicationCheck, error, information } from '../../lib/messages' import { VehicleSelectField } from './VehicleSelectField' @@ -97,9 +99,27 @@ export const VehiclesField: FC> = ( {...props} /> ) : ( - )}
diff --git a/libs/application/templates/transport-authority/license-plate-renewal/src/fields/PlateField/PlateRadioField.tsx b/libs/application/templates/transport-authority/license-plate-renewal/src/fields/PlateField/PlateRadioField.tsx deleted file mode 100644 index 74e8dbadfeda..000000000000 --- a/libs/application/templates/transport-authority/license-plate-renewal/src/fields/PlateField/PlateRadioField.tsx +++ /dev/null @@ -1,110 +0,0 @@ -import { - Box, - Text, - AlertMessage, - BulletList, - Bullet, - Tag, -} from '@island.is/island-ui/core' -import { FC, useEffect, useState } from 'react' -import { PlateOwnership } from '../../shared' -import { RadioController } from '@island.is/shared/form-fields' -import { FieldBaseProps } from '@island.is/application/types' -import { useLocale } from '@island.is/localization' -import { information } from '../../lib/messages' -import { useFormContext } from 'react-hook-form' -import { getValueViaPath } from '@island.is/application/core' -import { checkCanRenew } from '../../utils' - -interface Option { - value: string - label: React.ReactNode - disabled?: boolean -} - -interface PlateSearchFieldProps { - myPlateOwnershipList: PlateOwnership[] -} - -export const PlateRadioField: FC< - React.PropsWithChildren -> = ({ myPlateOwnershipList, application }) => { - const { formatMessage, formatDateFns } = useLocale() - const { setValue } = useFormContext() - const [regno, setRegno] = useState( - getValueViaPath(application.answers, 'pickPlate.regno', '') as string, - ) - - const plateOptions = (plates: PlateOwnership[]) => { - const options = [] as Option[] - - for (const [index, plate] of plates.entries()) { - const hasError = !!plate.validationErrorMessages?.length - const canRenew = checkCanRenew(plate) - const disabled = hasError || !canRenew - - options.push({ - value: `${index}`, - label: ( - - - - - {plate.regno} - - - - {formatMessage(information.labels.pickPlate.expiresTag, { - date: formatDateFns(new Date(plate.endDate), 'do MMM yyyy'), - })} - - - {hasError && ( - - - - {plate.validationErrorMessages?.map((error) => { - return {error.defaultMessage} - })} - - - } - /> - - )} -
- ), - disabled: disabled, - }) - } - return options - } - - useEffect(() => { - setValue('pickPlate.regno', regno) - }, [setValue, regno]) - - return ( -
- - setRegno(myPlateOwnershipList[parseInt(s, 10)].regno) - } - /> -
- ) -} diff --git a/libs/application/templates/transport-authority/license-plate-renewal/src/fields/PlateField/index.tsx b/libs/application/templates/transport-authority/license-plate-renewal/src/fields/PlateField/index.tsx index e18e46412b8e..e2548291c5c8 100644 --- a/libs/application/templates/transport-authority/license-plate-renewal/src/fields/PlateField/index.tsx +++ b/libs/application/templates/transport-authority/license-plate-renewal/src/fields/PlateField/index.tsx @@ -1,13 +1,19 @@ -import { FieldBaseProps } from '@island.is/application/types' +import { + FieldBaseProps, + FieldComponents, + FieldTypes, +} from '@island.is/application/types' import { Box } from '@island.is/island-ui/core' import { FC, useCallback, useEffect } from 'react' import { PlateOwnership } from '../../shared' import { PlateSelectField } from './PlateSelectField' -import { PlateRadioField } from './PlateRadioField' import { useMutation } from '@apollo/client' import { UPDATE_APPLICATION } from '@island.is/application/graphql' import { useLocale } from '@island.is/localization' import { useFormContext } from 'react-hook-form' +import { VehicleRadioFormField } from '@island.is/application/ui-fields' +import { applicationCheck, error, information } from '../../lib/messages' +import { checkCanRenew } from '../../utils' export const PlateField: FC> = ( props, @@ -47,9 +53,25 @@ export const PlateField: FC> = ( {...props} /> ) : ( - checkCanRenew(item as PlateOwnership), + }} /> )} diff --git a/libs/application/templates/transport-authority/license-plate-renewal/src/lib/dataSchema.ts b/libs/application/templates/transport-authority/license-plate-renewal/src/lib/dataSchema.ts index 0b45b7882b92..0eb01c1e204d 100644 --- a/libs/application/templates/transport-authority/license-plate-renewal/src/lib/dataSchema.ts +++ b/libs/application/templates/transport-authority/license-plate-renewal/src/lib/dataSchema.ts @@ -4,7 +4,7 @@ export const LicensePlateRenewalSchema = z.object({ approveExternalData: z.boolean().refine((v) => v), pickPlate: z.object({ regno: z.string().min(1), - value: z.string().min(1), + value: z.string().optional(), }), }) diff --git a/libs/application/templates/transport-authority/order-vehicle-license-plate/src/fields/VehiclesField/VehicleRadioField.tsx b/libs/application/templates/transport-authority/order-vehicle-license-plate/src/fields/VehiclesField/VehicleRadioField.tsx deleted file mode 100644 index 7acc956fcba9..000000000000 --- a/libs/application/templates/transport-authority/order-vehicle-license-plate/src/fields/VehiclesField/VehicleRadioField.tsx +++ /dev/null @@ -1,119 +0,0 @@ -import { - AlertMessage, - Box, - Bullet, - BulletList, - InputError, - Text, -} from '@island.is/island-ui/core' -import { FC, useState } from 'react' -import { RadioController } from '@island.is/shared/form-fields' -import { useFormContext } from 'react-hook-form' -import { getValueViaPath } from '@island.is/application/core' -import { FieldBaseProps } from '@island.is/application/types' -import { useLocale } from '@island.is/localization' -import { error, information } from '../../lib/messages' -import { VehiclesCurrentVehicleWithPlateOrderChecks } from '../../shared' - -interface Option { - value: string - label: React.ReactNode - disabled?: boolean -} - -interface VehicleSearchFieldProps { - currentVehicleList: VehiclesCurrentVehicleWithPlateOrderChecks[] -} - -export const VehicleRadioField: FC< - React.PropsWithChildren -> = ({ currentVehicleList, application, errors }) => { - const { formatMessage } = useLocale() - const { setValue } = useFormContext() - - const [plate, setPlate] = useState( - getValueViaPath(application.answers, 'pickVehicle.plate', '') as string, - ) - - const onRadioControllerSelect = (s: string) => { - const currentVehicle = currentVehicleList[parseInt(s, 10)] - setPlate(currentVehicle.permno || '') - setValue('pickVehicle.plate', currentVehicle.permno || '') - } - - const vehicleOptions = ( - vehicles: VehiclesCurrentVehicleWithPlateOrderChecks[], - ) => { - const options = [] as Option[] - - for (const [index, vehicle] of vehicles.entries()) { - const disabled = !!vehicle.validationErrorMessages?.length - options.push({ - value: `${index}`, - label: ( - - - - {vehicle.make} - - - {vehicle.color} - {vehicle.permno} - - - {disabled && ( - - - - {!!vehicle.validationErrorMessages?.length && - vehicle.validationErrorMessages?.map((err) => { - const defaultMessage = err.defaultMessage - const fallbackMessage = - formatMessage( - error.validationFallbackErrorMessage, - ) + - ' - ' + - err.errorNo - - return ( - - {defaultMessage || fallbackMessage} - - ) - })} - - - } - /> - - )} - - ), - disabled: disabled, - }) - } - return options - } - - return ( -
- - {plate.length === 0 && (errors as any)?.pickVehicle && ( - - )} -
- ) -} diff --git a/libs/application/templates/transport-authority/order-vehicle-license-plate/src/fields/VehiclesField/index.tsx b/libs/application/templates/transport-authority/order-vehicle-license-plate/src/fields/VehiclesField/index.tsx index 8b55aa3474a2..e76d988d3fba 100644 --- a/libs/application/templates/transport-authority/order-vehicle-license-plate/src/fields/VehiclesField/index.tsx +++ b/libs/application/templates/transport-authority/order-vehicle-license-plate/src/fields/VehiclesField/index.tsx @@ -6,8 +6,10 @@ import { import { Box } from '@island.is/island-ui/core' import { FC } from 'react' import { CurrentVehiclesAndRecords } from '../../shared' -import { VehicleRadioField } from './VehicleRadioField' -import { FindVehicleFormField } from '@island.is/application/ui-fields' +import { + FindVehicleFormField, + VehicleRadioFormField, +} from '@island.is/application/ui-fields' import { information, error } from '../../lib/messages' import { useLazyVehicleDetails } from '../../hooks/useLazyVehicleDetails' import { ApolloQueryResult } from '@apollo/client' @@ -64,9 +66,22 @@ export const VehiclesField: FC> = ( {...props} /> ) : ( - )} diff --git a/libs/application/templates/transport-authority/order-vehicle-license-plate/src/forms/OrderVehicleLicensePlateForm/InformationSection/plateSizeSubSection.ts b/libs/application/templates/transport-authority/order-vehicle-license-plate/src/forms/OrderVehicleLicensePlateForm/InformationSection/plateSizeSubSection.ts index 32ee542c1f57..ae1772f2d5aa 100644 --- a/libs/application/templates/transport-authority/order-vehicle-license-plate/src/forms/OrderVehicleLicensePlateForm/InformationSection/plateSizeSubSection.ts +++ b/libs/application/templates/transport-authority/order-vehicle-license-plate/src/forms/OrderVehicleLicensePlateForm/InformationSection/plateSizeSubSection.ts @@ -24,7 +24,7 @@ export const plateSizeSubSection = buildSubSection({ titleVariant: 'h5', }), buildTextField({ - id: 'plateSize.vehiclePlate', + id: 'vehicleInfo.plate', title: information.labels.plateSize.vehiclePlate, backgroundColor: 'white', width: 'half', @@ -38,7 +38,7 @@ export const plateSizeSubSection = buildSubSection({ }, }), buildTextField({ - id: 'plateSize.vehicleType', + id: 'vehicleInfo.type', title: information.labels.plateSize.vehicleType, backgroundColor: 'white', width: 'half', diff --git a/libs/application/templates/transport-authority/order-vehicle-registration-certificate/src/fields/VehiclesField/VehicleRadioField.tsx b/libs/application/templates/transport-authority/order-vehicle-registration-certificate/src/fields/VehiclesField/VehicleRadioField.tsx deleted file mode 100644 index af789b491604..000000000000 --- a/libs/application/templates/transport-authority/order-vehicle-registration-certificate/src/fields/VehiclesField/VehicleRadioField.tsx +++ /dev/null @@ -1,62 +0,0 @@ -import { Box, Text } from '@island.is/island-ui/core' -import { FC } from 'react' -import { VehiclesCurrentVehicle } from '../../shared' -import { RadioController } from '@island.is/shared/form-fields' -import { useFormContext } from 'react-hook-form' -import { FieldBaseProps } from '@island.is/application/types' - -interface Option { - value: string - label: React.ReactNode - disabled?: boolean -} - -interface VehicleSearchFieldProps { - currentVehicleList: VehiclesCurrentVehicle[] -} - -export const VehicleRadioField: FC< - React.PropsWithChildren -> = ({ currentVehicleList }) => { - const { setValue } = useFormContext() - - const onRadioControllerSelect = (s: string) => { - const currentVehicle = currentVehicleList[parseInt(s, 10)] - setValue('pickVehicle.plate', currentVehicle.permno || '') - } - - const vehicleOptions = (vehicles: VehiclesCurrentVehicle[]) => { - const options = [] as Option[] - - for (const [index, vehicle] of vehicles.entries()) { - options.push({ - value: `${index}`, - label: ( - - - - {vehicle.make} - - - {vehicle.color} - {vehicle.permno} - - - - ), - }) - } - return options - } - - return ( -
- -
- ) -} diff --git a/libs/application/templates/transport-authority/order-vehicle-registration-certificate/src/fields/VehiclesField/VehicleSelectField.tsx b/libs/application/templates/transport-authority/order-vehicle-registration-certificate/src/fields/VehiclesField/VehicleSelectField.tsx index d6b832c0a84e..33ca041004fc 100644 --- a/libs/application/templates/transport-authority/order-vehicle-registration-certificate/src/fields/VehiclesField/VehicleSelectField.tsx +++ b/libs/application/templates/transport-authority/order-vehicle-registration-certificate/src/fields/VehiclesField/VehicleSelectField.tsx @@ -1,9 +1,14 @@ import { FieldBaseProps, Option } from '@island.is/application/types' import { useLocale } from '@island.is/localization' import { FC, useState } from 'react' -import { ActionCard, Box, SkeletonLoader } from '@island.is/island-ui/core' +import { + ActionCard, + Box, + InputError, + SkeletonLoader, +} from '@island.is/island-ui/core' import { VehiclesCurrentVehicle } from '../../shared' -import { information } from '../../lib/messages' +import { error, information } from '../../lib/messages' import { SelectController } from '@island.is/shared/form-fields' import { useFormContext } from 'react-hook-form' import { getValueViaPath } from '@island.is/application/core' @@ -14,7 +19,7 @@ interface VehicleSearchFieldProps { export const VehicleSelectField: FC< React.PropsWithChildren -> = ({ currentVehicleList, application }) => { +> = ({ currentVehicleList, application, errors }) => { const { formatMessage } = useLocale() const { setValue } = useFormContext() @@ -38,6 +43,10 @@ export const VehicleSelectField: FC< : null, ) + const [plate, setPlate] = useState( + getValueViaPath(application.answers, 'pickVehicle.plate', '') as string, + ) + const onChange = (option: Option) => { const currentVehicle = currentVehicleList[parseInt(option.value, 10)] setIsLoading(true) @@ -49,6 +58,7 @@ export const VehicleSelectField: FC< role: currentVehicle?.role, }) setValue('pickVehicle.plate', currentVehicle.permno || '') + setPlate(currentVehicle.permno || '') setIsLoading(false) } } @@ -85,6 +95,9 @@ export const VehicleSelectField: FC< )} + {!isLoading && plate.length === 0 && (errors as any)?.pickVehicle && ( + + )} ) } diff --git a/libs/application/templates/transport-authority/order-vehicle-registration-certificate/src/fields/VehiclesField/index.tsx b/libs/application/templates/transport-authority/order-vehicle-registration-certificate/src/fields/VehiclesField/index.tsx index 1c99f5cf28e4..09f95f9eaba6 100644 --- a/libs/application/templates/transport-authority/order-vehicle-registration-certificate/src/fields/VehiclesField/index.tsx +++ b/libs/application/templates/transport-authority/order-vehicle-registration-certificate/src/fields/VehiclesField/index.tsx @@ -3,22 +3,22 @@ import { FieldComponents, FieldTypes, } from '@island.is/application/types' -import { Box, InputError } from '@island.is/island-ui/core' +import { Box } from '@island.is/island-ui/core' import { FC } from 'react' import { CurrentVehiclesAndRecords } from '../../shared' -import { VehicleRadioField } from './VehicleRadioField' -import { useLocale } from '@island.is/localization' import { error, information } from '../../lib/messages' import { useLazyVehicleDetails } from '../../hooks/useLazyVehicleDetails' -import { FindVehicleFormField } from '@island.is/application/ui-fields' +import { + FindVehicleFormField, + VehicleRadioFormField, +} from '@island.is/application/ui-fields' import { ApolloQueryResult } from '@apollo/client' import { VehicleSelectField } from './VehicleSelectField' export const VehiclesField: FC> = ( props, ) => { - const { formatMessage } = useLocale() - const { application, errors } = props + const { application } = props const getVehicleDetails = useLazyVehicleDetails() const createGetVehicleDetailsWrapper = ( @@ -65,14 +65,20 @@ export const VehiclesField: FC> = ( {...props} /> ) : ( - )} - {(errors as any)?.pickVehicle && ( - - )} ) } diff --git a/libs/application/templates/transport-authority/order-vehicle-registration-certificate/src/forms/OrderVehicleRegistrationCertificateForm/InformationSection/vehicleSubSection.ts b/libs/application/templates/transport-authority/order-vehicle-registration-certificate/src/forms/OrderVehicleRegistrationCertificateForm/InformationSection/vehicleSubSection.ts index 0c31277ba22c..bbac58c544d2 100644 --- a/libs/application/templates/transport-authority/order-vehicle-registration-certificate/src/forms/OrderVehicleRegistrationCertificateForm/InformationSection/vehicleSubSection.ts +++ b/libs/application/templates/transport-authority/order-vehicle-registration-certificate/src/forms/OrderVehicleRegistrationCertificateForm/InformationSection/vehicleSubSection.ts @@ -24,7 +24,7 @@ export const vehicleSubSection = buildSubSection({ titleVariant: 'h5', }), buildTextField({ - id: 'pickVehicle.plate', + id: 'vehicleInfo.plate', title: information.labels.vehicle.plate, backgroundColor: 'white', width: 'half', @@ -38,7 +38,7 @@ export const vehicleSubSection = buildSubSection({ }, }), buildTextField({ - id: 'pickVehicle.type', + id: 'vehicleInfo.type', title: information.labels.vehicle.type, backgroundColor: 'white', width: 'half', diff --git a/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/fields/VehiclesField/VehicleRadioField.tsx b/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/fields/VehiclesField/VehicleRadioField.tsx deleted file mode 100644 index 18da50ff8a31..000000000000 --- a/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/fields/VehiclesField/VehicleRadioField.tsx +++ /dev/null @@ -1,142 +0,0 @@ -import { - AlertMessage, - Box, - Bullet, - BulletList, - Text, - InputError, -} from '@island.is/island-ui/core' -import { useLocale } from '@island.is/localization' -import { FC, useState } from 'react' -import { VehiclesCurrentVehicleWithOwnerchangeChecks } from '../../shared' -import { information, applicationCheck, error } from '../../lib/messages' -import { RadioController } from '@island.is/shared/form-fields' -import { useFormContext } from 'react-hook-form' -import { getValueViaPath } from '@island.is/application/core' -import { FieldBaseProps } from '@island.is/application/types' - -interface Option { - value: string - label: React.ReactNode - disabled?: boolean -} - -interface VehicleSearchFieldProps { - currentVehicleList: VehiclesCurrentVehicleWithOwnerchangeChecks[] -} - -export const VehicleRadioField: FC< - React.PropsWithChildren -> = ({ currentVehicleList, application, errors }) => { - const { formatMessage } = useLocale() - const { setValue } = useFormContext() - - const [plate, setPlate] = useState( - getValueViaPath(application.answers, 'pickVehicle.plate', '') as string, - ) - - const onRadioControllerSelect = (s: string) => { - const currentVehicle = currentVehicleList[parseInt(s, 10)] - const permno = currentVehicle.permno || '' - - setPlate(permno) - setValue('pickVehicle.plate', permno) - setValue('pickVehicle.type', currentVehicle.make) - setValue('pickVehicle.color', currentVehicle.color || undefined) - setValue('vehicleMileage.requireMileage', currentVehicle?.requireMileage) - setValue('vehicleMileage.mileageReading', currentVehicle?.mileageReading) - if (permno) setValue('vehicleInfo.plate', permno) - if (permno) setValue('vehicleInfo.type', currentVehicle.make) - } - - const vehicleOptions = ( - vehicles: VehiclesCurrentVehicleWithOwnerchangeChecks[], - ) => { - const options = [] as Option[] - - for (const [index, vehicle] of vehicles.entries()) { - const disabled = - !vehicle.isDebtLess || !!vehicle.validationErrorMessages?.length - options.push({ - value: `${index}`, - label: ( - - - - {vehicle.make} - - - {vehicle.color} - {vehicle.permno} - - - {disabled && ( - - - - {!vehicle.isDebtLess && ( - - {formatMessage( - information.labels.pickVehicle.isNotDebtLessTag, - )} - - )} - {!!vehicle.validationErrorMessages?.length && - vehicle.validationErrorMessages?.map((error) => { - const message = formatMessage( - getValueViaPath( - applicationCheck.validation, - error.errorNo || '', - ), - ) - const defaultMessage = error.defaultMessage - const fallbackMessage = - formatMessage( - applicationCheck.validation - .fallbackErrorMessage, - ) + - ' - ' + - error.errorNo - - return ( - - {message || defaultMessage || fallbackMessage} - - ) - })} - - - } - /> - - )} - - ), - disabled: disabled, - }) - } - return options - } - - return ( -
- - {plate.length === 0 && (errors as any)?.pickVehicle && ( - - )} -
- ) -} diff --git a/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/fields/VehiclesField/index.tsx b/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/fields/VehiclesField/index.tsx index a3b37a8d45be..fb33b27bda13 100644 --- a/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/fields/VehiclesField/index.tsx +++ b/libs/application/templates/transport-authority/transfer-of-vehicle-ownership/src/fields/VehiclesField/index.tsx @@ -5,14 +5,16 @@ import { } from '@island.is/application/types' import { Box } from '@island.is/island-ui/core' import { FC, useCallback, useEffect } from 'react' -import { VehicleRadioField } from './VehicleRadioField' import { useFormContext } from 'react-hook-form' import { CurrentVehiclesAndRecords } from '../../shared' import { ApolloQueryResult, useMutation } from '@apollo/client' import { UPDATE_APPLICATION } from '@island.is/application/graphql' import { useLocale } from '@island.is/localization' import { VehicleSelectField } from './VehicleSelectField' -import { FindVehicleFormField } from '@island.is/application/ui-fields' +import { + FindVehicleFormField, + VehicleRadioFormField, +} from '@island.is/application/ui-fields' import { information, applicationCheck, error } from '../../lib/messages' import { useLazyVehicleDetails } from '../../hooks/useLazyVehicleDetails' @@ -92,9 +94,27 @@ export const VehiclesField: FC> = ( {...props} /> ) : ( - )} diff --git a/libs/application/types/src/lib/Fields.ts b/libs/application/types/src/lib/Fields.ts index 19ed08cafa1d..67e1c8223cc4 100644 --- a/libs/application/types/src/lib/Fields.ts +++ b/libs/application/types/src/lib/Fields.ts @@ -256,6 +256,7 @@ export enum FieldTypes { HIDDEN_INPUT = 'HIDDEN_INPUT', HIDDEN_INPUT_WITH_WATCHED_VALUE = 'HIDDEN_INPUT_WITH_WATCHED_VALUE', FIND_VEHICLE = 'FIND_VEHICLE', + VEHICLE_RADIO = 'VEHICLE_RADIO', STATIC_TABLE = 'STATIC_TABLE', ACCORDION = 'ACCORDION', BANK_ACCOUNT = 'BANK_ACCOUNT', @@ -290,6 +291,7 @@ export enum FieldComponents { TABLE_REPEATER = 'TableRepeaterFormField', HIDDEN_INPUT = 'HiddenInputFormField', FIND_VEHICLE = 'FindVehicleFormField', + VEHICLE_RADIO = 'VehicleRadioFormField', STATIC_TABLE = 'StaticTableFormField', ACCORDION = 'AccordionFormField', BANK_ACCOUNT = 'BankAccountFormField', @@ -675,6 +677,22 @@ export interface FindVehicleField extends InputField { energyFundsMessages?: Record } +export interface VehicleRadioField extends InputField { + readonly type: FieldTypes.VEHICLE_RADIO + component: FieldComponents.VEHICLE_RADIO + itemType: 'VEHICLE' | 'PLATE' + itemList: unknown[] + shouldValidateDebtStatus?: boolean + shouldValidateRenewal?: boolean + alertMessageErrorTitle?: FormText + validationErrorMessages?: Record + validationErrorFallbackMessage?: FormText + inputErrorMessage: FormText + debtStatusErrorMessage?: FormText + renewalExpiresAtTag?: StaticText + validateRenewal?: (item: unknown) => boolean +} + export interface HiddenInputWithWatchedValueField extends BaseField { watchValue: string type: FieldTypes.HIDDEN_INPUT_WITH_WATCHED_VALUE @@ -769,6 +787,7 @@ export type Field = | HiddenInputWithWatchedValueField | HiddenInputField | FindVehicleField + | VehicleRadioField | StaticTableField | AccordionField | BankAccountField diff --git a/libs/application/ui-fields/src/lib/VehicleRadioFormField/VehicleDetails.ts b/libs/application/ui-fields/src/lib/VehicleRadioFormField/VehicleDetails.ts new file mode 100644 index 000000000000..b6d04706b4cd --- /dev/null +++ b/libs/application/ui-fields/src/lib/VehicleRadioFormField/VehicleDetails.ts @@ -0,0 +1,22 @@ +interface ValidationErrorMessage { + errorNo?: string | null + defaultMessage?: string | null +} + +export interface VehicleDetails { + permno?: string + make?: string + color?: string + role?: string + requireMileage?: boolean | null + mileageReading?: string | null + isDebtLess?: boolean | null + validationErrorMessages?: ValidationErrorMessage[] +} + +export interface PlateOwnership { + regno: string + startDate: string + endDate: string + validationErrorMessages?: ValidationErrorMessage[] +} diff --git a/libs/application/ui-fields/src/lib/VehicleRadioFormField/VehicleRadioFormField.tsx b/libs/application/ui-fields/src/lib/VehicleRadioFormField/VehicleRadioFormField.tsx new file mode 100644 index 000000000000..ba01109c9e21 --- /dev/null +++ b/libs/application/ui-fields/src/lib/VehicleRadioFormField/VehicleRadioFormField.tsx @@ -0,0 +1,281 @@ +import { formatText, getValueViaPath } from '@island.is/application/core' +import { FieldBaseProps, VehicleRadioField } from '@island.is/application/types' +import { + AlertMessage, + Box, + Bullet, + BulletList, + Text, + InputError, + Tag, +} from '@island.is/island-ui/core' +import { useLocale } from '@island.is/localization' +import { FC, useState } from 'react' +import { useFormContext } from 'react-hook-form' +import { RadioController } from '@island.is/shared/form-fields' +import { PlateOwnership, VehicleDetails } from './VehicleDetails' +import { MessageDescriptor } from 'react-intl' + +interface Option { + value: string + label: React.ReactNode + disabled?: boolean +} + +interface Props extends FieldBaseProps { + field: VehicleRadioField +} + +export const VehicleRadioFormField: FC> = ({ + application, + field, + errors, +}) => { + const { formatMessage, formatDateFns } = useLocale() + const { setValue } = useFormContext() + + let answersSelectedValueKey: string | undefined + let radioControllerId = field.id + if (field.itemType === 'VEHICLE') { + answersSelectedValueKey = `${field.id}.plate` + radioControllerId = `${field.id}.vehicle` + } else if (field.itemType === 'PLATE') { + answersSelectedValueKey = `${field.id}.regno` + radioControllerId = `${field.id}.value` + } + + const [selectedValue, setSelectedValue] = useState( + answersSelectedValueKey && + getValueViaPath(application.answers, answersSelectedValueKey, ''), + ) + + const onRadioControllerSelect = (s: string) => { + if (field.itemType === 'VEHICLE') { + const currentVehicleList = field.itemList as VehicleDetails[] + const currentVehicle = currentVehicleList?.[parseInt(s, 10)] + const permno = currentVehicle?.permno || '' + + setSelectedValue(permno) + + setValue(`${field.id}.plate`, permno) + setValue(`${field.id}.type`, currentVehicle?.make) + setValue(`${field.id}.color`, currentVehicle?.color || undefined) + + setValue('vehicleMileage.requireMileage', currentVehicle?.requireMileage) + setValue('vehicleMileage.mileageReading', currentVehicle?.mileageReading) + + if (permno) setValue('vehicleInfo.plate', permno) + if (permno) setValue('vehicleInfo.type', currentVehicle?.make) + } else if (field.itemType === 'PLATE') { + const currentPlateList = field.itemList as PlateOwnership[] + const currentPlate = currentPlateList?.[parseInt(s, 10)] + const regno = currentPlate?.regno + + setSelectedValue(regno) + + setValue(`${field.id}.regno`, regno) + } + } + + const vehicleOptions = (vehicles: VehicleDetails[]) => { + const options: Option[] = [] + + for (const [index, vehicle] of vehicles.entries()) { + const hasError = !!vehicle.validationErrorMessages?.length + const hasDebtError = field.shouldValidateDebtStatus && !vehicle.isDebtLess + const disabled = hasError || hasDebtError + + options.push({ + value: `${index}`, + label: ( + + + + {vehicle.make} + + + {vehicle.color} - {vehicle.permno} + + + {disabled && ( + + + + {field.shouldValidateDebtStatus && + !vehicle.isDebtLess && ( + + {field.debtStatusErrorMessage && + formatText( + field.debtStatusErrorMessage, + application, + formatMessage, + )} + + )} + {!!vehicle.validationErrorMessages?.length && + vehicle.validationErrorMessages?.map((error) => { + const message = + field.validationErrorMessages && + formatMessage( + getValueViaPath( + field.validationErrorMessages, + error.errorNo || '', + ) || '', + ) + const defaultMessage = error.defaultMessage + const fallbackMessage = + (field.validationErrorFallbackMessage && + formatText( + field.validationErrorFallbackMessage, + application, + formatMessage, + )) + + ' - ' + + error.errorNo + + return ( + + {message || defaultMessage || fallbackMessage} + + ) + })} + + + } + /> + + )} + + ), + disabled: disabled, + }) + } + return options + } + + const plateOptions = (plates: PlateOwnership[]) => { + const options: Option[] = [] + + for (const [index, plate] of plates.entries()) { + const hasError = !!plate.validationErrorMessages?.length + const canRenew = + !field.shouldValidateRenewal || field.validateRenewal?.(plate) + const disabled = hasError || !canRenew + + options.push({ + value: `${index}`, + label: ( + + + + + {plate.regno} + + + + {field.renewalExpiresAtTag && + formatMessage(field.renewalExpiresAtTag, { + date: formatDateFns(new Date(plate.endDate), 'do MMM yyyy'), + })} + + + {hasError && ( + + + + {plate.validationErrorMessages?.map((error) => { + const message = + field.validationErrorMessages && + formatMessage( + getValueViaPath( + field.validationErrorMessages, + error.errorNo || '', + ) || '', + ) + + const defaultMessage = error.defaultMessage + + const fallbackMessage = + (field.validationErrorFallbackMessage && + formatText( + field.validationErrorFallbackMessage, + application, + formatMessage, + )) + + ' - ' + + error.errorNo + + return ( + + {message || defaultMessage || fallbackMessage} + + ) + })} + + + } + /> + + )} + + ), + disabled: disabled, + }) + } + return options + } + + let options: Option[] = [] + if (field.itemType === 'VEHICLE') { + options = vehicleOptions(field.itemList as VehicleDetails[]) + } else if (field.itemType === 'PLATE') { + options = plateOptions(field.itemList as PlateOwnership[]) + } + + return ( +
+ + + {!selectedValue?.length && !!errors?.[field.id] && ( + + )} +
+ ) +} diff --git a/libs/application/ui-fields/src/lib/index.ts b/libs/application/ui-fields/src/lib/index.ts index fa43ff03e370..c3e3f9724309 100644 --- a/libs/application/ui-fields/src/lib/index.ts +++ b/libs/application/ui-fields/src/lib/index.ts @@ -25,6 +25,7 @@ export { HiddenInputFormField } from './HiddenInputFormField/HiddenInputFormFiel export { ActionCardListFormField } from './ActionCardListFormField/ActionCardListFormField' export { TableRepeaterFormField } from './TableRepeaterFormField/TableRepeaterFormField' export { FindVehicleFormField } from './FindVehicleFormField/FindVehicleFormField' +export { VehicleRadioFormField } from './VehicleRadioFormField/VehicleRadioFormField' export { StaticTableFormField } from './StaticTableFormField/StaticTableFormField' export { AccordionFormField } from './AccordionFormField/AccordionFormField' export { BankAccountFormField } from './BankAccountFormField/BankAccountFormField' From ff67649d2020ac1eaaeff82d427a2f27a86b8a5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=BAnar=20Vestmann?= <43557895+RunarVestmann@users.noreply.github.com> Date: Tue, 19 Nov 2024 14:15:24 +0000 Subject: [PATCH 53/66] fix(api): Add missing content type header for Campaign Monitor email signup (#16936) --- .../services/campaignMonitor/campaignMonitor.service.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/libs/api/domains/email-signup/src/lib/services/campaignMonitor/campaignMonitor.service.ts b/libs/api/domains/email-signup/src/lib/services/campaignMonitor/campaignMonitor.service.ts index 2a7ef5e87f42..092c58a389e7 100644 --- a/libs/api/domains/email-signup/src/lib/services/campaignMonitor/campaignMonitor.service.ts +++ b/libs/api/domains/email-signup/src/lib/services/campaignMonitor/campaignMonitor.service.ts @@ -35,7 +35,12 @@ export class CampaignMonitorSignupService { const obj = Object.fromEntries(map) return axios - .post(url, obj, { headers: { Authorization: authHeader } }) + .post(url, obj, { + headers: { + Authorization: authHeader, + 'Content-Type': 'application/json', + }, + }) .then((response) => { return { subscribed: response?.data?.result === 'error' ? false : true, From 5eeff5f3340d32db19b626185d8c3e8c1bdbbdf1 Mon Sep 17 00:00:00 2001 From: unakb Date: Tue, 19 Nov 2024 14:48:32 +0000 Subject: [PATCH 54/66] fix(j-s): Whitelist emails (#16907) * chore(j-s): Whitelist emails outside prod * fix(j-s): Tests after whitelisting * fix(j-s): more tests * fix(j-s): And more tests fixed * Update sendAdvocateAssignedNotifications.spec.ts --------- Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- .../src/app/formatters/formatters.spec.ts | 36 ++++++++ .../backend/src/app/formatters/formatters.ts | 28 +++++++ .../backend/src/app/formatters/index.ts | 1 + .../backend/src/app/messages/notifications.ts | 10 +++ .../notification/baseNotification.service.ts | 31 ++++++- .../defendantNotification.service.ts | 1 - .../test/createTestingNotificationModule.ts | 26 +++++- .../sendDefenderAssignedNotifications.spec.ts | 13 ++- .../sendAdvocateAssignedNotifications.spec.ts | 31 ++++--- .../sendAppealCompletedNotifications.spec.ts | 40 ++++----- ...endAppealFilesUpdatedNotifications.spec.ts | 55 ++++++------ ...dAppealJudgesAssignedNotifications.spec.ts | 62 +++++++------- ...AppealReceivedByCourtNotifications.spec.ts | 41 ++++----- .../sendAppealStatementNotifications.spec.ts | 75 +++++++++-------- ...ppealToCourtOfAppealsNotifications.spec.ts | 70 ++++++++-------- .../sendAppealWithdrawnNotifications.spec.ts | 84 +++++++++++-------- .../sendCaseFilesUpdatedNotifications.spec.ts | 52 +++++++----- .../sendCourtDateNotifications.spec.ts | 51 +++++------ ...antsNotUpdatedAtCourtNotifications.spec.ts | 24 ++++-- .../sendIndictmentDeniedNotifications.spec.ts | 11 ++- ...endIndictmentReturnedNotifications.spec.ts | 13 +-- ...aitingForConfirmationNotifications.spec.ts | 24 +++--- .../sendReadyForCourtNotifications.spec.ts | 80 +++++++++++------- .../sendRevokedNotifications.spec.ts | 51 ++++++----- .../sendRulingNotifications.spec.ts | 31 +++++-- 25 files changed, 579 insertions(+), 362 deletions(-) diff --git a/apps/judicial-system/backend/src/app/formatters/formatters.spec.ts b/apps/judicial-system/backend/src/app/formatters/formatters.spec.ts index 3379703684ae..15b4b0fe2d94 100644 --- a/apps/judicial-system/backend/src/app/formatters/formatters.spec.ts +++ b/apps/judicial-system/backend/src/app/formatters/formatters.spec.ts @@ -15,6 +15,7 @@ import { } from '@island.is/judicial-system/types' import { + filterWhitelistEmails, formatCourtHeadsUpSmsNotification, formatCourtReadyForCourtSmsNotification, formatCourtResubmittedToCourtSmsNotification, @@ -1982,3 +1983,38 @@ describe('formatDefenderResubmittedToCourtEmailNotification', () => { expect(result.subject).toEqual('Krafa í máli R-2022/999') }) }) + +describe('filterWhitelistEmails', () => { + const emails = [ + 'test@rvg.is', + 'test2@rvg.is', + 'test3@rvg.is', + 'test4@example.com', + ] + + it('should return only whitelisted emails', () => { + const whitelist = `${emails[0]}, ${emails[2]}` + const domainWhitelist = 'example.com' + + const result = filterWhitelistEmails(emails, domainWhitelist, whitelist) + + expect(result).toEqual([emails[0], emails[2], emails[3]]) + }) + + it('should return empty array if no emails are whitelisted', () => { + const whitelist = '' + const domainWhitelist = '' + + const result = filterWhitelistEmails(emails, domainWhitelist, whitelist) + + expect(result).toEqual([]) + }) + it('should return domain whitelisted emails', () => { + const whitelist = '' + const domainWhitelist = 'rvg.is' + + const result = filterWhitelistEmails(emails, domainWhitelist, whitelist) + + expect(result).toEqual([emails[0], emails[1], emails[2]]) + }) +}) diff --git a/apps/judicial-system/backend/src/app/formatters/formatters.ts b/apps/judicial-system/backend/src/app/formatters/formatters.ts index b5859c04b70b..552a328fc515 100644 --- a/apps/judicial-system/backend/src/app/formatters/formatters.ts +++ b/apps/judicial-system/backend/src/app/formatters/formatters.ts @@ -759,3 +759,31 @@ export const formatDefenderRoute = ( export const formatConfirmedIndictmentKey = (key?: string) => key?.replace(/\/([^/]*)$/, '/confirmed/$1') ?? '' + +export const filterWhitelistEmails = ( + emails: string[], + domainWhitelist: string, + emailWhitelist: string, +) => { + if (!emails || emails.length === 0) return [] + + const allowedDomains = new Set( + domainWhitelist + .split(',') + .map((d) => d.trim()) + .filter(Boolean), + ) + const allowedEmails = new Set( + emailWhitelist + .split(',') + .map((e) => e.trim()) + .filter(Boolean), + ) + + return emails.filter((email) => { + const domain = email.split('@')[1] + return ( + domain && (allowedDomains.has(domain) || allowedEmails.has(email.trim())) + ) + }) +} diff --git a/apps/judicial-system/backend/src/app/formatters/index.ts b/apps/judicial-system/backend/src/app/formatters/index.ts index 063734cdaacb..01d46156bf88 100644 --- a/apps/judicial-system/backend/src/app/formatters/index.ts +++ b/apps/judicial-system/backend/src/app/formatters/index.ts @@ -27,6 +27,7 @@ export { formatCourtOfAppealJudgeAssignedEmailNotification, formatPostponedCourtDateEmailNotification, stripHtmlTags, + filterWhitelistEmails, } from './formatters' export { Confirmation } from './pdfHelpers' export { getRequestPdfAsBuffer, getRequestPdfAsString } from './requestPdf' diff --git a/apps/judicial-system/backend/src/app/messages/notifications.ts b/apps/judicial-system/backend/src/app/messages/notifications.ts index 258eeedc852f..a7bf8f898acf 100644 --- a/apps/judicial-system/backend/src/app/messages/notifications.ts +++ b/apps/judicial-system/backend/src/app/messages/notifications.ts @@ -45,6 +45,16 @@ export const notifications = { 'Hægt er að nálgast yfirlitssíðu málsins á rettarvorslugatt.island.is.', description: 'Notaður sem texti í email til þess að tilgreina slóð á RVG', }), + emailWhitelist: defineMessage({ + id: 'judicial.system.backend:notifications.email_whitelist', + defaultMessage: '', + description: 'Notað til að tilgreina hvort póstfang sé í hvítlista', + }), + emailWhitelistDomains: defineMessage({ + id: 'judicial.system.backend:notifications.email_whitelist_domains', + defaultMessage: 'omnitrix.is,kolibri.is', + description: 'Notað til að tilgreina hvort póstfang sé í hvítlista', + }), readyForCourt: defineMessages({ subject: { id: 'judicial.system.backend:notifications.ready_for_court.subjectV2', diff --git a/apps/judicial-system/backend/src/app/modules/notification/baseNotification.service.ts b/apps/judicial-system/backend/src/app/modules/notification/baseNotification.service.ts index b06c0242d66f..be1034a1dcb1 100644 --- a/apps/judicial-system/backend/src/app/modules/notification/baseNotification.service.ts +++ b/apps/judicial-system/backend/src/app/modules/notification/baseNotification.service.ts @@ -9,7 +9,7 @@ import type { ConfigType } from '@island.is/nest/config' import { NotificationType } from '@island.is/judicial-system/types' -import { stripHtmlTags } from '../../formatters' +import { filterWhitelistEmails, stripHtmlTags } from '../../formatters' import { notifications } from '../../messages' import { EventService } from '../event' import { DeliverResponse } from './models/deliver.response' @@ -53,6 +53,29 @@ export abstract class BaseNotificationService { }) } + private async handleWhitelist(recipients: string[]): Promise { + const whitelist = this.formatMessage(notifications.emailWhitelist) + const whitelistDomains = this.formatMessage( + notifications.emailWhitelistDomains, + ) + + const whitelistedEmails = filterWhitelistEmails( + recipients, + whitelistDomains, + whitelist, + ) + + if (whitelistedEmails.length === 0) { + this.logger.warn('No whitelisted emails found in recipients') + } + + if (whitelistedEmails.length !== recipients?.length) { + this.logger.warn('Some emails missing from whitelist') + } + + return whitelistedEmails + } + protected async sendEmail( subject: string, html: string, @@ -64,7 +87,11 @@ export abstract class BaseNotificationService { try { // This is to handle a comma separated list of emails // We use the first one as the main recipient and the rest as CC - const recipients = recipientEmail ? recipientEmail.split(',') : undefined + let recipients = recipientEmail ? recipientEmail.split(',') : undefined + + if (!this.config.production && recipients) { + recipients = await this.handleWhitelist(recipients) + } html = html.match(/ { await this.refreshFormatMessage() - try { return await this.sendNotification(type, theCase, defendant) } catch (error) { diff --git a/apps/judicial-system/backend/src/app/modules/notification/test/createTestingNotificationModule.ts b/apps/judicial-system/backend/src/app/modules/notification/test/createTestingNotificationModule.ts index 267327b2235b..fe4c450c5873 100644 --- a/apps/judicial-system/backend/src/app/modules/notification/test/createTestingNotificationModule.ts +++ b/apps/judicial-system/backend/src/app/modules/notification/test/createTestingNotificationModule.ts @@ -4,7 +4,7 @@ import { uuid } from 'uuidv4' import { getModelToken } from '@nestjs/sequelize' import { Test } from '@nestjs/testing' -import { IntlService } from '@island.is/cms-translations' +import { FormatMessage, IntlService } from '@island.is/cms-translations' import { createTestIntl } from '@island.is/cms-translations/test' import { EmailService } from '@island.is/email-service' import { LOGGER_PROVIDER } from '@island.is/logging' @@ -37,6 +37,30 @@ import { NotificationDispatchService } from '../notificationDispatch.service' jest.mock('@island.is/judicial-system/message') +export const createTestUsers = ( + roles: string[], +): Record< + string, + { + id: string + name: string + email: string + mobile: string + nationalId: string + } +> => + roles.reduce((acc, role) => { + const id = uuid() + acc[role] = { + id: id, + name: `${role}-${id}`, + email: `${role}-${id}@omnitrix.is`, + mobile: id, + nationalId: '1234567890', + } + return acc + }, {} as Record) + const formatMessage = createTestIntl({ onError: jest.fn(), locale: 'is-IS', diff --git a/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/defendantNotification/sendDefenderAssignedNotifications.spec.ts b/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/defendantNotification/sendDefenderAssignedNotifications.spec.ts index 41403f0ea3f1..5d048acbad6c 100644 --- a/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/defendantNotification/sendDefenderAssignedNotifications.spec.ts +++ b/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/defendantNotification/sendDefenderAssignedNotifications.spec.ts @@ -9,7 +9,10 @@ import { DefendantNotificationType, } from '@island.is/judicial-system/types' -import { createTestingNotificationModule } from '../../createTestingNotificationModule' +import { + createTestingNotificationModule, + createTestUsers, +} from '../../createTestingNotificationModule' import { Case } from '../../../../case' import { Defendant } from '../../../../defendant' @@ -36,6 +39,8 @@ type GivenWhenThen = ( describe('InternalNotificationController - Send defender assigned notifications', () => { const caseId = uuid() const defendantId = uuid() + + const { defender } = createTestUsers(['defender']) const court = { name: 'Héraðsdómur Reykjavíkur' } as Case['court'] let mockEmailService: EmailService @@ -91,8 +96,8 @@ describe('InternalNotificationController - Send defender assigned notifications' const defendant = { id: defendantId, defenderNationalId: '1234567890', - defenderName: 'Defender Name', - defenderEmail: 'ben10@omnitrix.is', + defenderName: defender.name, + defenderEmail: defender.email, isDefenderChoiceConfirmed: true, } as Defendant @@ -158,7 +163,7 @@ describe('InternalNotificationController - Send defender assigned notifications' describe('when sending defender assigned notification to unconfirmed defender', () => { const defendant = { id: defendantId, - defenderEmail: 'ben101@omnitrix.is', + defenderEmail: defender.email, isDefenderChoiceConfirmed: false, } as Defendant diff --git a/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendAdvocateAssignedNotifications.spec.ts b/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendAdvocateAssignedNotifications.spec.ts index d439505025a9..2ff1ebb316c3 100644 --- a/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendAdvocateAssignedNotifications.spec.ts +++ b/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendAdvocateAssignedNotifications.spec.ts @@ -14,12 +14,14 @@ import { User, } from '@island.is/judicial-system/types' -import { createTestingNotificationModule } from '../createTestingNotificationModule' +import { + createTestingNotificationModule, + createTestUsers, +} from '../createTestingNotificationModule' import { Case } from '../../../case' import { CaseNotificationDto } from '../../dto/caseNotification.dto' import { DeliverResponse } from '../../models/deliver.response' -import { Notification } from '../../models/notification.model' import { notificationModuleConfig } from '../../notification.config' jest.mock('../../../../factories') @@ -37,21 +39,19 @@ type GivenWhenThen = ( describe('InternalNotificationController - Send defender assigned notifications', () => { const userId = uuid() + + const { defender } = createTestUsers(['defender']) + const court = { name: 'Héraðsdómur Reykjavíkur' } as Case['court'] let mockEmailService: EmailService let mockConfig: ConfigType - let mockNotificationModel: typeof Notification let givenWhenThen: GivenWhenThen let notificationDTO: CaseNotificationDto beforeEach(async () => { - const { - emailService, - notificationConfig, - notificationModel, - internalNotificationController, - } = await createTestingNotificationModule() + const { emailService, notificationConfig, internalNotificationController } = + await createTestingNotificationModule() notificationDTO = { user: { id: userId } as User, @@ -60,7 +60,6 @@ describe('InternalNotificationController - Send defender assigned notifications' mockEmailService = emailService mockConfig = notificationConfig - mockNotificationModel = notificationModel givenWhenThen = async ( caseId: string, @@ -90,8 +89,8 @@ describe('InternalNotificationController - Send defender assigned notifications' type: CaseType.ADMISSION_TO_FACILITY, court, courtCaseNumber: 'R-123/2022', - defenderEmail: 'recipient@gmail.com', - defenderName: 'John Doe', + defenderEmail: defender.email, + defenderName: defender.name, defenderNationalId: '1234567890', dateLogs: [{ date: new Date(), dateType: DateType.ARRAIGNMENT_DATE }], } as Case @@ -132,8 +131,8 @@ describe('InternalNotificationController - Send defender assigned notifications' type: CaseType.ADMISSION_TO_FACILITY, court, courtCaseNumber: 'R-123/2022', - defenderEmail: 'recipient@gmail.com', - defenderName: 'John Doe', + defenderEmail: defender.email, + defenderName: defender.name, dateLogs: [{ date: new Date(), dateType: DateType.ARRAIGNMENT_DATE }], } as Case @@ -173,8 +172,8 @@ describe('InternalNotificationController - Send defender assigned notifications' type: CaseType.PHONE_TAPPING, court, courtCaseNumber: 'R-123/2022', - defenderEmail: 'recipient@gmail.com', - defenderName: 'John Doe', + defenderEmail: defender.email, + defenderName: defender.name, dateLogs: [{ date: new Date(), dateType: DateType.ARRAIGNMENT_DATE }], } as Case diff --git a/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendAppealCompletedNotifications.spec.ts b/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendAppealCompletedNotifications.spec.ts index bc9c0a684778..df4807508115 100644 --- a/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendAppealCompletedNotifications.spec.ts +++ b/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendAppealCompletedNotifications.spec.ts @@ -12,7 +12,10 @@ import { User, } from '@island.is/judicial-system/types' -import { createTestingNotificationModule } from '../createTestingNotificationModule' +import { + createTestingNotificationModule, + createTestUsers, +} from '../createTestingNotificationModule' import { Case } from '../../../case' import { DeliverResponse } from '../../models/deliver.response' @@ -29,25 +32,24 @@ type GivenWhenThen = ( ) => Promise describe('InternalNotificationController - Send appeal completed notifications', () => { + const { prosecutor, defender, judge, courtOfAppeals } = createTestUsers([ + 'prosecutor', + 'defender', + 'judge', + 'courtOfAppeals', + ]) const userId = uuid() const caseId = uuid() - const prosecutorName = uuid() - const prosecutorEmail = uuid() - const defenderName = uuid() - const defenderEmail = uuid() - const judgeName = uuid() - const judgeEmail = uuid() const courtCaseNumber = uuid() const appealCaseNumber = uuid() const courtId = uuid() - const courtOfAppealsEmail = uuid() let mockEmailService: EmailService let mockConfig: ConfigType let givenWhenThen: GivenWhenThen beforeEach(async () => { - process.env.COURTS_EMAILS = `{"4676f08b-aab4-4b4f-a366-697540788088":"${courtOfAppealsEmail}"}` + process.env.COURTS_EMAILS = `{"4676f08b-aab4-4b4f-a366-697540788088":"${courtOfAppeals.email}"}` const { emailService, notificationConfig, internalNotificationController } = await createTestingNotificationModule() @@ -71,12 +73,12 @@ describe('InternalNotificationController - Send appeal completed notifications', decision: CaseDecision.ACCEPTING, appealRulingDecision: appealRulingDecision ?? CaseAppealRulingDecision.ACCEPTING, - prosecutor: { name: prosecutorName, email: prosecutorEmail }, - judge: { name: judgeName, email: judgeEmail }, + prosecutor: { name: prosecutor.name, email: prosecutor.email }, + judge: { name: judge.name, email: judge.email }, court: { name: 'Héraðsdómur Reykjavíkur' }, defenderNationalId, - defenderName: defenderName, - defenderEmail: defenderEmail, + defenderName: defender.name, + defenderEmail: defender.email, courtCaseNumber, appealCaseNumber, courtId: courtId, @@ -102,14 +104,14 @@ describe('InternalNotificationController - Send appeal completed notifications', it('should send notifications', () => { expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: judgeName, address: judgeEmail }], + to: [{ name: judge.name, address: judge.email }], subject: `Úrskurður í landsréttarmáli ${appealCaseNumber} (${courtCaseNumber})`, html: `Landsréttur hefur úrskurðað í máli ${appealCaseNumber} (héraðsdómsmál nr. ${courtCaseNumber}). Niðurstaða Landsréttar: Staðfest. Hægt er að nálgast gögn málsins á yfirlitssíðu málsins í Réttarvörslugátt.`, }), ) expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: prosecutorName, address: prosecutorEmail }], + to: [{ name: prosecutor.name, address: prosecutor.email }], subject: `Úrskurður í landsréttarmáli ${appealCaseNumber} (${courtCaseNumber})`, html: `Landsréttur hefur úrskurðað í máli ${appealCaseNumber} (héraðsdómsmál nr. ${courtCaseNumber}). Niðurstaða Landsréttar: Staðfest. Hægt er að nálgast gögn málsins á yfirlitssíðu málsins í Réttarvörslugátt.`, }), @@ -140,7 +142,7 @@ describe('InternalNotificationController - Send appeal completed notifications', ) expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: defenderName, address: defenderEmail }], + to: [{ name: defender.name, address: defender.email }], subject: `Úrskurður í landsréttarmáli ${appealCaseNumber} (${courtCaseNumber})`, html: `Landsréttur hefur úrskurðað í máli ${appealCaseNumber} (héraðsdómsmál nr. ${courtCaseNumber}). Niðurstaða Landsréttar: Staðfest. Hægt er að nálgast gögn málsins á yfirlitssíðu málsins í Réttarvörslugátt.`, }), @@ -159,7 +161,7 @@ describe('InternalNotificationController - Send appeal completed notifications', it('should send notification without a link to defender', () => { expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: defenderName, address: defenderEmail }], + to: [{ name: defender.name, address: defender.email }], subject: `Úrskurður í landsréttarmáli ${appealCaseNumber} (${courtCaseNumber})`, html: `Landsréttur hefur úrskurðað í máli ${appealCaseNumber} (héraðsdómsmál nr. ${courtCaseNumber}). Niðurstaða Landsréttar: Staðfest. Hægt er að nálgast gögn málsins hjá Héraðsdómi Reykjavíkur ef þau hafa ekki þegar verið afhent.`, }), @@ -178,14 +180,14 @@ describe('InternalNotificationController - Send appeal completed notifications', it('should send notification about discontinuance', () => { expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: prosecutorName, address: prosecutorEmail }], + to: [{ name: prosecutor.name, address: prosecutor.email }], subject: `Niðurfelling máls ${appealCaseNumber} (${courtCaseNumber})`, html: `Landsréttur hefur móttekið afturköllun á kæru í máli ${courtCaseNumber}. Landsréttarmálið ${appealCaseNumber} hefur verið fellt niður. Hægt er að nálgast yfirlitssíðu málsins á rettarvorslugatt.island.is.`, }), ) expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: defenderName, address: defenderEmail }], + to: [{ name: defender.name, address: defender.email }], subject: `Niðurfelling máls ${appealCaseNumber} (${courtCaseNumber})`, html: `Landsréttur hefur móttekið afturköllun á kæru í máli ${courtCaseNumber}. Landsréttarmálið ${appealCaseNumber} hefur verið fellt niður.`, }), diff --git a/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendAppealFilesUpdatedNotifications.spec.ts b/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendAppealFilesUpdatedNotifications.spec.ts index 1cc6f4f9e31a..d50f5d2a5707 100644 --- a/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendAppealFilesUpdatedNotifications.spec.ts +++ b/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendAppealFilesUpdatedNotifications.spec.ts @@ -8,7 +8,10 @@ import { UserRole, } from '@island.is/judicial-system/types' -import { createTestingNotificationModule } from '../createTestingNotificationModule' +import { + createTestingNotificationModule, + createTestUsers, +} from '../createTestingNotificationModule' import { Case } from '../../../case' import { DeliverResponse } from '../../models/deliver.response' @@ -21,22 +24,17 @@ interface Then { type GivenWhenThen = (defenderNationalId?: string) => Promise describe('InternalNotificationController - Send appeal case files updated notifications', () => { + const { assistant, judge1, judge2, judge3 } = createTestUsers([ + 'assistant', + 'judge1', + 'judge2', + 'judge3', + ]) const userId = uuid() const caseId = uuid() const courtCaseNumber = uuid() const appealCaseNumber = uuid() const receivedDate = new Date() - const assistantName = uuid() - const assistantEmail = uuid() - const judgeName1 = uuid() - const judgeEmail1 = uuid() - const judgeId1 = uuid() - const judgeName2 = uuid() - const judgeEmail2 = uuid() - const judgeId2 = uuid() - const judgeName3 = uuid() - const judgeEmail3 = uuid() - const judgeId3 = uuid() let mockEmailService: EmailService let givenWhenThen: GivenWhenThen @@ -59,27 +57,26 @@ describe('InternalNotificationController - Send appeal case files updated notifi appealCaseNumber, appealReceivedByCourtDate: receivedDate, appealAssistant: { - name: assistantName, - email: assistantEmail, + name: assistant.name, + email: assistant.email, role: UserRole.COURT_OF_APPEALS_ASSISTANT, }, appealJudge1: { - name: judgeName1, - email: judgeEmail1, - id: judgeId1, + name: judge1.name, + email: judge1.email, + id: judge1.id, role: UserRole.COURT_OF_APPEALS_JUDGE, }, - appealJudge1Id: judgeId1, appealJudge2: { - name: judgeName2, - email: judgeEmail2, - id: judgeId2, + name: judge2.name, + email: judge2.email, + id: judge2.id, role: UserRole.COURT_OF_APPEALS_JUDGE, }, appealJudge3: { - name: judgeName3, - email: judgeEmail3, - id: judgeId3, + name: judge3.name, + email: judge3.email, + id: judge3.id, role: UserRole.COURT_OF_APPEALS_JUDGE, }, } as Case, @@ -104,7 +101,7 @@ describe('InternalNotificationController - Send appeal case files updated notifi it('should send notification to the assigned court of appeal judges and assistant', () => { expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: assistantName, address: assistantEmail }], + to: [{ name: assistant.name, address: assistant.email }], subject: `Ný gögn í máli ${courtCaseNumber} (${appealCaseNumber})`, html: `Ný gögn hafa borist vegna kæru í máli ${courtCaseNumber} (Landsréttarmál nr. ${appealCaseNumber}). Hægt er að nálgast gögn málsins á yfirlitssíðu málsins í Réttarvörslugátt.`, }), @@ -113,8 +110,8 @@ describe('InternalNotificationController - Send appeal case files updated notifi expect.objectContaining({ to: [ { - name: judgeName1, - address: judgeEmail1, + name: judge1.name, + address: judge1.email, }, ], subject: `Ný gögn í máli ${courtCaseNumber} (${appealCaseNumber})`, @@ -123,14 +120,14 @@ describe('InternalNotificationController - Send appeal case files updated notifi ) expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: judgeName2, address: judgeEmail2 }], + to: [{ name: judge2.name, address: judge2.email }], subject: `Ný gögn í máli ${courtCaseNumber} (${appealCaseNumber})`, html: `Ný gögn hafa borist vegna kæru í máli ${courtCaseNumber} (Landsréttarmál nr. ${appealCaseNumber}). Hægt er að nálgast gögn málsins á yfirlitssíðu málsins í Réttarvörslugátt.`, }), ) expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: judgeName3, address: judgeEmail3 }], + to: [{ name: judge3.name, address: judge3.email }], subject: `Ný gögn í máli ${courtCaseNumber} (${appealCaseNumber})`, html: `Ný gögn hafa borist vegna kæru í máli ${courtCaseNumber} (Landsréttarmál nr. ${appealCaseNumber}). Hægt er að nálgast gögn málsins á yfirlitssíðu málsins í Réttarvörslugátt.`, }), diff --git a/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendAppealJudgesAssignedNotifications.spec.ts b/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendAppealJudgesAssignedNotifications.spec.ts index b455d775f174..cf73dbe84fcd 100644 --- a/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendAppealJudgesAssignedNotifications.spec.ts +++ b/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendAppealJudgesAssignedNotifications.spec.ts @@ -8,7 +8,10 @@ import { UserRole, } from '@island.is/judicial-system/types' -import { createTestingNotificationModule } from '../createTestingNotificationModule' +import { + createTestingNotificationModule, + createTestUsers, +} from '../createTestingNotificationModule' import { Case } from '../../../case' import { DeliverResponse } from '../../models/deliver.response' @@ -21,21 +24,16 @@ interface Then { type GivenWhenThen = (defenderNationalId?: string) => Promise describe('InternalNotificationController - Send appeal judges assigned notifications', () => { + const { judge1, judge2, judge3, assistant } = createTestUsers([ + 'judge1', + 'judge2', + 'judge3', + 'assistant', + ]) const userId = uuid() const caseId = uuid() const appealCaseNumber = uuid() const receivedDate = new Date() - const assistantName = uuid() - const assistantEmail = uuid() - const judgeName1 = uuid() - const judgeEmail1 = uuid() - const judgeId1 = uuid() - const judgeName2 = uuid() - const judgeEmail2 = uuid() - const judgeId2 = uuid() - const judgeName3 = uuid() - const judgeEmail3 = uuid() - const judgeId3 = uuid() let mockEmailService: EmailService let givenWhenThen: GivenWhenThen @@ -57,27 +55,27 @@ describe('InternalNotificationController - Send appeal judges assigned notificat appealCaseNumber, appealReceivedByCourtDate: receivedDate, appealAssistant: { - name: assistantName, - email: assistantEmail, + name: assistant.name, + email: assistant.email, role: UserRole.COURT_OF_APPEALS_ASSISTANT, }, appealJudge1: { - name: judgeName1, - email: judgeEmail1, - id: judgeId1, + name: judge1.name, + email: judge1.email, + id: judge1.id, role: UserRole.COURT_OF_APPEALS_JUDGE, }, - appealJudge1Id: judgeId1, + appealJudge1Id: judge1.id, appealJudge2: { - name: judgeName2, - email: judgeEmail2, - id: judgeId2, + name: judge2.name, + email: judge2.email, + id: judge2.id, role: UserRole.COURT_OF_APPEALS_JUDGE, }, appealJudge3: { - name: judgeName3, - email: judgeEmail3, - id: judgeId3, + name: judge3.name, + email: judge3.email, + id: judge3.id, role: UserRole.COURT_OF_APPEALS_JUDGE, }, } as Case, @@ -102,17 +100,17 @@ describe('InternalNotificationController - Send appeal judges assigned notificat it('should send notification to the judge foreperson, the two other judges and the judges assistant', () => { expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: assistantName, address: assistantEmail }], + to: [{ name: assistant.name, address: assistant.email }], subject: `Úthlutun máls nr. ${appealCaseNumber}`, - html: `Landsréttur hefur skráð þig sem aðstoðarmann dómara í máli nr. ${appealCaseNumber}. Dómsformaður er ${judgeName1}. Þú getur nálgast yfirlit málsins á yfirlitssíðu málsins í Réttarvörslugátt.`, + html: `Landsréttur hefur skráð þig sem aðstoðarmann dómara í máli nr. ${appealCaseNumber}. Dómsformaður er ${judge1.name}. Þú getur nálgast yfirlit málsins á yfirlitssíðu málsins í Réttarvörslugátt.`, }), ) expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ to: [ { - name: judgeName1, - address: judgeEmail1, + name: judge1.name, + address: judge1.email, }, ], subject: `Úthlutun máls nr. ${appealCaseNumber}`, @@ -121,16 +119,16 @@ describe('InternalNotificationController - Send appeal judges assigned notificat ) expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: judgeName2, address: judgeEmail2 }], + to: [{ name: judge2.name, address: judge2.email }], subject: `Úthlutun máls nr. ${appealCaseNumber}`, - html: `Landsréttur hefur skráð þig sem dómara í máli nr. ${appealCaseNumber}. Dómsformaður er ${judgeName1}. Þú getur nálgast yfirlit málsins á yfirlitssíðu málsins í Réttarvörslugátt.`, + html: `Landsréttur hefur skráð þig sem dómara í máli nr. ${appealCaseNumber}. Dómsformaður er ${judge1.name}. Þú getur nálgast yfirlit málsins á yfirlitssíðu málsins í Réttarvörslugátt.`, }), ) expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: judgeName3, address: judgeEmail3 }], + to: [{ name: judge3.name, address: judge3.email }], subject: `Úthlutun máls nr. ${appealCaseNumber}`, - html: `Landsréttur hefur skráð þig sem dómara í máli nr. ${appealCaseNumber}. Dómsformaður er ${judgeName1}. Þú getur nálgast yfirlit málsins á yfirlitssíðu málsins í Réttarvörslugátt.`, + html: `Landsréttur hefur skráð þig sem dómara í máli nr. ${appealCaseNumber}. Dómsformaður er ${judge1.name}. Þú getur nálgast yfirlit málsins á yfirlitssíðu málsins í Réttarvörslugátt.`, }), ) expect(then.result).toEqual({ delivered: true }) diff --git a/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendAppealReceivedByCourtNotifications.spec.ts b/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendAppealReceivedByCourtNotifications.spec.ts index 27a132aa27a7..96a4f7fe0016 100644 --- a/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendAppealReceivedByCourtNotifications.spec.ts +++ b/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendAppealReceivedByCourtNotifications.spec.ts @@ -10,7 +10,10 @@ import { User, } from '@island.is/judicial-system/types' -import { createTestingNotificationModule } from '../createTestingNotificationModule' +import { + createTestingNotificationModule, + createTestUsers, +} from '../createTestingNotificationModule' import { Case } from '../../../case' import { DeliverResponse } from '../../models/deliver.response' @@ -23,14 +26,14 @@ interface Then { type GivenWhenThen = (defenderNationalId?: string) => Promise describe('InternalNotificationController - Send appeal received by court notifications', () => { - const courtOfAppealsEmail = uuid() + const { coa, defender, prosecutor } = createTestUsers([ + 'coa', + 'defender', + 'prosecutor', + ]) + const userId = uuid() const caseId = uuid() - const prosecutorName = uuid() - const prosecutorEmail = uuid() - const prosecutorMobileNumber = uuid() - const defenderName = uuid() - const defenderEmail = uuid() const courtCaseNumber = uuid() const receivedDate = new Date() @@ -40,7 +43,7 @@ describe('InternalNotificationController - Send appeal received by court notific let givenWhenThen: GivenWhenThen beforeEach(async () => { - process.env.COURTS_EMAILS = `{"4676f08b-aab4-4b4f-a366-697540788088":"${courtOfAppealsEmail}"}` + process.env.COURTS_EMAILS = `{"4676f08b-aab4-4b4f-a366-697540788088":"${coa.email}"}` const { emailService, smsService, internalNotificationController } = await createTestingNotificationModule() @@ -57,14 +60,14 @@ describe('InternalNotificationController - Send appeal received by court notific { id: caseId, prosecutor: { - name: prosecutorName, - email: prosecutorEmail, - mobileNumber: prosecutorMobileNumber, + name: prosecutor.name, + email: prosecutor.email, + mobileNumber: prosecutor.mobile, }, court: { name: 'Héraðsdómur Reykjavíkur' }, defenderNationalId, - defenderName: defenderName, - defenderEmail: defenderEmail, + defenderName: defender.name, + defenderEmail: defender.email, courtCaseNumber, appealReceivedByCourtDate: receivedDate, } as Case, @@ -92,7 +95,7 @@ describe('InternalNotificationController - Send appeal received by court notific to: [ { name: 'Landsréttur', - address: courtOfAppealsEmail, + address: coa.email, }, ], subject: `Upplýsingar vegna kæru í máli ${courtCaseNumber}`, @@ -104,7 +107,7 @@ describe('InternalNotificationController - Send appeal received by court notific ) expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: prosecutorName, address: prosecutorEmail }], + to: [{ name: prosecutor.name, address: prosecutor.email }], subject: `Upplýsingar vegna kæru í máli ${courtCaseNumber}`, html: `Kæra í máli ${courtCaseNumber} hefur borist Landsrétti. Frestur til að skila greinargerð er til ${formatDate( getStatementDeadline(receivedDate), @@ -114,7 +117,7 @@ describe('InternalNotificationController - Send appeal received by court notific ) expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: defenderName, address: defenderEmail }], + to: [{ name: defender.name, address: defender.email }], subject: `Upplýsingar vegna kæru í máli ${courtCaseNumber}`, html: `Kæra í máli ${courtCaseNumber} hefur borist Landsrétti. Frestur til að skila greinargerð er til ${formatDate( getStatementDeadline(receivedDate), @@ -127,7 +130,7 @@ describe('InternalNotificationController - Send appeal received by court notific it('should send sms notification to prosecutor', () => { expect(mockSmsService.sendSms).toHaveBeenCalledWith( - [prosecutorMobileNumber], + [prosecutor.mobile], `Kæra í máli ${courtCaseNumber} hefur borist Landsrétti. Frestur til að skila greinargerð er til ${formatDate( getStatementDeadline(receivedDate), 'PPPp', @@ -146,7 +149,7 @@ describe('InternalNotificationController - Send appeal received by court notific it('should send notification to prosecutor and defender', () => { expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: prosecutorName, address: prosecutorEmail }], + to: [{ name: prosecutor.name, address: prosecutor.email }], subject: `Upplýsingar vegna kæru í máli ${courtCaseNumber}`, html: `Kæra í máli ${courtCaseNumber} hefur borist Landsrétti. Frestur til að skila greinargerð er til ${formatDate( getStatementDeadline(receivedDate), @@ -156,7 +159,7 @@ describe('InternalNotificationController - Send appeal received by court notific ) expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: defenderName, address: defenderEmail }], + to: [{ name: defender.name, address: defender.email }], subject: `Upplýsingar vegna kæru í máli ${courtCaseNumber}`, html: `Kæra í máli ${courtCaseNumber} hefur borist Landsrétti. Frestur til að skila greinargerð er til ${formatDate( getStatementDeadline(receivedDate), diff --git a/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendAppealStatementNotifications.spec.ts b/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendAppealStatementNotifications.spec.ts index 0f043505f796..a920284e6a9e 100644 --- a/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendAppealStatementNotifications.spec.ts +++ b/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendAppealStatementNotifications.spec.ts @@ -9,7 +9,10 @@ import { UserRole, } from '@island.is/judicial-system/types' -import { createTestingNotificationModule } from '../createTestingNotificationModule' +import { + createTestingNotificationModule, + createTestUsers, +} from '../createTestingNotificationModule' import { Case } from '../../../case' import { DeliverResponse } from '../../models/deliver.response' @@ -26,22 +29,22 @@ type GivenWhenThen = ( ) => Promise describe('InternalNotificationController - Send appeal statement notifications', () => { + const roles = [ + 'prosecutor', + 'defender', + 'assistant', + 'judge1', + 'judge2', + 'judge3', + ] + + const { prosecutor, defender, assistant, judge1, judge2, judge3 } = + createTestUsers(roles) + const caseId = uuid() - const prosecutorName = uuid() - const prosecutorEmail = uuid() - const defenderName = uuid() - const defenderEmail = uuid() const courtCaseNumber = uuid() const receivedDate = new Date() const appealCaseNumber = uuid() - const assistantName = uuid() - const assistantEmail = uuid() - const judgeName1 = uuid() - const judgeEmail1 = uuid() - const judgeName2 = uuid() - const judgeEmail2 = uuid() - const judgeName3 = uuid() - const judgeEmail3 = uuid() let mockEmailService: EmailService @@ -65,16 +68,16 @@ describe('InternalNotificationController - Send appeal statement notifications', caseId, { id: caseId, - prosecutor: { name: prosecutorName, email: prosecutorEmail }, + prosecutor: { name: prosecutor.name, email: prosecutor.email }, court: { name: 'Héraðsdómur Reykjavíkur' }, defenderNationalId, - defenderName: defenderName, - defenderEmail: defenderEmail, + defenderName: defender.name, + defenderEmail: defender.email, courtCaseNumber, appealReceivedByCourtDate: receivedDate, appealCaseNumber, - appealAssistant: { name: assistantName, email: assistantEmail }, - appealJudge1: { name: judgeName1, email: judgeEmail1 }, + appealAssistant: { name: assistant.name, email: assistant.email }, + appealJudge1: { name: judge1.name, email: judge1.email }, } as Case, { user, @@ -110,13 +113,13 @@ describe('InternalNotificationController - Send appeal statement notifications', }) it('should send notification to appeals court and defender', () => { - expectCourtEmail(assistantName, assistantEmail) - expectCourtEmail(judgeName1, judgeEmail1) - expectCourtEmail(judgeName2, judgeEmail2) - expectCourtEmail(judgeName3, judgeEmail3) + expectCourtEmail(assistant.name, assistant.email) + expectCourtEmail(judge1.name, judge1.email) + expectCourtEmail(judge2.name, judge2.email) + expectCourtEmail(judge3.name, judge3.email) expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: defenderName, address: defenderEmail }], + to: [{ name: defender.name, address: defender.email }], subject: `Ný greinargerð í máli ${courtCaseNumber} (${appealCaseNumber})`, html: `Greinargerð hefur borist vegna kæru í máli ${courtCaseNumber} (Landsréttarmál nr. ${appealCaseNumber}). Hægt er að nálgast gögn málsins á yfirlitssíðu málsins í Réttarvörslugátt.`, }), @@ -140,13 +143,13 @@ describe('InternalNotificationController - Send appeal statement notifications', }) it('should send notification to appeals court and defender', () => { - expectCourtEmail(assistantName, assistantEmail) - expectCourtEmail(judgeName1, judgeEmail1) - expectCourtEmail(judgeName2, judgeEmail2) - expectCourtEmail(judgeName3, judgeEmail3) + expectCourtEmail(assistant.name, assistant.email) + expectCourtEmail(judge1.name, judge1.email) + expectCourtEmail(judge2.name, judge2.email) + expectCourtEmail(judge3.name, judge3.email) expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: defenderName, address: defenderEmail }], + to: [{ name: defender.name, address: defender.email }], subject: `Ný greinargerð í máli ${courtCaseNumber} (${appealCaseNumber})`, html: `Greinargerð hefur borist vegna kæru í máli ${courtCaseNumber} (Landsréttarmál nr. ${appealCaseNumber}). Hægt er að nálgast gögn málsins hjá Héraðsdómi Reykjavíkur ef þau hafa ekki þegar verið afhent.`, }), @@ -167,13 +170,13 @@ describe('InternalNotificationController - Send appeal statement notifications', }) it('should send notification to appeals court and prosecutor', () => { - expectCourtEmail(assistantName, assistantEmail) - expectCourtEmail(judgeName1, judgeEmail1) - expectCourtEmail(judgeName2, judgeEmail2) - expectCourtEmail(judgeName3, judgeEmail3) + expectCourtEmail(assistant.name, assistant.email) + expectCourtEmail(judge1.name, judge1.email) + expectCourtEmail(judge2.name, judge2.email) + expectCourtEmail(judge3.name, judge3.email) expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: prosecutorName, address: prosecutorEmail }], + to: [{ name: prosecutor.name, address: prosecutor.email }], subject: `Ný greinargerð í máli ${courtCaseNumber} (${appealCaseNumber})`, html: `Greinargerð hefur borist vegna kæru í máli ${courtCaseNumber} (Landsréttarmál nr. ${appealCaseNumber}). Hægt er að nálgast gögn málsins á yfirlitssíðu málsins í Réttarvörslugátt.`, }), @@ -198,7 +201,7 @@ describe('InternalNotificationController - Send appeal statement notifications', it('should send notification to defender', () => { expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: defenderName, address: defenderEmail }], + to: [{ name: defender.name, address: defender.email }], subject: `Ný greinargerð í máli ${courtCaseNumber}`, html: `Greinargerð hefur borist vegna kæru í máli ${courtCaseNumber}. Hægt er að nálgast gögn málsins á yfirlitssíðu málsins í Réttarvörslugátt.`, }), @@ -220,7 +223,7 @@ describe('InternalNotificationController - Send appeal statement notifications', it('should send notification to defender', () => { expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: defenderName, address: defenderEmail }], + to: [{ name: defender.name, address: defender.email }], subject: `Ný greinargerð í máli ${courtCaseNumber}`, html: `Greinargerð hefur borist vegna kæru í máli ${courtCaseNumber}. Hægt er að nálgast gögn málsins hjá Héraðsdómi Reykjavíkur ef þau hafa ekki þegar verið afhent.`, }), @@ -239,7 +242,7 @@ describe('InternalNotificationController - Send appeal statement notifications', it('should send notification to prosecutor', () => { expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: prosecutorName, address: prosecutorEmail }], + to: [{ name: prosecutor.name, address: prosecutor.email }], subject: `Ný greinargerð í máli ${courtCaseNumber}`, html: `Greinargerð hefur borist vegna kæru í máli ${courtCaseNumber}. Hægt er að nálgast gögn málsins á yfirlitssíðu málsins í Réttarvörslugátt.`, }), diff --git a/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendAppealToCourtOfAppealsNotifications.spec.ts b/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendAppealToCourtOfAppealsNotifications.spec.ts index 2119328928c1..ae50c9e3c325 100644 --- a/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendAppealToCourtOfAppealsNotifications.spec.ts +++ b/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendAppealToCourtOfAppealsNotifications.spec.ts @@ -10,7 +10,10 @@ import { UserRole, } from '@island.is/judicial-system/types' -import { createTestingNotificationModule } from '../createTestingNotificationModule' +import { + createTestingNotificationModule, + createTestUsers, +} from '../createTestingNotificationModule' import { Case } from '../../../case' import { DeliverResponse } from '../../models/deliver.response' @@ -23,20 +26,17 @@ interface Then { type GivenWhenThen = (user: User, defenderNationalId?: string) => Promise describe('InternalNotificationController - Send appeal to court of appeals notifications', () => { + const { prosecutor, judge, registrar, defender, court } = createTestUsers([ + 'prosecutor', + 'judge', + 'registrar', + 'defender', + 'court', + ]) + const caseId = uuid() - const prosecutorName = uuid() - const prosecutorEmail = uuid() - const prosecutorMobileNumber = uuid() - const judgeName = uuid() - const judgeEmail = uuid() - const registrarName = uuid() - const registrarEmail = uuid() - const defenderName = uuid() - const defenderEmail = uuid() + const courtCaseNumber = uuid() - const courtId = uuid() - const courtEmail = uuid() - const courtMobileNumber = uuid() let mockEmailService: EmailService let mockSmsService: SmsService @@ -44,8 +44,8 @@ describe('InternalNotificationController - Send appeal to court of appeals notif let givenWhenThen: GivenWhenThen beforeEach(async () => { - process.env.COURTS_ASSISTANT_MOBILE_NUMBERS = `{"${courtId}": "${courtMobileNumber}"}` - process.env.COURTS_EMAILS = `{"${courtId}": "${courtEmail}"}` + process.env.COURTS_ASSISTANT_MOBILE_NUMBERS = `{"${court.id}": "${court.mobile}"}` + process.env.COURTS_EMAILS = `{"${court.id}": "${court.email}"}` const { emailService, smsService, internalNotificationController } = await createTestingNotificationModule() @@ -62,18 +62,18 @@ describe('InternalNotificationController - Send appeal to court of appeals notif { id: caseId, prosecutor: { - name: prosecutorName, - email: prosecutorEmail, - mobileNumber: prosecutorMobileNumber, + name: prosecutor.name, + email: prosecutor.email, + mobileNumber: prosecutor.mobile, }, - judge: { name: judgeName, email: judgeEmail }, - registrar: { name: registrarName, email: registrarEmail }, + judge: { name: judge.name, email: judge.email }, + registrar: { name: registrar.name, email: registrar.email }, court: { name: 'Héraðsdómur Reykjavíkur' }, defenderNationalId, - defenderName: defenderName, - defenderEmail: defenderEmail, + defenderName: defender.name, + defenderEmail: defender.email, courtCaseNumber, - courtId: courtId, + courtId: court.id, } as Case, { user, @@ -102,35 +102,35 @@ describe('InternalNotificationController - Send appeal to court of appeals notif it('should send notification to judge, registrar, court and defender', () => { expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: judgeName, address: judgeEmail }], + to: [{ name: judge.name, address: judge.email }], subject: `Kæra í máli ${courtCaseNumber}`, html: `Úrskurður hefur verið kærður í máli ${courtCaseNumber}. Hægt er að nálgast gögn málsins á yfirlitssíðu málsins í Réttarvörslugátt.`, }), ) expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: registrarName, address: registrarEmail }], + to: [{ name: registrar.name, address: registrar.email }], subject: `Kæra í máli ${courtCaseNumber}`, html: `Úrskurður hefur verið kærður í máli ${courtCaseNumber}. Hægt er að nálgast gögn málsins á yfirlitssíðu málsins í Réttarvörslugátt.`, }), ) expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: 'Héraðsdómur Reykjavíkur', address: courtEmail }], + to: [{ name: 'Héraðsdómur Reykjavíkur', address: court.email }], subject: `Kæra í máli ${courtCaseNumber}`, html: `Úrskurður hefur verið kærður í máli ${courtCaseNumber}. Hægt er að nálgast gögn málsins á yfirlitssíðu málsins í Réttarvörslugátt.`, }), ) expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: defenderName, address: defenderEmail }], + to: [{ name: defender.name, address: defender.email }], subject: `Kæra í máli ${courtCaseNumber}`, html: `Úrskurður hefur verið kærður í máli ${courtCaseNumber}. Hægt er að nálgast gögn málsins á yfirlitssíðu málsins í Réttarvörslugátt.`, }), ) expect(mockSmsService.sendSms).toHaveBeenCalledWith( - [courtMobileNumber], + [court.mobile], `Úrskurður hefur verið kærður í máli ${courtCaseNumber}. Sjá nánar á rettarvorslugatt.island.is`, ) expect(then.result).toEqual({ delivered: true }) @@ -150,20 +150,20 @@ describe('InternalNotificationController - Send appeal to court of appeals notif it('should send notification to judge and defender', () => { expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: judgeName, address: judgeEmail }], + to: [{ name: judge.name, address: judge.email }], subject: `Kæra í máli ${courtCaseNumber}`, html: `Úrskurður hefur verið kærður í máli ${courtCaseNumber}. Hægt er að nálgast gögn málsins á yfirlitssíðu málsins í Réttarvörslugátt.`, }), ) expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: defenderName, address: defenderEmail }], + to: [{ name: defender.name, address: defender.email }], subject: `Kæra í máli ${courtCaseNumber}`, html: `Úrskurður hefur verið kærður í máli ${courtCaseNumber}. Hægt er að nálgast gögn málsins hjá Héraðsdómi Reykjavíkur ef þau hafa ekki þegar verið afhent.`, }), ) expect(mockSmsService.sendSms).toHaveBeenCalledWith( - [courtMobileNumber], + [court.mobile], `Úrskurður hefur verið kærður í máli ${courtCaseNumber}. Sjá nánar á rettarvorslugatt.island.is`, ) expect(then.result).toEqual({ delivered: true }) @@ -180,24 +180,24 @@ describe('InternalNotificationController - Send appeal to court of appeals notif it('should send notifications to judge and prosecutor', () => { expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: judgeName, address: judgeEmail }], + to: [{ name: judge.name, address: judge.email }], subject: `Kæra í máli ${courtCaseNumber}`, html: `Úrskurður hefur verið kærður í máli ${courtCaseNumber}. Hægt er að nálgast gögn málsins á yfirlitssíðu málsins í Réttarvörslugátt.`, }), ) expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: prosecutorName, address: prosecutorEmail }], + to: [{ name: prosecutor.name, address: prosecutor.email }], subject: `Kæra í máli ${courtCaseNumber}`, html: `Úrskurður hefur verið kærður í máli ${courtCaseNumber}. Hægt er að nálgast gögn málsins á yfirlitssíðu málsins í Réttarvörslugátt.`, }), ) expect(mockSmsService.sendSms).toHaveBeenCalledWith( - [courtMobileNumber], + [court.mobile], `Úrskurður hefur verið kærður í máli ${courtCaseNumber}. Sjá nánar á rettarvorslugatt.island.is`, ) expect(mockSmsService.sendSms).toHaveBeenCalledWith( - [prosecutorMobileNumber], + [prosecutor.mobile], `Úrskurður hefur verið kærður í máli ${courtCaseNumber}. Sjá nánar á rettarvorslugatt.island.is`, ) diff --git a/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendAppealWithdrawnNotifications.spec.ts b/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendAppealWithdrawnNotifications.spec.ts index 1b2be1516b1e..bc96d0d487d9 100644 --- a/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendAppealWithdrawnNotifications.spec.ts +++ b/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendAppealWithdrawnNotifications.spec.ts @@ -5,11 +5,15 @@ import { EmailService } from '@island.is/email-service' import { CaseNotificationType, InstitutionType, + NotificationType, User, UserRole, } from '@island.is/judicial-system/types' -import { createTestingNotificationModule } from '../createTestingNotificationModule' +import { + createTestingNotificationModule, + createTestUsers, +} from '../createTestingNotificationModule' import { Case } from '../../../case' import { DeliverResponse } from '../../models/deliver.response' @@ -27,26 +31,33 @@ type GivenWhenThen = ( ) => Promise describe('InternalNotificationController - Send appeal withdrawn notifications', () => { - const courtOfAppealsEmail = uuid() - const courtEmail = uuid() + const { + courtOfAppeals, + court, + judge, + prosecutor, + defender, + registrar, + appealAssistant, + appealJudge1, + } = createTestUsers([ + 'courtOfAppeals', + 'court', + 'judge', + 'prosecutor', + 'defender', + 'registrar', + 'appealAssistant', + 'appealJudge1', + ]) + + const courtOfAppealsEmail = courtOfAppeals.email + const courtEmail = court.email const courtId = uuid() const userId = uuid() const caseId = uuid() - const judgeName = uuid() - const judgeEmail = uuid() - const prosecutorName = uuid() - const prosecutorEmail = uuid() - const prosecutorMobileNumber = uuid() - const defenderName = uuid() - const defenderEmail = uuid() const courtCaseNumber = uuid() const receivedDate = new Date() - const registrarEmail = uuid() - const registrarName = uuid() - const appealAssistantName = uuid() - const appealAssistantEmail = uuid() - const appealJudge1Name = uuid() - const appealJudge1Email = uuid() let mockEmailService: EmailService let mockNotificationModel: typeof Notification @@ -74,22 +85,25 @@ describe('InternalNotificationController - Send appeal withdrawn notifications', { id: caseId, prosecutor: { - name: prosecutorName, - email: prosecutorEmail, - mobileNumber: prosecutorMobileNumber, + name: prosecutor.name, + email: prosecutor.email, + mobileNumber: prosecutor.mobile, }, court: { name: 'Héraðsdómur Reykjavíkur', id: courtId }, - defenderName: defenderName, - defenderEmail: defenderEmail, + defenderName: defender.name, + defenderEmail: defender.email, courtCaseNumber, appealReceivedByCourtDate, appealAssistant: { - name: appealAssistantName, - email: appealAssistantEmail, + name: appealAssistant.name, + email: appealAssistant.email, + }, + judge: { name: judge.name, email: judge.email }, + appealJudge1: { + name: appealJudge1.name, + email: appealJudge1.email, }, - judge: { name: judgeName, email: judgeEmail }, - appealJudge1: { name: appealJudge1Name, email: appealJudge1Email }, - registrar: { name: registrarName, email: registrarEmail }, + registrar: { name: registrar.name, email: registrar.email }, notifications, } as Case, { @@ -116,7 +130,7 @@ describe('InternalNotificationController - Send appeal withdrawn notifications', it('should send notification to defender', () => { expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: defenderName, address: defenderEmail }], + to: [{ name: defender.name, address: defender.email }], subject: `Afturköllun kæru í máli ${courtCaseNumber}`, html: `Sækjandi hefur afturkallað kæru í máli ${courtCaseNumber}. Hægt er að nálgast yfirlitssíðu málsins á rettarvorslugatt.island.is.`, }), @@ -140,7 +154,7 @@ describe('InternalNotificationController - Send appeal withdrawn notifications', it('should send notification to appeal assistant ', () => { expect(mockEmailService.sendEmail).not.toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: appealAssistantName, address: appealAssistantEmail }], + to: [{ name: appealAssistant.name, address: appealAssistant.email }], subject: `Afturköllun kæru í máli ${courtCaseNumber}`, html: `Sækjandi hefur afturkallað kæru í máli ${courtCaseNumber}. Hægt er að nálgast yfirlitssíðu málsins á rettarvorslugatt.island.is.`, }), @@ -158,14 +172,14 @@ describe('InternalNotificationController - Send appeal withdrawn notifications', then = await givenWhenThen(UserRole.PROSECUTOR, receivedDate, [ { caseId, - type: CaseNotificationType.APPEAL_JUDGES_ASSIGNED, + type: NotificationType.APPEAL_JUDGES_ASSIGNED, } as Notification, ]) }) it('should send notification to defender', () => { expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: defenderName, address: defenderEmail }], + to: [{ name: defender.name, address: defender.email }], subject: `Afturköllun kæru í máli ${courtCaseNumber}`, html: `Sækjandi hefur afturkallað kæru í máli ${courtCaseNumber}. Hægt er að nálgast yfirlitssíðu málsins á rettarvorslugatt.island.is.`, }), @@ -189,7 +203,7 @@ describe('InternalNotificationController - Send appeal withdrawn notifications', it('should send notification to appeal assistant ', () => { expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: appealAssistantName, address: appealAssistantEmail }], + to: [{ name: appealAssistant.name, address: appealAssistant.email }], subject: `Afturköllun kæru í máli ${courtCaseNumber}`, html: `Sækjandi hefur afturkallað kæru í máli ${courtCaseNumber}. Hægt er að nálgast yfirlitssíðu málsins á rettarvorslugatt.island.is.`, }), @@ -198,7 +212,7 @@ describe('InternalNotificationController - Send appeal withdrawn notifications', it('should send notification to appeal judges', () => { expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: appealJudge1Name, address: appealJudge1Email }], + to: [{ name: appealJudge1.name, address: appealJudge1.email }], }), ) }) @@ -214,7 +228,7 @@ describe('InternalNotificationController - Send appeal withdrawn notifications', it('should send notification to prosecutor', () => { expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: prosecutorName, address: prosecutorEmail }], + to: [{ name: prosecutor.name, address: prosecutor.email }], subject: `Afturköllun kæru í máli ${courtCaseNumber}`, html: `Verjandi hefur afturkallað kæru í máli ${courtCaseNumber}. Hægt er að nálgast yfirlitssíðu málsins á rettarvorslugatt.island.is.`, }), @@ -226,7 +240,7 @@ describe('InternalNotificationController - Send appeal withdrawn notifications', it('should send notification to judge', () => { expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: judgeName, address: judgeEmail }], + to: [{ name: judge.name, address: judge.email }], subject: `Afturköllun kæru í máli ${courtCaseNumber}`, html: `Verjandi hefur afturkallað kæru í máli ${courtCaseNumber}. Hægt er að nálgast yfirlitssíðu málsins á rettarvorslugatt.island.is.`, }), @@ -236,7 +250,7 @@ describe('InternalNotificationController - Send appeal withdrawn notifications', it('should send notification to registrar', () => { expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: registrarName, address: registrarEmail }], + to: [{ name: registrar.name, address: registrar.email }], subject: `Afturköllun kæru í máli ${courtCaseNumber}`, html: `Verjandi hefur afturkallað kæru í máli ${courtCaseNumber}. Hægt er að nálgast yfirlitssíðu málsins á rettarvorslugatt.island.is.`, }), diff --git a/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendCaseFilesUpdatedNotifications.spec.ts b/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendCaseFilesUpdatedNotifications.spec.ts index 21df0ee723b4..d57f0ea344f2 100644 --- a/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendCaseFilesUpdatedNotifications.spec.ts +++ b/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendCaseFilesUpdatedNotifications.spec.ts @@ -10,7 +10,10 @@ import { UserRole, } from '@island.is/judicial-system/types' -import { createTestingNotificationModule } from '../createTestingNotificationModule' +import { + createTestingNotificationModule, + createTestUsers, +} from '../createTestingNotificationModule' import { Case } from '../../../case' import { DeliverResponse } from '../../models/deliver.response' @@ -23,18 +26,15 @@ interface Then { type GivenWhenThen = (user: User) => Promise describe('InternalNotificationController - Send case files updated notifications', () => { + const { prosecutor, judge, defender, spokesperson } = createTestUsers([ + 'prosecutor', + 'judge', + 'defender', + 'spokesperson', + ]) + const caseId = uuid() const courtCaseNumber = uuid() - const prosecutorName = uuid() - const prosecutorEmail = uuid() - const judgeName = uuid() - const judgeEmail = uuid() - const defenderNationalId = uuid() - const defenderName = uuid() - const defenderEmail = uuid() - const spokespersonNationalId = uuid() - const spokespersonName = uuid() - const spokespersonEmail = uuid() let mockEmailService: EmailService let givenWhenThen: GivenWhenThen @@ -55,15 +55,21 @@ describe('InternalNotificationController - Send case files updated notifications type: CaseType.INDICTMENT, courtCaseNumber, court: { name: 'Héraðsdómur Reykjavíkur' }, - prosecutor: { name: prosecutorName, email: prosecutorEmail }, - judge: { name: judgeName, email: judgeEmail }, - defendants: [{ defenderNationalId, defenderName, defenderEmail }], + prosecutor: { name: prosecutor.name, email: prosecutor.email }, + judge: { name: judge.name, email: judge.email }, + defendants: [ + { + defenderNationalId: defender.nationalId, + defenderName: defender.name, + defenderEmail: defender.email, + }, + ], civilClaimants: [ { hasSpokesperson: true, - spokespersonNationalId, - spokespersonName, - spokespersonEmail, + spokespersonNationalId: spokesperson.nationalId, + spokespersonName: spokesperson.name, + spokespersonEmail: spokesperson.email, }, ], } as Case, @@ -92,21 +98,21 @@ describe('InternalNotificationController - Send case files updated notifications it('should send notifications', () => { expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: judgeName, address: judgeEmail }], + to: [{ name: judge.name, address: judge.email }], subject: `Ný gögn í máli ${courtCaseNumber}`, html: `Ný gögn hafa borist vegna máls ${courtCaseNumber}. Hægt er að nálgast gögn málsins á yfirlitssíðu málsins í Réttarvörslugátt.`, }), ) expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: spokespersonName, address: spokespersonEmail }], + to: [{ name: spokesperson.name, address: spokesperson.email }], subject: `Ný gögn í máli ${courtCaseNumber}`, html: `Ný gögn hafa borist vegna máls ${courtCaseNumber}. Hægt er að nálgast gögn málsins á yfirlitssíðu málsins í Réttarvörslugátt.`, }), ) expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: defenderName, address: defenderEmail }], + to: [{ name: defender.name, address: defender.email }], subject: `Ný gögn í máli ${courtCaseNumber}`, html: `Ný gögn hafa borist vegna máls ${courtCaseNumber}. Hægt er að nálgast gögn málsins á yfirlitssíðu málsins í Réttarvörslugátt.`, }), @@ -127,21 +133,21 @@ describe('InternalNotificationController - Send case files updated notifications it('should send notifications', () => { expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: judgeName, address: judgeEmail }], + to: [{ name: judge.name, address: judge.email }], subject: `Ný gögn í máli ${courtCaseNumber}`, html: `Ný gögn hafa borist vegna máls ${courtCaseNumber}. Hægt er að nálgast gögn málsins á yfirlitssíðu málsins í Réttarvörslugátt.`, }), ) expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: spokespersonName, address: spokespersonEmail }], + to: [{ name: spokesperson.name, address: spokesperson.email }], subject: `Ný gögn í máli ${courtCaseNumber}`, html: `Ný gögn hafa borist vegna máls ${courtCaseNumber}. Hægt er að nálgast gögn málsins á yfirlitssíðu málsins í Réttarvörslugátt.`, }), ) expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: prosecutorName, address: prosecutorEmail }], + to: [{ name: prosecutor.name, address: prosecutor.email }], subject: `Ný gögn í máli ${courtCaseNumber}`, html: `Ný gögn hafa borist vegna máls ${courtCaseNumber}. Hægt er að nálgast gögn málsins á yfirlitssíðu málsins í Réttarvörslugátt.`, }), diff --git a/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendCourtDateNotifications.spec.ts b/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendCourtDateNotifications.spec.ts index 18bf5d712b71..6cb820f993dc 100644 --- a/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendCourtDateNotifications.spec.ts +++ b/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendCourtDateNotifications.spec.ts @@ -6,10 +6,14 @@ import { CaseNotificationType, CaseType, DateType, + NotificationType, User, } from '@island.is/judicial-system/types' -import { createTestingNotificationModule } from '../createTestingNotificationModule' +import { + createTestingNotificationModule, + createTestUsers, +} from '../createTestingNotificationModule' import { Case } from '../../../case' import { CaseNotificationDto } from '../../dto/caseNotification.dto' @@ -31,13 +35,12 @@ type GivenWhenThen = ( describe('InternalNotificationController - Send court date notifications', () => { const userId = uuid() const caseId = uuid() - const prosecutorName = uuid() - const prosecutorEmail = uuid() - const defenderName = uuid() - const defenderEmail = uuid() + const courtName = 'Héraðsdómur Reykjavíkur' const courtCaseNumber = uuid() + const { prosecutor, defender } = createTestUsers(['prosecutor', 'defender']) + let mockEmailService: EmailService let mockNotificationModel: typeof Notification let givenWhenThen: GivenWhenThen @@ -75,11 +78,11 @@ describe('InternalNotificationController - Send court date notifications', () => const theCase = { id: caseId, type: CaseType.CUSTODY, - prosecutor: { name: prosecutorName, email: prosecutorEmail }, + prosecutor: { name: prosecutor.name, email: prosecutor.email }, court: { name: courtName }, courtCaseNumber, - defenderName, - defenderEmail, + defenderName: defender.name, + defenderEmail: defender.email, } as Case beforeEach(async () => { @@ -89,23 +92,23 @@ describe('InternalNotificationController - Send court date notifications', () => it('should send notifications to prosecutor and defender', () => { expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: prosecutorName, address: prosecutorEmail }], + to: [{ name: prosecutor.name, address: prosecutor.email }], subject: `Fyrirtaka í máli: ${courtCaseNumber}`, - html: `Héraðsdómur Reykjavíkur hefur staðfest fyrirtökutíma fyrir kröfu um gæsluvarðhald.

Fyrirtaka mun fara fram á ótilgreindum tíma.

Dómsalur hefur ekki verið skráður.

Dómari hefur ekki verið skráður.

Verjandi sakbornings: ${defenderName}. Hægt er að nálgast yfirlitssíðu málsins á rettarvorslugatt.island.is.`, + html: `Héraðsdómur Reykjavíkur hefur staðfest fyrirtökutíma fyrir kröfu um gæsluvarðhald.

Fyrirtaka mun fara fram á ótilgreindum tíma.

Dómsalur hefur ekki verið skráður.

Dómari hefur ekki verið skráður.

Verjandi sakbornings: ${defender.name}. Hægt er að nálgast yfirlitssíðu málsins á rettarvorslugatt.island.is.`, }), ) expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: defenderName, address: defenderEmail }], + to: [{ name: defender.name, address: defender.email }], subject: `Fyrirtaka í máli ${courtCaseNumber}`, - html: `Héraðsdómur Reykjavíkur hefur boðað þig í fyrirtöku sem verjanda sakbornings.

Fyrirtaka mun fara fram á ótilgreindum tíma.

Málsnúmer: ${courtCaseNumber}.

Dómsalur hefur ekki verið skráður.

Dómari: .

Sækjandi: ${prosecutorName} ().`, + html: `Héraðsdómur Reykjavíkur hefur boðað þig í fyrirtöku sem verjanda sakbornings.

Fyrirtaka mun fara fram á ótilgreindum tíma.

Málsnúmer: ${courtCaseNumber}.

Dómsalur hefur ekki verið skráður.

Dómari: .

Sækjandi: ${prosecutor.name} ().`, }), ) expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: defenderName, address: defenderEmail }], + to: [{ name: defender.name, address: defender.email }], subject: `Yfirlit máls ${courtCaseNumber}`, }), ) @@ -125,11 +128,11 @@ describe('InternalNotificationController - Send court date notifications', () => const theCase = { id: caseId, type: CaseType.CUSTODY, - prosecutor: { name: prosecutorName, email: prosecutorEmail }, + prosecutor: { name: prosecutor.name, email: prosecutor.email }, court: { name: courtName }, courtCaseNumber, - defenderName, - defenderEmail, + defenderName: defender.name, + defenderEmail: defender.email, } as Case beforeEach(async () => { @@ -142,8 +145,8 @@ describe('InternalNotificationController - Send court date notifications', () => notifications: [ { caseId, - type: CaseNotificationType.READY_FOR_COURT, - recipients: [{ address: defenderEmail, success: true }], + type: NotificationType.READY_FOR_COURT, + recipients: [{ address: defender.email, success: true }], }, ], } as Case, @@ -154,7 +157,7 @@ describe('InternalNotificationController - Send court date notifications', () => it('should not send link to case to defender', () => { expect(mockEmailService.sendEmail).not.toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: defenderName, address: defenderEmail }], + to: [{ name: defender.name, address: defender.email }], subject: `Yfirlit máls ${courtCaseNumber}`, }), ) @@ -175,11 +178,11 @@ describe('InternalNotificationController - Send court date notifications', () => const theCase = { id: caseId, type: CaseType.INDICTMENT, - prosecutor: { name: prosecutorName, email: prosecutorEmail }, + prosecutor: { name: prosecutor.name, email: prosecutor.email }, defendants: [ { - defenderName, - defenderEmail, + defenderName: defender.name, + defenderEmail: defender.email, }, ], court: { name: courtName }, @@ -194,7 +197,7 @@ describe('InternalNotificationController - Send court date notifications', () => it('should send notifications to prosecutor and defender', () => { expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: prosecutorName, address: prosecutorEmail }], + to: [{ name: prosecutor.name, address: prosecutor.email }], subject: `Nýtt þinghald í máli ${courtCaseNumber}`, html: `Héraðsdómur Reykjavíkur boðar til þinghalds í máli ${courtCaseNumber}.
Fyrirtaka mun fara fram 2. maí 2024, kl. 14:32.

Tegund þinghalds: Óþekkt.

Dómsalur hefur ekki verið skráður.

Dómari hefur ekki verið skráður.

Hægt er að nálgast gögn málsins á yfirlitssíðu málsins í Réttarvörslugátt.`, }), @@ -202,7 +205,7 @@ describe('InternalNotificationController - Send court date notifications', () => expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: defenderName, address: defenderEmail }], + to: [{ name: defender.name, address: defender.email }], subject: `Nýtt þinghald í máli ${courtCaseNumber}`, html: `Héraðsdómur Reykjavíkur boðar til þinghalds í máli ${courtCaseNumber}.
Fyrirtaka mun fara fram 2. maí 2024, kl. 14:32.

Tegund þinghalds: Óþekkt.

Dómsalur hefur ekki verið skráður.

Dómari hefur ekki verið skráður.

Hægt er að nálgast gögn málsins hjá Héraðsdómur Reykjavíkur.`, }), diff --git a/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendDefendantsNotUpdatedAtCourtNotifications.spec.ts b/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendDefendantsNotUpdatedAtCourtNotifications.spec.ts index b7090ce986dc..b0448904d07f 100644 --- a/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendDefendantsNotUpdatedAtCourtNotifications.spec.ts +++ b/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendDefendantsNotUpdatedAtCourtNotifications.spec.ts @@ -2,9 +2,16 @@ import { uuid } from 'uuidv4' import { EmailService } from '@island.is/email-service' -import { CaseNotificationType, User } from '@island.is/judicial-system/types' +import { + CaseNotificationType, + NotificationType, + User, +} from '@island.is/judicial-system/types' -import { createTestingNotificationModule } from '../createTestingNotificationModule' +import { + createTestingNotificationModule, + createTestUsers, +} from '../createTestingNotificationModule' import { Case } from '../../../case' import { CaseNotificationDto } from '../../dto/caseNotification.dto' @@ -27,14 +34,15 @@ describe('InternalNotificationController - Send defendants not updated at court user: { id: userId } as User, type: CaseNotificationType.DEFENDANTS_NOT_UPDATED_AT_COURT, } + + const { registrar } = createTestUsers(['registrar', 'defender']) const caseId = uuid() const courtCaseNumber = uuid() - const registrarName = uuid() - const registrarEmail = uuid() + const theCase = { id: caseId, courtCaseNumber, - registrar: { name: registrarName, email: registrarEmail }, + registrar: { name: registrar.name, email: registrar.email }, } as Case let mockEmailService: EmailService @@ -72,7 +80,7 @@ describe('InternalNotificationController - Send defendants not updated at court it('should send email', () => { expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: registrarName, address: registrarEmail }], + to: [{ name: registrar.name, address: registrar.email }], subject: `Skráning varnaraðila/verjenda í máli ${courtCaseNumber}`, html: `Ekki tókst að skrá varnaraðila/verjendur í máli ${courtCaseNumber} í Auði. Yfirfara þarf málið í Auði og skrá rétta aðila áður en því er lokað.`, }), @@ -91,8 +99,8 @@ describe('InternalNotificationController - Send defendants not updated at court ...theCase, notifications: [ { - type: CaseNotificationType.DEFENDANTS_NOT_UPDATED_AT_COURT, - recipients: [{ address: registrarEmail, success: true }], + type: NotificationType.DEFENDANTS_NOT_UPDATED_AT_COURT, + recipients: [{ address: registrar.email, success: true }], }, ], } as Case, diff --git a/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendIndictmentDeniedNotifications.spec.ts b/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendIndictmentDeniedNotifications.spec.ts index 904b873650f9..7efd487f6146 100644 --- a/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendIndictmentDeniedNotifications.spec.ts +++ b/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendIndictmentDeniedNotifications.spec.ts @@ -8,7 +8,10 @@ import { User, } from '@island.is/judicial-system/types' -import { createTestingNotificationModule } from '../createTestingNotificationModule' +import { + createTestingNotificationModule, + createTestUsers, +} from '../createTestingNotificationModule' import { Case } from '../../../case' import { CaseNotificationDto } from '../../dto/caseNotification.dto' @@ -29,8 +32,10 @@ type GivenWhenThen = ( describe('InternalNotificationController - Send indictment denied notification', () => { const userId = uuid() const caseId = uuid() - const prosecutorName = uuid() - const prosecutorEmail = uuid() + + const { prosecutor } = createTestUsers(['prosecutor']) + const prosecutorName = prosecutor.name + const prosecutorEmail = prosecutor.email const policeCaseNumbers = [uuid(), uuid()] let mockEmailService: EmailService diff --git a/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendIndictmentReturnedNotifications.spec.ts b/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendIndictmentReturnedNotifications.spec.ts index 24a9ddba4558..ee1f6bd106bb 100644 --- a/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendIndictmentReturnedNotifications.spec.ts +++ b/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendIndictmentReturnedNotifications.spec.ts @@ -8,7 +8,10 @@ import { User, } from '@island.is/judicial-system/types' -import { createTestingNotificationModule } from '../createTestingNotificationModule' +import { + createTestingNotificationModule, + createTestUsers, +} from '../createTestingNotificationModule' import { Case } from '../../../case' import { CaseNotificationDto } from '../../dto/caseNotification.dto' @@ -27,10 +30,10 @@ type GivenWhenThen = ( ) => Promise describe('InternalNotificationController - Send indictment returned notification', () => { + const { prosecutor } = createTestUsers(['prosecutor']) const userId = uuid() const caseId = uuid() - const prosecutorName = uuid() - const prosecutorEmail = uuid() + const policeCaseNumbers = [uuid(), uuid()] const courtName = uuid() @@ -69,7 +72,7 @@ describe('InternalNotificationController - Send indictment returned notification const theCase = { id: caseId, type: CaseType.INDICTMENT, - prosecutor: { name: prosecutorName, email: prosecutorEmail }, + prosecutor: { name: prosecutor.name, email: prosecutor.email }, policeCaseNumbers, court: { name: courtName }, } as Case @@ -81,7 +84,7 @@ describe('InternalNotificationController - Send indictment returned notification it('should send notifications to prosecutor', () => { expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: prosecutorName, address: prosecutorEmail }], + to: [{ name: prosecutor.name, address: prosecutor.email }], subject: `Ákæra endursend í máli ${policeCaseNumbers[0]}`, html: `${courtName} hefur endursent ákæru vegna lögreglumáls ${policeCaseNumbers[0]}. Þú getur nálgast samantekt málsins á yfirlitssíðu málsins í Réttarvörslugátt.`, }), diff --git a/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendIndictmentsWaitingForConfirmationNotifications.spec.ts b/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendIndictmentsWaitingForConfirmationNotifications.spec.ts index d3992015ded4..3c20d0d96a26 100644 --- a/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendIndictmentsWaitingForConfirmationNotifications.spec.ts +++ b/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendIndictmentsWaitingForConfirmationNotifications.spec.ts @@ -4,7 +4,10 @@ import { EmailService } from '@island.is/email-service' import { InstitutionNotificationType } from '@island.is/judicial-system/types' -import { createTestingNotificationModule } from '../createTestingNotificationModule' +import { + createTestingNotificationModule, + createTestUsers, +} from '../createTestingNotificationModule' import { InternalCaseService } from '../../../case' import { UserService } from '../../../user' @@ -18,10 +21,11 @@ interface Then { type GivenWhenThen = () => Promise describe('InternalNotificationController - Send indictments waiting for confirmation notifications', () => { - const prosecutorName1 = uuid() - const prosecutorEmail1 = uuid() - const prosecutorName2 = uuid() - const prosecutorEmail2 = uuid() + const { prosecutor1, prosecutor2 } = createTestUsers([ + 'prosecutor1', + 'prosecutor2', + ]) + const prosecutorsOfficeId = uuid() let mockUserService: UserService let mockInternalCaseService: InternalCaseService @@ -116,25 +120,25 @@ describe('InternalNotificationController - Send indictments waiting for confirma const mockGetUsersWhoCanConfirmIndictments = mockUserService.getUsersWhoCanConfirmIndictments as jest.Mock mockGetUsersWhoCanConfirmIndictments.mockResolvedValueOnce([ - { name: prosecutorName1, email: prosecutorEmail1 }, - { name: prosecutorName2, email: prosecutorEmail2 }, + { name: prosecutor1.name, email: prosecutor1.email }, + { name: prosecutor2.name, email: prosecutor2.email }, ]) then = await givenWhenThen() }) - it('should not send messages', () => { + it('should send messages', () => { expect(mockEmailService.sendEmail).toHaveBeenCalledTimes(2) expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: prosecutorName1, address: prosecutorEmail1 }], + to: [{ name: prosecutor1.name, address: prosecutor1.email }], subject: 'Ákærur bíða staðfestingar', html: 'Í Réttarvörslugátt bíða 2 ákærur staðfestingar.

Hægt er að nálgast yfirlit og staðfesta ákærur í Réttarvörslugátt.', }), ) expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: prosecutorName2, address: prosecutorEmail2 }], + to: [{ name: prosecutor2.name, address: prosecutor2.email }], subject: 'Ákærur bíða staðfestingar', html: 'Í Réttarvörslugátt bíða 2 ákærur staðfestingar.

Hægt er að nálgast yfirlit og staðfesta ákærur í Réttarvörslugátt.', }), diff --git a/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendReadyForCourtNotifications.spec.ts b/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendReadyForCourtNotifications.spec.ts index e1b3b2c1a4c6..f9757746c4ad 100644 --- a/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendReadyForCourtNotifications.spec.ts +++ b/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendReadyForCourtNotifications.spec.ts @@ -15,11 +15,15 @@ import { CaseType, DateType, IndictmentSubtype, + NotificationType, RequestSharedWithDefender, User, } from '@island.is/judicial-system/types' -import { createTestingNotificationModule } from '../createTestingNotificationModule' +import { + createTestingNotificationModule, + createTestUsers, +} from '../createTestingNotificationModule' import { randomDate } from '../../../../test' import { Case } from '../../../case' @@ -44,23 +48,29 @@ describe('InternalNotificationController - Send ready for court notifications fo const userId = uuid() const caseId = uuid() const policeCaseNumber = uuid() - const courtId = uuid() const courtCaseNumber = uuid() + + const { prosecutor, defender, testCourt } = createTestUsers([ + 'prosecutor', + 'defender', + 'testCourt', + ]) + const theCase = { id: caseId, type: CaseType.CUSTODY, state: CaseState.RECEIVED, policeCaseNumbers: [policeCaseNumber], prosecutor: { - name: 'Derrick', - email: 'derrick@dummy.is', + name: prosecutor.name, + email: prosecutor.email, }, - courtId, + courtId: testCourt.id, court: { name: 'Héraðsdómur Reykjavíkur' }, courtCaseNumber, - defenderNationalId: uuid(), - defenderName: 'Saul Goodman', - defenderEmail: 'saul@dummy.is', + defenderNationalId: defender.nationalId, + defenderName: defender.name, + defenderEmail: defender.email, requestSharedWithDefender: RequestSharedWithDefender.COURT_DATE, prosecutorsOffice: { name: 'Héraðsdómur Derricks' }, dateLogs: [{ date: randomDate(), dateType: DateType.ARRAIGNMENT_DATE }], @@ -69,7 +79,6 @@ describe('InternalNotificationController - Send ready for court notifications fo user: { id: userId } as User, type: CaseNotificationType.READY_FOR_COURT, } - const courtMobileNumber = uuid() let mockEmailService: EmailService let mockSmsService: SmsService @@ -77,7 +86,7 @@ describe('InternalNotificationController - Send ready for court notifications fo let givenWhenThen: GivenWhenThen beforeEach(async () => { - process.env.COURTS_MOBILE_NUMBERS = `{"${courtId}": "${courtMobileNumber}"}` + process.env.COURTS_MOBILE_NUMBERS = `{"${testCourt.id}": "${testCourt.mobile}"}` const { emailService, @@ -119,7 +128,7 @@ describe('InternalNotificationController - Send ready for court notifications fo name: mockNotificationConfig.email.replyToName, address: mockNotificationConfig.email.replyToEmail, }, - to: [{ name: 'Derrick', address: 'derrick@dummy.is' }], + to: [{ name: prosecutor.name, address: prosecutor.email }], subject: 'Krafa um gæsluvarðhald send', text: `Þú hefur sent kröfu á Héraðsdóm Reykjavíkur vegna LÖKE máls ${policeCaseNumber}. Skjalið er aðgengilegt undir málinu í Réttarvörslugátt.`, html: `Þú hefur sent kröfu á Héraðsdóm Reykjavíkur vegna LÖKE máls ${policeCaseNumber}. Skjalið er aðgengilegt undir málinu í Réttarvörslugátt.`, @@ -129,8 +138,8 @@ describe('InternalNotificationController - Send ready for court notifications fo it('should send ready for court sms notification to court', () => { expect(mockSmsService.sendSms).toHaveBeenCalledWith( - [courtMobileNumber], - 'Gæsluvarðhaldskrafa tilbúin til afgreiðslu. Sækjandi: Derrick (Héraðsdómur Derricks). Sjá nánar á rettarvorslugatt.island.is.', + [testCourt.mobile], + `Gæsluvarðhaldskrafa tilbúin til afgreiðslu. Sækjandi: ${prosecutor.name} (Héraðsdómur Derricks). Sjá nánar á rettarvorslugatt.island.is.`, ) }) @@ -148,11 +157,13 @@ describe('InternalNotificationController - Send ready for court notifications fo notifications: [ { caseId, - type: CaseNotificationType.READY_FOR_COURT, + type: NotificationType.READY_FOR_COURT, recipients: [ { address: - mockNotificationConfig.sms.courtsMobileNumbers[courtId], + mockNotificationConfig.sms.courtsMobileNumbers[ + testCourt.id + ], success: true, }, ], @@ -173,7 +184,7 @@ describe('InternalNotificationController - Send ready for court notifications fo name: mockNotificationConfig.email.replyToName, address: mockNotificationConfig.email.replyToEmail, }, - to: [{ name: 'Derrick', address: 'derrick@dummy.is' }], + to: [{ name: prosecutor.name, address: prosecutor.email }], subject: 'Krafa um gæsluvarðhald send', text: `Þú hefur sent kröfu á Héraðsdóm Reykjavíkur vegna LÖKE máls ${policeCaseNumber}. Skjalið er aðgengilegt undir málinu í Réttarvörslugátt.`, html: `Þú hefur sent kröfu á Héraðsdóm Reykjavíkur vegna LÖKE máls ${policeCaseNumber}. Skjalið er aðgengilegt undir málinu í Réttarvörslugátt.`, @@ -183,7 +194,7 @@ describe('InternalNotificationController - Send ready for court notifications fo it('should send ready for court sms notification to court', () => { expect(mockSmsService.sendSms).toHaveBeenCalledWith( - [courtMobileNumber], + [testCourt.mobile], `Sækjandi í máli ${courtCaseNumber} hefur breytt kröfunni og sent aftur á héraðsdómstól. Nýtt kröfuskjal hefur verið vistað í Auði. Sjá nánar á rettarvorslugatt.island.is.`, ) }) @@ -191,7 +202,7 @@ describe('InternalNotificationController - Send ready for court notifications fo it('should not send ready for court email notification to defender', () => { expect(mockEmailService.sendEmail).not.toHaveBeenCalledWith( expect.objectContaining({ - to: [{ name: 'Saul Goodman', address: 'saul@dummy.is' }], + to: [{ name: defender.name, address: defender.email }], }), ) }) @@ -224,8 +235,8 @@ describe('InternalNotificationController - Send ready for court notifications fo ...theCase, notifications: [ { - type: CaseNotificationType.READY_FOR_COURT, - recipients: [{ address: 'saul@dummy.is', success: true }], + type: NotificationType.READY_FOR_COURT, + recipients: [{ address: defender.email, success: true }], }, ], } as Case, @@ -245,7 +256,7 @@ describe('InternalNotificationController - Send ready for court notifications fo name: mockNotificationConfig.email.replyToName, address: mockNotificationConfig.email.replyToEmail, }, - to: [{ name: 'Saul Goodman', address: 'saul@dummy.is' }], + to: [{ name: defender.name, address: defender.email }], subject: `Krafa í máli ${courtCaseNumber}`, html: `Sækjandi í máli ${courtCaseNumber} hjá Héraðsdómi Reykjavíkur hefur breytt kröfunni og sent hana aftur á dóminn.

Þú getur nálgast gögn málsins á yfirlitssíðu málsins í Réttarvörslugátt.`, attachments: undefined, @@ -257,8 +268,8 @@ describe('InternalNotificationController - Send ready for court notifications fo describe('InternalNotificationController - Send ready for court notifications for indictment cases', () => { const userId = uuid() - const courtId = uuid() - const courtEmail = uuid() + const { testCourt } = createTestUsers(['testCourt']) + const notificationDto = { user: { id: userId } as User, type: CaseNotificationType.READY_FOR_COURT, @@ -270,7 +281,7 @@ describe('InternalNotificationController - Send ready for court notifications fo let givenWhenThen: GivenWhenThen beforeEach(async () => { - process.env.COURTS_EMAILS = `{"${courtId}": "${courtEmail}"}` + process.env.COURTS_EMAILS = `{"${testCourt.id}": "${testCourt.email}"}` const { emailService, @@ -298,8 +309,9 @@ describe('InternalNotificationController - Send ready for court notifications fo describe('indictment notification with single indictment subtype', () => { const caseId = uuid() const policeCaseNumbers = [uuid()] + const court = { - id: courtId, + id: testCourt.id, name: 'Héraðsdómur Reykjavíkur', } as Institution const prosecutorsOffice = { name: 'Lögreglan á höfuðborgarsvæðinu' } @@ -312,7 +324,7 @@ describe('InternalNotificationController - Send ready for court notifications fo indictmentSubtypes: { [policeCaseNumbers[0]]: [IndictmentSubtype.MURDER], }, - courtId, + courtId: court.id, court, prosecutorsOffice, } as unknown as Case @@ -327,7 +339,7 @@ describe('InternalNotificationController - Send ready for court notifications fo to: [ { name: 'Héraðsdómur Reykjavíkur', - address: courtEmail, + address: testCourt.email, }, ], subject: 'Ákæra tilbúin til afgreiðslu', @@ -337,7 +349,9 @@ describe('InternalNotificationController - Send ready for court notifications fo expect(mockNotificationModel.create).toHaveBeenCalledWith({ caseId, type: CaseNotificationType.READY_FOR_COURT, - recipients: [{ success: true, address: courtEmail }] as Recipient[], + recipients: [ + { success: true, address: testCourt.email }, + ] as Recipient[], }) }) }) @@ -346,7 +360,7 @@ describe('InternalNotificationController - Send ready for court notifications fo const caseId = uuid() const policeCaseNumbers = [uuid(), uuid()] const court = { - id: courtId, + id: testCourt.id, name: 'Héraðsdómur Reykjavíkur', } as Institution const prosecutorsOffice = { name: 'Lögreglan á höfuðborgarsvæðinu' } @@ -366,7 +380,7 @@ describe('InternalNotificationController - Send ready for court notifications fo IndictmentSubtype.THEFT, ], }, - courtId, + courtId: court.id, court, prosecutorsOffice, } as unknown as Case @@ -381,7 +395,7 @@ describe('InternalNotificationController - Send ready for court notifications fo to: [ { name: 'Héraðsdómur Reykjavíkur', - address: courtEmail, + address: testCourt.email, }, ], subject: 'Ákæra tilbúin til afgreiðslu', @@ -391,7 +405,9 @@ describe('InternalNotificationController - Send ready for court notifications fo expect(mockNotificationModel.create).toHaveBeenCalledWith({ caseId, type: CaseNotificationType.READY_FOR_COURT, - recipients: [{ success: true, address: courtEmail }] as Recipient[], + recipients: [ + { success: true, address: testCourt.email }, + ] as Recipient[], }) }) }) diff --git a/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendRevokedNotifications.spec.ts b/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendRevokedNotifications.spec.ts index c585586d5c1d..274a52a42c74 100644 --- a/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendRevokedNotifications.spec.ts +++ b/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendRevokedNotifications.spec.ts @@ -2,9 +2,15 @@ import { uuid } from 'uuidv4' import { EmailService } from '@island.is/email-service' -import { CaseNotificationType } from '@island.is/judicial-system/types' +import { + CaseNotificationType, + NotificationType, +} from '@island.is/judicial-system/types' -import { createTestingNotificationModule } from '../createTestingNotificationModule' +import { + createTestingNotificationModule, + createTestUsers, +} from '../createTestingNotificationModule' import { Case } from '../../../case' import { CaseNotificationDto } from '../../dto/caseNotification.dto' @@ -19,22 +25,27 @@ interface Then { type GivenWhenThen = (notifications?: Notification[]) => Promise describe('InternalNotificationController - Send revoked notifications for indictment cases', () => { + const { judge, registrar, defender } = createTestUsers([ + 'judge', + 'registrar', + 'defender', + ]) const caseId = uuid() - const judgeName = uuid() - const judgeEmail = uuid() - const registrarName = uuid() - const registrarEmail = uuid() - const defenderNationalId = uuid() - const defenderName = uuid() - const defenderEmail = uuid() + const prosecutorsOfficeName = uuid() const courtName = uuid() const courtCaseNumber = uuid() const theCase = { id: caseId, - judge: { name: judgeName, email: judgeEmail }, - registrar: { name: registrarName, email: registrarEmail }, - defendants: [{ defenderNationalId, defenderName, defenderEmail }], + judge: { name: judge.name, email: judge.email }, + registrar: { name: registrar.name, email: registrar.email }, + defendants: [ + { + defenderNationalId: defender.nationalId, + defenderName: defender.name, + defenderEmail: defender.email, + }, + ], creatingProsecutor: { institution: { name: prosecutorsOfficeName } }, court: { name: courtName }, courtCaseNumber, @@ -73,8 +84,8 @@ describe('InternalNotificationController - Send revoked notifications for indict beforeEach(async () => { then = await givenWhenThen([ { - type: CaseNotificationType.COURT_DATE, - recipients: [{ address: defenderEmail, success: true }], + type: NotificationType.COURT_DATE, + recipients: [{ address: defender.email, success: true }], } as Notification, ]) }) @@ -82,21 +93,21 @@ describe('InternalNotificationController - Send revoked notifications for indict it('should send a notifications', () => { expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ address: judgeEmail, name: judgeName }], + to: [{ address: judge.email, name: judge.name }], subject: `Ákæra afturkölluð í máli ${courtCaseNumber}`, html: `${prosecutorsOfficeName} hefur afturkallað ákæru í máli ${courtCaseNumber}. Hægt er að nálgast yfirlitssíðu málsins á rettarvorslugatt.island.is.`, }), ) expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ address: registrarEmail, name: registrarName }], + to: [{ address: registrar.email, name: registrar.name }], subject: `Ákæra afturkölluð í máli ${courtCaseNumber}`, html: `${prosecutorsOfficeName} hefur afturkallað ákæru í máli ${courtCaseNumber}. Hægt er að nálgast yfirlitssíðu málsins á rettarvorslugatt.island.is.`, }), ) expect(mockEmailService.sendEmail).toHaveBeenCalledWith( expect.objectContaining({ - to: [{ address: defenderEmail, name: defenderName }], + to: [{ address: defender.email, name: defender.name }], subject: `Ákæra afturkölluð í máli ${courtCaseNumber}`, html: `Dómstóllinn hafði skráð þig sem verjanda í málinu.

Sjá nánar á yfirlitssíðu málsins í Réttarvörslugátt.`, }), @@ -105,9 +116,9 @@ describe('InternalNotificationController - Send revoked notifications for indict caseId: caseId, type: CaseNotificationType.REVOKED, recipients: [ - { address: judgeEmail, success: true }, - { address: registrarEmail, success: true }, - { address: defenderEmail, success: true }, + { address: judge.email, success: true }, + { address: registrar.email, success: true }, + { address: defender.email, success: true }, ], }) expect(then.result).toEqual({ delivered: true }) diff --git a/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendRulingNotifications.spec.ts b/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendRulingNotifications.spec.ts index 26ccba06fa36..6959fde99979 100644 --- a/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendRulingNotifications.spec.ts +++ b/apps/judicial-system/backend/src/app/modules/notification/test/internalNotificationController/sendRulingNotifications.spec.ts @@ -16,7 +16,10 @@ import { User, } from '@island.is/judicial-system/types' -import { createTestingNotificationModule } from '../createTestingNotificationModule' +import { + createTestingNotificationModule, + createTestUsers, +} from '../createTestingNotificationModule' import { Case } from '../../../case' import { Defendant, DefendantService } from '../../../defendant' @@ -43,6 +46,7 @@ describe('InternalNotificationController - Send ruling notifications', () => { user: { id: userId } as User, type: CaseNotificationType.RULING, } + const { testProsecutor } = createTestUsers(['testProsecutor']) let mockEmailService: EmailService let mockConfig: ConfigType @@ -50,7 +54,8 @@ describe('InternalNotificationController - Send ruling notifications', () => { let givenWhenThen: GivenWhenThen beforeEach(async () => { - process.env.PRISON_EMAIL = 'prisonEmail@email.com,prisonEmail2@email.com' + process.env.PRISON_EMAIL = + 'prisonEmail@omnitrix.is,prisonEmail2@omnitrix.is' const { emailService, @@ -82,7 +87,11 @@ describe('InternalNotificationController - Send ruling notifications', () => { describe('email to prosecutor for indictment case', () => { const caseId = uuid() - const prosecutor = { name: 'Lögmaður', email: 'logmadur@gmail.com' } + + const prosecutor = { + name: testProsecutor.name, + email: testProsecutor.email, + } const theCase = { id: caseId, type: CaseType.INDICTMENT, @@ -111,7 +120,10 @@ describe('InternalNotificationController - Send ruling notifications', () => { describe('email to prosecutor for restriction case', () => { const caseId = uuid() - const prosecutor = { name: 'Lögmaður', email: 'logmadur@gmail.com' } + const prosecutor = { + name: testProsecutor.name, + email: testProsecutor.email, + } const theCase = { id: caseId, state: CaseState.ACCEPTED, @@ -129,7 +141,7 @@ describe('InternalNotificationController - Send ruling notifications', () => { const expectedLink = `` expect(mockEmailService.sendEmail).toHaveBeenCalledTimes(2) expect(mockEmailService.sendEmail).toHaveBeenNthCalledWith( - 1, + 2, expect.objectContaining({ to: [{ name: prosecutor.name, address: prosecutor.email }], subject: 'Úrskurður í máli 007-2022-07', @@ -141,7 +153,10 @@ describe('InternalNotificationController - Send ruling notifications', () => { describe('email to prosecutor for modified ruling restriction case', () => { const caseId = uuid() - const prosecutor = { name: 'Lögmaður', email: 'logmadur@gmail.com' } + const prosecutor = { + name: testProsecutor.name, + email: testProsecutor.email, + } const theCase = { id: caseId, type: CaseType.CUSTODY, @@ -160,9 +175,9 @@ describe('InternalNotificationController - Send ruling notifications', () => { const expectedLink = `` expect(mockEmailService.sendEmail).toHaveBeenCalledTimes(2) expect(mockEmailService.sendEmail).toHaveBeenNthCalledWith( - 1, + 2, expect.objectContaining({ - to: [{ name: prosecutor.name, address: prosecutor.email }], + to: [{ name: testProsecutor.name, address: testProsecutor.email }], subject: 'Úrskurður í máli 007-2022-07 leiðréttur', html: `Dómari hefur leiðrétt úrskurð í máli 007-2022-07 hjá Héraðsdómi Reykjavíkur.

Skjöl málsins eru aðgengileg á ${expectedLink}yfirlitssíðu málsins í Réttarvörslugátt
.`, }), From ed824e65508b932da0cb301419ae7292e688c0d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gu=C3=B0j=C3=B3n=20Gu=C3=B0j=C3=B3nsson?= Date: Tue, 19 Nov 2024 15:18:20 +0000 Subject: [PATCH 55/66] fix(j-s): Court Receival Date (#16903) Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- .../src/app/modules/case/case.service.ts | 12 +++ .../app/modules/case/internalCase.service.ts | 12 +-- .../caseController/createCourtCase.spec.ts | 86 ++++++++++++++++--- .../deliverIndictmentInfoToCourt.spec.ts | 2 +- .../src/app/modules/court/court.service.ts | 4 +- .../court/test/createCourtCase.spec.ts | 25 +++--- .../src/app/modules/file/file.controller.ts | 1 - .../deliverSubpoenaToPolice.spec.ts | 3 +- 8 files changed, 113 insertions(+), 32 deletions(-) diff --git a/apps/judicial-system/backend/src/app/modules/case/case.service.ts b/apps/judicial-system/backend/src/app/modules/case/case.service.ts index ae7e7b739366..df2e7ee8dc61 100644 --- a/apps/judicial-system/backend/src/app/modules/case/case.service.ts +++ b/apps/judicial-system/backend/src/app/modules/case/case.service.ts @@ -2034,11 +2034,23 @@ export class CaseService { } async createCourtCase(theCase: Case, user: TUser): Promise { + let receivalDate: Date + + if (isIndictmentCase(theCase.type)) { + receivalDate = + theCase.eventLogs?.find( + (eventLog) => eventLog.eventType === EventType.INDICTMENT_CONFIRMED, + )?.created ?? nowFactory() + } else { + receivalDate = nowFactory() + } + const courtCaseNumber = await this.courtService.createCourtCase( user, theCase.id, theCase.courtId, theCase.type, + receivalDate, theCase.policeCaseNumbers, Boolean(theCase.parentCaseId), theCase.indictmentSubtypes, diff --git a/apps/judicial-system/backend/src/app/modules/case/internalCase.service.ts b/apps/judicial-system/backend/src/app/modules/case/internalCase.service.ts index 94b5abaa4750..9ed818c87312 100644 --- a/apps/judicial-system/backend/src/app/modules/case/internalCase.service.ts +++ b/apps/judicial-system/backend/src/app/modules/case/internalCase.service.ts @@ -580,6 +580,10 @@ export class InternalCaseService { : [] const mappedSubtypes = subtypeList.flatMap((key) => courtSubtypes[key]) + const indictmentIssuedByProsecutorAndReceivedByCourt = + theCase.eventLogs?.find( + (eventLog) => eventLog.eventType === EventType.INDICTMENT_CONFIRMED, + )?.created return this.courtService .updateIndictmentCaseWithIndictmentInfo( @@ -587,12 +591,8 @@ export class InternalCaseService { theCase.id, theCase.court?.name, theCase.courtCaseNumber, - theCase.eventLogs?.find( - (eventLog) => eventLog.eventType === EventType.CASE_RECEIVED_BY_COURT, - )?.created, - theCase.eventLogs?.find( - (eventLog) => eventLog.eventType === EventType.INDICTMENT_CONFIRMED, - )?.created, + indictmentIssuedByProsecutorAndReceivedByCourt, + indictmentIssuedByProsecutorAndReceivedByCourt, theCase.policeCaseNumbers[0], mappedSubtypes, theCase.defendants?.map((defendant) => ({ diff --git a/apps/judicial-system/backend/src/app/modules/case/test/caseController/createCourtCase.spec.ts b/apps/judicial-system/backend/src/app/modules/case/test/caseController/createCourtCase.spec.ts index 90c78356e06a..b1daaac68f15 100644 --- a/apps/judicial-system/backend/src/app/modules/case/test/caseController/createCourtCase.spec.ts +++ b/apps/judicial-system/backend/src/app/modules/case/test/caseController/createCourtCase.spec.ts @@ -7,20 +7,23 @@ import { CaseFileState, CaseState, CaseType, + EventType, IndictmentSubtype, investigationCases, - isIndictmentCase, restrictionCases, User as TUser, } from '@island.is/judicial-system/types' import { createTestingCaseModule } from '../createTestingCaseModule' -import { randomEnum } from '../../../../test' +import { nowFactory } from '../../../../factories' +import { randomDate, randomEnum } from '../../../../test' import { CourtService } from '../../../court' import { include } from '../../case.service' import { Case } from '../../models/case.model' +jest.mock('../../../../factories') + interface Then { result: Case error: Error @@ -84,16 +87,71 @@ describe('CaseController - Create court case', () => { } }) - describe('court case created', () => { + describe('request court case created', () => { + const date = randomDate() const caseId = uuid() - const type = randomEnum(CaseType) + const type = CaseType.CUSTODY const policeCaseNumber = uuid() - const indictmentSubtype = isIndictmentCase(type) - ? randomEnum(IndictmentSubtype) - : undefined - const indictmentSubtypes = isIndictmentCase(type) - ? { [policeCaseNumber]: [indictmentSubtype] } - : undefined + const policeCaseNumbers = [policeCaseNumber] + const courtId = uuid() + const theCase = { + id: caseId, + type, + policeCaseNumbers, + courtId, + } as Case + const returnedCase = { + id: caseId, + type, + policeCaseNumbers, + courtId, + courtCaseNumber, + } as Case + let then: Then + + beforeEach(async () => { + const mockFindOne = mockCaseModel.findOne as jest.Mock + mockFindOne.mockResolvedValueOnce(returnedCase) + + const mockToday = nowFactory as jest.Mock + mockToday.mockReturnValueOnce(date) + + then = await givenWhenThen(caseId, user, theCase) + }) + + it('should create a court case', () => { + expect(mockCourtService.createCourtCase).toHaveBeenCalledWith( + user, + caseId, + courtId, + type, + date, + policeCaseNumbers, + false, + undefined, + ) + expect(mockCaseModel.update).toHaveBeenCalledWith( + { courtCaseNumber }, + { where: { id: caseId }, transaction }, + ) + expect(mockCaseModel.findOne).toHaveBeenCalledWith({ + include, + where: { + id: caseId, + isArchived: false, + }, + }) + expect(then.result).toBe(returnedCase) + }) + }) + + describe('indictment court case created', () => { + const caseId = uuid() + const type = CaseType.INDICTMENT + const policeCaseNumber = uuid() + const indictmentSubtype = randomEnum(IndictmentSubtype) + const indictmentSubtypes = { [policeCaseNumber]: [indictmentSubtype] } + const indictmentConfirmedDate = randomDate() const policeCaseNumbers = [policeCaseNumber] const courtId = uuid() const theCase = { @@ -102,9 +160,16 @@ describe('CaseController - Create court case', () => { policeCaseNumbers, indictmentSubtypes, courtId, + eventLogs: [ + { + eventType: EventType.INDICTMENT_CONFIRMED, + created: indictmentConfirmedDate, + }, + ], } as Case const returnedCase = { id: caseId, + type, policeCaseNumbers, indictmentSubtypes, courtId, @@ -125,6 +190,7 @@ describe('CaseController - Create court case', () => { caseId, courtId, type, + indictmentConfirmedDate, policeCaseNumbers, false, indictmentSubtypes, diff --git a/apps/judicial-system/backend/src/app/modules/case/test/internalCaseController/deliverIndictmentInfoToCourt.spec.ts b/apps/judicial-system/backend/src/app/modules/case/test/internalCaseController/deliverIndictmentInfoToCourt.spec.ts index 4c929c759e7a..3236f05eb4de 100644 --- a/apps/judicial-system/backend/src/app/modules/case/test/internalCaseController/deliverIndictmentInfoToCourt.spec.ts +++ b/apps/judicial-system/backend/src/app/modules/case/test/internalCaseController/deliverIndictmentInfoToCourt.spec.ts @@ -96,7 +96,7 @@ describe('InternalCaseController - Deliver indictment info to court', () => { caseId, courtName, courtCaseNumber, - receivedDate, + indictmentDate, indictmentDate, policeCaseNumber, ['Umferðarlagabrot', 'Hylming', 'Þjófnaður'], diff --git a/apps/judicial-system/backend/src/app/modules/court/court.service.ts b/apps/judicial-system/backend/src/app/modules/court/court.service.ts index 3ff75964c054..d38a2abf3416 100644 --- a/apps/judicial-system/backend/src/app/modules/court/court.service.ts +++ b/apps/judicial-system/backend/src/app/modules/court/court.service.ts @@ -24,7 +24,6 @@ import { isIndictmentCase, } from '@island.is/judicial-system/types' -import { nowFactory } from '../../factories' import { Defendant } from '../defendant' import { EventService } from '../event' import { RobotLog } from './models/robotLog.model' @@ -324,6 +323,7 @@ export class CourtService { caseId: string, courtId = '', type: CaseType, + receivalDate: Date, policeCaseNumbers: string[], isExtension: boolean, indictmentSubtypes?: IndictmentSubtypeMap, @@ -342,7 +342,7 @@ export class CourtService { caseType: isIndictment ? 'S - Ákærumál' : 'R - Rannsóknarmál', subtype: courtSubtype as string, status: 'Skráð', - receivalDate: formatISO(nowFactory(), { representation: 'date' }), + receivalDate: formatISO(receivalDate, { representation: 'date' }), basedOn: isIndictment ? 'Sakamál' : 'Rannsóknarhagsmunir', // TODO: pass in all policeCaseNumbers when CourtService supports it sourceNumber: policeCaseNumbers[0] ? policeCaseNumbers[0] : '', diff --git a/apps/judicial-system/backend/src/app/modules/court/test/createCourtCase.spec.ts b/apps/judicial-system/backend/src/app/modules/court/test/createCourtCase.spec.ts index d1be752555d1..a32798d80b4e 100644 --- a/apps/judicial-system/backend/src/app/modules/court/test/createCourtCase.spec.ts +++ b/apps/judicial-system/backend/src/app/modules/court/test/createCourtCase.spec.ts @@ -14,12 +14,9 @@ import { import { createTestingCourtModule } from './createTestingCourtModule' -import { nowFactory } from '../../../factories' import { randomBoolean, randomDate, randomEnum } from '../../../test' import { courtSubtypes, Subtype } from '../court.service' -jest.mock('../../../factories') - interface Then { result: string error: Error @@ -30,13 +27,14 @@ type GivenWhenThen = ( caseId: string, courtId: string, type: CaseType, + receivalDate: Date, policeCaseNumbers: string[], isExtension: boolean, indictmentSubtypes?: IndictmentSubtypeMap, ) => Promise describe('CourtService - Create court case', () => { - const date = randomDate() + const receivalDate = randomDate() let mockCourtClientService: CourtClientService let givenWhenThen: GivenWhenThen @@ -46,14 +44,12 @@ describe('CourtService - Create court case', () => { mockCourtClientService = courtClientService - const mockToday = nowFactory as jest.Mock - mockToday.mockReturnValueOnce(date) - givenWhenThen = async ( user: User, caseId: string, courtId: string, type: CaseType, + receivalDate: Date, policeCaseNumbers: string[], isExtension: boolean, indictmentSubtypes?: IndictmentSubtypeMap, @@ -66,6 +62,7 @@ describe('CourtService - Create court case', () => { caseId, courtId, type, + receivalDate, policeCaseNumbers, isExtension, indictmentSubtypes, @@ -93,6 +90,7 @@ describe('CourtService - Create court case', () => { caseId, courtId, type, + receivalDate, policeCaseNumbers, isExtension, ) @@ -105,7 +103,7 @@ describe('CourtService - Create court case', () => { caseType: 'R - Rannsóknarmál', subtype: courtSubtypes[type as Subtype], status: 'Skráð', - receivalDate: formatISO(date, { representation: 'date' }), + receivalDate: formatISO(receivalDate, { representation: 'date' }), basedOn: 'Rannsóknarhagsmunir', sourceNumber: policeCaseNumbers[0], }, @@ -132,6 +130,7 @@ describe('CourtService - Create court case', () => { caseId, courtId, type, + receivalDate, policeCaseNumbers, isExtension, indictmentSubtypes, @@ -145,7 +144,7 @@ describe('CourtService - Create court case', () => { caseType: 'S - Ákærumál', subtype: courtSubtypes[indictmentSubtype], status: 'Skráð', - receivalDate: formatISO(date, { representation: 'date' }), + receivalDate: formatISO(receivalDate, { representation: 'date' }), basedOn: 'Sakamál', sourceNumber: policeCaseNumbers[0], }, @@ -171,6 +170,7 @@ describe('CourtService - Create court case', () => { caseId, courtId, type, + receivalDate, policeCaseNumbers, isExtension, ) @@ -181,7 +181,7 @@ describe('CourtService - Create court case', () => { caseType: 'R - Rannsóknarmál', subtype: courtSubtypes[type as Subtype][0], status: 'Skráð', - receivalDate: formatISO(date, { representation: 'date' }), + receivalDate: formatISO(receivalDate, { representation: 'date' }), basedOn: 'Rannsóknarhagsmunir', sourceNumber: policeCaseNumbers[0], }) @@ -205,6 +205,7 @@ describe('CourtService - Create court case', () => { caseId, courtId, type, + receivalDate, policeCaseNumbers, isExtension, ) @@ -215,7 +216,7 @@ describe('CourtService - Create court case', () => { caseType: 'R - Rannsóknarmál', subtype: courtSubtypes[type as Subtype][1], status: 'Skráð', - receivalDate: formatISO(date, { representation: 'date' }), + receivalDate: formatISO(receivalDate, { representation: 'date' }), basedOn: 'Rannsóknarhagsmunir', sourceNumber: policeCaseNumbers[0], }) @@ -248,6 +249,7 @@ describe('CourtService - Create court case', () => { caseId, courtId, type, + receivalDate, policeCaseNumbers, isExtension, indictmentSubtypes, @@ -284,6 +286,7 @@ describe('CourtService - Create court case', () => { caseId, courtId, type, + receivalDate, policeCaseNumbers, isExtension, indictmentSubtypes, diff --git a/apps/judicial-system/backend/src/app/modules/file/file.controller.ts b/apps/judicial-system/backend/src/app/modules/file/file.controller.ts index 9982d5c839c3..8e0a7940bc95 100644 --- a/apps/judicial-system/backend/src/app/modules/file/file.controller.ts +++ b/apps/judicial-system/backend/src/app/modules/file/file.controller.ts @@ -34,7 +34,6 @@ import { districtCourtAssistantRule, districtCourtJudgeRule, districtCourtRegistrarRule, - prisonSystemStaffRule, prosecutorRepresentativeRule, prosecutorRule, publicProsecutorStaffRule, diff --git a/apps/judicial-system/backend/src/app/modules/subpoena/test/internalSubpoenaController/deliverSubpoenaToPolice.spec.ts b/apps/judicial-system/backend/src/app/modules/subpoena/test/internalSubpoenaController/deliverSubpoenaToPolice.spec.ts index c2f9ff68a082..43255bd30aa1 100644 --- a/apps/judicial-system/backend/src/app/modules/subpoena/test/internalSubpoenaController/deliverSubpoenaToPolice.spec.ts +++ b/apps/judicial-system/backend/src/app/modules/subpoena/test/internalSubpoenaController/deliverSubpoenaToPolice.spec.ts @@ -4,6 +4,7 @@ import { createTestingSubpoenaModule } from '../createTestingSubpoenaModule' import { Case } from '../../../case' import { Defendant } from '../../../defendant' +import { DeliverDto } from '../../dto/deliver.dto' import { DeliverResponse } from '../../models/deliver.response' import { Subpoena } from '../../models/subpoena.model' import { SubpoenaService } from '../../subpoena.service' @@ -22,7 +23,7 @@ describe('InternalSubpoenaController - Deliver subpoena to police', () => { const subpoena = { id: subpoenaId } as Subpoena const defendant = { id: defendantId, subpoenas: [subpoena] } as Defendant const theCase = { id: caseId } as Case - const user = { user: { id: uuid() } } as any + const user = { user: { id: uuid() } } as DeliverDto const delivered = { delivered: true } as DeliverResponse let mockSubpoenaService: SubpoenaService From b90bbfa6e5342e9d3b2dca7e0e2e11e60805d7c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B3nas=20G=2E=20Sigur=C3=B0sson?= Date: Tue, 19 Nov 2024 16:30:02 +0000 Subject: [PATCH 56/66] fix: revert back to previous version of filelist (#16825) * fix: revert back to previous version of filelist * fix: adjust stateMachine * fix: statemachine * fix: add console.log to trace on feature-deploy * Fix: revert back to the custom components * fix: remove console.log * fix: revert in the submitted forms * fix: remove commented code and add environment check for easier testing * fix: add back in a zod check * fix: add return --------- Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- .../src/fields/Summary/FileList.tsx | 31 ++- .../childrenFilesForm/ChildrenFilesForm.tsx | 25 +++ .../FileUploadControler.tsx | 36 ++++ .../FileUploadController.css.ts | 11 ++ .../financial-aid/src/fields/files/Files.tsx | 71 +++++++ .../incomeFilesForm/IncomeFilesForm.tsx | 33 ++++ .../financial-aid/src/fields/index.ts | 4 + .../src/fields/missingFiles/MissingFiles.tsx | 181 ++++++++++++++++++ .../taxReturnFilesForm/TaxFormContent.tsx | 77 ++++++++ .../taxReturnFilesForm/TaxReturnFilesForm.tsx | 72 +++++++ .../ApplicantSubmittedForm/MissingFiles.ts | 34 +--- .../financesSection/incomeFileSubSection.ts | 9 +- .../taxReturnFilesSubSection.ts | 33 +--- .../childrenFilesSubSection.ts | 12 +- .../SpouseForm/spouseIncomeFilesSection.ts | 17 +- .../SpouseForm/spouseTaxReturnFilesSection.ts | 34 +--- .../forms/SpouseSubmittedForm/MissingFiles.ts | 29 +-- .../src/lib/FinancialAidTemplate.ts | 2 +- .../templates/financial-aid/src/lib/types.ts | 11 ++ .../templates/financial-aid/src/lib/utils.ts | 8 + 20 files changed, 592 insertions(+), 138 deletions(-) create mode 100644 libs/application/templates/financial-aid/src/fields/childrenFilesForm/ChildrenFilesForm.tsx create mode 100644 libs/application/templates/financial-aid/src/fields/fileUploadController/FileUploadControler.tsx create mode 100644 libs/application/templates/financial-aid/src/fields/fileUploadController/FileUploadController.css.ts create mode 100644 libs/application/templates/financial-aid/src/fields/files/Files.tsx create mode 100644 libs/application/templates/financial-aid/src/fields/incomeFilesForm/IncomeFilesForm.tsx create mode 100644 libs/application/templates/financial-aid/src/fields/missingFiles/MissingFiles.tsx create mode 100644 libs/application/templates/financial-aid/src/fields/taxReturnFilesForm/TaxFormContent.tsx create mode 100644 libs/application/templates/financial-aid/src/fields/taxReturnFilesForm/TaxReturnFilesForm.tsx diff --git a/libs/application/templates/financial-aid/src/fields/Summary/FileList.tsx b/libs/application/templates/financial-aid/src/fields/Summary/FileList.tsx index 8706ccce4976..5a637f8a87d6 100644 --- a/libs/application/templates/financial-aid/src/fields/Summary/FileList.tsx +++ b/libs/application/templates/financial-aid/src/fields/Summary/FileList.tsx @@ -1,17 +1,24 @@ import React from 'react' +import { useIntl } from 'react-intl' +import cn from 'classnames' import { Text, Box, UploadFile } from '@island.is/island-ui/core' -import { getFileType } from '@island.is/financial-aid/shared/lib' +import { + getFileSizeInKilo, + getFileType, +} from '@island.is/financial-aid/shared/lib' import { useFileUpload } from '../../lib/hooks/useFileUpload' -import cn from 'classnames' - +import { missingFiles } from '../../lib/messages' import * as styles from './FileList.css' -type Props = { +interface Props { applicationSystemId: string files?: UploadFile[] } -const FileList = ({ files }: Props) => { +const FileList = ({ files, applicationSystemId }: Props) => { + const { formatMessage } = useIntl() + const { openFileById } = useFileUpload(files ?? [], applicationSystemId) + if (files === undefined || files.length === 0) { return null } @@ -19,13 +26,17 @@ const FileList = ({ files }: Props) => { return ( {files.map((file, i) => { - return file.key ? ( -
{ + e.preventDefault() + openFileById(file.id as string) + }} >
@@ -36,12 +47,14 @@ const FileList = ({ files }: Props) => {
{file.name}
+ {`${formatMessage( + missingFiles.confirmation.file, + )} • ${getFileSizeInKilo(file)} KB`}
-
+ ) : null })} ) } - export default FileList diff --git a/libs/application/templates/financial-aid/src/fields/childrenFilesForm/ChildrenFilesForm.tsx b/libs/application/templates/financial-aid/src/fields/childrenFilesForm/ChildrenFilesForm.tsx new file mode 100644 index 000000000000..4e8c901d9749 --- /dev/null +++ b/libs/application/templates/financial-aid/src/fields/childrenFilesForm/ChildrenFilesForm.tsx @@ -0,0 +1,25 @@ +import React from 'react' +import { useIntl } from 'react-intl' +import { Text, UploadFile } from '@island.is/island-ui/core' +import { childrenFilesForm } from '../../lib/messages' +import { UploadFileType } from '../..' +import Files from '../files/Files' +import { FieldBaseProps } from '@island.is/application/types' + +export const ChildrenFilesForm = ({ field, application }: FieldBaseProps) => { + const { formatMessage } = useIntl() + const { id, answers } = application + + return ( + <> + + {formatMessage(childrenFilesForm.general.description)} + + + + ) +} diff --git a/libs/application/templates/financial-aid/src/fields/fileUploadController/FileUploadControler.tsx b/libs/application/templates/financial-aid/src/fields/fileUploadController/FileUploadControler.tsx new file mode 100644 index 000000000000..297bbefe6d7a --- /dev/null +++ b/libs/application/templates/financial-aid/src/fields/fileUploadController/FileUploadControler.tsx @@ -0,0 +1,36 @@ +import React, { ReactNode } from 'react' +import { useIntl } from 'react-intl' +import { Text, Box, GridRow, GridColumn } from '@island.is/island-ui/core' +import { filesText } from '../../lib/messages' +import cn from 'classnames' +import * as styles from './FileUploadController.css' +interface Props { + children: ReactNode + hasError?: boolean +} + +const FileUploadContainer = ({ children, hasError = false }: Props) => { + const { formatMessage } = useIntl() + + return ( + + + {children} +
+ + {formatMessage(filesText.errorMessage)} + +
+
+
+ ) +} + +export default FileUploadContainer diff --git a/libs/application/templates/financial-aid/src/fields/fileUploadController/FileUploadController.css.ts b/libs/application/templates/financial-aid/src/fields/fileUploadController/FileUploadController.css.ts new file mode 100644 index 000000000000..f3d55639bad4 --- /dev/null +++ b/libs/application/templates/financial-aid/src/fields/fileUploadController/FileUploadController.css.ts @@ -0,0 +1,11 @@ +import { style } from '@vanilla-extract/css' +import { theme } from '@island.is/island-ui/theme' + +export const errorMessage = style({ + overflow: 'hidden', + maxHeight: '0', + transition: 'max-height 250ms ease', +}) +export const showErrorMessage = style({ + maxHeight: theme.spacing[5], +}) diff --git a/libs/application/templates/financial-aid/src/fields/files/Files.tsx b/libs/application/templates/financial-aid/src/fields/files/Files.tsx new file mode 100644 index 000000000000..e1077c1412d5 --- /dev/null +++ b/libs/application/templates/financial-aid/src/fields/files/Files.tsx @@ -0,0 +1,71 @@ +import React, { useEffect } from 'react' +import { InputFileUpload, UploadFile } from '@island.is/island-ui/core' + +import { useIntl } from 'react-intl' +import { filesText } from '../../lib/messages' +import { UploadFileType } from '../../lib/types' +import { useFormContext } from 'react-hook-form' +import { useFileUpload } from '../../lib/hooks/useFileUpload' +import { FILE_SIZE_LIMIT, UPLOAD_ACCEPT } from '../../lib/constants' +import FileUploadContainer from '../fileUploadController/FileUploadControler' + +interface Props { + uploadFiles: UploadFile[] + fileKey: UploadFileType + folderId: string + hasError?: boolean +} + +const Files = ({ uploadFiles, fileKey, folderId, hasError = false }: Props) => { + const { formatMessage } = useIntl() + const { setValue } = useFormContext() + + const { + files, + uploadErrorMessage, + onChange, + onRemove, + onRetry, + onUploadRejection, + } = useFileUpload(uploadFiles, folderId) + + const fileToObject = (file: UploadFile) => { + return { + key: file.key, + name: file.name, + size: file.size, + status: file.status, + percent: file?.percent, + } + } + + useEffect(() => { + const formFiles = files + .filter((f) => f.status === 'done') + .map((f) => { + return fileToObject(f) + }) + setValue(fileKey, formFiles) + }, [files]) + + return ( + + + + ) +} + +export default Files diff --git a/libs/application/templates/financial-aid/src/fields/incomeFilesForm/IncomeFilesForm.tsx b/libs/application/templates/financial-aid/src/fields/incomeFilesForm/IncomeFilesForm.tsx new file mode 100644 index 000000000000..c69fabaa0f5b --- /dev/null +++ b/libs/application/templates/financial-aid/src/fields/incomeFilesForm/IncomeFilesForm.tsx @@ -0,0 +1,33 @@ +import React from 'react' +import { useIntl } from 'react-intl' +import { Text, UploadFile } from '@island.is/island-ui/core' +import { incomeFilesForm } from '../../lib/messages' +import { UploadFileType } from '../..' +import { FieldBaseProps } from '@island.is/application/types' +import { getValueViaPath } from '@island.is/application/core' +import Files from '../files/Files' + +export const IncomeFilesForm = ({ field, application }: FieldBaseProps) => { + const { formatMessage } = useIntl() + const { id, answers, externalData } = application + const success = getValueViaPath( + externalData, + 'taxData.data.municipalitiesDirectTaxPayments.success', + ) + return ( + <> + + {formatMessage( + success + ? incomeFilesForm.general.descriptionTaxSuccess + : incomeFilesForm.general.description, + )} + + + + ) +} diff --git a/libs/application/templates/financial-aid/src/fields/index.ts b/libs/application/templates/financial-aid/src/fields/index.ts index 39e0c44bdc48..de41cb87c6bf 100644 --- a/libs/application/templates/financial-aid/src/fields/index.ts +++ b/libs/application/templates/financial-aid/src/fields/index.ts @@ -5,3 +5,7 @@ export { SpouseSummaryForm } from './Summary/SpouseSummaryForm' export { ApplicantStatus } from './Status/ApplicantStatus' export { SpouseStatus } from './Status/SpouseStatus' export { MissingFilesConfirmation } from './Summary/MissingFilesConfirmation' +export { ChildrenFilesForm } from './childrenFilesForm/ChildrenFilesForm' +export { IncomeFilesForm } from './incomeFilesForm/IncomeFilesForm' +export { TaxReturnFilesForm } from './taxReturnFilesForm/TaxReturnFilesForm' +export { MissingFiles } from './missingFiles/MissingFiles' diff --git a/libs/application/templates/financial-aid/src/fields/missingFiles/MissingFiles.tsx b/libs/application/templates/financial-aid/src/fields/missingFiles/MissingFiles.tsx new file mode 100644 index 000000000000..4b0edab8d80d --- /dev/null +++ b/libs/application/templates/financial-aid/src/fields/missingFiles/MissingFiles.tsx @@ -0,0 +1,181 @@ +import React, { useEffect, useMemo, useState } from 'react' +import { useIntl } from 'react-intl' +import { + Text, + Box, + AlertMessage, + Input, + LoadingDots, +} from '@island.is/island-ui/core' +import { + ApplicationEventType, + ApplicationState, + FileType, + getCommentFromLatestEvent, +} from '@island.is/financial-aid/shared/lib' +import { getValueViaPath } from '@island.is/application/core' +import { FieldBaseProps, RecordObject } from '@island.is/application/types' +import { filesText, missingFiles } from '../../lib/messages' +import { UploadFileType } from '../../lib/types' +import useApplication from '../../lib/hooks/useApplication' +import { Controller, useFormContext } from 'react-hook-form' +import { useFileUpload } from '../../lib/hooks/useFileUpload' +import Files from '../files/Files' +import DescriptionText from '../../components/DescriptionText/DescriptionText' + +export const MissingFiles = ({ + application, + setBeforeSubmitCallback, + field, +}: FieldBaseProps) => { + const currentApplicationId = getValueViaPath( + application.externalData, + 'currentApplication.data.currentApplicationId', + ) + const email = getValueViaPath( + application.externalData, + 'municipality.data.email', + ) + const { currentApplication, updateApplication, loading } = + useApplication(currentApplicationId) + const isSpouse = getValueViaPath(field as RecordObject, 'props.isSpouse') + + const { formatMessage } = useIntl() + const { setValue, getValues } = useFormContext() + const fileType: UploadFileType = 'otherFiles' + const commentType = 'fileUploadComment' + const files = getValues(fileType) + + const { uploadFiles } = useFileUpload(files, application.id) + + const [error, setError] = useState(false) + const [filesError, setFilesError] = useState(false) + + const fileComment = useMemo(() => { + if (currentApplication?.applicationEvents) { + return getCommentFromLatestEvent( + currentApplication?.applicationEvents, + ApplicationEventType.DATANEEDED, + ) + } + }, [currentApplication]) + + useEffect(() => { + if (filesError) { + setFilesError(false) + } + }, [files]) + + setBeforeSubmitCallback && + setBeforeSubmitCallback(async () => { + setError(false) + if (files.length <= 0) { + setFilesError(true) + return [false, formatMessage(filesText.errorMessage)] + } + + try { + if (!currentApplicationId) { + throw new Error() + } + + const uploadedFiles = await uploadFiles( + currentApplicationId, + FileType.OTHER, + files, + ) + setValue(fileType, uploadedFiles) + + await updateApplication( + ApplicationState.INPROGRESS, + isSpouse + ? ApplicationEventType.SPOUSEFILEUPLOAD + : ApplicationEventType.FILEUPLOAD, + getValues(commentType), + ) + } catch (e) { + setError(true) + return [false, formatMessage(missingFiles.error.title)] + } + return [true, null] + }) + + if (loading) { + return + } + + return ( + <> + + {formatMessage(missingFiles.general.description)} + + + {fileComment?.comment && ( + + + } + /> + + )} + + + + + + + + {formatMessage(missingFiles.comment.title)} + + + { + return ( + { + onChange(e.target.value) + setValue(commentType, e.target.value) + }} + /> + ) + }} + /> + + + + {error && ( + <> + + {formatMessage(missingFiles.error.title)} + + + + )} + + ) +} diff --git a/libs/application/templates/financial-aid/src/fields/taxReturnFilesForm/TaxFormContent.tsx b/libs/application/templates/financial-aid/src/fields/taxReturnFilesForm/TaxFormContent.tsx new file mode 100644 index 000000000000..b24399cae3e2 --- /dev/null +++ b/libs/application/templates/financial-aid/src/fields/taxReturnFilesForm/TaxFormContent.tsx @@ -0,0 +1,77 @@ +import React from 'react' +import { useIntl } from 'react-intl' +import { Text, Box } from '@island.is/island-ui/core' +import { taxReturnForm } from '../../lib/messages' +import DescriptionText from '../../components/DescriptionText/DescriptionText' + +const DirectTaxPaymentsInfo = () => { + const { formatMessage } = useIntl() + return ( + <> + + {formatMessage(taxReturnForm.instructions.findDirectTaxPaymentsTitle)} + + + + {formatMessage(taxReturnForm.instructions.findDirectTaxPayments)} + + + ) +} + +const TaxReturnInfo = () => { + const { formatMessage } = useIntl() + return ( + <> + + {formatMessage(taxReturnForm.instructions.findTaxReturnTitle)} + + + + ) +} + +export const getTaxFormContent = ( + taxReturnFailed: boolean, + directTaxPaymentsFailed: boolean, +) => { + switch (true) { + case taxReturnFailed && !directTaxPaymentsFailed: + return { + data: ( + + + + ), + info: , + } + case directTaxPaymentsFailed && !taxReturnFailed: + return { + data: ( + + + + ), + info: , + } + + default: + return { + data: ( + <> + + + + + ), + info: ( + <> + + + + ), + } + } +} diff --git a/libs/application/templates/financial-aid/src/fields/taxReturnFilesForm/TaxReturnFilesForm.tsx b/libs/application/templates/financial-aid/src/fields/taxReturnFilesForm/TaxReturnFilesForm.tsx new file mode 100644 index 000000000000..71480d5c5aa0 --- /dev/null +++ b/libs/application/templates/financial-aid/src/fields/taxReturnFilesForm/TaxReturnFilesForm.tsx @@ -0,0 +1,72 @@ +import React from 'react' +import { useIntl } from 'react-intl' +import { UploadFile, Box, AlertMessage } from '@island.is/island-ui/core' +import { taxReturnForm } from '../../lib/messages' +import { TaxData, UploadFileType } from '../..' +import { FieldBaseProps } from '@island.is/application/types' +import Files from '../files/Files' +import { getValueViaPath } from '@island.is/application/core' +import { getTaxFormContent } from './TaxFormContent' + +export const TaxReturnFilesForm = ({ field, application }: FieldBaseProps) => { + const { formatMessage } = useIntl() + const { id, answers, externalData, assignees } = application + const nationalId = getValueViaPath( + externalData, + 'nationalRegistry.data.nationalId', + ) + const taxData = getValueViaPath(externalData, 'taxData.data') + const spouseTaxData = getValueViaPath( + externalData, + 'taxDataSpouse.data', + ) + + const taxDataToUse = + assignees.includes(nationalId ?? '') && spouseTaxData + ? spouseTaxData + : taxData + + if (!taxDataToUse) { + return null + } + + const { municipalitiesDirectTaxPayments, municipalitiesPersonalTaxReturn } = + taxDataToUse + + const taxReturnFetchFailed = + municipalitiesPersonalTaxReturn?.personalTaxReturn === null + const directTaxPaymentsFetchedFailed = + municipalitiesDirectTaxPayments.directTaxPayments.length === 0 && + !municipalitiesDirectTaxPayments.success + const taxDataGatheringFailed = + taxReturnFetchFailed && directTaxPaymentsFetchedFailed + + const content = getTaxFormContent( + taxReturnFetchFailed, + directTaxPaymentsFetchedFailed, + ) + + return ( + <> + {taxDataGatheringFailed && ( + + + + )} + + {content.data} + + + + {content.info} + + ) +} diff --git a/libs/application/templates/financial-aid/src/forms/ApplicantSubmittedForm/MissingFiles.ts b/libs/application/templates/financial-aid/src/forms/ApplicantSubmittedForm/MissingFiles.ts index 2d829cec7d3a..cfe796a5429b 100644 --- a/libs/application/templates/financial-aid/src/forms/ApplicantSubmittedForm/MissingFiles.ts +++ b/libs/application/templates/financial-aid/src/forms/ApplicantSubmittedForm/MissingFiles.ts @@ -1,12 +1,10 @@ import { - buildDescriptionField, - buildFileUploadField, + buildCustomField, buildMultiField, buildSection, buildSubmitField, - buildTextField, } from '@island.is/application/core' -import { FILE_SIZE_LIMIT, Routes, UPLOAD_ACCEPT } from '../../lib/constants' +import { Routes } from '../../lib/constants' import { DefaultEvents } from '@island.is/application/types' import * as m from '../../lib/messages' @@ -19,26 +17,14 @@ export const MissingFiles = buildSection({ title: m.missingFiles.general.pageTitle, description: m.missingFiles.general.description, children: [ - buildFileUploadField({ - id: `${Routes.MISSINGFILES}`, - title: m.missingFiles.general.pageTitle, - uploadMultiple: true, - maxSize: FILE_SIZE_LIMIT, - uploadAccept: UPLOAD_ACCEPT, - }), - buildDescriptionField({ - id: `${Routes.MISSINGFILES}.description`, - title: m.missingFiles.comment.title, - marginTop: 4, - titleVariant: 'h3', - }), - buildTextField({ - id: 'fileUploadComment', - title: m.missingFiles.comment.inputTitle, - placeholder: m.missingFiles.comment.inputPlaceholder, - variant: 'textarea', - rows: 6, - }), + buildCustomField( + { + id: Routes.MISSINGFILES, + title: m.missingFiles.general.pageTitle, + component: 'MissingFiles', + }, + { isSpouse: false }, + ), buildSubmitField({ id: 'missingFilesSubmit', title: '', diff --git a/libs/application/templates/financial-aid/src/forms/ApplicationForm/financesSection/incomeFileSubSection.ts b/libs/application/templates/financial-aid/src/forms/ApplicationForm/financesSection/incomeFileSubSection.ts index 8ad68a5fda79..4648c58268e2 100644 --- a/libs/application/templates/financial-aid/src/forms/ApplicationForm/financesSection/incomeFileSubSection.ts +++ b/libs/application/templates/financial-aid/src/forms/ApplicationForm/financesSection/incomeFileSubSection.ts @@ -1,4 +1,5 @@ import { + buildCustomField, buildFileUploadField, buildMultiField, buildSubSection, @@ -22,12 +23,10 @@ export const incomeFilesSubSection = buildSubSection({ title: m.incomeFilesForm.general.pageTitle, description: m.incomeFilesForm.general.descriptionTaxSuccess, children: [ - buildFileUploadField({ + buildCustomField({ id: Routes.INCOMEFILES, - title: '', - uploadMultiple: true, - maxSize: FILE_SIZE_LIMIT, - uploadAccept: UPLOAD_ACCEPT, + title: m.incomeFilesForm.general.pageTitle, + component: 'IncomeFilesForm', }), ], }), diff --git a/libs/application/templates/financial-aid/src/forms/ApplicationForm/financesSection/taxReturnFilesSubSection.ts b/libs/application/templates/financial-aid/src/forms/ApplicationForm/financesSection/taxReturnFilesSubSection.ts index 8bca3236f2cf..b5e179eacb52 100644 --- a/libs/application/templates/financial-aid/src/forms/ApplicationForm/financesSection/taxReturnFilesSubSection.ts +++ b/libs/application/templates/financial-aid/src/forms/ApplicationForm/financesSection/taxReturnFilesSubSection.ts @@ -1,11 +1,9 @@ import { - buildDescriptionField, - buildFileUploadField, - buildMultiField, + buildCustomField, buildSubSection, getValueViaPath, } from '@island.is/application/core' -import { FILE_SIZE_LIMIT, Routes, UPLOAD_ACCEPT } from '../../../lib/constants' +import { Routes } from '../../../lib/constants' import * as m from '../../../lib/messages' export const taxReturnFilesSubSection = buildSubSection({ @@ -23,33 +21,10 @@ export const taxReturnFilesSubSection = buildSubSection({ return personalTaxSuccess === false || personalTaxReturn == null }, children: [ - buildMultiField({ + buildCustomField({ id: Routes.TAXRETURNFILES, title: m.taxReturnForm.general.pageTitle, - description: m.taxReturnForm.general.description, - children: [ - buildFileUploadField({ - id: Routes.TAXRETURNFILES, - title: '', - uploadMultiple: true, - maxSize: FILE_SIZE_LIMIT, - uploadAccept: UPLOAD_ACCEPT, - }), - buildDescriptionField({ - id: `${Routes.TAXRETURNFILES}.findTaxReturn`, - title: m.taxReturnForm.instructions.findTaxReturnTitle, - titleVariant: 'h3', - marginTop: 3, - description: m.taxReturnForm.instructions.findTaxReturn, - }), - buildDescriptionField({ - id: `${Routes.TAXRETURNFILES}.findTaxReturn2`, - title: m.taxReturnForm.instructions.findDirectTaxPaymentsTitle, - titleVariant: 'h3', - marginTop: 3, - description: m.taxReturnForm.instructions.findDirectTaxPayments, - }), - ], + component: 'TaxReturnFilesForm', }), ], }) diff --git a/libs/application/templates/financial-aid/src/forms/ApplicationForm/personalInterestSection/childrenFilesSubSection.ts b/libs/application/templates/financial-aid/src/forms/ApplicationForm/personalInterestSection/childrenFilesSubSection.ts index a932f53022fb..709c9f211acd 100644 --- a/libs/application/templates/financial-aid/src/forms/ApplicationForm/personalInterestSection/childrenFilesSubSection.ts +++ b/libs/application/templates/financial-aid/src/forms/ApplicationForm/personalInterestSection/childrenFilesSubSection.ts @@ -1,10 +1,10 @@ import { - buildFileUploadField, + buildCustomField, buildMultiField, buildSubSection, getValueViaPath, } from '@island.is/application/core' -import { FILE_SIZE_LIMIT, Routes, UPLOAD_ACCEPT } from '../../../lib/constants' +import { Routes } from '../../../lib/constants' import * as m from '../../../lib/messages' import { ApplicantChildCustodyInformation } from '@island.is/application/types' @@ -23,12 +23,10 @@ export const childrenFilesSubSection = buildSubSection({ title: m.childrenFilesForm.general.pageTitle, description: m.childrenFilesForm.general.description, children: [ - buildFileUploadField({ + buildCustomField({ id: Routes.CHILDRENFILES, - uploadMultiple: true, - maxSize: FILE_SIZE_LIMIT, - uploadAccept: UPLOAD_ACCEPT, - title: '', + title: m.childrenFilesForm.general.pageTitle, + component: 'ChildrenFilesForm', }), ], }), diff --git a/libs/application/templates/financial-aid/src/forms/SpouseForm/spouseIncomeFilesSection.ts b/libs/application/templates/financial-aid/src/forms/SpouseForm/spouseIncomeFilesSection.ts index 981e0dcef73d..c595cce82ef0 100644 --- a/libs/application/templates/financial-aid/src/forms/SpouseForm/spouseIncomeFilesSection.ts +++ b/libs/application/templates/financial-aid/src/forms/SpouseForm/spouseIncomeFilesSection.ts @@ -1,11 +1,10 @@ import { - buildFileUploadField, - buildMultiField, + buildCustomField, buildSection, getValueViaPath, } from '@island.is/application/core' import { ApproveOptions } from '../../lib/types' -import { FILE_SIZE_LIMIT, Routes, UPLOAD_ACCEPT } from '../../lib/constants' +import { Routes } from '../../lib/constants' import * as m from '../../lib/messages' export const spouseIncomeFilesSection = buildSection({ @@ -16,18 +15,10 @@ export const spouseIncomeFilesSection = buildSection({ id: Routes.SPOUSEINCOMEFILES, title: m.incomeFilesForm.general.sectionTitle, children: [ - buildMultiField({ + buildCustomField({ id: Routes.SPOUSEINCOMEFILES, title: m.incomeFilesForm.general.pageTitle, - description: m.incomeFilesForm.general.description, - children: [ - buildFileUploadField({ - id: Routes.SPOUSEINCOMEFILES, - title: '', - maxSize: FILE_SIZE_LIMIT, - uploadAccept: UPLOAD_ACCEPT, - }), - ], + component: 'IncomeFilesForm', }), ], }) diff --git a/libs/application/templates/financial-aid/src/forms/SpouseForm/spouseTaxReturnFilesSection.ts b/libs/application/templates/financial-aid/src/forms/SpouseForm/spouseTaxReturnFilesSection.ts index 8ee2894ae18d..20a6b88a1273 100644 --- a/libs/application/templates/financial-aid/src/forms/SpouseForm/spouseTaxReturnFilesSection.ts +++ b/libs/application/templates/financial-aid/src/forms/SpouseForm/spouseTaxReturnFilesSection.ts @@ -1,4 +1,5 @@ import { + buildCustomField, buildDescriptionField, buildFileUploadField, buildMultiField, @@ -7,6 +8,7 @@ import { } from '@island.is/application/core' import { FILE_SIZE_LIMIT, Routes, UPLOAD_ACCEPT } from '../../lib/constants' import * as m from '../../lib/messages' +import { ExternalData } from '@island.is/application/types' export const spouseTaxReturnFilesSection = buildSection({ condition: (_, externalData) => { @@ -23,38 +25,10 @@ export const spouseTaxReturnFilesSection = buildSection({ id: Routes.SPOUSETAXRETURNFILES, title: m.taxReturnForm.general.sectionTitle, children: [ - buildMultiField({ + buildCustomField({ id: Routes.SPOUSETAXRETURNFILES, title: m.taxReturnForm.general.pageTitle, - children: [ - buildDescriptionField({ - id: `${Routes.SPOUSETAXRETURNFILES}-description`, - title: '', - description: m.taxReturnForm.general.description, - marginBottom: 3, - }), - buildFileUploadField({ - id: Routes.SPOUSETAXRETURNFILES, - title: '', - uploadMultiple: true, - maxSize: FILE_SIZE_LIMIT, - uploadAccept: UPLOAD_ACCEPT, - }), - buildDescriptionField({ - id: `${Routes.SPOUSETAXRETURNFILES}.findTaxReturn`, - title: m.taxReturnForm.instructions.findTaxReturnTitle, - titleVariant: 'h3', - marginTop: 3, - description: m.taxReturnForm.instructions.findTaxReturn, - }), - buildDescriptionField({ - id: `${Routes.SPOUSETAXRETURNFILES}.findTaxReturn2`, - title: m.taxReturnForm.instructions.findDirectTaxPaymentsTitle, - titleVariant: 'h3', - marginTop: 3, - description: m.taxReturnForm.instructions.findDirectTaxPayments, - }), - ], + component: 'TaxReturnFilesForm', }), ], }) diff --git a/libs/application/templates/financial-aid/src/forms/SpouseSubmittedForm/MissingFiles.ts b/libs/application/templates/financial-aid/src/forms/SpouseSubmittedForm/MissingFiles.ts index 5aaf6f46699c..7fc1b6835e58 100644 --- a/libs/application/templates/financial-aid/src/forms/SpouseSubmittedForm/MissingFiles.ts +++ b/libs/application/templates/financial-aid/src/forms/SpouseSubmittedForm/MissingFiles.ts @@ -1,4 +1,5 @@ import { + buildCustomField, buildDescriptionField, buildFileUploadField, buildMultiField, @@ -19,26 +20,14 @@ export const MissingFiles = buildSection({ title: m.missingFiles.general.pageTitle, description: m.missingFiles.general.description, children: [ - buildFileUploadField({ - id: Routes.MISSINGFILESSPOUSE, - title: m.missingFiles.general.pageTitle, - uploadMultiple: true, - maxSize: FILE_SIZE_LIMIT, - uploadAccept: UPLOAD_ACCEPT, - }), - buildDescriptionField({ - id: `${Routes.MISSINGFILESSPOUSE}.description`, - title: m.missingFiles.comment.title, - marginTop: 4, - titleVariant: 'h3', - }), - buildTextField({ - id: 'fileUploadComment', - title: m.missingFiles.comment.inputTitle, - placeholder: m.missingFiles.comment.inputPlaceholder, - variant: 'textarea', - rows: 6, - }), + buildCustomField( + { + id: Routes.MISSINGFILES, + title: m.missingFiles.general.pageTitle, + component: 'MissingFiles', + }, + { isSpouse: true }, + ), buildSubmitField({ id: 'missingFilesSubmit', title: '', diff --git a/libs/application/templates/financial-aid/src/lib/FinancialAidTemplate.ts b/libs/application/templates/financial-aid/src/lib/FinancialAidTemplate.ts index 24cfc382cd6d..0c19192d553d 100644 --- a/libs/application/templates/financial-aid/src/lib/FinancialAidTemplate.ts +++ b/libs/application/templates/financial-aid/src/lib/FinancialAidTemplate.ts @@ -163,8 +163,8 @@ const FinancialAidTemplate: ApplicationTemplate< target: ApplicationStates.SUBMITTED, cond: hasActiveCurrentApplication, }, - { target: ApplicationStates.SPOUSE }, ], + EDIT: { target: ApplicationStates.SPOUSE }, }, }, [ApplicationStates.SPOUSE]: { diff --git a/libs/application/templates/financial-aid/src/lib/types.ts b/libs/application/templates/financial-aid/src/lib/types.ts index b344216b94ff..48f62d65f3ee 100644 --- a/libs/application/templates/financial-aid/src/lib/types.ts +++ b/libs/application/templates/financial-aid/src/lib/types.ts @@ -1,5 +1,6 @@ import { ApplicantChildCustodyInformation, + ApplicationAnswerFile, NationalRegistryIndividual, NationalRegistrySpouse, } from '@island.is/application/types' @@ -118,3 +119,13 @@ export enum SchoolType { ELEMENTARY = 'elementary', HIGHSCHOOL = 'highSchool', } + +export interface TaxData { + municipalitiesPersonalTaxReturn: { + personalTaxReturn: PersonalTaxReturn | null + } + municipalitiesDirectTaxPayments: { + directTaxPayments: DirectTaxPayment[] + success: boolean + } +} diff --git a/libs/application/templates/financial-aid/src/lib/utils.ts b/libs/application/templates/financial-aid/src/lib/utils.ts index 87d6eaf3d853..c4e3afe6080d 100644 --- a/libs/application/templates/financial-aid/src/lib/utils.ts +++ b/libs/application/templates/financial-aid/src/lib/utils.ts @@ -19,6 +19,7 @@ import { ApplicationStates } from './constants' import sortBy from 'lodash/sortBy' import * as m from '../lib/messages' import { AnswersSchema } from './dataSchema' +import { isRunningOnEnvironment } from '@island.is/shared/utils' const emailRegex = /^[\w!#$%&'*+/=?`{|}~^-]+(?:\.[\w!#$%&'*+/=?`{|}~^-]+)*@(?:[A-Z0-9-]+\.)+[A-Z]{2,6}$/i @@ -79,6 +80,13 @@ export function findFamilyStatus( } export function hasActiveCurrentApplication(context: ApplicationContext) { + // On prod there should only be one active application per user + // When working with gervimaður we might need to have many active applications + const isProd = isRunningOnEnvironment('production') + if (!isProd) { + return false + } + const { externalData } = context.application const currentApplication = getValueViaPath( externalData, From f8d2600d7f28ea98d93c184a56271a2e7ae34722 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gu=C3=B0j=C3=B3n=20Gu=C3=B0j=C3=B3nsson?= Date: Tue, 19 Nov 2024 18:13:08 +0000 Subject: [PATCH 57/66] feat(j-s): Send Indictment Case Defender Info to Robot (#16927) --- .../modules/case/internalCase.controller.ts | 25 ------- .../app/modules/case/internalCase.service.ts | 23 ------ ...ndictmentDefenderInfoToCourtGuards.spec.ts | 50 ------------- .../src/app/modules/court/court.service.ts | 21 +++--- .../modules/defendant/defendant.service.ts | 75 +++++++++++++++---- ...DefendantToCourt.dto.ts => deliver.dto.ts} | 2 +- .../defendant/internalDefendant.controller.ts | 43 ++++++++++- .../test/defendantController/update.spec.ts | 8 +- .../deliverDefendantToCourtGuards.spec.ts | 14 +++- .../deliverIndictmentDefenderToCourt.spec.ts} | 69 ++++++++++------- ...verIndictmentDefenderToCourtGuards.spec.ts | 26 +++++++ .../internalDefendantControllerGuards.spec.ts | 12 --- .../app/modules/subpoena/subpoena.service.ts | 2 - 13 files changed, 197 insertions(+), 173 deletions(-) delete mode 100644 apps/judicial-system/backend/src/app/modules/case/test/internalCaseController/deliverIndictmentDefenderInfoToCourtGuards.spec.ts rename apps/judicial-system/backend/src/app/modules/defendant/dto/{deliverDefendantToCourt.dto.ts => deliver.dto.ts} (85%) rename apps/judicial-system/backend/src/app/modules/{case/test/internalCaseController/deliverIndictmentDefenderInfoToCourt.spec.ts => defendant/test/internalDefendantController/deliverIndictmentDefenderToCourt.spec.ts} (56%) create mode 100644 apps/judicial-system/backend/src/app/modules/defendant/test/internalDefendantController/deliverIndictmentDefenderToCourtGuards.spec.ts diff --git a/apps/judicial-system/backend/src/app/modules/case/internalCase.controller.ts b/apps/judicial-system/backend/src/app/modules/case/internalCase.controller.ts index 2b03c85cdb96..0a7dce8d89b7 100644 --- a/apps/judicial-system/backend/src/app/modules/case/internalCase.controller.ts +++ b/apps/judicial-system/backend/src/app/modules/case/internalCase.controller.ts @@ -178,31 +178,6 @@ export class InternalCaseController { ) } - @UseGuards(CaseExistsGuard, new CaseTypeGuard(indictmentCases)) - @Post( - `case/:caseId/${ - messageEndpoint[MessageType.DELIVERY_TO_COURT_INDICTMENT_DEFENDER] - }`, - ) - @ApiOkResponse({ - type: DeliverResponse, - description: 'Delivers indictment case defender info to court', - }) - deliverIndictmentDefenderInfoToCourt( - @Param('caseId') caseId: string, - @CurrentCase() theCase: Case, - @Body() deliverDto: DeliverDto, - ): Promise { - this.logger.debug( - `Delivering the indictment defender info for case ${caseId} to court`, - ) - - return this.internalCaseService.deliverIndictmentDefenderInfoToCourt( - theCase, - deliverDto.user, - ) - } - @UseGuards(CaseExistsGuard, new CaseTypeGuard(indictmentCases)) @Post( `case/:caseId/${ diff --git a/apps/judicial-system/backend/src/app/modules/case/internalCase.service.ts b/apps/judicial-system/backend/src/app/modules/case/internalCase.service.ts index 9ed818c87312..c47fd37ca093 100644 --- a/apps/judicial-system/backend/src/app/modules/case/internalCase.service.ts +++ b/apps/judicial-system/backend/src/app/modules/case/internalCase.service.ts @@ -617,29 +617,6 @@ export class InternalCaseService { }) } - async deliverIndictmentDefenderInfoToCourt( - theCase: Case, - user: TUser, - ): Promise { - return this.courtService - .updateIndictmentCaseWithDefenderInfo( - user, - theCase.id, - theCase.court?.name, - theCase.courtCaseNumber, - theCase.defendants, - ) - .then(() => ({ delivered: true })) - .catch((reason) => { - this.logger.error( - `Failed to update indictment case ${theCase.id} with defender info`, - { reason }, - ) - - return { delivered: false } - }) - } - async deliverIndictmentAssignedRolesToCourt( theCase: Case, user: TUser, diff --git a/apps/judicial-system/backend/src/app/modules/case/test/internalCaseController/deliverIndictmentDefenderInfoToCourtGuards.spec.ts b/apps/judicial-system/backend/src/app/modules/case/test/internalCaseController/deliverIndictmentDefenderInfoToCourtGuards.spec.ts deleted file mode 100644 index 4fa794094133..000000000000 --- a/apps/judicial-system/backend/src/app/modules/case/test/internalCaseController/deliverIndictmentDefenderInfoToCourtGuards.spec.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { CanActivate } from '@nestjs/common' - -import { indictmentCases } from '@island.is/judicial-system/types' - -import { CaseExistsGuard } from '../../guards/caseExists.guard' -import { CaseTypeGuard } from '../../guards/caseType.guard' -import { InternalCaseController } from '../../internalCase.controller' - -describe('InternalCaseController - Deliver indictment defender info to court guards', () => { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - let guards: any[] - - beforeEach(() => { - guards = Reflect.getMetadata( - '__guards__', - InternalCaseController.prototype.deliverIndictmentDefenderInfoToCourt, - ) - }) - - it('should have two guards', () => { - expect(guards).toHaveLength(2) - }) - - describe('CaseExistsGuard', () => { - let guard: CanActivate - - beforeEach(() => { - guard = new guards[0]() - }) - - it('should have CaseExistsGuard as guard 1', () => { - expect(guard).toBeInstanceOf(CaseExistsGuard) - }) - }) - - describe('CaseTypeGuard', () => { - let guard: CanActivate - - beforeEach(() => { - guard = guards[1] - }) - - it('should have CaseTypeGuard as guard 2', () => { - expect(guard).toBeInstanceOf(CaseTypeGuard) - expect(guard).toEqual({ - allowedCaseTypes: indictmentCases, - }) - }) - }) -}) diff --git a/apps/judicial-system/backend/src/app/modules/court/court.service.ts b/apps/judicial-system/backend/src/app/modules/court/court.service.ts index d38a2abf3416..5a521901c9a6 100644 --- a/apps/judicial-system/backend/src/app/modules/court/court.service.ts +++ b/apps/judicial-system/backend/src/app/modules/court/court.service.ts @@ -24,7 +24,6 @@ import { isIndictmentCase, } from '@island.is/judicial-system/types' -import { Defendant } from '../defendant' import { EventService } from '../event' import { RobotLog } from './models/robotLog.model' import { courtModuleConfig } from './court.config' @@ -615,17 +614,17 @@ export class CourtService { caseId: string, courtName?: string, courtCaseNumber?: string, - defendants?: Defendant[], + defendantNationalId?: string, + defenderName?: string, + defenderEmail?: string, ): Promise { try { - const defendantInfo = defendants?.map((defendant) => ({ - nationalId: defendant.nationalId, - defenderName: defendant.defenderName, - defenderEmail: defendant.defenderEmail, - })) - - const subject = `${courtName} - ${courtCaseNumber} - verjanda upplýsingar` - const content = JSON.stringify({ defendants: defendantInfo, courtName }) + const subject = `${courtName} - ${courtCaseNumber} - verjandi varnaraðila` + const content = JSON.stringify({ + nationalId: defendantNationalId, + defenderName, + defenderEmail, + }) return this.sendToRobot( subject, @@ -635,7 +634,7 @@ export class CourtService { ) } catch (error) { this.eventService.postErrorEvent( - 'Failed to update indictment with defender info', + 'Failed to update indictment case with defender info', { caseId, actor: user.name, diff --git a/apps/judicial-system/backend/src/app/modules/defendant/defendant.service.ts b/apps/judicial-system/backend/src/app/modules/defendant/defendant.service.ts index 8906b2815629..b266c32f2a76 100644 --- a/apps/judicial-system/backend/src/app/modules/defendant/defendant.service.ts +++ b/apps/judicial-system/backend/src/app/modules/defendant/defendant.service.ts @@ -133,30 +133,42 @@ export class DefendantService { theCase: Case, updatedDefendant: Defendant, oldDefendant: Defendant, + user: User, ): Promise { if (!theCase.courtCaseNumber) { return } - if (updatedDefendant.isDefenderChoiceConfirmed) { + if ( + updatedDefendant.isDefenderChoiceConfirmed && + !oldDefendant.isDefenderChoiceConfirmed + ) { + // Defender choice was just confirmed by the court + const messages: Message[] = [ + { + type: MessageType.DELIVERY_TO_COURT_INDICTMENT_DEFENDER, + user, + caseId: theCase.id, + elementId: updatedDefendant.id, + }, + ] + if ( updatedDefendant.defenderChoice === DefenderChoice.CHOOSE || updatedDefendant.defenderChoice === DefenderChoice.DELEGATE ) { - // TODO: Update defender with robot if needed - // Defender was just confirmed by judge if (!oldDefendant.isDefenderChoiceConfirmed) { - await this.messageService.sendMessagesToQueue([ - { - type: MessageType.DEFENDANT_NOTIFICATION, - caseId: theCase.id, - body: { type: DefendantNotificationType.DEFENDER_ASSIGNED }, - elementId: updatedDefendant.id, - }, - ]) + messages.push({ + type: MessageType.DEFENDANT_NOTIFICATION, + caseId: theCase.id, + body: { type: DefendantNotificationType.DEFENDER_ASSIGNED }, + elementId: updatedDefendant.id, + }) } } + + return this.messageService.sendMessagesToQueue(messages) } } @@ -212,7 +224,7 @@ export class DefendantService { ) } - async updateRequestCase( + async updateRequestCaseDefendant( theCase: Case, defendant: Defendant, update: UpdateDefendantDto, @@ -234,10 +246,11 @@ export class DefendantService { return updatedDefendant } - async updateIndictmentCase( + async updateIndictmentCaseDefendant( theCase: Case, defendant: Defendant, update: UpdateDefendantDto, + user: User, ): Promise { const updatedDefendant = await this.updateDatabaseDefendant( theCase.id, @@ -249,6 +262,7 @@ export class DefendantService { theCase, updatedDefendant, defendant, + user, ) return updatedDefendant @@ -261,9 +275,14 @@ export class DefendantService { user: User, ): Promise { if (isIndictmentCase(theCase.type)) { - return this.updateIndictmentCase(theCase, defendant, update) + return this.updateIndictmentCaseDefendant( + theCase, + defendant, + update, + user, + ) } else { - return this.updateRequestCase(theCase, defendant, update, user) + return this.updateRequestCaseDefendant(theCase, defendant, update, user) } } @@ -429,4 +448,30 @@ export class DefendantService { return { delivered: false } }) } + + async deliverIndictmentDefenderToCourt( + theCase: Case, + defendant: Defendant, + user: User, + ): Promise { + return this.courtService + .updateIndictmentCaseWithDefenderInfo( + user, + theCase.id, + theCase.court?.name, + theCase.courtCaseNumber, + defendant.nationalId, + defendant.defenderName, + defendant.defenderEmail, + ) + .then(() => ({ delivered: true })) + .catch((reason) => { + this.logger.error( + `Failed to update defender info for defendant ${defendant.id} of indictment case ${theCase.id}`, + { reason }, + ) + + return { delivered: false } + }) + } } diff --git a/apps/judicial-system/backend/src/app/modules/defendant/dto/deliverDefendantToCourt.dto.ts b/apps/judicial-system/backend/src/app/modules/defendant/dto/deliver.dto.ts similarity index 85% rename from apps/judicial-system/backend/src/app/modules/defendant/dto/deliverDefendantToCourt.dto.ts rename to apps/judicial-system/backend/src/app/modules/defendant/dto/deliver.dto.ts index 7671fe935ed8..7595952ea24d 100644 --- a/apps/judicial-system/backend/src/app/modules/defendant/dto/deliverDefendantToCourt.dto.ts +++ b/apps/judicial-system/backend/src/app/modules/defendant/dto/deliver.dto.ts @@ -4,7 +4,7 @@ import { ApiProperty } from '@nestjs/swagger' import type { User } from '@island.is/judicial-system/types' -export class DeliverDefendantToCourtDto { +export class DeliverDto { @IsNotEmpty() @IsObject() @ApiProperty({ type: Object }) diff --git a/apps/judicial-system/backend/src/app/modules/defendant/internalDefendant.controller.ts b/apps/judicial-system/backend/src/app/modules/defendant/internalDefendant.controller.ts index f835ad07b5b1..92511ff786d0 100644 --- a/apps/judicial-system/backend/src/app/modules/defendant/internalDefendant.controller.ts +++ b/apps/judicial-system/backend/src/app/modules/defendant/internalDefendant.controller.ts @@ -17,10 +17,14 @@ import { messageEndpoint, MessageType, } from '@island.is/judicial-system/message' -import { indictmentCases } from '@island.is/judicial-system/types' +import { + indictmentCases, + investigationCases, + restrictionCases, +} from '@island.is/judicial-system/types' import { Case, CaseExistsGuard, CaseTypeGuard, CurrentCase } from '../case' -import { DeliverDefendantToCourtDto } from './dto/deliverDefendantToCourt.dto' +import { DeliverDto } from './dto/deliver.dto' import { InternalUpdateDefendantDto } from './dto/internalUpdateDefendant.dto' import { CurrentDefendant } from './guards/defendant.decorator' import { DefendantExistsGuard } from './guards/defendantExists.guard' @@ -38,7 +42,10 @@ export class InternalDefendantController { @Inject(LOGGER_PROVIDER) private readonly logger: Logger, ) {} - @UseGuards(DefendantExistsGuard) + @UseGuards( + new CaseTypeGuard([...restrictionCases, ...investigationCases]), + DefendantExistsGuard, + ) @Post( `${messageEndpoint[MessageType.DELIVERY_TO_COURT_DEFENDANT]}/:defendantId`, ) @@ -51,7 +58,7 @@ export class InternalDefendantController { @Param('defendantId') defendantId: string, @CurrentCase() theCase: Case, @CurrentDefendant() defendant: Defendant, - @Body() deliverDefendantToCourtDto: DeliverDefendantToCourtDto, + @Body() deliverDefendantToCourtDto: DeliverDto, ): Promise { this.logger.debug( `Delivering defendant ${defendantId} of case ${caseId} to court`, @@ -85,4 +92,32 @@ export class InternalDefendantController { updatedDefendantChoice, ) } + + @UseGuards(new CaseTypeGuard(indictmentCases), DefendantExistsGuard) + @Post( + `${ + messageEndpoint[MessageType.DELIVERY_TO_COURT_INDICTMENT_DEFENDER] + }/:defendantId`, + ) + @ApiOkResponse({ + type: DeliverResponse, + description: 'Delivers indictment case defender info to court', + }) + deliverIndictmentDefenderToCourt( + @Param('caseId') caseId: string, + @Param('defendantId') defendantId: string, + @CurrentCase() theCase: Case, + @CurrentDefendant() defendant: Defendant, + @Body() deliverDto: DeliverDto, + ): Promise { + this.logger.debug( + `Delivering defender info for defendant ${defendantId} of case ${caseId} to court`, + ) + + return this.defendantService.deliverIndictmentDefenderToCourt( + theCase, + defendant, + deliverDto.user, + ) + } } diff --git a/apps/judicial-system/backend/src/app/modules/defendant/test/defendantController/update.spec.ts b/apps/judicial-system/backend/src/app/modules/defendant/test/defendantController/update.spec.ts index d445408d802a..9b5d893e2bc1 100644 --- a/apps/judicial-system/backend/src/app/modules/defendant/test/defendantController/update.spec.ts +++ b/apps/judicial-system/backend/src/app/modules/defendant/test/defendantController/update.spec.ts @@ -185,8 +185,14 @@ describe('DefendantController - Update', () => { }) if (shouldSendEmail) { - it('should queue message if defender has been confirmed', () => { + it('should queue messages if defender has been confirmed', () => { expect(mockMessageService.sendMessagesToQueue).toHaveBeenCalledWith([ + { + type: MessageType.DELIVERY_TO_COURT_INDICTMENT_DEFENDER, + user, + caseId, + elementId: defendantId, + }, { type: MessageType.DEFENDANT_NOTIFICATION, caseId, diff --git a/apps/judicial-system/backend/src/app/modules/defendant/test/internalDefendantController/deliverDefendantToCourtGuards.spec.ts b/apps/judicial-system/backend/src/app/modules/defendant/test/internalDefendantController/deliverDefendantToCourtGuards.spec.ts index 69cc2065dd45..7bd257fe4077 100644 --- a/apps/judicial-system/backend/src/app/modules/defendant/test/internalDefendantController/deliverDefendantToCourtGuards.spec.ts +++ b/apps/judicial-system/backend/src/app/modules/defendant/test/internalDefendantController/deliverDefendantToCourtGuards.spec.ts @@ -1,3 +1,9 @@ +import { + investigationCases, + restrictionCases, +} from '@island.is/judicial-system/types' + +import { CaseTypeGuard } from '../../../case' import { DefendantExistsGuard } from '../../guards/defendantExists.guard' import { InternalDefendantController } from '../../internalDefendant.controller' @@ -13,7 +19,11 @@ describe('InternalDefendantController - Deliver defendant to court guards', () = }) it('should have the right guard configuration', () => { - expect(guards).toHaveLength(1) - expect(new guards[0]()).toBeInstanceOf(DefendantExistsGuard) + expect(guards).toHaveLength(2) + expect(guards[0]).toBeInstanceOf(CaseTypeGuard) + expect(guards[0]).toEqual({ + allowedCaseTypes: [...restrictionCases, ...investigationCases], + }) + expect(new guards[1]()).toBeInstanceOf(DefendantExistsGuard) }) }) diff --git a/apps/judicial-system/backend/src/app/modules/case/test/internalCaseController/deliverIndictmentDefenderInfoToCourt.spec.ts b/apps/judicial-system/backend/src/app/modules/defendant/test/internalDefendantController/deliverIndictmentDefenderToCourt.spec.ts similarity index 56% rename from apps/judicial-system/backend/src/app/modules/case/test/internalCaseController/deliverIndictmentDefenderInfoToCourt.spec.ts rename to apps/judicial-system/backend/src/app/modules/defendant/test/internalDefendantController/deliverIndictmentDefenderToCourt.spec.ts index f60117749089..5aa71689f3cf 100644 --- a/apps/judicial-system/backend/src/app/modules/case/test/internalCaseController/deliverIndictmentDefenderInfoToCourt.spec.ts +++ b/apps/judicial-system/backend/src/app/modules/defendant/test/internalDefendantController/deliverIndictmentDefenderToCourt.spec.ts @@ -2,11 +2,12 @@ import { uuid } from 'uuidv4' import { CaseType, User } from '@island.is/judicial-system/types' -import { createTestingCaseModule } from '../createTestingCaseModule' +import { createTestingDefendantModule } from '../createTestingDefendantModule' +import { Case } from '../../../case' import { CourtService } from '../../../court' import { DeliverDto } from '../../dto/deliver.dto' -import { Case } from '../../models/case.model' +import { Defendant } from '../../models/defendant.model' import { DeliverResponse } from '../../models/deliver.response' interface Then { @@ -16,56 +17,64 @@ interface Then { type GivenWhenThen = ( caseId: string, + defendantId: string, theCase: Case, + defendant: Defendant, body: DeliverDto, ) => Promise -describe('InternalCaseController - Deliver indictment defender info to court', () => { +describe('InternalDefendantController - Deliver indictment defender to court', () => { const user = { id: uuid() } as User const caseId = uuid() + const defendantId = uuid() const courtName = uuid() const courtCaseNumber = uuid() + const defendant = { + id: defendantId, + name: 'Test Ákærði', + nationalId: '1234567890', + defenderNationalId: '1234567899', + defenderName: 'Test Verjandi', + defenderEmail: 'defenderEmail', + } as Defendant const theCase = { id: caseId, type: CaseType.INDICTMENT, court: { name: courtName }, courtCaseNumber, - defendants: [ - { - name: 'Test Ákærði', - nationalId: '1234567890', - defenderNationalId: '1234567899', - defenderName: 'Test Verjandi', - defenderEmail: 'defenderEmail', - }, - { - name: 'Test Ákærði 2', - nationalId: '1234567891', - defenderNationalId: '1234567898', - defenderName: 'Test Verjandi 2', - defenderEmail: 'defenderEmail2', - }, - ], + defendants: [defendant], } as Case let mockCourtService: jest.Mocked let givenWhenThen: GivenWhenThen beforeEach(async () => { - const { courtService, internalCaseController } = - await createTestingCaseModule() + const { courtService, internalDefendantController } = + await createTestingDefendantModule() mockCourtService = courtService as jest.Mocked mockCourtService.updateIndictmentCaseWithDefenderInfo.mockResolvedValue( uuid(), ) - givenWhenThen = async (caseId: string, theCase: Case, body: DeliverDto) => { + givenWhenThen = async ( + caseId: string, + defendantId: string, + theCase: Case, + defendant: Defendant, + body: DeliverDto, + ) => { const then = {} as Then - await internalCaseController - .deliverIndictmentDefenderInfoToCourt(caseId, theCase, body) + await internalDefendantController + .deliverIndictmentDefenderToCourt( + caseId, + defendantId, + theCase, + defendant, + body, + ) .then((result) => (then.result = result)) .catch((error) => (then.error = error)) @@ -74,7 +83,9 @@ describe('InternalCaseController - Deliver indictment defender info to court', ( }) it('should deliver the defender information to court', async () => { - const then = await givenWhenThen(caseId, theCase, { user }) + const then = await givenWhenThen(caseId, defendantId, theCase, defendant, { + user, + }) expect( mockCourtService.updateIndictmentCaseWithDefenderInfo, @@ -83,7 +94,9 @@ describe('InternalCaseController - Deliver indictment defender info to court', ( caseId, courtName, courtCaseNumber, - theCase.defendants, + defendant.nationalId, + defendant.defenderName, + defendant.defenderEmail, ) expect(then.result).toEqual({ delivered: true }) @@ -96,7 +109,9 @@ describe('InternalCaseController - Deliver indictment defender info to court', ( error, ) - const then = await givenWhenThen(caseId, theCase, { user }) + const then = await givenWhenThen(caseId, defendantId, theCase, defendant, { + user, + }) expect(then.result).toEqual({ delivered: false }) }) diff --git a/apps/judicial-system/backend/src/app/modules/defendant/test/internalDefendantController/deliverIndictmentDefenderToCourtGuards.spec.ts b/apps/judicial-system/backend/src/app/modules/defendant/test/internalDefendantController/deliverIndictmentDefenderToCourtGuards.spec.ts new file mode 100644 index 000000000000..8e61e07902e8 --- /dev/null +++ b/apps/judicial-system/backend/src/app/modules/defendant/test/internalDefendantController/deliverIndictmentDefenderToCourtGuards.spec.ts @@ -0,0 +1,26 @@ +import { indictmentCases } from '@island.is/judicial-system/types' + +import { CaseTypeGuard } from '../../../case' +import { DefendantExistsGuard } from '../../guards/defendantExists.guard' +import { InternalDefendantController } from '../../internalDefendant.controller' + +describe('InternalDefendantController - Deliver indictment defender to court guards', () => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + let guards: any[] + + beforeEach(() => { + guards = Reflect.getMetadata( + '__guards__', + InternalDefendantController.prototype.deliverIndictmentDefenderToCourt, + ) + }) + + it('should have the right guard configuration', () => { + expect(guards).toHaveLength(2) + expect(guards[0]).toBeInstanceOf(CaseTypeGuard) + expect(guards[0]).toEqual({ + allowedCaseTypes: indictmentCases, + }) + expect(new guards[1]()).toBeInstanceOf(DefendantExistsGuard) + }) +}) diff --git a/apps/judicial-system/backend/src/app/modules/defendant/test/internalDefendantController/internalDefendantControllerGuards.spec.ts b/apps/judicial-system/backend/src/app/modules/defendant/test/internalDefendantController/internalDefendantControllerGuards.spec.ts index ae0ad03605fb..ea850b4407f1 100644 --- a/apps/judicial-system/backend/src/app/modules/defendant/test/internalDefendantController/internalDefendantControllerGuards.spec.ts +++ b/apps/judicial-system/backend/src/app/modules/defendant/test/internalDefendantController/internalDefendantControllerGuards.spec.ts @@ -41,16 +41,4 @@ describe('InternalDefendantController - guards', () => { expect(guard).toBeInstanceOf(CaseExistsGuard) }) }) - - describe('Method level guards', () => { - it('should have DefendantExistsGuard on deliverDefendantToCourt method', () => { - const methodGuards = Reflect.getMetadata( - '__guards__', - InternalDefendantController.prototype.deliverDefendantToCourt, - ) - expect(methodGuards).toHaveLength(1) - const guard = new methodGuards[0]() - expect(guard).toBeInstanceOf(DefendantExistsGuard) - }) - }) }) diff --git a/apps/judicial-system/backend/src/app/modules/subpoena/subpoena.service.ts b/apps/judicial-system/backend/src/app/modules/subpoena/subpoena.service.ts index 5259ec00dcb0..64fc48de8dc9 100644 --- a/apps/judicial-system/backend/src/app/modules/subpoena/subpoena.service.ts +++ b/apps/judicial-system/backend/src/app/modules/subpoena/subpoena.service.ts @@ -61,9 +61,7 @@ export const include: Includeable[] = [ @Injectable() export class SubpoenaService { constructor( - @InjectConnection() private readonly sequelize: Sequelize, @InjectModel(Subpoena) private readonly subpoenaModel: typeof Subpoena, - @InjectModel(Defendant) private readonly defendantModel: typeof Defendant, private readonly pdfService: PdfService, private readonly messageService: MessageService, @Inject(forwardRef(() => PoliceService)) From ad73e943397111086e68633d935b7e1eb466a4ff Mon Sep 17 00:00:00 2001 From: norda-gunni <161026627+norda-gunni@users.noreply.github.com> Date: Wed, 20 Nov 2024 09:15:15 +0000 Subject: [PATCH 58/66] fix(application-system): Add application-system grant to user-notification (#16948) * Add application-system grant to user-notification * chore: charts update dirty files --------- Co-authored-by: andes-it --- apps/services/user-notification/infra/user-notification.ts | 1 + charts/islandis/values.dev.yaml | 3 +++ charts/islandis/values.prod.yaml | 3 +++ charts/islandis/values.staging.yaml | 3 +++ .../services/user-notification-cleanup-worker/values.dev.yaml | 1 + .../services/user-notification-cleanup-worker/values.prod.yaml | 1 + .../user-notification-cleanup-worker/values.staging.yaml | 1 + charts/services/user-notification-worker/values.dev.yaml | 1 + charts/services/user-notification-worker/values.prod.yaml | 1 + charts/services/user-notification-worker/values.staging.yaml | 1 + charts/services/user-notification/values.dev.yaml | 1 + charts/services/user-notification/values.prod.yaml | 1 + charts/services/user-notification/values.staging.yaml | 1 + 13 files changed, 19 insertions(+) diff --git a/apps/services/user-notification/infra/user-notification.ts b/apps/services/user-notification/infra/user-notification.ts index 162a3a82d3d0..d71a994b67c6 100644 --- a/apps/services/user-notification/infra/user-notification.ts +++ b/apps/services/user-notification/infra/user-notification.ts @@ -111,6 +111,7 @@ export const userNotificationServiceSetup = (services: { 'nginx-ingress-internal', 'islandis', 'identity-server-delegation', + 'application-system', ) export const userNotificationWorkerSetup = (services: { diff --git a/charts/islandis/values.dev.yaml b/charts/islandis/values.dev.yaml index e0b594249329..cf7b2fabaa49 100644 --- a/charts/islandis/values.dev.yaml +++ b/charts/islandis/values.dev.yaml @@ -3092,6 +3092,7 @@ user-notification: - 'nginx-ingress-internal' - 'islandis' - 'identity-server-delegation' + - 'application-system' grantNamespacesEnabled: true healthCheck: liveness: @@ -3176,6 +3177,7 @@ user-notification-cleanup-worker: - 'nginx-ingress-internal' - 'islandis' - 'identity-server-delegation' + - 'application-system' grantNamespacesEnabled: true healthCheck: liveness: @@ -3291,6 +3293,7 @@ user-notification-worker: - 'nginx-ingress-internal' - 'islandis' - 'identity-server-delegation' + - 'application-system' grantNamespacesEnabled: true healthCheck: liveness: diff --git a/charts/islandis/values.prod.yaml b/charts/islandis/values.prod.yaml index 516fc583a8ec..66ded2ed398d 100644 --- a/charts/islandis/values.prod.yaml +++ b/charts/islandis/values.prod.yaml @@ -2968,6 +2968,7 @@ user-notification: - 'nginx-ingress-internal' - 'islandis' - 'identity-server-delegation' + - 'application-system' grantNamespacesEnabled: true healthCheck: liveness: @@ -3052,6 +3053,7 @@ user-notification-cleanup-worker: - 'nginx-ingress-internal' - 'islandis' - 'identity-server-delegation' + - 'application-system' grantNamespacesEnabled: true healthCheck: liveness: @@ -3167,6 +3169,7 @@ user-notification-worker: - 'nginx-ingress-internal' - 'islandis' - 'identity-server-delegation' + - 'application-system' grantNamespacesEnabled: true healthCheck: liveness: diff --git a/charts/islandis/values.staging.yaml b/charts/islandis/values.staging.yaml index a522f4f6e697..f0836bbb7380 100644 --- a/charts/islandis/values.staging.yaml +++ b/charts/islandis/values.staging.yaml @@ -2829,6 +2829,7 @@ user-notification: - 'nginx-ingress-internal' - 'islandis' - 'identity-server-delegation' + - 'application-system' grantNamespacesEnabled: true healthCheck: liveness: @@ -2913,6 +2914,7 @@ user-notification-cleanup-worker: - 'nginx-ingress-internal' - 'islandis' - 'identity-server-delegation' + - 'application-system' grantNamespacesEnabled: true healthCheck: liveness: @@ -3028,6 +3030,7 @@ user-notification-worker: - 'nginx-ingress-internal' - 'islandis' - 'identity-server-delegation' + - 'application-system' grantNamespacesEnabled: true healthCheck: liveness: diff --git a/charts/services/user-notification-cleanup-worker/values.dev.yaml b/charts/services/user-notification-cleanup-worker/values.dev.yaml index 0a120dea2a1a..9e558ec19c87 100644 --- a/charts/services/user-notification-cleanup-worker/values.dev.yaml +++ b/charts/services/user-notification-cleanup-worker/values.dev.yaml @@ -36,6 +36,7 @@ grantNamespaces: - 'nginx-ingress-internal' - 'islandis' - 'identity-server-delegation' + - 'application-system' grantNamespacesEnabled: true healthCheck: liveness: diff --git a/charts/services/user-notification-cleanup-worker/values.prod.yaml b/charts/services/user-notification-cleanup-worker/values.prod.yaml index d8fce489b1a7..43ba4e7bf3c7 100644 --- a/charts/services/user-notification-cleanup-worker/values.prod.yaml +++ b/charts/services/user-notification-cleanup-worker/values.prod.yaml @@ -36,6 +36,7 @@ grantNamespaces: - 'nginx-ingress-internal' - 'islandis' - 'identity-server-delegation' + - 'application-system' grantNamespacesEnabled: true healthCheck: liveness: diff --git a/charts/services/user-notification-cleanup-worker/values.staging.yaml b/charts/services/user-notification-cleanup-worker/values.staging.yaml index f2e7f59cd8c1..946da9daabf0 100644 --- a/charts/services/user-notification-cleanup-worker/values.staging.yaml +++ b/charts/services/user-notification-cleanup-worker/values.staging.yaml @@ -36,6 +36,7 @@ grantNamespaces: - 'nginx-ingress-internal' - 'islandis' - 'identity-server-delegation' + - 'application-system' grantNamespacesEnabled: true healthCheck: liveness: diff --git a/charts/services/user-notification-worker/values.dev.yaml b/charts/services/user-notification-worker/values.dev.yaml index 1bf7c01440c1..9b31936004f0 100644 --- a/charts/services/user-notification-worker/values.dev.yaml +++ b/charts/services/user-notification-worker/values.dev.yaml @@ -59,6 +59,7 @@ grantNamespaces: - 'nginx-ingress-internal' - 'islandis' - 'identity-server-delegation' + - 'application-system' grantNamespacesEnabled: true healthCheck: liveness: diff --git a/charts/services/user-notification-worker/values.prod.yaml b/charts/services/user-notification-worker/values.prod.yaml index 2ce3c5f1e8f6..505fd0fc1186 100644 --- a/charts/services/user-notification-worker/values.prod.yaml +++ b/charts/services/user-notification-worker/values.prod.yaml @@ -59,6 +59,7 @@ grantNamespaces: - 'nginx-ingress-internal' - 'islandis' - 'identity-server-delegation' + - 'application-system' grantNamespacesEnabled: true healthCheck: liveness: diff --git a/charts/services/user-notification-worker/values.staging.yaml b/charts/services/user-notification-worker/values.staging.yaml index 6016cd6dfdea..20c9089348c6 100644 --- a/charts/services/user-notification-worker/values.staging.yaml +++ b/charts/services/user-notification-worker/values.staging.yaml @@ -59,6 +59,7 @@ grantNamespaces: - 'nginx-ingress-internal' - 'islandis' - 'identity-server-delegation' + - 'application-system' grantNamespacesEnabled: true healthCheck: liveness: diff --git a/charts/services/user-notification/values.dev.yaml b/charts/services/user-notification/values.dev.yaml index de82ce62f772..31c759a45806 100644 --- a/charts/services/user-notification/values.dev.yaml +++ b/charts/services/user-notification/values.dev.yaml @@ -56,6 +56,7 @@ grantNamespaces: - 'nginx-ingress-internal' - 'islandis' - 'identity-server-delegation' + - 'application-system' grantNamespacesEnabled: true healthCheck: liveness: diff --git a/charts/services/user-notification/values.prod.yaml b/charts/services/user-notification/values.prod.yaml index 5431ce0f5d1c..b6d09de39826 100644 --- a/charts/services/user-notification/values.prod.yaml +++ b/charts/services/user-notification/values.prod.yaml @@ -56,6 +56,7 @@ grantNamespaces: - 'nginx-ingress-internal' - 'islandis' - 'identity-server-delegation' + - 'application-system' grantNamespacesEnabled: true healthCheck: liveness: diff --git a/charts/services/user-notification/values.staging.yaml b/charts/services/user-notification/values.staging.yaml index f4c312c8b9fa..e6dc9bc23264 100644 --- a/charts/services/user-notification/values.staging.yaml +++ b/charts/services/user-notification/values.staging.yaml @@ -56,6 +56,7 @@ grantNamespaces: - 'nginx-ingress-internal' - 'islandis' - 'identity-server-delegation' + - 'application-system' grantNamespacesEnabled: true healthCheck: liveness: From 369c8cc81db6a67527a751538307390aa035119a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=BAnar=20Vestmann?= <43557895+RunarVestmann@users.noreply.github.com> Date: Wed, 20 Nov 2024 10:18:57 +0000 Subject: [PATCH 59/66] chore(web): Move routes into a catch all route for organization pages (#16926) * Move routes into a catch all route * Move generic list fetching logic outside of route * Make sure that getProps isn't undefined * getProps is now required * ts-ignore * Change query prop naming * Add fallback for generic list item query slug * Update log statements --------- Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- .../index.ts | 7 +- apps/web/pages/en/o/[slug]/[subSlug]/index.ts | 13 - .../pages/en/o/[slug]/events/[eventSlug].ts | 12 - apps/web/pages/en/o/[slug]/events/index.ts | 12 - apps/web/pages/en/o/[slug]/index.ts | 11 - .../en/o/[slug]/news/[newsSlug]/index.tsx | 11 - apps/web/pages/en/o/[slug]/news/index.tsx | 11 - .../pages/en/o/[slug]/published-material.ts | 11 - apps/web/pages/s/[...slugs]/index.tsx | 251 ++++++++++++++++++ .../[subSlug]/[genericListItemSlug]/index.tsx | 115 -------- apps/web/pages/s/[slug]/[subSlug]/index.ts | 13 - .../pages/s/[slug]/frett/[newsSlug]/index.tsx | 11 - apps/web/pages/s/[slug]/frett/index.tsx | 11 - apps/web/pages/s/[slug]/index.ts | 11 - apps/web/pages/s/[slug]/utgefid-efni/index.ts | 11 - .../pages/s/[slug]/vidburdir/[eventSlug].ts | 12 - apps/web/pages/s/[slug]/vidburdir/index.ts | 12 - .../[subSlug]/[genericListItemSlug]/index.tsx | 4 +- .../screens/GenericList/GenericListItem.tsx | 3 +- .../OrganizationSubPageGenericListItem.tsx | 93 +++++++ apps/web/screens/Organization/Home/Home.tsx | 11 +- .../OrganizationEventArticle.tsx | 9 +- .../OrganizationEventList.tsx | 12 +- .../OrganizationNewsArticle.tsx | 49 ++-- .../OrganizationNews/OrganizationNewsList.tsx | 8 +- .../PublishedMaterial/PublishedMaterial.tsx | 7 +- apps/web/screens/Organization/SubPage.tsx | 4 +- apps/web/types.tsx | 6 +- 28 files changed, 408 insertions(+), 333 deletions(-) rename apps/web/pages/en/o/{[slug]/[subSlug]/[genericListItemSlug] => [...slugs]}/index.ts (82%) delete mode 100644 apps/web/pages/en/o/[slug]/[subSlug]/index.ts delete mode 100644 apps/web/pages/en/o/[slug]/events/[eventSlug].ts delete mode 100644 apps/web/pages/en/o/[slug]/events/index.ts delete mode 100644 apps/web/pages/en/o/[slug]/index.ts delete mode 100644 apps/web/pages/en/o/[slug]/news/[newsSlug]/index.tsx delete mode 100644 apps/web/pages/en/o/[slug]/news/index.tsx delete mode 100644 apps/web/pages/en/o/[slug]/published-material.ts create mode 100644 apps/web/pages/s/[...slugs]/index.tsx delete mode 100644 apps/web/pages/s/[slug]/[subSlug]/[genericListItemSlug]/index.tsx delete mode 100644 apps/web/pages/s/[slug]/[subSlug]/index.ts delete mode 100644 apps/web/pages/s/[slug]/frett/[newsSlug]/index.tsx delete mode 100644 apps/web/pages/s/[slug]/frett/index.tsx delete mode 100644 apps/web/pages/s/[slug]/index.ts delete mode 100644 apps/web/pages/s/[slug]/utgefid-efni/index.ts delete mode 100644 apps/web/pages/s/[slug]/vidburdir/[eventSlug].ts delete mode 100644 apps/web/pages/s/[slug]/vidburdir/index.ts create mode 100644 apps/web/screens/GenericList/OrganizationSubPageGenericListItem.tsx diff --git a/apps/web/pages/en/o/[slug]/[subSlug]/[genericListItemSlug]/index.ts b/apps/web/pages/en/o/[...slugs]/index.ts similarity index 82% rename from apps/web/pages/en/o/[slug]/[subSlug]/[genericListItemSlug]/index.ts rename to apps/web/pages/en/o/[...slugs]/index.ts index 64f34948d7ef..627c95b4f2c8 100644 --- a/apps/web/pages/en/o/[slug]/[subSlug]/[genericListItemSlug]/index.ts +++ b/apps/web/pages/en/o/[...slugs]/index.ts @@ -1,12 +1,11 @@ import withApollo from '@island.is/web/graphql/withApollo' import { withLocale } from '@island.is/web/i18n' -import { Component } from '@island.is/web/pages/s/[slug]/[subSlug]/[genericListItemSlug]' +import { Component } from '@island.is/web/pages/s/[...slugs]' import { getServerSidePropsWrapper } from '@island.is/web/utils/getServerSidePropsWrapper' - // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore make web strict const Screen = withApollo(withLocale('en')(Component)) -export default Screen - export const getServerSideProps = getServerSidePropsWrapper(Screen) + +export default Screen diff --git a/apps/web/pages/en/o/[slug]/[subSlug]/index.ts b/apps/web/pages/en/o/[slug]/[subSlug]/index.ts deleted file mode 100644 index c5541b519da9..000000000000 --- a/apps/web/pages/en/o/[slug]/[subSlug]/index.ts +++ /dev/null @@ -1,13 +0,0 @@ -import '@island.is/api/mocks' - -import withApollo from '@island.is/web/graphql/withApollo' -import { withLocale } from '@island.is/web/i18n' -import subPage from '@island.is/web/screens/Organization/SubPage' -import { getServerSidePropsWrapper } from '@island.is/web/utils/getServerSidePropsWrapper' -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore make web strict -const Screen = withApollo(withLocale('en')(subPage)) - -export default Screen - -export const getServerSideProps = getServerSidePropsWrapper(Screen) diff --git a/apps/web/pages/en/o/[slug]/events/[eventSlug].ts b/apps/web/pages/en/o/[slug]/events/[eventSlug].ts deleted file mode 100644 index a863c57b6b53..000000000000 --- a/apps/web/pages/en/o/[slug]/events/[eventSlug].ts +++ /dev/null @@ -1,12 +0,0 @@ -import withApollo from '@island.is/web/graphql/withApollo' -import { withLocale } from '@island.is/web/i18n' -import OrganizationEventArticle from '@island.is/web/screens/Organization/OrganizationEvents/OrganizationEventArticle' -import { getServerSidePropsWrapper } from '@island.is/web/utils/getServerSidePropsWrapper' - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore make web strict -const Screen = withApollo(withLocale('en')(OrganizationEventArticle)) - -export default Screen - -export const getServerSideProps = getServerSidePropsWrapper(Screen) diff --git a/apps/web/pages/en/o/[slug]/events/index.ts b/apps/web/pages/en/o/[slug]/events/index.ts deleted file mode 100644 index 72fac8ab4d2d..000000000000 --- a/apps/web/pages/en/o/[slug]/events/index.ts +++ /dev/null @@ -1,12 +0,0 @@ -import withApollo from '@island.is/web/graphql/withApollo' -import { withLocale } from '@island.is/web/i18n' -import OrganizationEventList from '@island.is/web/screens/Organization/OrganizationEvents/OrganizationEventList' -import { getServerSidePropsWrapper } from '@island.is/web/utils/getServerSidePropsWrapper' - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore make web strict -const Screen = withApollo(withLocale('en')(OrganizationEventList)) - -export default Screen - -export const getServerSideProps = getServerSidePropsWrapper(Screen) diff --git a/apps/web/pages/en/o/[slug]/index.ts b/apps/web/pages/en/o/[slug]/index.ts deleted file mode 100644 index ee4fa0ec953a..000000000000 --- a/apps/web/pages/en/o/[slug]/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -import withApollo from '@island.is/web/graphql/withApollo' -import { withLocale } from '@island.is/web/i18n' -import syslumenn from '@island.is/web/screens/Organization/Home' -import { getServerSidePropsWrapper } from '@island.is/web/utils/getServerSidePropsWrapper' -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore make web strict -const Screen = withApollo(withLocale('en')(syslumenn)) - -export default Screen - -export const getServerSideProps = getServerSidePropsWrapper(Screen) diff --git a/apps/web/pages/en/o/[slug]/news/[newsSlug]/index.tsx b/apps/web/pages/en/o/[slug]/news/[newsSlug]/index.tsx deleted file mode 100644 index 91a2edb65454..000000000000 --- a/apps/web/pages/en/o/[slug]/news/[newsSlug]/index.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import withApollo from '@island.is/web/graphql/withApollo' -import { withLocale } from '@island.is/web/i18n' -import OrganizationNewsArticle from '@island.is/web/screens/Organization/OrganizationNews/OrganizationNewsArticle' -import { getServerSidePropsWrapper } from '@island.is/web/utils/getServerSidePropsWrapper' -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore make web strict -const Screen = withApollo(withLocale('en')(OrganizationNewsArticle)) - -export default Screen - -export const getServerSideProps = getServerSidePropsWrapper(Screen) diff --git a/apps/web/pages/en/o/[slug]/news/index.tsx b/apps/web/pages/en/o/[slug]/news/index.tsx deleted file mode 100644 index e8042761807b..000000000000 --- a/apps/web/pages/en/o/[slug]/news/index.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import withApollo from '@island.is/web/graphql/withApollo' -import { withLocale } from '@island.is/web/i18n' -import OrganizationNewsList from '@island.is/web/screens/Organization/OrganizationNews/OrganizationNewsList' -import { getServerSidePropsWrapper } from '@island.is/web/utils/getServerSidePropsWrapper' -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore make web strict -const Screen = withApollo(withLocale('en')(OrganizationNewsList)) - -export default Screen - -export const getServerSideProps = getServerSidePropsWrapper(Screen) diff --git a/apps/web/pages/en/o/[slug]/published-material.ts b/apps/web/pages/en/o/[slug]/published-material.ts deleted file mode 100644 index 0a7382896313..000000000000 --- a/apps/web/pages/en/o/[slug]/published-material.ts +++ /dev/null @@ -1,11 +0,0 @@ -import withApollo from '@island.is/web/graphql/withApollo' -import { withLocale } from '@island.is/web/i18n' -import PublishedMaterial from '@island.is/web/screens/Organization/PublishedMaterial' -import { getServerSidePropsWrapper } from '@island.is/web/utils/getServerSidePropsWrapper' -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore make web strict -const Screen = withApollo(withLocale('en')(PublishedMaterial)) - -export default Screen - -export const getServerSideProps = getServerSidePropsWrapper(Screen) diff --git a/apps/web/pages/s/[...slugs]/index.tsx b/apps/web/pages/s/[...slugs]/index.tsx new file mode 100644 index 000000000000..554ac08cc02d --- /dev/null +++ b/apps/web/pages/s/[...slugs]/index.tsx @@ -0,0 +1,251 @@ +import { type FC } from 'react' + +import withApollo from '@island.is/web/graphql/withApollo' +import { withLocale } from '@island.is/web/i18n' +import type { LayoutProps } from '@island.is/web/layouts/main' +import OrganizationSubPageGenericListItem, { + OrganizationSubPageGenericListItemProps, +} from '@island.is/web/screens/GenericList/OrganizationSubPageGenericListItem' +import Home, { + type HomeProps, +} from '@island.is/web/screens/Organization/Home/Home' +import OrganizationEventArticle, { + type OrganizationEventArticleProps, +} from '@island.is/web/screens/Organization/OrganizationEvents/OrganizationEventArticle' +import OrganizationEventList, { + type OrganizationEventListProps, +} from '@island.is/web/screens/Organization/OrganizationEvents/OrganizationEventList' +import OrganizationNewsArticle, { + type OrganizationNewsArticleProps, +} from '@island.is/web/screens/Organization/OrganizationNews/OrganizationNewsArticle' +import OrganizationNewsList, { + type OrganizationNewsListProps, +} from '@island.is/web/screens/Organization/OrganizationNews/OrganizationNewsList' +import PublishedMaterial, { + type PublishedMaterialProps, +} from '@island.is/web/screens/Organization/PublishedMaterial/PublishedMaterial' +import SubPage, { + type SubPageProps, +} from '@island.is/web/screens/Organization/SubPage' +import { Screen as ScreenType } from '@island.is/web/types' +import { CustomNextError } from '@island.is/web/units/errors' +import { getServerSidePropsWrapper } from '@island.is/web/utils/getServerSidePropsWrapper' + +enum PageType { + FRONTPAGE = 'frontpage', + SUBPAGE = 'subpage', + ALL_NEWS = 'news', + PUBLISHED_MATERIAL = 'published-material', + ALL_EVENTS = 'events', + NEWS_DETAILS = 'news-details', + EVENT_DETAILS = 'event-details', + GENERIC_LIST_ITEM = 'generic-list-item', +} + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +const pageMap: Record> = { + [PageType.FRONTPAGE]: (props) => , + [PageType.SUBPAGE]: (props) => , + [PageType.ALL_NEWS]: (props) => , + [PageType.PUBLISHED_MATERIAL]: (props) => , + [PageType.ALL_EVENTS]: (props) => , + [PageType.NEWS_DETAILS]: (props) => , + [PageType.EVENT_DETAILS]: (props) => , + [PageType.GENERIC_LIST_ITEM]: (props) => ( + + ), +} + +interface Props { + page: + | { + type: PageType.FRONTPAGE + props: { + layoutProps: LayoutProps + componentProps: HomeProps + } + } + | { + type: PageType.SUBPAGE + props: { + layoutProps: LayoutProps + componentProps: SubPageProps + } + } + | { + type: PageType.ALL_NEWS + props: { + layoutProps: LayoutProps + componentProps: OrganizationNewsListProps + } + } + | { + type: PageType.PUBLISHED_MATERIAL + props: { + layoutProps: LayoutProps + componentProps: PublishedMaterialProps + } + } + | { + type: PageType.ALL_EVENTS + props: { + layoutProps: LayoutProps + componentProps: OrganizationEventListProps + } + } + | { + type: PageType.NEWS_DETAILS + props: { + layoutProps: LayoutProps + componentProps: OrganizationNewsArticleProps + } + } + | { + type: PageType.EVENT_DETAILS + props: { + layoutProps: LayoutProps + componentProps: OrganizationEventArticleProps + } + } + | { + type: PageType.GENERIC_LIST_ITEM + props: OrganizationSubPageGenericListItemProps + } +} + +export const Component: ScreenType = ({ page }: Props) => { + return pageMap[page.type](page.props) +} + +Component.getProps = async (context) => { + const slugs = context.query.slugs as string[] + const locale = context.locale || 'is' + + // Frontpage + if (slugs.length === 1) { + return { + page: { + type: PageType.FRONTPAGE, + props: await Home.getProps(context), + }, + } + } + + if (slugs.length === 2) { + if (locale !== 'is') { + if (slugs[1] === 'news') { + return { + page: { + type: PageType.ALL_NEWS, + props: await OrganizationNewsList.getProps(context), + }, + } + } + if (slugs[1] === 'events') { + return { + page: { + type: PageType.ALL_EVENTS, + props: await OrganizationEventList.getProps(context), + }, + } + } + if (slugs[1] === 'published-material') { + return { + page: { + type: PageType.PUBLISHED_MATERIAL, + props: await PublishedMaterial.getProps(context), + }, + } + } + } else { + if (slugs[1] === 'frett') { + return { + page: { + type: PageType.ALL_NEWS, + props: await OrganizationNewsList.getProps(context), + }, + } + } + if (slugs[1] === 'vidburdir') { + return { + page: { + type: PageType.ALL_EVENTS, + props: await OrganizationEventList.getProps(context), + }, + } + } + if (slugs[1] === 'utgefid-efni') { + return { + page: { + type: PageType.PUBLISHED_MATERIAL, + props: await PublishedMaterial.getProps(context), + }, + } + } + } + + // Subpage + const props = await SubPage.getProps(context) + return { + page: { + type: PageType.SUBPAGE, + props, + }, + } + } + + if (slugs.length === 3) { + if (locale !== 'is') { + if (slugs[1] === 'news') { + return { + page: { + type: PageType.NEWS_DETAILS, + props: await OrganizationNewsArticle.getProps(context), + }, + } + } + if (slugs[1] === 'events') { + return { + page: { + type: PageType.EVENT_DETAILS, + props: await OrganizationEventArticle.getProps(context), + }, + } + } + } else { + if (slugs[1] === 'frett') { + return { + page: { + type: PageType.NEWS_DETAILS, + props: await OrganizationNewsArticle.getProps(context), + }, + } + } + if (slugs[1] === 'vidburdir') { + return { + page: { + type: PageType.EVENT_DETAILS, + props: await OrganizationEventArticle.getProps(context), + }, + } + } + } + + return { + page: { + type: PageType.GENERIC_LIST_ITEM, + props: await OrganizationSubPageGenericListItem.getProps(context), + }, + } + } + + throw new CustomNextError(404) +} + +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore make web strict +const Screen = withApollo(withLocale('is')(Component)) + +export const getServerSideProps = getServerSidePropsWrapper(Screen) + +export default Screen diff --git a/apps/web/pages/s/[slug]/[subSlug]/[genericListItemSlug]/index.tsx b/apps/web/pages/s/[slug]/[subSlug]/[genericListItemSlug]/index.tsx deleted file mode 100644 index 26366989d023..000000000000 --- a/apps/web/pages/s/[slug]/[subSlug]/[genericListItemSlug]/index.tsx +++ /dev/null @@ -1,115 +0,0 @@ -import { useMemo } from 'react' -import { useRouter } from 'next/router' - -import withApollo from '@island.is/web/graphql/withApollo' -import { useLinkResolver } from '@island.is/web/hooks' -import { useI18n, withLocale } from '@island.is/web/i18n' -import type { LayoutProps } from '@island.is/web/layouts/main' -import GenericListItemPage, { - type GenericListItemPageProps, -} from '@island.is/web/screens/GenericList/GenericListItem' -import SubPageLayout, { - type SubPageProps, -} from '@island.is/web/screens/Organization/SubPage' -import type { Screen as ScreenType } from '@island.is/web/types' -import { CustomNextError } from '@island.is/web/units/errors' -import { getServerSidePropsWrapper } from '@island.is/web/utils/getServerSidePropsWrapper' - -interface ComponentProps { - parentProps: { - layoutProps: LayoutProps - componentProps: SubPageProps - } - genericListItemProps: GenericListItemPageProps -} - -export const Component: ScreenType = ({ - parentProps, - genericListItemProps, -}) => { - const { activeLocale } = useI18n() - const router = useRouter() - const { linkResolver } = useLinkResolver() - const backLinkUrl = useMemo(() => { - const pathname = new URL(router.asPath, 'https://island.is').pathname - return pathname.slice(0, pathname.lastIndexOf('/')) - }, [router.asPath]) - - const { organizationPage, subpage } = parentProps.componentProps - - return ( - - ), - customBreadcrumbItems: [ - { - title: 'Ísland.is', - href: linkResolver('homepage').href, - }, - { - title: organizationPage?.title ?? '', - href: linkResolver('organizationpage', [ - organizationPage?.slug ?? '', - ]).href, - }, - { - title: subpage?.title ?? '', - href: backLinkUrl, - isTag: true, - }, - ], - backLink: { - text: activeLocale === 'is' ? 'Til baka' : 'Go back', - url: backLinkUrl, - }, - customContentfulIds: [ - organizationPage?.id, - subpage?.id, - genericListItemProps.item.id, - ], - }} - /> - ) -} - -Component.getProps = async (ctx) => { - const [parentProps, genericListItemProps] = await Promise.all([ - SubPageLayout.getProps?.(ctx), - GenericListItemPage.getProps?.(ctx), - ]) - - if (!parentProps) { - throw new CustomNextError( - 404, - 'Could not fetch subpage layout for generic list item', - ) - } - if (!genericListItemProps) { - throw new CustomNextError(404, 'Could not fetch generic list item props') - } - - return { - parentProps, - genericListItemProps, - } -} - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore make web strict -const Screen = withApollo(withLocale('is')(Component)) - -export default Screen - -export const getServerSideProps = getServerSidePropsWrapper(Screen) diff --git a/apps/web/pages/s/[slug]/[subSlug]/index.ts b/apps/web/pages/s/[slug]/[subSlug]/index.ts deleted file mode 100644 index c1c68debcf44..000000000000 --- a/apps/web/pages/s/[slug]/[subSlug]/index.ts +++ /dev/null @@ -1,13 +0,0 @@ -import '@island.is/api/mocks' - -import withApollo from '@island.is/web/graphql/withApollo' -import { withLocale } from '@island.is/web/i18n' -import subPage from '@island.is/web/screens/Organization/SubPage' -import { getServerSidePropsWrapper } from '@island.is/web/utils/getServerSidePropsWrapper' -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore make web strict -const Screen = withApollo(withLocale('is')(subPage)) - -export default Screen - -export const getServerSideProps = getServerSidePropsWrapper(Screen) diff --git a/apps/web/pages/s/[slug]/frett/[newsSlug]/index.tsx b/apps/web/pages/s/[slug]/frett/[newsSlug]/index.tsx deleted file mode 100644 index 6698e1496af8..000000000000 --- a/apps/web/pages/s/[slug]/frett/[newsSlug]/index.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import withApollo from '@island.is/web/graphql/withApollo' -import { withLocale } from '@island.is/web/i18n' -import OrganizationNewsArticle from '@island.is/web/screens/Organization/OrganizationNews/OrganizationNewsArticle' -import { getServerSidePropsWrapper } from '@island.is/web/utils/getServerSidePropsWrapper' -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore make web strict -const Screen = withApollo(withLocale('is')(OrganizationNewsArticle)) - -export default Screen - -export const getServerSideProps = getServerSidePropsWrapper(Screen) diff --git a/apps/web/pages/s/[slug]/frett/index.tsx b/apps/web/pages/s/[slug]/frett/index.tsx deleted file mode 100644 index a15bef2828aa..000000000000 --- a/apps/web/pages/s/[slug]/frett/index.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import withApollo from '@island.is/web/graphql/withApollo' -import { withLocale } from '@island.is/web/i18n' -import OrganizationNewsList from '@island.is/web/screens/Organization/OrganizationNews/OrganizationNewsList' -import { getServerSidePropsWrapper } from '@island.is/web/utils/getServerSidePropsWrapper' -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore make web strict -const Screen = withApollo(withLocale('is')(OrganizationNewsList)) - -export default Screen - -export const getServerSideProps = getServerSidePropsWrapper(Screen) diff --git a/apps/web/pages/s/[slug]/index.ts b/apps/web/pages/s/[slug]/index.ts deleted file mode 100644 index e70c074e89f7..000000000000 --- a/apps/web/pages/s/[slug]/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -import withApollo from '@island.is/web/graphql/withApollo' -import { withLocale } from '@island.is/web/i18n' -import organizationPage from '@island.is/web/screens/Organization/Home' -import { getServerSidePropsWrapper } from '@island.is/web/utils/getServerSidePropsWrapper' -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore make web strict -const Screen = withApollo(withLocale('is')(organizationPage)) - -export default Screen - -export const getServerSideProps = getServerSidePropsWrapper(Screen) diff --git a/apps/web/pages/s/[slug]/utgefid-efni/index.ts b/apps/web/pages/s/[slug]/utgefid-efni/index.ts deleted file mode 100644 index 7962af216a5c..000000000000 --- a/apps/web/pages/s/[slug]/utgefid-efni/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -import withApollo from '@island.is/web/graphql/withApollo' -import { withLocale } from '@island.is/web/i18n' -import PublishedMaterial from '@island.is/web/screens/Organization/PublishedMaterial' -import { getServerSidePropsWrapper } from '@island.is/web/utils/getServerSidePropsWrapper' -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore make web strict -const Screen = withApollo(withLocale('is')(PublishedMaterial)) - -export default Screen - -export const getServerSideProps = getServerSidePropsWrapper(Screen) diff --git a/apps/web/pages/s/[slug]/vidburdir/[eventSlug].ts b/apps/web/pages/s/[slug]/vidburdir/[eventSlug].ts deleted file mode 100644 index bab2c662551c..000000000000 --- a/apps/web/pages/s/[slug]/vidburdir/[eventSlug].ts +++ /dev/null @@ -1,12 +0,0 @@ -import withApollo from '@island.is/web/graphql/withApollo' -import { withLocale } from '@island.is/web/i18n' -import OrganizationEventArticle from '@island.is/web/screens/Organization/OrganizationEvents/OrganizationEventArticle' -import { getServerSidePropsWrapper } from '@island.is/web/utils/getServerSidePropsWrapper' - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore make web strict -const Screen = withApollo(withLocale('is')(OrganizationEventArticle)) - -export default Screen - -export const getServerSideProps = getServerSidePropsWrapper(Screen) diff --git a/apps/web/pages/s/[slug]/vidburdir/index.ts b/apps/web/pages/s/[slug]/vidburdir/index.ts deleted file mode 100644 index 52084401fa70..000000000000 --- a/apps/web/pages/s/[slug]/vidburdir/index.ts +++ /dev/null @@ -1,12 +0,0 @@ -import withApollo from '@island.is/web/graphql/withApollo' -import { withLocale } from '@island.is/web/i18n' -import OrganizationEventList from '@island.is/web/screens/Organization/OrganizationEvents/OrganizationEventList' -import { getServerSidePropsWrapper } from '@island.is/web/utils/getServerSidePropsWrapper' - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore make web strict -const Screen = withApollo(withLocale('is')(OrganizationEventList)) - -export default Screen - -export const getServerSideProps = getServerSidePropsWrapper(Screen) diff --git a/apps/web/pages/v/[slug]/[subSlug]/[genericListItemSlug]/index.tsx b/apps/web/pages/v/[slug]/[subSlug]/[genericListItemSlug]/index.tsx index 94a01d0664e6..bdb7678b50cf 100644 --- a/apps/web/pages/v/[slug]/[subSlug]/[genericListItemSlug]/index.tsx +++ b/apps/web/pages/v/[slug]/[subSlug]/[genericListItemSlug]/index.tsx @@ -92,8 +92,8 @@ export const Component: ScreenType = ({ Component.getProps = async (ctx) => { const [parentProps, genericListItemProps] = await Promise.all([ - SubPageLayout.getProps?.(ctx), - GenericListItemPage.getProps?.(ctx), + SubPageLayout.getProps(ctx), + GenericListItemPage.getProps(ctx), ]) if (!parentProps) { diff --git a/apps/web/screens/GenericList/GenericListItem.tsx b/apps/web/screens/GenericList/GenericListItem.tsx index 2cea5ee87c74..c264ad93b4ad 100644 --- a/apps/web/screens/GenericList/GenericListItem.tsx +++ b/apps/web/screens/GenericList/GenericListItem.tsx @@ -49,7 +49,8 @@ const GenericListItemPage: Screen = ({ } GenericListItemPage.getProps = async ({ apolloClient, query, locale }) => { - const slug = query.genericListItemSlug + const slug = + (query.slugs as string[])?.[2] ?? (query.genericListItemSlug as string) if (!slug) { throw new CustomNextError( diff --git a/apps/web/screens/GenericList/OrganizationSubPageGenericListItem.tsx b/apps/web/screens/GenericList/OrganizationSubPageGenericListItem.tsx new file mode 100644 index 000000000000..7bba1474eef6 --- /dev/null +++ b/apps/web/screens/GenericList/OrganizationSubPageGenericListItem.tsx @@ -0,0 +1,93 @@ +import { useMemo } from 'react' +import { useRouter } from 'next/router' + +import { useLinkResolver } from '@island.is/web/hooks' +import { useI18n } from '@island.is/web/i18n' +import { type LayoutProps, withMainLayout } from '@island.is/web/layouts/main' +import { Screen } from '@island.is/web/types' + +import SubPage, { type SubPageProps } from '../Organization/SubPage' +import GenericListItemPage, { + type GenericListItemPageProps, +} from './GenericListItem' + +export interface OrganizationSubPageGenericListItemProps { + parentProps: { + layoutProps: LayoutProps + componentProps: SubPageProps + } + genericListItemProps: GenericListItemPageProps +} + +const OrganizationSubPageGenericListItem: Screen< + OrganizationSubPageGenericListItemProps +> = (props) => { + const { organizationPage, subpage } = props.parentProps.componentProps + const router = useRouter() + const { linkResolver } = useLinkResolver() + const backLinkUrl = useMemo(() => { + const pathname = new URL(router.asPath, 'https://island.is').pathname + return pathname.slice(0, pathname.lastIndexOf('/')) + }, [router.asPath]) + const { activeLocale } = useI18n() + return ( + + ), + customBreadcrumbItems: [ + { + title: 'Ísland.is', + href: linkResolver('homepage').href, + }, + { + title: organizationPage?.title ?? '', + href: linkResolver('organizationpage', [ + organizationPage?.slug ?? '', + ]).href, + }, + { + title: subpage?.title ?? '', + href: backLinkUrl, + isTag: true, + }, + ], + backLink: { + text: activeLocale === 'is' ? 'Til baka' : 'Go back', + url: backLinkUrl, + }, + customContentfulIds: [ + organizationPage?.id, + subpage?.id, + props.genericListItemProps.item.id, + ], + }} + /> + ) +} + +OrganizationSubPageGenericListItem.getProps = async (context) => { + const [subPageProps, genericListItemProps] = await Promise.all([ + SubPage.getProps(context), + GenericListItemPage.getProps(context), + ]) + return { + parentProps: subPageProps, + genericListItemProps, + } as OrganizationSubPageGenericListItemProps +} + +export default OrganizationSubPageGenericListItem diff --git a/apps/web/screens/Organization/Home/Home.tsx b/apps/web/screens/Organization/Home/Home.tsx index e1f10a1ace18..7cea582b6055 100644 --- a/apps/web/screens/Organization/Home/Home.tsx +++ b/apps/web/screens/Organization/Home/Home.tsx @@ -50,11 +50,11 @@ const parseOrganizationLinkHref = (organization: Query['getOrganization']) => { return link } -const OrganizationHomePage: Screen = ({ +const OrganizationHomePage = ({ organizationPage, organization, namespace, -}) => { +}: HomeProps) => { const n = useNamespace(namespace) useContentfulId(organizationPage?.id) const { linkResolver } = useLinkResolver() @@ -228,7 +228,7 @@ const OrganizationHomePage: Screen = ({ ) } -interface HomeProps { +export interface HomeProps { organizationPage?: Query['getOrganizationPage'] organization?: Query['getOrganization'] namespace: Record @@ -260,6 +260,7 @@ const Home: Screen = ({ } Home.getProps = async ({ apolloClient, locale, query }) => { + const slug = (query.slugs as string[])[0] const [ { data: { getOrganizationPage }, @@ -273,7 +274,7 @@ Home.getProps = async ({ apolloClient, locale, query }) => { query: GET_ORGANIZATION_PAGE_QUERY, variables: { input: { - slug: query.slug as string, + slug, lang: locale as ContentLanguage, }, }, @@ -282,7 +283,7 @@ Home.getProps = async ({ apolloClient, locale, query }) => { query: GET_ORGANIZATION_QUERY, variables: { input: { - slug: query.slug as string, + slug, lang: locale as ContentLanguage, }, }, diff --git a/apps/web/screens/Organization/OrganizationEvents/OrganizationEventArticle.tsx b/apps/web/screens/Organization/OrganizationEvents/OrganizationEventArticle.tsx index 84b1073b9929..ba876f34926b 100644 --- a/apps/web/screens/Organization/OrganizationEvents/OrganizationEventArticle.tsx +++ b/apps/web/screens/Organization/OrganizationEvents/OrganizationEventArticle.tsx @@ -1,6 +1,5 @@ import { useEffect, useState } from 'react' import cn from 'classnames' -import type { Locale } from '@island.is/shared/types' import { useRouter } from 'next/router' import { EmbeddedVideo, Image } from '@island.is/island-ui/contentful' @@ -14,6 +13,7 @@ import { Stack, Text, } from '@island.is/island-ui/core' +import type { Locale } from '@island.is/shared/types' import { EventLocation, EventTime, @@ -133,7 +133,7 @@ const EventInformationBox = ({ ) } -interface OrganizationEventArticleProps { +export interface OrganizationEventArticleProps { organizationPage: OrganizationPage event: EventModel namespace: Record @@ -285,13 +285,14 @@ const OrganizationEventArticle: Screen = ({ ) } OrganizationEventArticle.getProps = async ({ apolloClient, query, locale }) => { + const [organizationPageSlug, _, eventSlug] = query.slugs as string[] const [organizationPageResponse, eventResponse, namespace] = await Promise.all([ apolloClient.query({ query: GET_ORGANIZATION_PAGE_QUERY, variables: { input: { - slug: query.slug as string, + slug: organizationPageSlug, lang: locale as Locale, }, }, @@ -300,7 +301,7 @@ OrganizationEventArticle.getProps = async ({ apolloClient, query, locale }) => { query: GET_SINGLE_EVENT_QUERY, variables: { input: { - slug: query.eventSlug as string, + slug: eventSlug, lang: locale as Locale, }, }, diff --git a/apps/web/screens/Organization/OrganizationEvents/OrganizationEventList.tsx b/apps/web/screens/Organization/OrganizationEvents/OrganizationEventList.tsx index 8c8addf1eaa1..2442d9a02c1b 100644 --- a/apps/web/screens/Organization/OrganizationEvents/OrganizationEventList.tsx +++ b/apps/web/screens/Organization/OrganizationEvents/OrganizationEventList.tsx @@ -1,4 +1,3 @@ -import type { Locale } from '@island.is/shared/types' import { useRouter } from 'next/router' import { @@ -9,6 +8,7 @@ import { Stack, Text, } from '@island.is/island-ui/core' +import type { Locale } from '@island.is/shared/types' import { EventList, getThemeConfig, @@ -39,7 +39,7 @@ import { GET_EVENTS_QUERY } from '../../queries/Events' const PAGE_SIZE = 10 -interface OrganizationEventListProps { +export interface OrganizationEventListProps { organizationPage: OrganizationPage eventList: EventListSchema namespace: Record @@ -153,12 +153,13 @@ const extractPageNumberQueryParameter = (query: ScreenContext['query']) => { } OrganizationEventList.getProps = async ({ apolloClient, query, locale }) => { + const slug = (query.slugs as string[])[0] const [organizationPageResponse] = await Promise.all([ apolloClient.query({ query: GET_ORGANIZATION_PAGE_QUERY, variables: { input: { - slug: query.slug as string, + slug, lang: locale as Locale, }, }, @@ -170,7 +171,7 @@ OrganizationEventList.getProps = async ({ apolloClient, query, locale }) => { if (!organizationPage) { throw new CustomNextError( 404, - `Could not find organization page with slug: ${query.slug}`, + `Could not find organization page with slug: ${slug}`, ) } @@ -181,8 +182,7 @@ OrganizationEventList.getProps = async ({ apolloClient, query, locale }) => { query: GET_EVENTS_QUERY, variables: { input: { - organization: - organizationPage?.organization?.slug ?? (query.slug as string), + organization: organizationPage?.organization?.slug ?? slug, lang: locale as Locale, page: selectedPage, size: PAGE_SIZE, diff --git a/apps/web/screens/Organization/OrganizationNews/OrganizationNewsArticle.tsx b/apps/web/screens/Organization/OrganizationNews/OrganizationNewsArticle.tsx index 61472a70d0f5..a55e8800dc6a 100644 --- a/apps/web/screens/Organization/OrganizationNews/OrganizationNewsArticle.tsx +++ b/apps/web/screens/Organization/OrganizationNews/OrganizationNewsArticle.tsx @@ -1,36 +1,37 @@ import { useRouter } from 'next/router' + import { BreadCrumbItem, NavigationItem } from '@island.is/island-ui/core' -import { Screen } from '@island.is/web/types' +import { Locale } from '@island.is/shared/types' import { - GET_NAMESPACE_QUERY, - GET_ORGANIZATION_PAGE_QUERY, - GET_SINGLE_NEWS_ITEM_QUERY, -} from '@island.is/web/screens/queries' -import { withMainLayout } from '@island.is/web/layouts/main' -import useContentfulId from '@island.is/web/hooks/useContentfulId' + getThemeConfig, + HeadWithSocialSharing, + NewsArticle, + OrganizationWrapper, +} from '@island.is/web/components' import { ContentLanguage, - GetSingleNewsItemQuery, - QueryGetSingleNewsArgs, - QueryGetNamespaceArgs, GetNamespaceQuery, + GetSingleNewsItemQuery, + OrganizationPage, Query, + QueryGetNamespaceArgs, QueryGetOrganizationPageArgs, - OrganizationPage, + QueryGetSingleNewsArgs, } from '@island.is/web/graphql/schema' -import { - getThemeConfig, - HeadWithSocialSharing, - NewsArticle, - OrganizationWrapper, -} from '@island.is/web/components' import { useNamespace } from '@island.is/web/hooks' import { useLinkResolver } from '@island.is/web/hooks' -import { CustomNextError } from '@island.is/web/units/errors' +import useContentfulId from '@island.is/web/hooks/useContentfulId' import { useLocalLinkTypeResolver } from '@island.is/web/hooks/useLocalLinkTypeResolver' -import { Locale } from '@island.is/shared/types' +import { withMainLayout } from '@island.is/web/layouts/main' +import { + GET_NAMESPACE_QUERY, + GET_ORGANIZATION_PAGE_QUERY, + GET_SINGLE_NEWS_ITEM_QUERY, +} from '@island.is/web/screens/queries' +import { Screen } from '@island.is/web/types' +import { CustomNextError } from '@island.is/web/units/errors' -interface OrganizationNewsArticleProps { +export interface OrganizationNewsArticleProps { newsItem: GetSingleNewsItemQuery['getSingleNews'] namespace: GetNamespaceQuery['getNamespace'] organizationPage: OrganizationPage @@ -162,13 +163,15 @@ const OrganizationNewsArticle: Screen = ({ } OrganizationNewsArticle.getProps = async ({ apolloClient, locale, query }) => { + const [organizationPageSlug, _, newsSlug] = query.slugs as string[] + const organizationPage = ( await Promise.resolve( apolloClient.query({ query: GET_ORGANIZATION_PAGE_QUERY, variables: { input: { - slug: query.slug as string, + slug: organizationPageSlug, lang: locale as Locale, }, }, @@ -179,7 +182,7 @@ OrganizationNewsArticle.getProps = async ({ apolloClient, locale, query }) => { if (!organizationPage) { throw new CustomNextError( 404, - `Could not find organization page with slug: ${query.slug}`, + `Could not find organization page with slug: ${organizationPageSlug}`, ) } @@ -193,7 +196,7 @@ OrganizationNewsArticle.getProps = async ({ apolloClient, locale, query }) => { query: GET_SINGLE_NEWS_ITEM_QUERY, variables: { input: { - slug: query.newsSlug as string, + slug: newsSlug, lang: locale as ContentLanguage, }, }, diff --git a/apps/web/screens/Organization/OrganizationNews/OrganizationNewsList.tsx b/apps/web/screens/Organization/OrganizationNews/OrganizationNewsList.tsx index e868b65c663a..cc21540d2977 100644 --- a/apps/web/screens/Organization/OrganizationNews/OrganizationNewsList.tsx +++ b/apps/web/screens/Organization/OrganizationNews/OrganizationNewsList.tsx @@ -44,7 +44,7 @@ import { GET_GENERIC_TAG_BY_SLUG_QUERY } from '../../queries/GenericTag' const PERPAGE = 10 -interface OrganizationNewsListProps { +export interface OrganizationNewsListProps { organizationPage: OrganizationPage newsList: GetNewsQuery['getNews']['items'] total: number @@ -236,13 +236,15 @@ OrganizationNewsList.getProps = async ({ apolloClient, query, locale }) => { const month = year && getIntParam(query.m, { minValue: 1, maxValue: 12 }) const selectedPage = getIntParam(query.page, { minValue: 1 }) ?? 1 + const organizationPageSlug = (query.slugs as string[])[0] + const organizationPage = ( await Promise.resolve( apolloClient.query({ query: GET_ORGANIZATION_PAGE_QUERY, variables: { input: { - slug: query.slug as string, + slug: organizationPageSlug, lang: locale as Locale, }, }, @@ -253,7 +255,7 @@ OrganizationNewsList.getProps = async ({ apolloClient, query, locale }) => { if (!organizationPage) { throw new CustomNextError( 404, - `Could not find organization page with slug: ${query.slug}`, + `Could not find organization page with slug: ${organizationPageSlug}`, ) } diff --git a/apps/web/screens/Organization/PublishedMaterial/PublishedMaterial.tsx b/apps/web/screens/Organization/PublishedMaterial/PublishedMaterial.tsx index 715fa5a10709..ad6cb1300f7a 100644 --- a/apps/web/screens/Organization/PublishedMaterial/PublishedMaterial.tsx +++ b/apps/web/screens/Organization/PublishedMaterial/PublishedMaterial.tsx @@ -64,7 +64,7 @@ import * as styles from './PublishedMaterial.css' const ASSETS_PER_PAGE = 20 const DEBOUNCE_TIME_IN_MS = 300 -interface PublishedMaterialProps { +export interface PublishedMaterialProps { organizationPage: Query['getOrganizationPage'] genericTagFilters: GenericTag[] namespace: Record @@ -500,6 +500,7 @@ const PublishedMaterial: Screen = ({ } PublishedMaterial.getProps = async ({ apolloClient, locale, query }) => { + const organizationPageSlug = (query.slugs as string[])[0] const [ { data: { getOrganizationPage }, @@ -510,7 +511,7 @@ PublishedMaterial.getProps = async ({ apolloClient, locale, query }) => { query: GET_ORGANIZATION_PAGE_QUERY, variables: { input: { - slug: query.slug as string, + slug: organizationPageSlug, lang: locale as ContentLanguage, }, }, @@ -541,7 +542,7 @@ PublishedMaterial.getProps = async ({ apolloClient, locale, query }) => { query: GET_ORGANIZATION_QUERY, variables: { input: { - slug: getOrganizationPage.organization?.slug ?? (query.slug as string), + slug: getOrganizationPage.organization?.slug ?? organizationPageSlug, lang: locale as ContentLanguage, }, }, diff --git a/apps/web/screens/Organization/SubPage.tsx b/apps/web/screens/Organization/SubPage.tsx index b9a118306519..2f3b938d0cf9 100644 --- a/apps/web/screens/Organization/SubPage.tsx +++ b/apps/web/screens/Organization/SubPage.tsx @@ -431,7 +431,7 @@ SubPage.getProps = async ({ apolloClient, locale, query, req }) => { const getSlugAndSubSlug = (query: ParsedUrlQuery, pathname: string) => { const path = pathname?.split('/') ?? [] - let { slug, subSlug } = query + let [slug, subSlug] = (query.slugs as string[]) ?? [] if (!slug && path.length >= 2) { // The slug is the next-last index in the path, i.e. "syslumenn" in the case of "/s/syslumenn/utgefid-efni" @@ -439,7 +439,7 @@ const getSlugAndSubSlug = (query: ParsedUrlQuery, pathname: string) => { } if (!subSlug && path.length > 0) { // The subslug is the last index in the path, i.e. "utgefid-efni" in the case of "/s/syslumenn/utgefid-efni" - subSlug = path.pop() + subSlug = path.pop() as string } return { slug, subSlug } diff --git a/apps/web/types.tsx b/apps/web/types.tsx index a20d98059be8..245763e30d29 100644 --- a/apps/web/types.tsx +++ b/apps/web/types.tsx @@ -1,7 +1,7 @@ import { ComponentType } from 'react' -import { ApolloClient } from '@apollo/client/core' -import { NormalizedCacheObject } from '@apollo/client/cache' import { GetServerSidePropsContext } from 'next' +import { NormalizedCacheObject } from '@apollo/client/cache' +import { ApolloClient } from '@apollo/client/core' export type ScreenContext = { query: GetServerSidePropsContext['query'] @@ -12,5 +12,5 @@ export type ScreenContext = { } export type Screen = ComponentType & { - getProps?: (ctx: ScreenContext) => Promise + getProps: (ctx: ScreenContext) => Promise } From 5832eb72595445c9e83b56d0115a168183391f11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=BAnar=20Vestmann?= <43557895+RunarVestmann@users.noreply.github.com> Date: Wed, 20 Nov 2024 10:40:06 +0000 Subject: [PATCH 60/66] =?UTF-8?q?feat(web):=20S=C3=BDslumenn=20footer=20ch?= =?UTF-8?q?anges=20(#16945)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Syslumenn footer changes * Add max width to link * Potentially hide privacy policy link --------- Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- .../SyslumennTheme/SyslumennFooter.css.ts | 15 +++- .../Themes/SyslumennTheme/SyslumennFooter.tsx | 75 +++++++++++-------- 2 files changed, 56 insertions(+), 34 deletions(-) diff --git a/apps/web/components/Organization/Wrapper/Themes/SyslumennTheme/SyslumennFooter.css.ts b/apps/web/components/Organization/Wrapper/Themes/SyslumennTheme/SyslumennFooter.css.ts index dc3177722fa6..eba464a78291 100644 --- a/apps/web/components/Organization/Wrapper/Themes/SyslumennTheme/SyslumennFooter.css.ts +++ b/apps/web/components/Organization/Wrapper/Themes/SyslumennTheme/SyslumennFooter.css.ts @@ -1,5 +1,6 @@ import { style } from '@vanilla-extract/css' -import { theme } from '@island.is/island-ui/theme' + +import { theme, themeUtils } from '@island.is/island-ui/theme' export const footerBg = style({ background: 'linear-gradient(99.09deg, #003D85 23.68%, #4E8ECC 123.07%)', @@ -12,3 +13,15 @@ export const footerItemFirst = style({ }, }, }) + +export const serviceWebFooterBg = style({ + background: theme.color.purple100, +}) + +export const linkMaxWidth = style({ + ...themeUtils.responsiveStyle({ + lg: { + maxWidth: '200px', + }, + }), +}) diff --git a/apps/web/components/Organization/Wrapper/Themes/SyslumennTheme/SyslumennFooter.tsx b/apps/web/components/Organization/Wrapper/Themes/SyslumennTheme/SyslumennFooter.tsx index 81099f9b6342..fe6ecdcd3121 100644 --- a/apps/web/components/Organization/Wrapper/Themes/SyslumennTheme/SyslumennFooter.tsx +++ b/apps/web/components/Organization/Wrapper/Themes/SyslumennTheme/SyslumennFooter.tsx @@ -14,6 +14,7 @@ import { LinkProps, Text, } from '@island.is/island-ui/core' +import { theme } from '@island.is/island-ui/theme' import { GlobalContext } from '@island.is/web/context' import { FooterItem } from '@island.is/web/graphql/schema' import { LinkType, useLinkResolver, useNamespace } from '@island.is/web/hooks' @@ -38,12 +39,15 @@ const SyslumennFooter: React.FC> = ({ namespace, }) => { const n = useNamespace(namespace) - const questionsAndAnswersText = n('questionsAndAnswers', 'Spurningar og svör') const canWeHelpText = n('canWeHelp', 'Getum við aðstoðað?') const { activeLocale } = useI18n() const { isServiceWeb } = useContext(GlobalContext) - const { linkResolver } = useLinkResolver() + + const footerTitle = isServiceWeb ? n('serviceWebFooterTitle', title) : title + const footerTextColor: keyof typeof theme.color = isServiceWeb + ? 'dark400' + : 'white' const items = footerItems.map((item, index) => ( > = ({ {item.title} ) : ( - + {item.title} )} @@ -70,7 +74,7 @@ const SyslumennFooter: React.FC> = ({ { renderNode: { [BLOCKS.PARAGRAPH]: (_node: never, children: ReactNode) => ( - + {children} ), @@ -85,7 +89,7 @@ const SyslumennFooter: React.FC> = ({ @@ -105,8 +109,8 @@ const SyslumennFooter: React.FC> = ({ )}
- - {title} + + {footerTitle}
@@ -117,6 +121,7 @@ const SyslumennFooter: React.FC> = ({ <> > = ({ ) as string } > - {questionsAndAnswersText} + {canWeHelpText} - - - - - + + + + )} @@ -173,6 +180,7 @@ interface HeaderLink { linkType?: LinkType underline?: LinkProps['underline'] slug: string + color?: keyof typeof theme.color } const HeaderLink: FC> = ({ @@ -180,6 +188,7 @@ const HeaderLink: FC> = ({ slug, children, underline = 'normal', + color = 'white', }) => { const { linkResolver } = useLinkResolver() @@ -198,7 +207,7 @@ const HeaderLink: FC> = ({ ), }} > - + Date: Wed, 20 Nov 2024 12:30:09 +0000 Subject: [PATCH 61/66] fix(application-system): Fix accident notification data (#16954) Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- .../accident-notification-v2.utils.ts | 32 ++++++++++++------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/libs/application/template-api-modules/src/lib/modules/templates/accident-notification/accident-notification-v2.utils.ts b/libs/application/template-api-modules/src/lib/modules/templates/accident-notification/accident-notification-v2.utils.ts index 6c5b3db62187..2b8228aa9375 100644 --- a/libs/application/template-api-modules/src/lib/modules/templates/accident-notification/accident-notification-v2.utils.ts +++ b/libs/application/template-api-modules/src/lib/modules/templates/accident-notification/accident-notification-v2.utils.ts @@ -49,9 +49,9 @@ export const applicationToAccidentReport = ( const reportingForMap = { [WhoIsTheNotificationForEnum.ME]: MinarsidurAPIModelsAccidentReportsReporterDTOReportingForEnum.NUMBER_1, - [WhoIsTheNotificationForEnum.JURIDICALPERSON]: - MinarsidurAPIModelsAccidentReportsReporterDTOReportingForEnum.NUMBER_2, [WhoIsTheNotificationForEnum.POWEROFATTORNEY]: + MinarsidurAPIModelsAccidentReportsReporterDTOReportingForEnum.NUMBER_2, + [WhoIsTheNotificationForEnum.JURIDICALPERSON]: MinarsidurAPIModelsAccidentReportsReporterDTOReportingForEnum.NUMBER_3, [WhoIsTheNotificationForEnum.CHILDINCUSTODY]: MinarsidurAPIModelsAccidentReportsReporterDTOReportingForEnum.NUMBER_4, @@ -371,12 +371,14 @@ const getEmployer = ( answers.applicant && utils.isRepresentativeOfCompanyOrInstitute(answers) ) { + const { companyName, companyNationalId } = answers.juridicalPerson + const { name, email, phoneNumber } = answers.applicant return { - companyName: answers.juridicalPerson.companyNationalId, - companyNationalId: answers.juridicalPerson.companyName, - representativeName: answers.applicant.name ?? '', - representativeEmail: answers.applicant.email ?? '', - representativePhone: answers.applicant.phoneNumber ?? '', + companyName, + companyNationalId, + representativeName: name ?? '', + representativeEmail: email ?? '', + representativePhone: phoneNumber ?? '', } } @@ -388,12 +390,18 @@ const getEmployer = ( return undefined } + const { + name: companyName = '', + nationalRegistrationId: companyNationalId = '', + } = companyInfo + const { name, email, phoneNumber } = representative + return { - companyName: companyInfo.name ?? '', - companyNationalId: companyInfo.nationalRegistrationId ?? '', - representativeName: representative.name ?? '', - representativeEmail: representative.email ?? '', - representativePhone: representative.phoneNumber ?? '', + companyName, + companyNationalId, + representativeName: name ?? '', + representativeEmail: email ?? '', + representativePhone: phoneNumber ?? '', } } From c2d4dfb94944ff5330e8332274d595c62ee8a097 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=8Dvar=20Oddsson?= Date: Wed, 20 Nov 2024 13:04:07 +0000 Subject: [PATCH 62/66] chore(j-s): Remove the robot-api app (#16950) * Remove robot-api app * Remove robot-api app * chore: charts update dirty files --------- Co-authored-by: andes-it Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- apps/judicial-system/README.md | 12 ---- apps/judicial-system/robot-api/.eslintrc.json | 35 ---------- apps/judicial-system/robot-api/esbuild.json | 44 ------------ .../infra/judicial-system-xrd-robot-api.ts | 33 --------- apps/judicial-system/robot-api/jest.config.ts | 20 ------ apps/judicial-system/robot-api/project.json | 53 -------------- .../robot-api/src/app/app.config.ts | 15 ---- .../robot-api/src/app/app.controller.ts | 23 ------ .../robot-api/src/app/app.module.ts | 27 ------- .../robot-api/src/app/app.service.ts | 28 -------- .../robot-api/src/app/index.ts | 1 - .../robot-api/src/buildOpenApi.ts | 10 --- apps/judicial-system/robot-api/src/main.ts | 12 ---- apps/judicial-system/robot-api/src/openApi.ts | 8 --- .../robot-api/tsconfig.app.json | 9 --- apps/judicial-system/robot-api/tsconfig.json | 13 ---- .../robot-api/tsconfig.spec.json | 15 ---- charts/judicial-system/values.dev.yaml | 70 ------------------- charts/judicial-system/values.prod.yaml | 70 ------------------- charts/judicial-system/values.staging.yaml | 70 ------------------- infra/src/uber-charts/judicial-system.ts | 5 -- 21 files changed, 573 deletions(-) delete mode 100644 apps/judicial-system/robot-api/.eslintrc.json delete mode 100644 apps/judicial-system/robot-api/esbuild.json delete mode 100644 apps/judicial-system/robot-api/infra/judicial-system-xrd-robot-api.ts delete mode 100644 apps/judicial-system/robot-api/jest.config.ts delete mode 100644 apps/judicial-system/robot-api/project.json delete mode 100644 apps/judicial-system/robot-api/src/app/app.config.ts delete mode 100644 apps/judicial-system/robot-api/src/app/app.controller.ts delete mode 100644 apps/judicial-system/robot-api/src/app/app.module.ts delete mode 100644 apps/judicial-system/robot-api/src/app/app.service.ts delete mode 100644 apps/judicial-system/robot-api/src/app/index.ts delete mode 100644 apps/judicial-system/robot-api/src/buildOpenApi.ts delete mode 100644 apps/judicial-system/robot-api/src/main.ts delete mode 100644 apps/judicial-system/robot-api/src/openApi.ts delete mode 100644 apps/judicial-system/robot-api/tsconfig.app.json delete mode 100644 apps/judicial-system/robot-api/tsconfig.json delete mode 100644 apps/judicial-system/robot-api/tsconfig.spec.json diff --git a/apps/judicial-system/README.md b/apps/judicial-system/README.md index f2ee7f505d90..2770e62b06f8 100644 --- a/apps/judicial-system/README.md +++ b/apps/judicial-system/README.md @@ -226,18 +226,6 @@ You can serve this service locally by running: yarn start judicial-system-xrd-api ``` -## Robot API - -This service is for access through xRoad. - -### Running locally - -You can serve this service locally by running: - -```bash -yarn start judicial-system-robot-api -``` - ## Digital Mailbox API This service is for access through xRoad. diff --git a/apps/judicial-system/robot-api/.eslintrc.json b/apps/judicial-system/robot-api/.eslintrc.json deleted file mode 100644 index eb74b2b984ef..000000000000 --- a/apps/judicial-system/robot-api/.eslintrc.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "extends": "../../../.eslintrc.json", - "rules": { - "simple-import-sort/imports": [ - "error", - { - "groups": [ - // External imports come first. - ["^\\w", "@(?!nestjs|island\\.is)"], - // Then nestjs packages. - ["^@nestjs"], - // Then island.is packages. - ["^@island\\.is/(?!judicial-system)"], - // Then judicial-system packages. - ["^@island\\.is/judicial-system"], - // Then all other imports in this order: "../", "./", "./strings", "./css" - [ - "^\\.\\.(?!/?$)", - "^\\.\\./?$", - "^\\./(?=.*/)(?!/?$)", - "^\\.(?!/?$)", - "^\\./?$" - ] - ] - } - ] - }, - "plugins": ["simple-import-sort"], - "ignorePatterns": ["!**/*"], - "overrides": [ - { "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], "rules": {} }, - { "files": ["*.ts", "*.tsx"], "rules": {} }, - { "files": ["*.js", "*.jsx"], "rules": {} } - ] -} diff --git a/apps/judicial-system/robot-api/esbuild.json b/apps/judicial-system/robot-api/esbuild.json deleted file mode 100644 index ed8694e4a00e..000000000000 --- a/apps/judicial-system/robot-api/esbuild.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "platform": "node", - "external": [ - "fsevents", - "@nestjs/microservices", - "class-transformer", - "cache-manager", - "@nestjs/websockets/socket-module", - "class-validator", - "class-transformer", - "@nestjs/microservices/microservices-module", - "apollo-server-fastify", - "@elastic/elasticsearch", - "fastify-swagger", - "@nestjs/mongoose", - "@nestjs/typeorm", - "dd-trace", - "express", - "http-errors", - "graphql", - "pg", - "winston", - "util-deprecate", - "source-map-resolve", - "atob", - "logform", - "pg-native", - "form-data", - "swagger-ui-dist", - "@protobufjs/aspromise", - "@protobufjs/base64", - "@protobufjs/codegen", - "@protobufjs/eventemitter", - "@protobufjs/fetch", - "@protobufjs/float", - "@protobufjs/inquire", - "@protobufjs/path", - "@protobufjs/pool", - "@protobufjs/utf8", - "safer-buffer", - "@mikro-orm/core" - ], - "keepNames": true -} diff --git a/apps/judicial-system/robot-api/infra/judicial-system-xrd-robot-api.ts b/apps/judicial-system/robot-api/infra/judicial-system-xrd-robot-api.ts deleted file mode 100644 index 9eed7a919938..000000000000 --- a/apps/judicial-system/robot-api/infra/judicial-system-xrd-robot-api.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { ref, service, ServiceBuilder } from '../../../../infra/src/dsl/dsl' - -export const serviceSetup = (services: { - backend: ServiceBuilder<'judicial-system-backend'> -}): ServiceBuilder<'judicial-system-robot-api'> => - service('judicial-system-robot-api') - .namespace('judicial-system') - .serviceAccount('judicial-system-robot-api') - .image('judicial-system-robot-api') - .env({ - BACKEND_URL: ref((h) => `http://${h.svc(services.backend)}`), - AUDIT_TRAIL_USE_GENERIC_LOGGER: 'false', - AUDIT_TRAIL_GROUP_NAME: 'k8s/judicial-system/audit-log', - AUDIT_TRAIL_REGION: 'eu-west-1', - }) - .secrets({ - ERROR_EVENT_URL: '/k8s/judicial-system/ERROR_EVENT_URL', - BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN', - }) - .liveness('/liveness') - .readiness('/liveness') - .ingress({ - primary: { - host: { - dev: 'judicial-system-robot-api-xrd', - staging: 'judicial-system-robot-api-xrd', - prod: 'judicial-system-robot-api-xrd', - }, - paths: ['/'], - public: false, - }, - }) - .grantNamespaces('nginx-ingress-internal') diff --git a/apps/judicial-system/robot-api/jest.config.ts b/apps/judicial-system/robot-api/jest.config.ts deleted file mode 100644 index f306ee005a12..000000000000 --- a/apps/judicial-system/robot-api/jest.config.ts +++ /dev/null @@ -1,20 +0,0 @@ -/* eslint-disable */ -export default { - preset: './jest.preset.js', - rootDir: '../../..', - roots: [__dirname], - globals: {}, - moduleFileExtensions: ['ts', 'js', 'html'], - coverageDirectory: '/coverage/apps/judicial-system/robot-api', - displayName: 'judicial-system-robot-api', - testEnvironment: 'node', - transform: { - '^.+\\.[tj]s$': [ - 'ts-jest', - { - tsconfig: `${__dirname}/tsconfig.spec.json`, - isolatedModules: true, - }, - ], - }, -} diff --git a/apps/judicial-system/robot-api/project.json b/apps/judicial-system/robot-api/project.json deleted file mode 100644 index 181727e4a47e..000000000000 --- a/apps/judicial-system/robot-api/project.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "name": "judicial-system-robot-api", - "$schema": "../../../node_modules/nx/schemas/project-schema.json", - "sourceRoot": "apps/judicial-system/robot-api/src", - "projectType": "application", - "prefix": "judicial-system-robot-api", - "tags": ["scope:judicial-system-api"], - "generators": {}, - "targets": { - "build": { - "executor": "./tools/executors/node:build", - "options": { - "outputPath": "dist/apps/judicial-system/robot-api", - "main": "apps/judicial-system/robot-api/src/main.ts", - "tsConfig": "apps/judicial-system/robot-api/tsconfig.app.json", - "assets": [], - "maxWorkers": 2 - }, - "configurations": { - "production": { - "optimization": true, - "extractLicenses": true, - "inspect": false - } - } - }, - "serve": { - "executor": "@nx/js:node", - "options": { - "buildTarget": "judicial-system-robot-api:build" - } - }, - "lint": { - "executor": "@nx/eslint:lint" - }, - "test": { - "executor": "@nx/jest:jest", - "options": { - "jestConfig": "apps/judicial-system/robot-api/jest.config.ts" - } - }, - "codegen/backend-schema": { - "executor": "nx:run-commands", - "options": { - "command": "cross-env INIT_SCHEMA=true yarn ts-node -P apps/judicial-system/robot-api/tsconfig.app.json apps/judicial-system/robot-api/src/buildOpenApi.ts" - }, - "outputs": ["{projectRoot}/src/openapi.yaml"] - }, - "docker-express": { - "executor": "Intentionally left blank, only so this target is valid when using `nx show projects --with-target docker-express`" - } - } -} diff --git a/apps/judicial-system/robot-api/src/app/app.config.ts b/apps/judicial-system/robot-api/src/app/app.config.ts deleted file mode 100644 index 5c52fbad0eac..000000000000 --- a/apps/judicial-system/robot-api/src/app/app.config.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { defineConfig } from '@island.is/nest/config' - -export default defineConfig({ - name: 'AppModule', - load: (env) => ({ - errorReportUrl: env.required('ERROR_EVENT_URL', ''), - backend: { - accessToken: env.required( - 'BACKEND_ACCESS_TOKEN', - 'secret-backend-api-token', - ), - url: env.required('BACKEND_URL', 'http://localhost:3344'), - }, - }), -}) diff --git a/apps/judicial-system/robot-api/src/app/app.controller.ts b/apps/judicial-system/robot-api/src/app/app.controller.ts deleted file mode 100644 index 5bda74f60457..000000000000 --- a/apps/judicial-system/robot-api/src/app/app.controller.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { Controller, Get, Inject } from '@nestjs/common' -import { ApiCreatedResponse } from '@nestjs/swagger' - -import type { Logger } from '@island.is/logging' -import { LOGGER_PROVIDER } from '@island.is/logging' - -import { AppService } from './app.service' - -@Controller('api') -export class AppController { - constructor( - private readonly appService: AppService, - @Inject(LOGGER_PROVIDER) private readonly logger: Logger, - ) {} - - @Get('test') - @ApiCreatedResponse({ type: String, description: 'Test connection' }) - async test(): Promise { - this.logger.debug('Testing connection') - - return this.appService.testConnection() - } -} diff --git a/apps/judicial-system/robot-api/src/app/app.module.ts b/apps/judicial-system/robot-api/src/app/app.module.ts deleted file mode 100644 index 9ebdfe08242e..000000000000 --- a/apps/judicial-system/robot-api/src/app/app.module.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { Module } from '@nestjs/common' -import { ConfigModule } from '@nestjs/config' - -import { ProblemModule } from '@island.is/nest/problem' - -import { - AuditTrailModule, - auditTrailModuleConfig, -} from '@island.is/judicial-system/audit-trail' - -import appModuleConfig from './app.config' -import { AppController } from './app.controller' -import { AppService } from './app.service' - -@Module({ - imports: [ - AuditTrailModule, - ProblemModule.forRoot({ logAllErrors: true }), - ConfigModule.forRoot({ - isGlobal: true, - load: [appModuleConfig, auditTrailModuleConfig], - }), - ], - controllers: [AppController], - providers: [AppService], -}) -export class AppModule {} diff --git a/apps/judicial-system/robot-api/src/app/app.service.ts b/apps/judicial-system/robot-api/src/app/app.service.ts deleted file mode 100644 index 4b935505d940..000000000000 --- a/apps/judicial-system/robot-api/src/app/app.service.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Inject, Injectable } from '@nestjs/common' - -import type { Logger } from '@island.is/logging' -import { LOGGER_PROVIDER } from '@island.is/logging' -import { type ConfigType } from '@island.is/nest/config' - -import { AuditTrailService } from '@island.is/judicial-system/audit-trail' - -import appModuleConfig from './app.config' - -@Injectable() -export class AppService { - constructor( - @Inject(appModuleConfig.KEY) - private readonly config: ConfigType, - @Inject(LOGGER_PROVIDER) private readonly logger: Logger, - private readonly auditTrailService: AuditTrailService, - ) {} - - private async test(): Promise { - return 'OK' - } - - async testConnection(): Promise { - //TODO: Audit - return this.test() - } -} diff --git a/apps/judicial-system/robot-api/src/app/index.ts b/apps/judicial-system/robot-api/src/app/index.ts deleted file mode 100644 index a49c6ea5487c..000000000000 --- a/apps/judicial-system/robot-api/src/app/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { AppModule } from './app.module' diff --git a/apps/judicial-system/robot-api/src/buildOpenApi.ts b/apps/judicial-system/robot-api/src/buildOpenApi.ts deleted file mode 100644 index 9a54cdcb918b..000000000000 --- a/apps/judicial-system/robot-api/src/buildOpenApi.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { buildOpenApi } from '@island.is/infra-nest-server' - -import { AppModule } from './app/app.module' -import { openApi } from './openApi' - -buildOpenApi({ - path: 'apps/judicial-system/robot-api/src/openapi.yaml', - appModule: AppModule, - openApi, -}) diff --git a/apps/judicial-system/robot-api/src/main.ts b/apps/judicial-system/robot-api/src/main.ts deleted file mode 100644 index f41d5432d2f0..000000000000 --- a/apps/judicial-system/robot-api/src/main.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { bootstrap } from '@island.is/infra-nest-server' - -import { AppModule } from './app' -import { openApi } from './openApi' - -bootstrap({ - appModule: AppModule, - name: 'judicial-system-robot-api', - port: 3356, - swaggerPath: 'api/swagger', - openApi, -}) diff --git a/apps/judicial-system/robot-api/src/openApi.ts b/apps/judicial-system/robot-api/src/openApi.ts deleted file mode 100644 index 3402ffe5a476..000000000000 --- a/apps/judicial-system/robot-api/src/openApi.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { DocumentBuilder } from '@nestjs/swagger' - -export const openApi = new DocumentBuilder() - .setTitle('Judicial System xRoad robot API') - .setDescription('This is the xRoad robot API for the judicial system.') - .setVersion('1.0') - .addTag('judicial-system') - .build() diff --git a/apps/judicial-system/robot-api/tsconfig.app.json b/apps/judicial-system/robot-api/tsconfig.app.json deleted file mode 100644 index 5479e745834a..000000000000 --- a/apps/judicial-system/robot-api/tsconfig.app.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "../../../dist/out-tsc", - "types": ["node"] - }, - "exclude": ["**/*.spec.ts", "**/*.test.ts", "**/test/**", "jest.config.ts"], - "include": ["**/*.ts"] -} diff --git a/apps/judicial-system/robot-api/tsconfig.json b/apps/judicial-system/robot-api/tsconfig.json deleted file mode 100644 index 25873177db3f..000000000000 --- a/apps/judicial-system/robot-api/tsconfig.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "extends": "../../../tsconfig.base.json", - "files": [], - "include": [], - "references": [ - { - "path": "./tsconfig.app.json" - }, - { - "path": "./tsconfig.spec.json" - } - ] -} diff --git a/apps/judicial-system/robot-api/tsconfig.spec.json b/apps/judicial-system/robot-api/tsconfig.spec.json deleted file mode 100644 index e87789c595d9..000000000000 --- a/apps/judicial-system/robot-api/tsconfig.spec.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "../../../dist/out-tsc", - "module": "commonjs", - "types": ["jest", "node"] - }, - "include": [ - "**/*.spec.ts", - "**/*.test.ts", - "**/test/*.ts", - "**/*.d.ts", - "jest.config.ts" - ] -} diff --git a/charts/judicial-system/values.dev.yaml b/charts/judicial-system/values.dev.yaml index 88200d412a54..161909e0781c 100644 --- a/charts/judicial-system/values.dev.yaml +++ b/charts/judicial-system/values.dev.yaml @@ -375,76 +375,6 @@ judicial-system-message-handler: eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/judicial-system-message-handler' create: true name: 'judicial-system-message-handler' -judicial-system-robot-api: - enabled: true - env: - AUDIT_TRAIL_GROUP_NAME: 'k8s/judicial-system/audit-log' - AUDIT_TRAIL_REGION: 'eu-west-1' - AUDIT_TRAIL_USE_GENERIC_LOGGER: 'false' - BACKEND_URL: 'http://web-judicial-system-backend' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - grantNamespaces: - - 'nginx-ingress-internal' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-robot-api' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-internal-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'judicial-system-robot-api-xrd.internal.dev01.devland.is' - paths: - - '/' - namespace: 'judicial-system' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '100m' - memory: '128Mi' - secrets: - BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - ERROR_EVENT_URL: '/k8s/judicial-system/ERROR_EVENT_URL' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::013313053092:role/judicial-system-robot-api' - create: true - name: 'judicial-system-robot-api' judicial-system-scheduler: args: - '--no-experimental-fetch' diff --git a/charts/judicial-system/values.prod.yaml b/charts/judicial-system/values.prod.yaml index a963d0ca05f9..511ed797ff10 100644 --- a/charts/judicial-system/values.prod.yaml +++ b/charts/judicial-system/values.prod.yaml @@ -375,76 +375,6 @@ judicial-system-message-handler: eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/judicial-system-message-handler' create: true name: 'judicial-system-message-handler' -judicial-system-robot-api: - enabled: true - env: - AUDIT_TRAIL_GROUP_NAME: 'k8s/judicial-system/audit-log' - AUDIT_TRAIL_REGION: 'eu-west-1' - AUDIT_TRAIL_USE_GENERIC_LOGGER: 'false' - BACKEND_URL: 'http://web-judicial-system-backend' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: 'driving-license-use-v1-endpoint-for-v2-comms' - grantNamespaces: - - 'nginx-ingress-internal' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 10 - min: 3 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-robot-api' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-internal-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'judicial-system-robot-api-xrd.internal.island.is' - paths: - - '/' - namespace: 'judicial-system' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 3 - max: 10 - min: 3 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '100m' - memory: '128Mi' - secrets: - BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - ERROR_EVENT_URL: '/k8s/judicial-system/ERROR_EVENT_URL' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::251502586493:role/judicial-system-robot-api' - create: true - name: 'judicial-system-robot-api' judicial-system-scheduler: args: - '--no-experimental-fetch' diff --git a/charts/judicial-system/values.staging.yaml b/charts/judicial-system/values.staging.yaml index 6cb69f4a67b9..18be3b03e360 100644 --- a/charts/judicial-system/values.staging.yaml +++ b/charts/judicial-system/values.staging.yaml @@ -376,76 +376,6 @@ judicial-system-message-handler: eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/judicial-system-message-handler' create: true name: 'judicial-system-message-handler' -judicial-system-robot-api: - enabled: true - env: - AUDIT_TRAIL_GROUP_NAME: 'k8s/judicial-system/audit-log' - AUDIT_TRAIL_REGION: 'eu-west-1' - AUDIT_TRAIL_USE_GENERIC_LOGGER: 'false' - BACKEND_URL: 'http://web-judicial-system-backend' - LOG_LEVEL: 'info' - NODE_OPTIONS: '--max-old-space-size=230 -r dd-trace/init' - SERVERSIDE_FEATURES_ON: '' - grantNamespaces: - - 'nginx-ingress-internal' - grantNamespacesEnabled: true - healthCheck: - liveness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - readiness: - initialDelaySeconds: 3 - path: '/liveness' - timeoutSeconds: 3 - hpa: - scaling: - metric: - cpuAverageUtilization: 90 - nginxRequestsIrate: 5 - replicas: - max: 3 - min: 1 - image: - repository: '821090935708.dkr.ecr.eu-west-1.amazonaws.com/judicial-system-robot-api' - ingress: - primary-alb: - annotations: - kubernetes.io/ingress.class: 'nginx-internal-alb' - nginx.ingress.kubernetes.io/service-upstream: 'true' - hosts: - - host: 'judicial-system-robot-api-xrd.internal.staging01.devland.is' - paths: - - '/' - namespace: 'judicial-system' - podDisruptionBudget: - maxUnavailable: 1 - podSecurityContext: - fsGroup: 65534 - pvcs: [] - replicaCount: - default: 1 - max: 3 - min: 1 - resources: - limits: - cpu: '200m' - memory: '256Mi' - requests: - cpu: '100m' - memory: '128Mi' - secrets: - BACKEND_ACCESS_TOKEN: '/k8s/judicial-system/BACKEND_ACCESS_TOKEN' - CONFIGCAT_SDK_KEY: '/k8s/configcat/CONFIGCAT_SDK_KEY' - ERROR_EVENT_URL: '/k8s/judicial-system/ERROR_EVENT_URL' - securityContext: - allowPrivilegeEscalation: false - privileged: false - serviceAccount: - annotations: - eks.amazonaws.com/role-arn: 'arn:aws:iam::261174024191:role/judicial-system-robot-api' - create: true - name: 'judicial-system-robot-api' judicial-system-scheduler: args: - '--no-experimental-fetch' diff --git a/infra/src/uber-charts/judicial-system.ts b/infra/src/uber-charts/judicial-system.ts index 7a65b51c4eeb..10891616030e 100644 --- a/infra/src/uber-charts/judicial-system.ts +++ b/infra/src/uber-charts/judicial-system.ts @@ -4,7 +4,6 @@ import { serviceSetup as jsWebSetup } from '../../../apps/judicial-system/web/in import { serviceSetup as jsXrdApiSetup } from '../../../apps/judicial-system/xrd-api/infra/judicial-system-xrd-api' import { serviceSetup as jsSchedulerSetup } from '../../../apps/judicial-system/scheduler/infra/judicial-system-scheduler' import { serviceSetup as jsMessageHandlerSetup } from '../../../apps/judicial-system/message-handler/infra/judicial-system-message-handler' -import { serviceSetup as jsRobotApiSetup } from '../../../apps/judicial-system/robot-api/infra/judicial-system-xrd-robot-api' import { serviceSetup as jsDigitalInboxRobotApiSetup } from '../../../apps/judicial-system/digital-mailbox-api/infra/judicial-system-xrd-robot-api' import { EnvironmentServices } from '.././dsl/types/charts' @@ -15,7 +14,6 @@ const jsWeb = jsWebSetup({ api: jsApi }) const jsXrdApi = jsXrdApiSetup({ backend: jsBack }) const jsScheduler = jsSchedulerSetup({ backend: jsBack }) const jsMessageHandler = jsMessageHandlerSetup({ backend: jsBack }) -const jsRobotApi = jsRobotApiSetup({ backend: jsBack }) const jsDigitalInboxRobotApi = jsDigitalInboxRobotApiSetup({ backend: jsBack }) export const Services: EnvironmentServices = { @@ -26,7 +24,6 @@ export const Services: EnvironmentServices = { jsXrdApi, jsScheduler, jsMessageHandler, - jsRobotApi, jsDigitalInboxRobotApi, ], staging: [ @@ -36,7 +33,6 @@ export const Services: EnvironmentServices = { jsXrdApi, jsScheduler, jsMessageHandler, - jsRobotApi, jsDigitalInboxRobotApi, ], dev: [ @@ -46,7 +42,6 @@ export const Services: EnvironmentServices = { jsXrdApi, jsScheduler, jsMessageHandler, - jsRobotApi, jsDigitalInboxRobotApi, ], } From c20e5952825256879db004c45d8b7fee92b0e9da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=8Dvar=20Oddsson?= Date: Wed, 20 Nov 2024 13:46:59 +0000 Subject: [PATCH 63/66] fix(j-s): Double service not required (#16938) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Checkpoint * Refactor AlertMessage * Format date * Cleanup * Cleanup * Merge * Add key * Refactor * Remove console.log * Merge * Merge * Remove duplicate service not required * Revert --------- Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> Co-authored-by: Guðjón Guðjónsson Co-authored-by: unakb --- .../InfoCard/DefendantInfo/DefendantInfo.tsx | 29 +++++++------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/apps/judicial-system/web/src/components/InfoCard/DefendantInfo/DefendantInfo.tsx b/apps/judicial-system/web/src/components/InfoCard/DefendantInfo/DefendantInfo.tsx index 7d860a8f9f47..eadbf98ea3c6 100644 --- a/apps/judicial-system/web/src/components/InfoCard/DefendantInfo/DefendantInfo.tsx +++ b/apps/judicial-system/web/src/components/InfoCard/DefendantInfo/DefendantInfo.tsx @@ -54,14 +54,11 @@ export const getAppealExpirationInfo = ( const getVerdictViewDateText = ( formatMessage: IntlShape['formatMessage'], verdictViewDate?: string | null, - serviceNotRequired?: boolean, ): string => { if (verdictViewDate) { return formatMessage(strings.verdictDisplayedDate, { date: formatDate(verdictViewDate, 'PPP'), }) - } else if (serviceNotRequired) { - return formatMessage(strings.serviceNotRequired) } else { return formatMessage(strings.serviceRequired) } @@ -129,23 +126,19 @@ export const DefendantInfo: FC = (props) => { )} {displayAppealExpirationInfo && ( - - - {formatMessage(appealExpirationInfo.message, { - appealExpirationDate: appealExpirationInfo.date, - })} - - - )} - {displayVerdictViewDate && defendant.serviceRequirement && ( - - {getVerdictViewDateText( - formatMessage, - defendant.verdictViewDate, - defendant.serviceRequirement === ServiceRequirement.NOT_REQUIRED, - )} + + {formatMessage(appealExpirationInfo.message, { + appealExpirationDate: appealExpirationInfo.date, + })} )} + {displayVerdictViewDate && + defendant.serviceRequirement && + defendant.serviceRequirement !== ServiceRequirement.NOT_REQUIRED && ( + + {getVerdictViewDateText(formatMessage, defendant.verdictViewDate)} + + )} ) } From 09fed244e27d0ea4a4985de7b179fcb7cc0f73b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=9E=C3=B3r=C3=B0ur=20H?= Date: Wed, 20 Nov 2024 14:08:43 +0000 Subject: [PATCH 64/66] fix(service-portal): Fix spelling for canRegisterMilage (#16834) * Can register mileage * Update resolver --------- Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- .../domains/vehicles/src/lib/models/usersVehicles.model.ts | 2 +- .../vehicles/src/lib/resolvers/vehicles.resolver.ts | 7 ++++++- .../templates/car-recycling/src/graphql/queries.ts | 2 +- .../my-pages/assets/src/screens/Overview/Overview.graphql | 2 +- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/libs/api/domains/vehicles/src/lib/models/usersVehicles.model.ts b/libs/api/domains/vehicles/src/lib/models/usersVehicles.model.ts index 04476ff794ae..594e021951e8 100644 --- a/libs/api/domains/vehicles/src/lib/models/usersVehicles.model.ts +++ b/libs/api/domains/vehicles/src/lib/models/usersVehicles.model.ts @@ -232,7 +232,7 @@ export class VehicleListed { requiresMileageRegistration?: boolean | null @Field(() => Boolean, { nullable: true }) - canRegisterMilage?: boolean | null + canRegisterMileage?: boolean | null @Field({ nullable: true }) regTypeCode?: string diff --git a/libs/api/domains/vehicles/src/lib/resolvers/vehicles.resolver.ts b/libs/api/domains/vehicles/src/lib/resolvers/vehicles.resolver.ts index 2a92af484ca2..b77a647a8988 100644 --- a/libs/api/domains/vehicles/src/lib/resolvers/vehicles.resolver.ts +++ b/libs/api/domains/vehicles/src/lib/resolvers/vehicles.resolver.ts @@ -82,7 +82,12 @@ export class VehiclesResolver { const res = await this.vehiclesService.getVehiclesListV2(user, input) const downloadServiceURL = `${this.downloadServiceConfig.baseUrl}/download/v1/vehicles/ownership/${user.nationalId}` return { - vehicleList: res.data, + vehicleList: res.data?.map((vehicle) => { + return { + ...vehicle, + canRegisterMileage: vehicle.canRegisterMilage, + } + }), downloadServiceURL, paging: { pageNumber: res.pageNumber, diff --git a/libs/application/templates/car-recycling/src/graphql/queries.ts b/libs/application/templates/car-recycling/src/graphql/queries.ts index 472254beae03..1d0ec4b420a4 100644 --- a/libs/application/templates/car-recycling/src/graphql/queries.ts +++ b/libs/application/templates/car-recycling/src/graphql/queries.ts @@ -9,7 +9,7 @@ export const GetUsersVehiclesV2Query = gql` colorName modelYear requiresMileageRegistration - canRegisterMilage + canRegisterMileage role } paging { diff --git a/libs/portals/my-pages/assets/src/screens/Overview/Overview.graphql b/libs/portals/my-pages/assets/src/screens/Overview/Overview.graphql index 4541f2e46dae..d220225f3a2e 100644 --- a/libs/portals/my-pages/assets/src/screens/Overview/Overview.graphql +++ b/libs/portals/my-pages/assets/src/screens/Overview/Overview.graphql @@ -7,7 +7,7 @@ query GetUsersVehiclesV2($input: GetVehiclesListV2Input!) { colorName modelYear requiresMileageRegistration - canRegisterMilage + canRegisterMileage nextMainInspection } paging { From 3a3729fa8a617f8b9322c70ec276e8bf365b05c8 Mon Sep 17 00:00:00 2001 From: Ylfa <55542991+ylfahfa@users.noreply.github.com> Date: Wed, 20 Nov 2024 14:48:31 +0000 Subject: [PATCH 65/66] fix(income-plan): revert no zero and minus numbers (#16955) * revert no zero and minus numbers * format --------- Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- .../income-plan/src/lib/dataSchema.ts | 44 ++----------------- 1 file changed, 4 insertions(+), 40 deletions(-) diff --git a/libs/application/templates/social-insurance-administration/income-plan/src/lib/dataSchema.ts b/libs/application/templates/social-insurance-administration/income-plan/src/lib/dataSchema.ts index b2a8d5890a4d..bf20588b6047 100644 --- a/libs/application/templates/social-insurance-administration/income-plan/src/lib/dataSchema.ts +++ b/libs/application/templates/social-insurance-administration/income-plan/src/lib/dataSchema.ts @@ -1,4 +1,3 @@ -import { coreErrorMessages } from '@island.is/application/core' import { z } from 'zod' import { INCOME, ISK, RatioType, YES } from './constants' import { errorMessages } from './messages' @@ -32,9 +31,7 @@ export const dataSchema = z.object({ }) .refine( ({ income, incomePerYear }) => - income === RatioType.YEARLY - ? !!incomePerYear && Number(incomePerYear) > 0 - : true, + income === RatioType.YEARLY ? !!incomePerYear : true, { path: ['incomePerYear'], }, @@ -54,7 +51,7 @@ export const dataSchema = z.object({ return income === RatioType.MONTHLY && currency === ISK && unevenAndEmploymentIncome - ? !!equalIncomePerMonth && Number(equalIncomePerMonth) > 0 + ? !!equalIncomePerMonth : true }, { @@ -76,8 +73,7 @@ export const dataSchema = z.object({ return income === RatioType.MONTHLY && currency !== ISK && unevenAndEmploymentIncome - ? !!equalForeignIncomePerMonth && - Number(equalForeignIncomePerMonth) > 0 + ? !!equalForeignIncomePerMonth : true }, { @@ -108,39 +104,7 @@ export const dataSchema = z.object({ path: ['incomePerYear'], params: errorMessages.monthsRequired, }, - ) - .superRefine((incomePlanTable, ctx) => { - if ( - incomePlanTable.income === RatioType.MONTHLY && - incomePlanTable?.incomeCategory === INCOME && - incomePlanTable.unevenIncomePerYear?.[0] === YES - ) { - const months = { - january: incomePlanTable.january, - february: incomePlanTable.february, - march: incomePlanTable.march, - april: incomePlanTable.april, - may: incomePlanTable.may, - june: incomePlanTable.june, - july: incomePlanTable.july, - august: incomePlanTable.august, - september: incomePlanTable.september, - october: incomePlanTable.october, - november: incomePlanTable.november, - december: incomePlanTable.december, - } - - Object.entries(months).forEach(([key, value]) => { - if (value && !(Number(value) > 0)) { - ctx.addIssue({ - code: z.ZodIssueCode.custom, - path: [key], - params: coreErrorMessages.defaultError, - }) - } - }) - } - }), + ), ) .refine((i) => i === undefined || i.length > 0, { params: errorMessages.incomePlanRequired, From 8c3f8660dfd303abe9eb93a4f0418100e9921fcb Mon Sep 17 00:00:00 2001 From: Kristofer Date: Wed, 20 Nov 2024 15:50:58 +0000 Subject: [PATCH 66/66] fix: Extract strings `could not determine executable to run` (#16960) * Add @formatjs/cli * Use yarn, not npx * chore: nx format:write update dirty files --------- Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> Co-authored-by: andes-it --- libs/localization/scripts/extract.ts | 2 +- package.json | 1 + yarn.lock | 36 ++++++++++++++++++++++++++++ 3 files changed, 38 insertions(+), 1 deletion(-) diff --git a/libs/localization/scripts/extract.ts b/libs/localization/scripts/extract.ts index 0b61d2c7da01..a261bef373cb 100644 --- a/libs/localization/scripts/extract.ts +++ b/libs/localization/scripts/extract.ts @@ -30,7 +30,7 @@ if (!CONTENTFUL_MANAGEMENT_ACCESS_TOKEN) { const client = createClient({ accessToken: CONTENTFUL_MANAGEMENT_ACCESS_TOKEN }) -const format = spawn.sync('npx', [ +const format = spawn.sync('yarn', [ 'formatjs', 'extract', '--out-file', diff --git a/package.json b/package.json index 0a9d57c78aec..3ddf329e55c0 100644 --- a/package.json +++ b/package.json @@ -330,6 +330,7 @@ "@babel/preset-env": "7.22.5", "@babel/preset-react": "7.22.5", "@babel/preset-typescript": "7.22.5", + "@formatjs/cli": "6.3.11", "@gperdomor/nx-docker": "0.2.3", "@graphql-codegen/cli": "2.12.0", "@graphql-codegen/fragment-matcher": "3.3.1", diff --git a/yarn.lock b/yarn.lock index 89e37c725552..ba4c34531891 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11866,6 +11866,41 @@ __metadata: languageName: node linkType: hard +"@formatjs/cli@npm:6.3.11": + version: 6.3.11 + resolution: "@formatjs/cli@npm:6.3.11" + peerDependencies: + "@glimmer/env": ^0.1.7 + "@glimmer/reference": ^0.91.1 || ^0.92.0 + "@glimmer/syntax": ^0.92.0 + "@glimmer/validator": ^0.92.0 + "@vue/compiler-core": ^3.4.0 + content-tag: ^2.0.1 + ember-template-recast: ^6.1.4 + vue: ^3.4.0 + peerDependenciesMeta: + "@glimmer/env": + optional: true + "@glimmer/reference": + optional: true + "@glimmer/syntax": + optional: true + "@glimmer/validator": + optional: true + "@vue/compiler-core": + optional: true + content-tag: + optional: true + ember-template-recast: + optional: true + vue: + optional: true + bin: + formatjs: bin/formatjs + checksum: 1b4a5ee4d371e4ba993e1fd3f7474b333022f27727d27a0560703fecae1fea584ff2b65ca52f474f5b3a11f4e64be056273266f0c1fbc0ffda86e8e812f97264 + languageName: node + linkType: hard + "@formatjs/ecma402-abstract@npm:1.14.3": version: 1.14.3 resolution: "@formatjs/ecma402-abstract@npm:1.14.3" @@ -38607,6 +38642,7 @@ __metadata: "@dnd-kit/core": 6.1.0 "@dnd-kit/sortable": 8.0.0 "@elastic/elasticsearch": 7.7.1 + "@formatjs/cli": 6.3.11 "@formatjs/intl-datetimeformat": 4.1.6 "@formatjs/intl-locale": 2.4.33 "@formatjs/intl-numberformat": 7.1.5