Skip to content

Commit

Permalink
Integration of Supabase-Spring Auth. | PostgreSQL as VectorDB/History…
Browse files Browse the repository at this point in the history
…Context | HikariCP For PostgreSQL (#152)

* Integration of Supabase-Spring Auth. | PostgreSQL as VectorDB/HistoryContext | Connection Pooling For DataSource

* Adding Cors Configuration | Fixing Issues

* Adding Cors Configuration | Fixing Issues

* Adding Cors Configuration | Fixing Issues

* Updated EdgeChainApplication
  • Loading branch information
EmadHanif01 committed Jul 21, 2023
1 parent d97ecfb commit e799280
Show file tree
Hide file tree
Showing 97 changed files with 1,932 additions and 1,845 deletions.
316 changes: 228 additions & 88 deletions Examples/EdgeChainApplication.java

Large diffs are not rendered by default.

73 changes: 50 additions & 23 deletions FlySpring/edgechain-app/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
</properties>
<dependencies>


<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
Expand All @@ -29,14 +28,12 @@

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>

<dependency>
Expand All @@ -45,17 +42,54 @@
<version>4.3.1</version>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
</dependency>

<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<scope>runtime</scope>
</dependency>

<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>

<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.1.6.Final</version>
</dependency>

<dependency>
<groupId>org.modelmapper</groupId>
<artifactId>modelmapper</artifactId>
<version>3.1.1</version>
</dependency>

<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>

<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
</dependency>

<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>5.0.1</version>
</dependency>


<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
</dependency>


<dependency>
<groupId>com.squareup.retrofit2</groupId>
Expand All @@ -76,21 +110,14 @@
</dependency>

<dependency>
<groupId>org.apache.opennlp</groupId>
<artifactId>opennlp-tools</artifactId>
<version>2.2.0</version>
</dependency>

<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
</dependency>

<dependency>
<groupId>javax.persistence</groupId>
<artifactId>javax.persistence-api</artifactId>
<version>2.2</version>
<groupId>org.apache.opennlp</groupId>
<artifactId>opennlp-tools</artifactId>
<version>2.2.0</version>
</dependency>

<dependency>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public void upsert(String input) {
new EdgeChain<>(
this.openAiEndpoint
.getEmbeddings(input)
.map(this.pineconeEndpoint::upsert)
.map(w -> this.pineconeEndpoint.upsert(w))
.firstOrError()
.blockingGet())
.await()
Expand All @@ -49,7 +49,7 @@ public void upsert(String input) {
new EdgeChain<>(
this.doc2VecEndpoint
.getEmbeddings(input)
.map(this.pineconeEndpoint::upsert)
.map(w -> this.pineconeEndpoint.upsert(w))
.firstOrError()
.blockingGet())
.await()
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package com.edgechain.lib.configuration;

import com.edgechain.lib.configuration.domain.SupabaseEnv;
import com.zaxxer.hikari.HikariDataSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.core.JdbcTemplate;

@Configuration
public class PostgreSQLConfiguration {

@Autowired private SupabaseEnv supabaseEnv;

@Bean
public HikariDataSource dataSource() {

HikariDataSource hikariDataSource =
DataSourceBuilder.create()
.type(HikariDataSource.class)
.url(supabaseEnv.getDbHost())
.driverClassName("org.postgresql.Driver")
.username(supabaseEnv.getDbUsername())
.password(supabaseEnv.getDbPassword())
.build();

return hikariDataSource;
}

@Bean
public JdbcTemplate jdbcTemplate() {
return new JdbcTemplate(dataSource());
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package com.edgechain.lib.configuration;

import com.edgechain.lib.configuration.domain.RedisEnv;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Lazy;
Expand Down Expand Up @@ -36,6 +38,7 @@ public JedisConnectionFactory jedisConnectionFactory() {
}

@Bean
@ConditionalOnBean(name = "redisEnv")
public RedisTemplate<String, Object> redisTemplate() {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(jedisConnectionFactory());
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,52 @@
package com.edgechain.lib.configuration;

import com.edgechain.lib.configuration.domain.*;
import org.modelmapper.ModelMapper;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;
import org.springframework.web.client.RestTemplate;

import java.util.UUID;

@Order(Ordered.HIGHEST_PRECEDENCE)
@Configuration("WebConfiguration")
@Import(EdgeChainAutoConfiguration.class)
public class WebConfiguration {}
public class WebConfiguration {

@Bean
public ModelMapper modelMapper() {
return new ModelMapper();
}

@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}

@Bean
public SupabaseEnv supabaseEnv() {
return new SupabaseEnv();
}

@Bean
public RedisEnv redisEnv() {
return new RedisEnv();
}

@Bean
public ExcludeMappingFilter mappingFilter() {
return new ExcludeMappingFilter();
}

@Bean
public SecurityUUID securityUUID() {
return new SecurityUUID(UUID.randomUUID().toString());
}

@Bean
public CorsEnableOrigins corsEnableOrigins() {
return new CorsEnableOrigins();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.edgechain.lib.configuration.domain;

import org.springframework.stereotype.Component;

import java.util.List;

@Component
public class CorsEnableOrigins {

List<String> origins;

public List<String> getOrigins() {
return origins;
}

public void setOrigins(List<String> origins) {
this.origins = origins;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
package com.edgechain.lib.configuration.domain;

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

public class ExcludeMappingFilter {

private List<String> requestGet = new ArrayList<>();
private List<String> requestPost = new ArrayList<>();

private List<String> requestPut = new ArrayList<>();

private List<String> requestPatch = new ArrayList<>();

private List<String> requestDelete = new ArrayList<>();

public String[] getRequestGet() {
return requestGet.toArray(String[]::new);
}

public void setRequestGet(List<String> requestGet) {
this.requestGet = requestGet;
}

public String[] getRequestPost() {
return requestPost.toArray(String[]::new);
}

public void setRequestPost(List<String> requestPost) {
this.requestPost = requestPost;
}

public String[] getRequestPut() {
return requestPut.toArray(String[]::new);
}

public void setRequestPut(List<String> requestPut) {
this.requestPut = requestPut;
}

public String[] getRequestPatch() {
return requestPatch.toArray(String[]::new);
}

public void setRequestPatch(List<String> requestPatch) {
this.requestPatch = requestPatch;
}

public String[] getRequestDelete() {
return requestDelete.toArray(String[]::new);
}

public void setRequestDelete(List<String> requestDelete) {
this.requestDelete = requestDelete;
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.edgechain.lib.configuration;
package com.edgechain.lib.configuration.domain;

public class RedisEnv {

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.edgechain.lib.configuration.domain;

public class SecurityUUID {

private String authKey;

public SecurityUUID(String authKey) {
this.authKey = authKey;
}

public String getAuthKey() {
return authKey;
}

public void setAuthKey(String authKey) {
this.authKey = authKey;
}
}
Loading

0 comments on commit e799280

Please sign in to comment.