Skip to content
Snippets Groups Projects
Verified Commit 25c6a5f0 authored by Martin Weise's avatar Martin Weise
Browse files

Remove tmp/

parent 33e8de51
No related branches found
No related tags found
No related merge requests found
Showing
with 0 additions and 672 deletions
HELP.md
target/
out/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/
!**/src/main/**/out/
!**/src/test/**/out/
### Environment ###
.env
### Generated ###
ready
mapping.xml
*.versionsBackup
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
!**/src/main/**/build/
!**/src/test/**/build/
### VS Code ###
.vscode/
###### FIRST STAGE ######
FROM dbrepo-metadata-service:build as dependency
MAINTAINER Martin Weise <martin.weise@tuwien.ac.at>
###### SECOND STAGE ######
FROM maven:3-openjdk-17 as build
MAINTAINER Martin Weise <martin.weise@tuwien.ac.at>
COPY ./pom.xml ./
RUN mvn -fn -B dependency:go-offline
COPY --from=dependency /root/.m2/repository/at/tuwien /root/.m2/repository/at/tuwien
COPY ./api ./api
COPY ./querystore ./querystore
COPY ./report ./report
COPY ./rest-service ./rest-service
COPY ./services ./services
# Make sure it compiles
RUN mvn clean package -DskipTests
###### THIRD STAGE ######
FROM eclipse-temurin:17-jdk as runtime
MAINTAINER Martin Weise <martin.weise@tuwien.ac.at>
WORKDIR /app
COPY --from=build ./rest-service/target/rest-service-*.jar ./data-service.jar
EXPOSE 9093
ENTRYPOINT ["java", "-Dlog4j2.formatMsgNoLookups=true", "-jar", "./data-service.jar"]
\ No newline at end of file
# Data Service
## Test
Run all unit and integration tests and create an HTML+TXT coverage report located in the `report` module:
```bash
mvn -pl rest-service clean test verify
```
Or run only tests
in [`DatabaseServiceIntegrationTest.java`](https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/blob/master/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/DatabaseServiceIntegrationTest.java):
```bash
mvn -pl rest-service -Dtest="DatabaseServiceIntegrationTest" clean test
```
## Run
Start the Metadata Database, Data Database, Broker Service before and then run the Data Service:
```bash
mvn -pl rest-service clean spring-boot:run -Dspring-boot.run.profiles=local
```
### Endpoints
#### Actuator
- Info: http://localhost:9093/actuator/info
- Health: http://localhost:9093/actuator/health
- Readiness: http://localhost:9093/actuator/health/readiness
- Liveness: http://localhost:9093/actuator/health/liveness
- Prometheus: http://localhost:9093/actuator/prometheus
#### Swagger UI
- Swagger UI: http://localhost:9093/swagger-ui/index.html
#### OpenAPI
- OpenAPI v3 as .yaml: http://localhost:9093/v3/api-docs.yaml
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>at.tuwien</groupId>
<artifactId>dbrepo-data-service</artifactId>
<version>1.4.3</version>
</parent>
<artifactId>dbrepo-data-service-api</artifactId>
<name>dbrepo-data-service-api</name>
<version>1.4.3</version>
<dependencies/>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>
</build>
</project>
\ No newline at end of file
package at.tuwien;
import lombok.*;
import org.springframework.core.io.InputStreamResource;
@Getter
@Setter
@ToString
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ExportResourceDto {
private InputStreamResource resource;
private String filename;
}
package at.tuwien.api;
import com.fasterxml.jackson.annotation.JsonProperty;
public enum SortTypeDto {
@JsonProperty("asc")
ASC("asc"),
@JsonProperty("desc")
DESC("desc");
private String type;
SortTypeDto(String type) {
this.type = type;
}
public String toString() {
return this.type;
}
}
package at.tuwien.api.amqp;
import com.fasterxml.jackson.annotation.JsonProperty;
import jakarta.validation.constraints.NotNull;
import lombok.*;
import lombok.extern.jackson.Jacksonized;
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Jacksonized
@ToString
public class ChannelDetailsDto {
@NotNull
@JsonProperty("connection_name")
private String connectionName;
@NotNull
private String name;
@NotNull
private String node;
@NotNull
@JsonProperty("number")
private Integer number;
@NotNull
@JsonProperty("peer_host")
private String peerHost;
@NotNull
@JsonProperty("peer_port")
private Integer peerPort;
@NotNull
private String user;
}
package at.tuwien.api.amqp;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.*;
import jakarta.validation.constraints.NotNull;
import lombok.extern.jackson.Jacksonized;
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Jacksonized
@ToString
public class ConsumerDto {
@NotNull
@JsonProperty("ack_required")
private Boolean ackRequired;
@NotNull
private Boolean active;
@NotNull
@JsonProperty("activity_status")
private String activityStatus;
@NotNull
@JsonProperty("channel_details")
private ChannelDetailsDto channelDetails;
@NotNull
@JsonProperty("consumer_tag")
private String consumerTag;
@NotNull
private Boolean exclusive;
@NotNull
@JsonProperty("prefetch_count")
private Integer prefetchCount;
@NotNull
private QueueBriefDto queue;
}
package at.tuwien.api.amqp;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.v3.oas.annotations.Parameter;
import lombok.*;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.extern.jackson.Jacksonized;
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Jacksonized
@ToString
public class CreateExchangeDto {
@NotNull
@JsonProperty("auto_delete")
private Boolean autoDelete;
@NotNull
private Boolean durable;
@NotNull
private Boolean internal;
@NotBlank
private String type;
}
package at.tuwien.api.amqp;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import lombok.extern.jackson.Jacksonized;
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Jacksonized
@ToString
public class CreateUserDto {
@Schema(example = "s3cr3t1nf0rm4t10n")
private String password;
@Schema(example = "administrator")
private String tags;
}
package at.tuwien.api.amqp;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import jakarta.validation.constraints.NotNull;
import lombok.extern.jackson.Jacksonized;
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Jacksonized
@ToString
public class CreateVirtualHostDto {
@NotNull
@Schema(example = "air")
private String name;
private String description;
private String tags;
}
package at.tuwien.api.amqp;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.v3.oas.annotations.Parameter;
import lombok.*;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.extern.jackson.Jacksonized;
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Jacksonized
@ToString
public class ExchangeDto {
@NotNull
@JsonProperty("auto_delete")
private Boolean autoDelete;
@NotNull
private Boolean durable;
@NotNull
private Boolean internal;
@NotBlank
private String name;
@NotBlank
private String type;
@JsonProperty("user_who_performed_action")
private String creator;
@NotBlank
private String vhost;
}
package at.tuwien.api.amqp;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import lombok.*;
import lombok.extern.jackson.Jacksonized;
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Jacksonized
@ToString
public class GrantExchangePermissionsDto {
@NotNull
@Schema(example = "dbrepo")
private String exchange;
@NotNull
@Schema(example = ".*")
private String write;
@NotNull
@Schema(example = ".*")
private String read;
}
package at.tuwien.api.amqp;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import jakarta.validation.constraints.NotNull;
import lombok.extern.jackson.Jacksonized;
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Jacksonized
@ToString
public class GrantVirtualHostPermissionsDto {
@NotNull
@Schema(example = ".*")
private String configure;
@NotNull
@Schema(example = ".*")
private String write;
@NotNull
@Schema(example = ".*")
private String read;
}
package at.tuwien.api.amqp;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import jakarta.validation.constraints.NotNull;
import lombok.extern.jackson.Jacksonized;
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Jacksonized
@ToString
public class QueueBriefDto {
@NotNull
@Schema(example = "dbrepo")
private String vhost;
@NotNull
@Schema(example = "air")
private String name;
}
package at.tuwien.api.amqp;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.*;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.extern.jackson.Jacksonized;
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Jacksonized
@ToString
public class QueueDto {
@NotNull
@JsonProperty("auto_delete")
private Boolean autoDelete;
@NotNull
private Boolean durable;
@NotNull
private Boolean exclusive;
@NotBlank
private String name;
@NotBlank
private String node;
@NotBlank
private String type;
@NotBlank
private String vhost;
}
package at.tuwien.api.amqp;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import lombok.*;
import lombok.extern.jackson.Jacksonized;
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Jacksonized
@ToString
public class TopicPermissionDto {
@NotNull
@Schema(example = "username")
private String user;
@NotNull
@Schema(example = "dbrepo")
private String exchange;
@NotNull
@Schema(example = "dbrepo")
private String vhost;
@NotNull
@Schema(example = ".*")
private String write;
@NotNull
@Schema(example = ".*")
private String read;
}
package at.tuwien.api.amqp;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import jakarta.validation.constraints.NotNull;
import lombok.extern.jackson.Jacksonized;
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Jacksonized
@ToString
public class TupleDto {
@NotNull
@Schema(example = "name")
private String k;
@NotNull
@Schema(example = "Max Mustermann")
private String v;
}
package at.tuwien.api.amqp;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import jakarta.validation.constraints.NotNull;
import lombok.extern.jackson.Jacksonized;
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Jacksonized
@ToString
public class UserDetailsDto {
@NotNull
@Schema(example = "jdoe")
private String name;
@NotNull
@JsonProperty("password_hash")
@Schema(example = "LP5aXqGKWjygzwHnTjmrv1U8M+LW5kI243X/sFTE6I3XyNi3")
private String passwordHash;
@NotNull
@JsonProperty("hashing_algorithm")
@Schema(example = "rabbit_password_hashing_sha256")
private String hashingAlgorithm;
@NotNull
private String[] tags;
}
package at.tuwien.api.amqp;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import lombok.*;
import lombok.extern.jackson.Jacksonized;
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Jacksonized
@ToString
public class VirtualHostPermissionDto {
@NotNull
@Schema(example = "username")
private String user;
@NotNull
@Schema(example = "dbrepo")
private String vhost;
@NotNull
@Schema(example = ".*")
private String configure;
@NotNull
@Schema(example = ".*")
private String write;
@NotNull
@Schema(example = ".*")
private String read;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment