Skip to content

Commit

Permalink
Merge branch 'master' into bugfix/import-tenor
Browse files Browse the repository at this point in the history
  • Loading branch information
stigus committed Feb 27, 2025
2 parents ed59fd7 + 645025d commit 9c358f2
Show file tree
Hide file tree
Showing 99 changed files with 3,498 additions and 161 deletions.
26 changes: 26 additions & 0 deletions .github/workflows/app.dolly-search-service.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: dolly-search-service

on:
push:
paths:
- "plugins/**"
- "libs/data-transfer-search-objects/**"
- "libs/reactive-core/**"
- "libs/security-core/**"
- "libs/servlet-core/**"
- "libs/servlet-security/**"
- "libs/testing/**"
- "apps/dolly-search-service/**"
- ".github/workflows/app.dolly-search-service.yml"

jobs:
workflow:
uses: ./.github/workflows/common.workflow.backend.yml
with:
working-directory: "apps/dolly-search-service"
deploy-tag: "#deploy-dolly-search-service"
deploy-tag-test: "#deploy-test-dolly-search-service"
permissions:
contents: read
id-token: write
secrets: inherit
22 changes: 22 additions & 0 deletions .github/workflows/proxy.brregstub-reverse-proxy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: brregstub-reverse--proxy

on:
push:
paths:
- "plugins/**"
- "libs/reactive-core/**"
- "libs/reactive-proxy/**"
- "proxies/brregstub-reverse-proxy/**"
- ".github/workflows/proxy.brregstub-reverse-proxy.yml"

jobs:
workflow:
uses: ./.github/workflows/common.workflow.backend.yml
with:
cluster: "dev-fss"
working-directory: "proxies/brregstub-reverse-proxy"
deploy-tag: "#deploy-proxy-brregstub-reverse"
permissions:
contents: read
id-token: write
secrets: inherit
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,12 @@
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;

import no.nav.testnav.libs.servletcore.config.ApplicationCoreConfig;
import no.nav.testnav.libs.database.config.FlywayConfiguration;
import no.nav.testnav.libs.database.config.VaultHikariConfiguration;

@Configuration
@EnableJpaAuditing
@EnableJpaRepositories(basePackages = "no.nav.brregstub.database.repository")
@Import({
ApplicationCoreConfig.class,
VaultHikariConfiguration.class,
FlywayConfiguration.class,
ApplicationCoreConfig.class
})
public class AppConfig {
}
5 changes: 2 additions & 3 deletions apps/brreg-stub/src/main/resources/application-prod.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@

spring:
config:
import: "vault://"
flyway:
locations: classpath:db/migration/postgresql
datasource:
Expand Down Expand Up @@ -30,5 +31,3 @@ spring:
role: testnav-brregstub-admin
backend: postgresql/preprod-fss
fail-fast: true
config:
import: vault://
5 changes: 3 additions & 2 deletions apps/dolly-backend/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,16 @@ spec:
accessPolicy:
inbound:
rules:

