Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Removing credentials from source package #473

Merged
merged 59 commits into from
Aug 6, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
59eb0ad
WIP
miguelbranco80 Jun 18, 2024
249a5e7
WIP# Please enter the commit message for your changes. Lines starting
miguelbranco80 Jun 18, 2024
d94eb0a
Removing classloaders and eval from CompilerService interface.
miguelbranco80 Jun 18, 2024
ab23ae8
Removing remaining classloaders.
miguelbranco80 Jun 19, 2024
936f0c5
Fix.
miguelbranco80 Jun 19, 2024
7b06434
WIP
miguelbranco80 Jun 24, 2024
8b73961
WIP
miguelbranco80 Jun 25, 2024
40e6402
Merge remote-tracking branch 'origin/main' into remove-creds
miguelbranco80 Jun 25, 2024
dbb3eb6
WIP
miguelbranco80 Jun 28, 2024
6d8046e
WIP
miguelbranco80 Jul 2, 2024
627be43
Merge remote-tracking branch 'origin/main' into remove-creds
miguelbranco80 Jul 2, 2024
5bbb999
WIP
miguelbranco80 Jul 3, 2024
0e6e912
WIP
miguelbranco80 Jul 12, 2024
49a8824
Merge remote-tracking branch 'origin/main' into remove-creds
miguelbranco80 Jul 25, 2024
7af2931
Getting code to compile.
miguelbranco80 Jul 25, 2024
65690ee
Some more success.
miguelbranco80 Jul 25, 2024
011828e
Fix.
miguelbranco80 Jul 25, 2024
f8ab901
WIP
miguelbranco80 Jul 26, 2024
b4c6eb3
WIP
miguelbranco80 Jul 26, 2024
dcfd1e7
Use directly Rql2Value for the staged compiler.
miguelbranco80 Jul 29, 2024
d564e08
Fix.
miguelbranco80 Jul 29, 2024
52d3338
Merge branch 'fix-raw-value' into remove-creds-with-fix-raw-value
miguelbranco80 Jul 29, 2024
7339d38
WIP
miguelbranco80 Jul 29, 2024
835d604
WIP
miguelbranco80 Jul 30, 2024
0755e15
Merge remote-tracking branch 'origin/main' into remove-creds-with-fix…
miguelbranco80 Jul 30, 2024
556cf50
Sources + Frontend working.
miguelbranco80 Aug 1, 2024
1a2ad0e
WIP
miguelbranco80 Aug 2, 2024
453e805
Compiling...
miguelbranco80 Aug 3, 2024
a1a9ce8
WIP
miguelbranco80 Aug 3, 2024
0f5641f
Support local files for testing
miguelbranco80 Aug 3, 2024
2b090a7
Fixes.
miguelbranco80 Aug 3, 2024
6688921
Fixes.
miguelbranco80 Aug 3, 2024
633a3f8
WIP
miguelbranco80 Aug 3, 2024
d82cb9d
Bug fix.
miguelbranco80 Aug 3, 2024
54f6a90
Fix.
miguelbranco80 Aug 4, 2024
87f8fe6
Various fixes.
miguelbranco80 Aug 4, 2024
e48980b
WIP
miguelbranco80 Aug 4, 2024
fb14ca5
WIP
miguelbranco80 Aug 4, 2024
e34869c
More fixes.
miguelbranco80 Aug 4, 2024
43cd06e
Fixes.
miguelbranco80 Aug 4, 2024
0bba563
Fix
miguelbranco80 Aug 4, 2024
2615607
Migrate all tests.
miguelbranco80 Aug 4, 2024
76987d3
Merge remote-tracking branch 'origin/main' into remove-creds-with-fix…
miguelbranco80 Aug 4, 2024
7c0b9bf
Fix.
miguelbranco80 Aug 4, 2024
e2b4bb5
Bug fix.
miguelbranco80 Aug 4, 2024
add1514
Fix.
miguelbranco80 Aug 4, 2024
2e7c8c2
More fixes.
miguelbranco80 Aug 4, 2024
6af0476
Fix.
miguelbranco80 Aug 4, 2024
28bc205
More fixes.
miguelbranco80 Aug 4, 2024
616afa9
Bug fix.
miguelbranco80 Aug 4, 2024
1604bc8
Fix
miguelbranco80 Aug 4, 2024
600dcef
Fixes.
miguelbranco80 Aug 5, 2024
7372757
Fixing tests.
miguelbranco80 Aug 5, 2024
bd48f6b
Fixing tests.
miguelbranco80 Aug 5, 2024
400e116
Fix
miguelbranco80 Aug 5, 2024
ce10dee
Fix.
miguelbranco80 Aug 5, 2024
82d9b2c
Commenting Snowflake for now.
miguelbranco80 Aug 5, 2024
6a7a2f1
Fix.
miguelbranco80 Aug 5, 2024
3c2ea83
Remove creds, auth, and rest packages (#474)
miguelbranco80 Aug 5, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
49 changes: 26 additions & 23 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ ThisBuild / credentials += Credentials(
"raw-labs",
sys.env.getOrElse("GITHUB_TOKEN", "")
)
ThisBuild/ resolvers += "Github RAW main repo" at "https://maven.pkg.github.com/raw-labs/raw"
ThisBuild / resolvers += "Github RAW main repo" at "https://maven.pkg.github.com/raw-labs/raw"

ThisBuild / javaHome := {
val javaHomePath = sys.env.getOrElse("JAVA_HOME", sys.props("java.home"))
Expand Down Expand Up @@ -83,20 +83,9 @@ lazy val utils = (project in file("utils"))
jacksonDeps
)

lazy val client = (project in file("client"))
.dependsOn(
utils % "compile->compile;test->test"
)
.settings(
commonSettings,
scalaCompileSettings,
testSettings,
libraryDependencies += trufflePolyglot
)

lazy val sources = (project in file("sources"))
.dependsOn(
client % "compile->compile;test->test"
utils % "compile->compile;test->test"
)
.settings(
commonSettings,
Expand All @@ -119,23 +108,36 @@ lazy val sources = (project in file("sources"))
)
)

lazy val client = (project in file("client"))
.dependsOn(
utils % "compile->compile;test->test"
)
.settings(
commonSettings,
scalaCompileSettings,
testSettings,
libraryDependencies += trufflePolyglot
)

lazy val snapiParser = (project in file("snapi-parser"))
.enablePlugins(GenParserPlugin)
.settings(
commonSettings,
commonCompileSettings,
javaSrcBasePath := s"${baseDirectory.value}/src/main/java",
parserDefinitions := List(
(s"${javaSrcBasePath.value}/raw/compiler/rql2/generated",
(
s"${javaSrcBasePath.value}/raw/compiler/rql2/generated",
"raw.compiler.rql2.generated",
s"${javaSrcBasePath.value}/raw/snapi/grammar",
"Snapi")
"Snapi"
)
),
Compile / doc := { file("/dev/null") },
compileOrder := CompileOrder.JavaThenScala,
libraryDependencies ++= Seq(
antlr4Runtime
),
)
)

lazy val snapiFrontend = (project in file("snapi-frontend"))
Expand Down Expand Up @@ -249,30 +251,31 @@ lazy val snapiClient = (project in file("snapi-client"))
testSettings
)


lazy val sqlParser = (project in file("sql-parser"))
.enablePlugins(GenParserPlugin)
.settings(
commonSettings,
commonCompileSettings,
javaSrcBasePath := s"${baseDirectory.value}/src/main/java",
parserDefinitions := List(
(s"${javaSrcBasePath.value}/raw/client/sql/generated",
"raw.client.sql.generated",
s"${javaSrcBasePath.value}/raw/psql/grammar",
"Psql")
(
s"${javaSrcBasePath.value}/raw/client/sql/generated",
"raw.client.sql.generated",
s"${javaSrcBasePath.value}/raw/psql/grammar",
"Psql"
)
),
Compile / doc := { file("/dev/null") },
compileOrder := CompileOrder.JavaThenScala,
libraryDependencies ++= Seq(
antlr4Runtime,
antlr4Runtime
)
)

