diff --git a/pom.xml b/pom.xml
index 178030e..7f0e9a2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -84,6 +84,11 @@
rest-assured
test
+
+ info.picocli
+ picocli
+ 4.7.3
+
diff --git a/src/main/java/com/redhat/pctsec/GreetingResource.java b/src/main/java/com/redhat/pctsec/GreetingResource.java
deleted file mode 100644
index 0aee1ea..0000000
--- a/src/main/java/com/redhat/pctsec/GreetingResource.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.redhat.pctsec;
-
-import jakarta.ws.rs.GET;
-import jakarta.ws.rs.Path;
-import jakarta.ws.rs.Produces;
-import jakarta.ws.rs.core.MediaType;
-
-@Path("/hello")
-public class GreetingResource {
-
- @GET
- @Produces(MediaType.TEXT_PLAIN)
- public String hello() {
- return "Hello from RESTEasy Reactive";
- }
-}
diff --git a/src/main/java/com/redhat/pctsec/model/BrewBuild.java b/src/main/java/com/redhat/pctsec/model/BrewBuild.java
new file mode 100644
index 0000000..fafbe33
--- /dev/null
+++ b/src/main/java/com/redhat/pctsec/model/BrewBuild.java
@@ -0,0 +1,21 @@
+package com.redhat.pctsec.model;
+
+import java.net.URI;
+import java.net.URL;
+
+public class BrewBuild extends BuildType {
+
+ public BrewBuild(String buildRef) {
+ super(buildRef);
+ }
+
+ @Override
+ public URI SCMURL() {
+ return null;
+ }
+
+ @Override
+ public URL URL() {
+ return null;
+ }
+}
diff --git a/src/main/java/com/redhat/pctsec/model/BuildType.java b/src/main/java/com/redhat/pctsec/model/BuildType.java
new file mode 100644
index 0000000..64d04f1
--- /dev/null
+++ b/src/main/java/com/redhat/pctsec/model/BuildType.java
@@ -0,0 +1,28 @@
+package com.redhat.pctsec.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import jakarta.persistence.Column;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+
+import java.net.URI;
+import java.net.URL;
+
+abstract public class BuildType {
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ private Long id;
+
+ @JsonProperty()
+ @Column(name="buildref")
+ private String buildRef;
+
+ public BuildType(String buildRef)
+ {
+ this.buildRef = buildRef;
+ }
+
+ abstract public URI SCMURL(void);
+ abstract public URL URL(void);
+}
diff --git a/src/main/java/com/redhat/pctsec/model/PNCBuild.java b/src/main/java/com/redhat/pctsec/model/PNCBuild.java
new file mode 100644
index 0000000..42eebfd
--- /dev/null
+++ b/src/main/java/com/redhat/pctsec/model/PNCBuild.java
@@ -0,0 +1,20 @@
+package com.redhat.pctsec.model;
+
+import java.net.URI;
+import java.net.URL;
+
+public class PNCBuild extends BuildType{
+ public PNCBuild(String buildRef) {
+ super(buildRef);
+ }
+
+ @Override
+ public URI SCMURL() {
+ return null;
+ }
+
+ @Override
+ public URL URL() {
+ return null;
+ }
+}
diff --git a/src/main/java/com/redhat/pctsec/model/Scan.java b/src/main/java/com/redhat/pctsec/model/Scan.java
new file mode 100644
index 0000000..e7c063a
--- /dev/null
+++ b/src/main/java/com/redhat/pctsec/model/Scan.java
@@ -0,0 +1,44 @@
+package com.redhat.pctsec.model;
+
+import jakarta.persistence.*;
+import jakarta.validation.constraints.Email;
+import jakarta.validation.constraints.NotNull;
+
+import java.util.Calendar;
+import java.util.List;
+
+enum ScanState {
+ CREATED, TRIGGERED, RUNNING, SUCCESS, FAIL;
+}
+@Entity
+public class Scan {
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ private Long id;
+
+ @OneToOne
+ @NotNull
+ @JoinColumn(name = "product_id", referencedColumnName = "id")
+ private String productName;
+
+ @Temporal(TemporalType.TIMESTAMP)
+ @Column(name="creation_timestamp")
+ private Calendar creationTimestamp;
+
+ @Column(name="state")
+ @Enumerated(EnumType.STRING)
+ private ScanState state;
+
+ @Column(name="requestor")
+ @NotNull
+ private String requestor;
+
+ @Column(name="report_email")
+ @Email
+ private String email;
+
+ @OneToOne
+ @JoinColumn(name = "scan_requests_id", referencedColumnName = "id")
+ private ScanRequests scanRequests;
+}
diff --git a/src/main/java/com/redhat/pctsec/model/ScanRequest.java b/src/main/java/com/redhat/pctsec/model/ScanRequest.java
index e6a18cb..bf67e66 100644
--- a/src/main/java/com/redhat/pctsec/model/ScanRequest.java
+++ b/src/main/java/com/redhat/pctsec/model/ScanRequest.java
@@ -2,19 +2,22 @@ package com.redhat.pctsec.model;
import com.redhat.pctsec.tekton.brewTaskRun;
import com.redhat.pctsec.tekton.scmUrlPipelineRun;
+import io.vertx.mutiny.core.eventbus.EventBus;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;
import java.util.HashMap;
@ApplicationScoped
-public class ScanRequest {
+abstract public class ScanRequest {
+
+ @Inject
+ EventBus bus;
private HashMap metadata;
private HashMap oshScanOptions;
- private String brewBuild;
- private HashMap scmurl;
+<<<<<<< HEAD
//@Inject
brewTaskRun btr;
@@ -45,4 +48,5 @@ public class ScanRequest {
plr.invokeOshScmScanPipeline(this.scmurl.get("repo"), this.scmurl.get("ref"));
}
}
+
}
diff --git a/src/main/java/com/redhat/pctsec/model/ScanRequests.java b/src/main/java/com/redhat/pctsec/model/ScanRequests.java
index 0be45b6..e4dc2f6 100644
--- a/src/main/java/com/redhat/pctsec/model/ScanRequests.java
+++ b/src/main/java/com/redhat/pctsec/model/ScanRequests.java
@@ -1,19 +1,34 @@
package com.redhat.pctsec.model;
-import com.redhat.pctsec.rest.v1alpha1.Scan;
+import com.redhat.pctsec.model.api.request.pssaas;
import jakarta.enterprise.context.ApplicationScoped;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;
-import jakarta.persistence.GeneratedValue;
-import jakarta.persistence.Id;
+
+import jakarta.persistence.*;
+
@ApplicationScoped
+@Entity
public class ScanRequests {
- @Id @GeneratedValue private Long id;
- private Set scanRequests = new HashSet<>();
- private HashMap globalScanProperties;
+ @Id
+ @GeneratedValue
+ private Long id;
+
+ @OneToMany
+ @JoinColumn(name = "scan_request_id", referencedColumnName = "id")
+ private Set scanRequests;
+
+ @Column(name="scan_properties")
+ private String scanProperties;
+
+
+ public ScanRequests(){
+ //Default to the Snyk scan
+ this.scanProperties = "-p snyk-only-unstable --tarball-build-script=\":\"";
+ }
public ScanRequests(pssaas pssaas){
//Iterate scan payload and create scans
diff --git a/src/main/java/com/redhat/pctsec/model/api/request/build.java b/src/main/java/com/redhat/pctsec/model/api/request/build.java
new file mode 100644
index 0000000..52e60eb
--- /dev/null
+++ b/src/main/java/com/redhat/pctsec/model/api/request/build.java
@@ -0,0 +1,25 @@
+package com.redhat.pctsec.model.api.request;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import jakarta.validation.constraints.NotNull;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonPropertyOrder({
+ "type",
+ "build-id"
+})
+public class build {
+ @NotNull
+ @JsonProperty("type")
+ public final String type;
+
+ @NotNull
+ @JsonProperty("build-id")
+ public final String buildId;
+
+ public build(@NotNull String type, @NotNull String buildId) {
+ this.type = type;
+ this.buildId = buildId;
+ }
+}
diff --git a/src/main/java/com/redhat/pctsec/model/git.java b/src/main/java/com/redhat/pctsec/model/api/request/git.java
similarity index 80%
rename from src/main/java/com/redhat/pctsec/model/git.java
rename to src/main/java/com/redhat/pctsec/model/api/request/git.java
index 7718913..203327a 100644
--- a/src/main/java/com/redhat/pctsec/model/git.java
+++ b/src/main/java/com/redhat/pctsec/model/api/request/git.java
@@ -1,4 +1,4 @@
-package com.redhat.pctsec.model;
+package com.redhat.pctsec.model.api.request;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
@@ -14,13 +14,13 @@ import jakarta.validation.constraints.NotNull;
public class git {
@NotNull
@JsonProperty("type")
- public String type;
+ public final static String type = "git";
@NotNull
@JsonProperty("repo")
public String repo;
@NotNull
- @JsonProperty("ref")
+ @JsonProperty("repo")
public String ref;
-}
+}
\ No newline at end of file
diff --git a/src/main/java/com/redhat/pctsec/model/pssaas.java b/src/main/java/com/redhat/pctsec/model/api/request/pssaas.java
similarity index 83%
rename from src/main/java/com/redhat/pctsec/model/pssaas.java
rename to src/main/java/com/redhat/pctsec/model/api/request/pssaas.java
index 5153847..9a62333 100644
--- a/src/main/java/com/redhat/pctsec/model/pssaas.java
+++ b/src/main/java/com/redhat/pctsec/model/api/request/pssaas.java
@@ -1,4 +1,4 @@
-package com.redhat.pctsec.model;
+package com.redhat.pctsec.model.api.request;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
@@ -66,20 +66,5 @@ public class pssaas {
@Valid
@NotNull
public Set