- application: dolly-frontend
- application: dolly-idporten
- application: etterlatte-testdata
namespace: etterlatte
- application: testnav-batch-bestilling-service
- application: testnav-dollystatus
- application: testnav-helsepersonell-service
- application: testnav-oversikt-frontend
- application: testnav-tenor-search-service
- application: etterlatte-testdata
namespace: etterlatte
outbound:
rules:
- application: generer-navn-service
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@ public static void main(String[] args) {
.initializers(new NaisEnvironmentApplicationContextInitializer())
.run(args);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import no.nav.dolly.elastic.ElasticTyper;
import no.nav.testnav.libs.data.dollysearchservice.v1.ElasticTyper;

import java.util.ArrayList;
import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,11 @@
import lombok.NoArgsConstructor;
import no.nav.dolly.elastic.ElasticBestilling;

import java.util.ArrayList;
import java.util.List;

import static java.util.Objects.isNull;

@Data
@Builder
@NoArgsConstructor
Expand All @@ -20,6 +23,22 @@ public class SearchResponse {
private Float score;
private String took;
private List<String> identer;
private List<ElasticBestilling> bestillinger;
private List<ElasticBestilling> registre;
private String error;

public List<String> getIdenter() {

if (isNull(identer)) {
identer = new ArrayList<>();
}
return identer;
}

public List<ElasticBestilling> getRegistre() {

if (isNull(registre)) {
registre = new ArrayList<>();
}
return registre;
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package no.nav.dolly.elastic.service;

import lombok.experimental.UtilityClass;
import no.nav.dolly.elastic.ElasticTyper;
import no.nav.dolly.elastic.dto.SearchRequest;
import no.nav.testnav.libs.data.dollysearchservice.v1.ElasticTyper;
import org.opensearch.index.query.BoolQueryBuilder;
import org.opensearch.index.query.QueryBuilder;
import org.opensearch.index.query.QueryBuilders;
Expand Down Expand Up @@ -70,7 +70,7 @@ public static BoolQueryBuilder buildTyperQuery(ElasticTyper[] typer) {
return queryBuilder;
}

private void setPersonQuery(BoolQueryBuilder queryBuilder, SearchRequest request) {
private static void setPersonQuery(BoolQueryBuilder queryBuilder, SearchRequest request) {

Optional.ofNullable(request.getPersonRequest())
.ifPresent(value -> {
Expand Down Expand Up @@ -107,7 +107,7 @@ private void setPersonQuery(BoolQueryBuilder queryBuilder, SearchRequest request
});
}

private QueryBuilder getFagsystemQuery(ElasticTyper type) {
public static QueryBuilder getFagsystemQuery(ElasticTyper type) {

return switch (type) {
case AAREG -> QueryBuilders.existsQuery("aareg");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@
import lombok.extern.slf4j.Slf4j;
import no.nav.dolly.elastic.BestillingElasticRepository;
import no.nav.dolly.elastic.ElasticBestilling;
import no.nav.dolly.elastic.ElasticTyper;
import no.nav.dolly.elastic.consumer.ElasticParamsConsumer;
import no.nav.dolly.elastic.dto.SearchRequest;
import no.nav.dolly.elastic.dto.SearchResponse;
import no.nav.dolly.elastic.dto.Kategori;
import no.nav.testnav.libs.data.dollysearchservice.v1.ElasticTyper;
import org.opensearch.client.RequestOptions;
import org.opensearch.client.RestHighLevelClient;
import org.opensearch.index.query.BoolQueryBuilder;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@
import lombok.RequiredArgsConstructor;
import no.nav.dolly.elastic.BestillingElasticRepository;
import no.nav.dolly.elastic.ElasticBestilling;
import no.nav.dolly.elastic.ElasticTyper;
import no.nav.dolly.elastic.dto.SearchRequest;
import no.nav.dolly.elastic.dto.SearchResponse;
import no.nav.dolly.elastic.dto.Kategori;
import no.nav.dolly.elastic.service.OpenSearchService;
import no.nav.dolly.exceptions.NotFoundException;
import no.nav.testnav.libs.data.dollysearchservice.v1.ElasticTyper;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,17 @@ import tilleggsinformasjonPaths from '@/components/inntektStub/paths'

const sjekkFelt = (formMethods, field, options, values, path) => {
const { watch, getFieldState, setError } = formMethods
const fieldValue = watch(path)
const existingError = getFieldState(`${path}.${field}`)?.error
const fieldPath = tilleggsinformasjonPaths(field)
const fieldValue = watch(path)
const existingError = getFieldState(`${path}.${fieldPath}`)?.error
const val = _.get(fieldValue, fieldPath)

if (
!options.includes('<TOM>') &&
!existingError &&
((fieldValue && !val && val !== false) || (!optionsUtfylt(options) && !options.includes(val)))
) {
setError(`${path}.${field}`, { message: 'Feltet er påkrevd' })
setError(`${path}.${fieldPath}`, { message: 'Feltet er påkrevd' })
}
return null
}
Expand Down Expand Up @@ -80,6 +80,7 @@ const fieldResolver = (field, handleChange, formMethods, path, index, options =
/>
)
} else if (optionsUtfylt(options)) {
sjekkFelt(formMethods, field, options, values, path)
return (
<FormTextInput
key={index}
Expand All @@ -88,7 +89,6 @@ const fieldResolver = (field, handleChange, formMethods, path, index, options =
label={texts(field)}
onSubmit={handleChange}
size={numberFields.includes(field) ? 'medium' : 'large'}
feil={sjekkFelt(formMethods, field, options, values, path)}
type={numberFields.includes(field) ? 'number' : 'text'}
/>
)
Expand Down
1 change: 0 additions & 1 deletion apps/dolly-frontend/src/main/resources/logback-spring.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
<encoder class="no.nav.testnav.libs.reactivecore.logging.TestnavLogbackEncoder">
<maxStackTraceLength>-1</maxStackTraceLength>
<addCauses>true</addCauses>
<stackTraceIncludePrefix>-</stackTraceIncludePrefix>
</encoder>
</appender>
<root level="INFO">
Expand Down
8 changes: 8 additions & 0 deletions apps/dolly-search-service/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
FROM ghcr.io/navikt/baseimages/temurin:21
LABEL maintainer="Team Dolly"

ENV JAVA_OPTS="--add-opens java.base/java.lang=ALL-UNNAMED"

COPY /build/libs/app.jar /app/app.jar

EXPOSE 8080
8 changes: 8 additions & 0 deletions apps/dolly-search-service/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# testnav-dolly-search-service
Service som forvalter søking på personer basert på innsendte kriterier

## Lokal kjøring
* [Generelt.](../../docs/local_general.md)
* [Secret Manager.](../../docs/local_secretmanager.md)
* [OpenSearch.](../../docs/local_opensearch.md)

33 changes: 33 additions & 0 deletions apps/dolly-search-service/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
plugins {
id "dolly-apps"
}

sonarqube {
properties {
property "sonar.projectKey", "dolly-search-service"
property "sonar.projectName", "dolly-search-service"
}
}

dependencies {
implementation "no.nav.testnav.libs:data-transfer-search-objects"
implementation "no.nav.testnav.libs:reactive-core"
implementation "no.nav.testnav.libs:security-core"
implementation "no.nav.testnav.libs:servlet-core"
implementation "no.nav.testnav.libs:servlet-security"
implementation "no.nav.testnav.libs:testing"

implementation "org.opensearch.client:spring-data-opensearch:$versions.opensearch"

implementation "com.fasterxml.jackson.core:jackson-core:$versions.jackson"
implementation 'org.springframework.boot:spring-boot-starter-cache'
implementation 'com.github.ben-manes.caffeine:caffeine'

implementation "org.springframework.boot:spring-boot-starter-security"
implementation "org.springframework.boot:spring-boot-starter-oauth2-client"
implementation "org.springframework.boot:spring-boot-starter-web"

implementation "ma.glasnost.orika:orika-core:$versions.orika"

implementation "org.springdoc:springdoc-openapi-starter-webmvc-ui:$versions.springdoc"
}
70 changes: 70 additions & 0 deletions apps/dolly-search-service/config.test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
apiVersion: "nais.io/v1alpha1"
kind: "Application"
metadata:
name: testnav-dolly-search-service-dev
namespace: dolly
labels:
team: dolly
annotations:
nginx.ingress.kubernetes.io/proxy-body-size: "8m"
nginx.ingress.kubernetes.io/proxy-buffer-size: "8m"
nginx.ingress.kubernetes.io/client-body-buffer-size: "8m"
spec:
image: "{{image}}"
port: 8080
openSearch:
instance: bestillinger
access: read
tokenx:
enabled: true
azure:
application:
allowAllUsers: true
enabled: true
tenant: nav.no
accessPolicy:
inbound:
rules:
- application: dolly-idporten
- application: dolly-frontend
- application: dolly-frontend-dev
- application: team-dolly-lokal-app
- application: testnav-oversikt-frontend
outbound:
external:
- host: testnav-pdl-proxy.dev-fss-pub.nais.io
liveness:
path: /internal/isAlive
initialDelay: 4
periodSeconds: 5
failureThreshold: 500
observability:
logging:
destinations:
- id: elastic
autoInstrumentation:
enabled: true
runtime: java
readiness:
path: /internal/isReady
initialDelay: 4
periodSeconds: 5
failureThreshold: 500
prometheus:
enabled: true
path: /internal/metrics
replicas:
min: 1
max: 1
resources:
requests:
cpu: 200m
memory: 1024Mi
limits:
memory: 2048Mi
env:
- name: SPRING_PROFILES_ACTIVE
value: dev
ingresses:
- "https://testnav-dolly-search-service-dev.intern.dev.nav.no"

Loading

0 comments on commit 9c358f2

Please sign in to comment.