Skip to content

Commit 9c358f2

Browse files
committed
Merge branch 'master' into bugfix/import-tenor
2 parents ed59fd7 + 645025d commit 9c358f2

File tree

99 files changed

+3498
-161
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

99 files changed

+3498
-161
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
name: dolly-search-service
2+
3+
on:
4+
push:
5+
paths:
6+
- "plugins/**"
7+
- "libs/data-transfer-search-objects/**"
8+
- "libs/reactive-core/**"
9+
- "libs/security-core/**"
10+
- "libs/servlet-core/**"
11+
- "libs/servlet-security/**"
12+
- "libs/testing/**"
13+
- "apps/dolly-search-service/**"
14+
- ".github/workflows/app.dolly-search-service.yml"
15+
16+
jobs:
17+
workflow:
18+
uses: ./.github/workflows/common.workflow.backend.yml
19+
with:
20+
working-directory: "apps/dolly-search-service"
21+
deploy-tag: "#deploy-dolly-search-service"
22+
deploy-tag-test: "#deploy-test-dolly-search-service"
23+
permissions:
24+
contents: read
25+
id-token: write
26+
secrets: inherit
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
name: brregstub-reverse--proxy
2+
3+
on:
4+
push:
5+
paths:
6+
- "plugins/**"
7+
- "libs/reactive-core/**"
8+
- "libs/reactive-proxy/**"
9+
- "proxies/brregstub-reverse-proxy/**"
10+
- ".github/workflows/proxy.brregstub-reverse-proxy.yml"
11+
12+
jobs:
13+
workflow:
14+
uses: ./.github/workflows/common.workflow.backend.yml
15+
with:
16+
cluster: "dev-fss"
17+
working-directory: "proxies/brregstub-reverse-proxy"
18+
deploy-tag: "#deploy-proxy-brregstub-reverse"
19+
permissions:
20+
contents: read
21+
id-token: write
22+
secrets: inherit

apps/brreg-stub/src/main/java/no/nav/brregstub/config/AppConfig.java

+1-5
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,12 @@
66
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
77

88
import no.nav.testnav.libs.servletcore.config.ApplicationCoreConfig;
9-
import no.nav.testnav.libs.database.config.FlywayConfiguration;
10-
import no.nav.testnav.libs.database.config.VaultHikariConfiguration;
119

1210
@Configuration
1311
@EnableJpaAuditing
1412
@EnableJpaRepositories(basePackages = "no.nav.brregstub.database.repository")
1513
@Import({
16-
ApplicationCoreConfig.class,
17-
VaultHikariConfiguration.class,
18-
FlywayConfiguration.class,
14+
ApplicationCoreConfig.class
1915
})
2016
public class AppConfig {
2117
}

apps/brreg-stub/src/main/resources/application-prod.yml

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
21
spring:
2+
config:
3+
import: "vault://"
34
flyway:
45
locations: classpath:db/migration/postgresql
56
datasource:
@@ -30,5 +31,3 @@ spring:
3031
role: testnav-brregstub-admin
3132
backend: postgresql/preprod-fss
3233
fail-fast: true
33-
config:
34-
import: vault://

apps/dolly-backend/config.yml

+3-2
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,16 @@ spec:
1717
accessPolicy:
1818
inbound:
1919
rules:
20+
2021
- application: dolly-frontend
2122
- application: dolly-idporten
23+
- application: etterlatte-testdata
24+
namespace: etterlatte
2225
- application: testnav-batch-bestilling-service
2326
- application: testnav-dollystatus
2427
- application: testnav-helsepersonell-service
2528
- application: testnav-oversikt-frontend
2629
- application: testnav-tenor-search-service
27-
- application: etterlatte-testdata
28-
namespace: etterlatte
2930
outbound:
3031
rules:
3132
- application: generer-navn-service

apps/dolly-backend/src/main/java/no/nav/dolly/DollyBackendApplicationStarter.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@ public static void main(String[] args) {
1212
.initializers(new NaisEnvironmentApplicationContextInitializer())
1313
.run(args);
1414
}
15-
}
15+
}

