diff --git a/src/app/Shared/Services/Report.service.tsx b/src/app/Shared/Services/Report.service.tsx index 7f6dfc9f7..873fcbab2 100644 --- a/src/app/Shared/Services/Report.service.tsx +++ b/src/app/Shared/Services/Report.service.tsx @@ -34,7 +34,11 @@ export class ReportService { } const headers = new Headers(); headers.append('Accept', 'application/json'); - return fromFetch(recording.reportUrl, { + let url = recording.reportUrl; + if (!url.startsWith(this.login.authority)) { + url = `${this.login.authority}/${recording.reportUrl}`; + } + return fromFetch(url, { method: 'GET', mode: 'cors', credentials: 'include', diff --git a/src/mirage/factories.ts b/src/mirage/factories.ts index 939791695..2b5d90bbf 100644 --- a/src/mirage/factories.ts +++ b/src/mirage/factories.ts @@ -21,6 +21,7 @@ export const targetFactory: FactoryDefinition = Factory.extend({ alias: 'Fake Target', connectUrl: 'http://fake-target.local:1234', jvmId: '1234', + labels: [], annotations: { platform: [ { diff --git a/src/mirage/index.ts b/src/mirage/index.ts index 31a40217a..20370ccb8 100644 --- a/src/mirage/index.ts +++ b/src/mirage/index.ts @@ -110,6 +110,7 @@ export const startMirage = ({ environment = 'development' } = {}) => { }, ], }, + labels: [], }); websocket.send( JSON.stringify({ @@ -193,9 +194,9 @@ export const startMirage = ({ environment = 'development' } = {}) => { const attrs = request.requestBody as any; const recording = schema.create(Resource.RECORDING, { - // id will generated by Mirage (i.e. increment intergers) + // id will generated by Mirage (i.e. increment integers) downloadUrl: '', - reportUrl: `beta/reports/${encodeURIComponent(request.params.targetId)}/${encodeURIComponent( + reportUrl: `api/beta/reports/${encodeURIComponent(request.params.targetId)}/${encodeURIComponent( attrs.get('recordingName'), )}`, name: attrs.get('recordingName'), @@ -469,7 +470,28 @@ export const startMirage = ({ environment = 'development' } = {}) => { websocket.send(JSON.stringify(msg)); return new Response(200); }); - this.get('api/v2.2/credentials', () => ({ data: { result: [] } })); + this.post('api/v2.2/credentials', (schema, request) => { + const credential = schema.create(Resource.CREDENTIAL, { + matchExpression: (request.requestBody as any).get('matchExpression'), + numMatchingTargets: 0, + }); + websocket.send( + JSON.stringify({ + meta: { + category: 'CredentialsStored', + type: { type: 'application', subType: 'json' }, + }, + message: { + id: credential.id, + matchExpression: credential.matchExpression, + numMatchingTargets: credential.numMatchingTargets, + }, + }), + ); + return new Response(201); + }); + this.get('api/v2.2/credentials', (schema) => ({ data: { result: schema.all(Resource.CREDENTIAL).models } })); + this.get('api/v2.2/credentials/:id', () => ({ data: { result: { matchExpression: '', targets: [] } } })); this.post('api/v2.2/graphql', (schema, request) => { const body = JSON.parse(request.requestBody); const query = body.query.trim(); @@ -699,6 +721,9 @@ export const startMirage = ({ environment = 'development' } = {}) => { } return { data }; }); + this.get('api/v3/tls/certs', () => { + return new Response(200, {}, ['/truststore/additional-app.crt']); + }); }, }); }; diff --git a/src/mirage/models.ts b/src/mirage/models.ts index cb369782d..e546db615 100644 --- a/src/mirage/models.ts +++ b/src/mirage/models.ts @@ -21,12 +21,14 @@ const TargetModel: ModelDefinition = Model.extend({}); const RecordingModel: ModelDefinition = Model.extend({}); const ArchiveModel: ModelDefinition = Model.extend({}); const RuleModel: ModelDefinition = Model.extend({}); +const CredentialModel: ModelDefinition = Model.extend({}); export const models = { [Resource.TARGET]: TargetModel, [Resource.RECORDING]: RecordingModel, [Resource.ARCHIVE]: ArchiveModel, [Resource.RULE]: RuleModel, + [Resource.CREDENTIAL]: CredentialModel, }; export default models; diff --git a/src/mirage/typings.ts b/src/mirage/typings.ts index 6deae7e1b..ccb2f1511 100644 --- a/src/mirage/typings.ts +++ b/src/mirage/typings.ts @@ -18,4 +18,5 @@ export enum Resource { RECORDING = 'recording', ARCHIVE = 'archive', RULE = 'rule', + CREDENTIAL = 'credential', }