lazy val sqlClient = (project in file("sql-client"))
.dependsOn(
client % "compile->compile;test->test",
sqlParser % "compile->compile;test->test",
sqlParser % "compile->compile;test->test"
)
.settings(
commonSettings,
Expand Down
5 changes: 4 additions & 1 deletion client/src/main/java/module-info.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,12 @@
requires scala.library;
requires org.slf4j;
requires org.graalvm.polyglot;
requires com.fasterxml.jackson.core;
requires com.fasterxml.jackson.databind;
requires com.fasterxml.jackson.dataformat.csv;
requires com.fasterxml.jackson.core;
requires com.fasterxml.jackson.scala;
requires com.fasterxml.jackson.datatype.jsr310;
requires com.fasterxml.jackson.datatype.jdk8;
requires raw.utils;

exports raw.client.api;
Expand Down
2 changes: 1 addition & 1 deletion client/src/main/scala/raw/client/api/CompilerService.scala
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ object CompilerService {
"Arguments" -> environment.maybeArguments
.map(args => args.map { case (k, v) => s"$k -> $v" }.mkString("\n"))
.getOrElse("<undefined>"),
"User" -> environment.user.toString,
"Uid" -> environment.uid.toString,
"Scopes" -> environment.scopes.mkString(","),
"Options" -> environment.options.map { case (k, v) => s"$k -> $v" }.mkString("\n")
//"Settings" -> runtimeContext.settings.toString
Expand Down
96 changes: 0 additions & 96 deletions client/src/main/scala/raw/client/api/LocationDescription.scala

This file was deleted.

105 changes: 101 additions & 4 deletions client/src/main/scala/raw/client/api/ProgramEnvironment.scala
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,110 @@

package raw.client.api

import raw.utils.AuthenticatedUser
import com.fasterxml.jackson.annotation.JsonSubTypes.{Type => JsonType}
import com.fasterxml.jackson.annotation.{JsonSubTypes, JsonTypeInfo}
import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.datatype.jdk8.Jdk8Module
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule
import com.fasterxml.jackson.module.scala.{ClassTagExtensions, DefaultScalaModule}
import raw.utils.RawUid

final case class ProgramEnvironment(
user: AuthenticatedUser,
uid: RawUid,
maybeArguments: Option[Array[(String, RawValue)]],
scopes: Set[String],
secrets: Map[String, String],
jdbcServers: Map[String, JdbcLocation],
httpHeaders: Map[String, Map[String, String]],
s3Credentials: Map[String, S3Credential],
options: Map[String, String],
maybeTraceId: Option[String] = None,
jdbcUrl: Option[String] = None
jdbcUrl: Option[String] = None,
maybeTraceId: Option[String] = None
)

@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
@JsonSubTypes(
Array(
new JsonType(value = classOf[MySqlJdbcLocation], name = "mysql"),
new JsonType(value = classOf[OracleJdbcLocation], name = "oracle"),
new JsonType(value = classOf[PostgresJdbcLocation], name = "postgres"),
new JsonType(value = classOf[SqlServerJdbcLocation], name = "sqlserver"),
new JsonType(value = classOf[SnowflakeJdbcLocation], name = "snowflake"),
new JsonType(value = classOf[SqliteJdbcLocation], name = "sqlite"),
new JsonType(value = classOf[TeradataJdbcLocation], name = "teradata")
)
)
trait JdbcLocation
final case class MySqlJdbcLocation(
host: String,
port: Int,
database: String,
username: String,
password: String
) extends JdbcLocation
final case class OracleJdbcLocation(
host: String,
port: Int,
database: String,
username: String,
password: String
) extends JdbcLocation
final case class PostgresJdbcLocation(
host: String,
port: Int,
database: String,
username: String,
password: String
) extends JdbcLocation
final case class SqlServerJdbcLocation(
host: String,
port: Int,
database: String,
username: String,
password: String
) extends JdbcLocation
final case class SnowflakeJdbcLocation(
database: String,
username: String,
password: String,
accountIdentifier: String,
parameters: Map[String, String]
) extends JdbcLocation
final case class SqliteJdbcLocation(
path: String
) extends JdbcLocation
final case class TeradataJdbcLocation(
host: String,
port: Int,
database: String,
username: String,
password: String,
parameters: Map[String, String]
) extends JdbcLocation

final case class S3Credential(
accessKey: Option[String],
secretKey: Option[String],
region: Option[String]
)

object ProgramEnvironment {

private val jsonMapper = new ObjectMapper with ClassTagExtensions {
registerModule(DefaultScalaModule)
registerModule(new JavaTimeModule())
registerModule(new Jdk8Module())
}

private val reader = jsonMapper.readerFor[ProgramEnvironment]
private val writer = jsonMapper.writerFor[ProgramEnvironment]

def serializeToString(env: ProgramEnvironment): String = {
writer.writeValueAsString(env)
}

def deserializeFromString(str: String): ProgramEnvironment = {
reader.readValue(str)
}

}
6 changes: 2 additions & 4 deletions launcher/src/main/java/raw/cli/RawLauncher.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import raw.client.api.*;
import raw.utils.AuthenticatedUser;
import raw.utils.InteractiveUser;
import raw.utils.RawUid;
import raw.utils.RawException;
import raw.utils.RawSettings;
import scala.Option;
Expand All @@ -44,7 +43,6 @@ public RawLauncher(String language, PrintWriter writer) {
RawSettings rawSettings = new RawSettings(ConfigFactory.load(), ConfigFactory.empty());

this.compilerService = CompilerServiceProvider.apply(language, rawSettings);
AuthenticatedUser user = new InteractiveUser("uid", "name", "email", (Seq<String>) Seq$.MODULE$.empty());

HashMap<String, String> javaOptions = new HashMap<String, String>();
javaOptions.put("output-format", "json");
Expand All @@ -54,7 +52,7 @@ public RawLauncher(String language, PrintWriter writer) {
.asScala()
.toMap(scala.Predef.<scala.Tuple2<String, String>>conforms());

this.env = new ProgramEnvironment(user, Option.empty(), (Set<String>) Set$.MODULE$.empty(), scalaOptions, Option.empty());
this.env = new ProgramEnvironment(RawUid("uid"), Option.empty(), (Set<String>) Set$.MODULE$.empty(), scalaOptions, Option.empty());

}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -270,10 +270,7 @@ class PythonCompilerService(engineDefinition: (Engine, Boolean))(implicit protec
val ctxBuilder = Context
.newBuilder("python")
.engine(engine)
.environment("RAW_SETTINGS", settings.renderAsString)
.environment("RAW_USER", environment.user.uid.toString)
.environment("RAW_TRACE_ID", environment.user.uid.toString)
.environment("RAW_SCOPES", environment.scopes.mkString(","))
.environment("RAW_PROGRAM_ENVIRONMENT", ProgramEnvironment.serializeToString(environment))
.allowExperimentalOptions(true)
.allowPolyglotAccess(PolyglotAccess.ALL)
maybeOutputStream.foreach(os => ctxBuilder.out(os))
Expand Down
Loading