apps/dolly-backend/src/main/java/no/nav/dolly/elastic/dto/SearchRequest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import lombok.Data;
55
import lombok.NoArgsConstructor;
66
import lombok.experimental.SuperBuilder;
7-
import no.nav.dolly.elastic.ElasticTyper;
7+
import no.nav.testnav.libs.data.dollysearchservice.v1.ElasticTyper;
88

99
import java.util.ArrayList;
1010
import java.util.List;

apps/dolly-backend/src/main/java/no/nav/dolly/elastic/dto/SearchResponse.java

+20-1
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,11 @@
77
import lombok.NoArgsConstructor;
88
import no.nav.dolly.elastic.ElasticBestilling;
99

10+
import java.util.ArrayList;
1011
import java.util.List;
1112

13+
import static java.util.Objects.isNull;
14+
1215
@Data
1316
@Builder
1417
@NoArgsConstructor
@@ -20,6 +23,22 @@ public class SearchResponse {
2023
private Float score;
2124
private String took;
2225
private List<String> identer;
23-
private List<ElasticBestilling> bestillinger;
26+
private List<ElasticBestilling> registre;
2427
private String error;
28+
29+
public List<String> getIdenter() {
30+
31+
if (isNull(identer)) {
32+
identer = new ArrayList<>();
33+
}
34+
return identer;
35+
}
36+
37+
public List<ElasticBestilling> getRegistre() {
38+
39+
if (isNull(registre)) {
40+
registre = new ArrayList<>();
41+
}
42+
return registre;
43+
}
2544
}

apps/dolly-backend/src/main/java/no/nav/dolly/elastic/service/OpenSearchQueryBuilder.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package no.nav.dolly.elastic.service;
22

33
import lombok.experimental.UtilityClass;
4-
import no.nav.dolly.elastic.ElasticTyper;
54
import no.nav.dolly.elastic.dto.SearchRequest;
5+
import no.nav.testnav.libs.data.dollysearchservice.v1.ElasticTyper;
66
import org.opensearch.index.query.BoolQueryBuilder;
77
import org.opensearch.index.query.QueryBuilder;
88
import org.opensearch.index.query.QueryBuilders;
@@ -70,7 +70,7 @@ public static BoolQueryBuilder buildTyperQuery(ElasticTyper[] typer) {
7070
return queryBuilder;
7171
}
7272

