Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bruk service discovery for å nå forebyggingsplan #211

Merged
merged 4 commits into from
Mar 17, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .env.development
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ DECORATOR_BREADCRUMB_THIS_PAGE_URL=http://localhost:3000/forebygge-fravar
DECORATOR_ENV=dev
FIA_ARBEIDSGIVER_HOSTNAME=arbeidsgiver.ekstern.dev.nav.no
SYKEFRAVARSSTATISTIKK_URL=/forebygge-fravar/sykefravarsstatistikk
FOREBYGGINGSPLAN_URL=https://arbeidsgiver.ekstern.dev.nav.no/forebyggingsplan
MIN_SIDE_ARBEIDSGIVER_URL=https://arbeidsgiver.ekstern.dev.nav.no/min-side-arbeidsgiver
KONTAKT_OSS_ARBEIDSGIVER_URL=https://arbeidsgiver-kontakt-oss.dev.nav.no/kontakt-oss
GRAFANA_AGENT_COLLECTOR_URL=http://localhost:12347/collect
Expand Down
1 change: 0 additions & 1 deletion .env.test
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ DECORATOR_BREADCRUMB_THIS_PAGE_URL=https://forebygge-fravar.intern.dev.nav.no/fo
DECORATOR_ENV=dev
FIA_ARBEIDSGIVER_HOSTNAME=fia-arbeidsgiver.test.url
SYKEFRAVARSSTATISTIKK_URL=https://sykefravarsstatistikk.test.url
FOREBYGGINGSPLAN_URL=https://forebyggingsplan.test.url
MIN_SIDE_ARBEIDSGIVER_URL=https://min-side-arbeidsgiver.test.url
KONTAKT_OSS_ARBEIDSGIVER_URL=https://kontakt-oss.test.url
GRAFANA_AGENT_COLLECTOR_URL=https://telemetry.ekstern.dev.nav.no/collect
2 changes: 1 addition & 1 deletion .github/workflows/build-deploy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
push:
branches:
- main
- router-upgrade
- bruk-service-discovery-til-forebyggingsplan
paths-ignore:
- "**.md"
- "**/**.md"
Expand Down
4 changes: 1 addition & 3 deletions .nais/dev.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ spec:
- name: SYKEFRAVARSSTATISTIKK_API_HOSTNAME
value: sykefravarsstatistikk-api.dev-fss-pub.nais.io
- name: FOREBYGGINGSPLAN_API_BASEURL
value: forebyggingsplan.teamia.svc.cluster.local
value: forebyggingsplan.teamia
- name: FOREBYGGINGSPLAN_API_AUDIENCE
value: dev-gcp:teamia:forebyggingsplan
- name: IA_TJENESTER_METRIKKER_HOSTNAME
Expand Down Expand Up @@ -47,8 +47,6 @@ spec:
value: fia-arbeidsgiver.pia
- name: SYKEFRAVARSSTATISTIKK_URL
value: https://forebygge-fravar.intern.dev.nav.no/forebygge-fravar/sykefravarsstatistikk
- name: FOREBYGGINGSPLAN_URL
value: https://forebyggingsplan-frontend.intern.dev.nav.no/forebyggingsplan
- name: MIN_SIDE_ARBEIDSGIVER_URL
value: https://arbeidsgiver.intern.dev.nav.no/min-side-arbeidsgiver
- name: KONTAKT_OSS_ARBEIDSGIVER_URL
Expand Down
2 changes: 0 additions & 2 deletions .nais/ekstern-dev.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,6 @@ spec:
value: https://arbeidsgiver.ekstern.dev.nav.no/forebygge-fravar
- name: SYKEFRAVARSSTATISTIKK_URL
value: https://arbeidsgiver.ekstern.dev.nav.no/forebygge-fravar/sykefravarsstatistikk
- name: FOREBYGGINGSPLAN_URL
value: https://arbeidsgiver.ekstern.dev.nav.no/forebyggingsplan
- name: MIN_SIDE_ARBEIDSGIVER_URL
value: https://arbeidsgiver.ekstern.dev.nav.no/min-side-arbeidsgiver
- name: KONTAKT_OSS_ARBEIDSGIVER_URL
Expand Down
2 changes: 0 additions & 2 deletions .nais/prod.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,6 @@ spec:
value: fia-arbeidsgiver.pia
- name: SYKEFRAVARSSTATISTIKK_URL
value: https://arbeidsgiver.nav.no/forebygge-fravar/sykefravarsstatistikk
- name: FOREBYGGINGSPLAN_URL
value: https://arbeidsgiver.nav.no/forebyggingsplan
- name: MIN_SIDE_ARBEIDSGIVER_URL
value: https://arbeidsgiver.nav.no/min-side-arbeidsgiver
- name: KONTAKT_OSS_ARBEIDSGIVER_URL
Expand Down
3 changes: 2 additions & 1 deletion src/Aktiviteter/status-klient.tsx
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
import { StatusType } from "./AktivitetData";
import {API_BASE_PATH} from "../utils/konstanter";

export const oppdaterStatus = async (
aktivitetId: string,
orgnr: string,
status: StatusType
) => {
return await fetch(
`forebygge-fravar/api/aktivitet/${aktivitetId}/orgnr/${orgnr}/oppdater`,
`${API_BASE_PATH}/aktivitet/${aktivitetId}/orgnr/${orgnr}/oppdater`,
{
method: "POST",
body: JSON.stringify({ status }),
Expand Down
5 changes: 4 additions & 1 deletion src/hooks/useHentAktiviteter.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { useRestRessursSWR } from "./useRestRessursSWR";
import {API_BASE_PATH} from "../utils/konstanter";

export type StatusType = "AVBRUTT" | "STARTET" | "FULLFØRT";
type AktivitetType = "OPPGAVE" | "AKTIVITETSKORT";
Expand All @@ -9,8 +10,10 @@ export type AktivitetBrukerStatus = {
};

export const useHentAktiviteter = (orgnr: string | null | undefined) => {
const apiPath = `${API_BASE_PATH}/aktiviteter/orgnr/${orgnr}`;

return useRestRessursSWR<AktivitetBrukerStatus[]>(
`forebygge-fravar/api/aktiviteter/orgnr/${orgnr}`,
apiPath,
"Det oppstod en feil ved henting av aktiviteter"
);
};
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { NextApiRequest, NextApiResponse } from "next";
import { erGyldigOrgnr } from "../../../../../../hooks/useOrgnr";
import { backendLogger } from "../../../../../../utils/backendLogger";
import {anonymizeOrgnr, backendLogger} from "../../../../../../utils/backendLogger";
import {
exchangeIdportenSubjectToken,
isInvalidToken,
Expand Down Expand Up @@ -44,8 +44,10 @@ export default async function handler(
return res.status(401).json({ error: "authentication failed" });
}

const oppdaterUrl = `http://${process.env.FOREBYGGINGSPLAN_API_BASEURL}/aktivitet/${aktivitetId}/orgnr/${orgnr}/oppdater`;
backendLogger.info(`Kaller oppdatering av aktivitet på URL '${anonymizeOrgnr(oppdaterUrl)}'`);
const respons = await fetch(
`http://${process.env.FOREBYGGINGSPLAN_API_BASEURL}/aktivitet/${aktivitetId}/orgnr/${orgnr}/oppdater`,
oppdaterUrl,
{
method: "POST",
headers: {
Expand All @@ -56,5 +58,6 @@ export default async function handler(
},
);

backendLogger.info(`Fikk følgende status på /oppdater: '${respons.status}'`);
return res.status(respons.status).json({ status: respons.status });
}
8 changes: 6 additions & 2 deletions src/pages/api/aktiviteter/orgnr/[orgnr].ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { NextApiRequest, NextApiResponse } from "next";
import { erGyldigOrgnr } from "../../../../hooks/useOrgnr";
import proxyRequestWithTokenExchange from "../../../../utils/api-proxy";
import {anonymizeOrgnr, backendLogger} from "../../../../utils/backendLogger";

export default async function handler(
req: NextApiRequest,
Expand All @@ -12,11 +13,14 @@ export default async function handler(
return res.status(400).json({ error: "Mangler gyldig 'orgnr' i path" });
}

const hostnavn = `${process.env.FOREBYGGINGSPLAN_API_BASEURL}`;
const sti = `/aktiviteter/orgnr/${orgnr}`;
backendLogger.info(`Kaller oppdatering av aktivitet på hostname '${hostnavn}' og sti '${anonymizeOrgnr(sti)}'`);
return await proxyRequestWithTokenExchange(
req,
res,
`${process.env.FOREBYGGINGSPLAN_API_BASEURL}`,
`/aktiviteter/orgnr/${orgnr}`,
hostnavn,
sti,
process.env.FOREBYGGINGSPLAN_API_AUDIENCE,
false
);
Expand Down
20 changes: 20 additions & 0 deletions src/utils/backendLogger.test.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import { anonymizeOrgnr } from "./backendLogger";

describe("Tester anonymize orgnr", () => {
it("Erstatter et orgnr med 9 stjerner", async () => {
expect(anonymizeOrgnr("Dette er et orgnr: 987654321"))
.toBe("Dette er et orgnr: *********");
});
it("Kan erstatteflere orgnr", async () => {
expect(anonymizeOrgnr("Dette er et orgnr: 987654321, og et annet orgnr: 123456789"))
.toBe("Dette er et orgnr: *********, og et annet orgnr: *********");
});
it("Erstatter ikke enkelte tall", async () => {
expect(anonymizeOrgnr("Dette er et kortere tall: 12345678"))
.toBe("Dette er et kortere tall: 12345678");
});
it("Erstatter ikke enkelte tall blandet med orgn", async () => {
expect(anonymizeOrgnr("Dette er et orgnr: 987654321, men ikke det her: 12345678"))
.toBe("Dette er et orgnr: *********, men ikke det her: 12345678");
});
});
5 changes: 5 additions & 0 deletions src/utils/backendLogger.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,8 @@ export const backendLogger = pino({
},
},
});

export const anonymizeOrgnr = (message: string) => {
return message
.replace(/\d{9}/g, "*********")
}
4 changes: 0 additions & 4 deletions src/utils/envUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ export const getProdUrl = (path?: string) => {

export type Tjeneste =
| "Sykefraværsstatistikk"
| "Forebyggingsplan"
| "Min Side Arbeidsgiver"
| "Kontakt Oss";

Expand All @@ -42,9 +41,6 @@ export const hentUrlFraMiljøvariabel = (tjeneste: Tjeneste) => {
case "Kontakt Oss":
url = process.env.KONTAKT_OSS_ARBEIDSGIVER_URL;
break;
case "Forebyggingsplan":
url = process.env.FOREBYGGINGSPLAN_URL;
break;
}
if (!url) {
throw Error(
Expand Down