73-
private void setPersonQuery(BoolQueryBuilder queryBuilder, SearchRequest request) {
73+
private static void setPersonQuery(BoolQueryBuilder queryBuilder, SearchRequest request) {
7474

7575
Optional.ofNullable(request.getPersonRequest())
7676
.ifPresent(value -> {
@@ -107,7 +107,7 @@ private void setPersonQuery(BoolQueryBuilder queryBuilder, SearchRequest request
107107
});
108108
}
109109

110-
private QueryBuilder getFagsystemQuery(ElasticTyper type) {
110+
public static QueryBuilder getFagsystemQuery(ElasticTyper type) {
111111

112112
return switch (type) {
113113
case AAREG -> QueryBuilders.existsQuery("aareg");

apps/dolly-backend/src/main/java/no/nav/dolly/elastic/service/OpenSearchService.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55
import lombok.extern.slf4j.Slf4j;
66
import no.nav.dolly.elastic.BestillingElasticRepository;
77
import no.nav.dolly.elastic.ElasticBestilling;
8-
import no.nav.dolly.elastic.ElasticTyper;
98
import no.nav.dolly.elastic.consumer.ElasticParamsConsumer;
109
import no.nav.dolly.elastic.dto.SearchRequest;
1110
import no.nav.dolly.elastic.dto.SearchResponse;
1211
import no.nav.dolly.elastic.dto.Kategori;
12+
import no.nav.testnav.libs.data.dollysearchservice.v1.ElasticTyper;
1313
import org.opensearch.client.RequestOptions;
1414
import org.opensearch.client.RestHighLevelClient;
1515
import org.opensearch.index.query.BoolQueryBuilder;

apps/dolly-backend/src/main/java/no/nav/dolly/provider/api/OpensearchController.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55
import lombok.RequiredArgsConstructor;
66
import no.nav.dolly.elastic.BestillingElasticRepository;
77
import no.nav.dolly.elastic.ElasticBestilling;
8-
import no.nav.dolly.elastic.ElasticTyper;
98
import no.nav.dolly.elastic.dto.SearchRequest;
109
import no.nav.dolly.elastic.dto.SearchResponse;
1110
import no.nav.dolly.elastic.dto.Kategori;
1211
import no.nav.dolly.elastic.service.OpenSearchService;
1312
import no.nav.dolly.exceptions.NotFoundException;
13+
import no.nav.testnav.libs.data.dollysearchservice.v1.ElasticTyper;
1414
import org.springframework.web.bind.annotation.DeleteMapping;
1515
import org.springframework.web.bind.annotation.GetMapping;
1616
import org.springframework.web.bind.annotation.PathVariable;

apps/dolly-frontend/src/main/js/src/components/inntektStub/validerInntekt/Inntekt.tsx

+4-4
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,17 @@ import tilleggsinformasjonPaths from '@/components/inntektStub/paths'
88

99
const sjekkFelt = (formMethods, field, options, values, path) => {
1010
const { watch, getFieldState, setError } = formMethods
11-
const fieldValue = watch(path)
12-
const existingError = getFieldState(`${path}.${field}`)?.error
1311
const fieldPath = tilleggsinformasjonPaths(field)
12+
const fieldValue = watch(path)
13+
const existingError = getFieldState(`${path}.${fieldPath}`)?.error
1414
const val = _.get(fieldValue, fieldPath)
1515

1616
if (
1717
!options.includes('<TOM>') &&
1818
!existingError &&
1919
((fieldValue && !val && val !== false) || (!optionsUtfylt(options) && !options.includes(val)))
2020
) {
21-
setError(`${path}.${field}`, { message: 'Feltet er påkrevd' })
21+
setError(`${path}.${fieldPath}`, { message: 'Feltet er påkrevd' })
2222
}
2323
return null
2424
}
@@ -80,6 +80,7 @@ const fieldResolver = (field, handleChange, formMethods, path, index, options =
8080
/>
8181
)
8282
} else if (optionsUtfylt(options)) {
83+
sjekkFelt(formMethods, field, options, values, path)
8384
return (
8485
<FormTextInput
8586
key={index}
@@ -88,7 +89,6 @@ const fieldResolver = (field, handleChange, formMethods, path, index, options =
8889
label={texts(field)}
8990
onSubmit={handleChange}
9091
size={numberFields.includes(field) ? 'medium' : 'large'}
91-
feil={sjekkFelt(formMethods, field, options, values, path)}
9292
type={numberFields.includes(field) ? 'number' : 'text'}
9393
/>
9494
)

apps/dolly-frontend/src/main/resources/logback-spring.xml

-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
<encoder class="no.nav.testnav.libs.reactivecore.logging.TestnavLogbackEncoder">
66
<maxStackTraceLength>-1</maxStackTraceLength>
77
<addCauses>true</addCauses>
8-
<stackTraceIncludePrefix>-</stackTraceIncludePrefix>
98
</encoder>
109
</appender>
1110
<root level="INFO">

apps/dolly-search-service/Dockerfile

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
FROM ghcr.io/navikt/baseimages/temurin:21
2+
LABEL maintainer="Team Dolly"
3+
4+
ENV JAVA_OPTS="--add-opens java.base/java.lang=ALL-UNNAMED"
5+
6+
COPY /build/libs/app.jar /app/app.jar
7+
8+
EXPOSE 8080

apps/dolly-search-service/README.md

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# testnav-dolly-search-service
2+
Service som forvalter søking på personer basert på innsendte kriterier
3+
4+
## Lokal kjøring
5+
* [Generelt.](../../docs/local_general.md)
6+
* [Secret Manager.](../../docs/local_secretmanager.md)
7+
* [OpenSearch.](../../docs/local_opensearch.md)
8+
+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
plugins {
2+
id "dolly-apps"
3+
}
4+
5+
sonarqube {
6+
properties {
7+
property "sonar.projectKey", "dolly-search-service"
8+
property "sonar.projectName", "dolly-search-service"
9+
}
10+
}
11+
12+
dependencies {
13+
implementation "no.nav.testnav.libs:data-transfer-search-objects"
14+
implementation "no.nav.testnav.libs:reactive-core"
15+
implementation "no.nav.testnav.libs:security-core"
16+
implementation "no.nav.testnav.libs:servlet-core"
17+
implementation "no.nav.testnav.libs:servlet-security"
18+
implementation "no.nav.testnav.libs:testing"
19+
20+
implementation "org.opensearch.client:spring-data-opensearch:$versions.opensearch"
21+
22+
implementation "com.fasterxml.jackson.core:jackson-core:$versions.jackson"
23+
implementation 'org.springframework.boot:spring-boot-starter-cache'
24+
implementation 'com.github.ben-manes.caffeine:caffeine'
25+
26+
implementation "org.springframework.boot:spring-boot-starter-security"
27+
implementation "org.springframework.boot:spring-boot-starter-oauth2-client"
28+
implementation "org.springframework.boot:spring-boot-starter-web"
29+
30+
implementation "ma.glasnost.orika:orika-core:$versions.orika"
31+
32+
implementation "org.springdoc:springdoc-openapi-starter-webmvc-ui:$versions.springdoc"
33+
}
+70
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
apiVersion: "nais.io/v1alpha1"
2+
kind: "Application"
3+
metadata:
4+
name: testnav-dolly-search-service-dev
5+
namespace: dolly
6+
labels:
7+
team: dolly
8+
annotations:
9+
nginx.ingress.kubernetes.io/proxy-body-size: "8m"
10+
nginx.ingress.kubernetes.io/proxy-buffer-size: "8m"
11+
nginx.ingress.kubernetes.io/client-body-buffer-size: "8m"
12+
spec:
13+
image: "{{image}}"
14+
port: 8080
15+
openSearch:
16+
instance: bestillinger
17+
access: read
18+
tokenx:
19+
enabled: true
20+
azure:
21+
application:
22+
allowAllUsers: true
23+
enabled: true
24+
tenant: nav.no
25+
accessPolicy:
26+
inbound:
27+
rules:
28+
- application: dolly-idporten
29+
- application: dolly-frontend
30+
- application: dolly-frontend-dev
31+
- application: team-dolly-lokal-app
32+
- application: testnav-oversikt-frontend
33+
outbound:
34+
external:
35+
- host: testnav-pdl-proxy.dev-fss-pub.nais.io
36+
liveness:
37+
path: /internal/isAlive
38+
initialDelay: 4
39+
periodSeconds: 5
40+
failureThreshold: 500
41+
observability:
42+
logging:
43+
destinations:
44+
- id: elastic
45+
autoInstrumentation:
46+
enabled: true
47+
runtime: java
48+
readiness:
49+
path: /internal/isReady
50+
initialDelay: 4
51+
periodSeconds: 5
52+
failureThreshold: 500
53+
prometheus:
54+
enabled: true
55+
path: /internal/metrics
56+
replicas:
57+
min: 1
58+
max: 1
59+
resources:
60+
requests:
61+
cpu: 200m
62+
memory: 1024Mi
63+
limits:
64+
memory: 2048Mi
65+
env:
66+
- name: SPRING_PROFILES_ACTIVE
67+
value: dev
68+
ingresses:
69+
- "https://testnav-dolly-search-service-dev.intern.dev.nav.no"
70+

0 commit comments

Comments
 (0)