DRDataRaft/ docs
GitHub ↗

Inspect and try products without a lake

A workspace can show product definitions and existing quality evidence without installing DuckDB or opening a database connection. The IDE package itself contains no compiled code.

library(dataraft.ide)
workspace <- new.env(parent = emptyenv())
workspace$orders <- dataraft.core::dr_product(
  "orders", data.frame(amount = c(-10, 20))
) |> dataraft.core::dr_add_quality(~ amount >= 0)
context <- ide_context(workspace)
request_metadata <- function(operation, handle = NULL) {
  private <- tempfile("ide-private-")
  dir.create(private, mode = "0700")
  on.exit(unlink(private, recursive = TRUE))
  request <- list(
    version = 1L, operation = operation, request_id = "example",
    response_path = file.path(private, "response.json")
  )
  if (!is.null(handle)) request$handle <- handle
  encoded <- jsonlite::base64_enc(charToRaw(as.character(
    jsonlite::toJSON(request, auto_unbox = TRUE)
  )))
  dataraft.ide::ide_request(gsub("[[:space:]]", "", encoded), context)
}
request_metadata("products")
workspace$blocked <- dataraft.core::dr_run(write = FALSE, stop_on_failure = FALSE, workspace$orders)
request_metadata("incidents")

Replace the delivery and explicitly try it again. Trial execution never invokes the configured framework destination writer.

workspace$passed <- dataraft.core::dr_run(write = FALSE, stop_on_failure = FALSE,
  workspace$orders, data = data.frame(amount = c(10, 20))
)
request_metadata("runs")

RDS offers a portable local delivery format for the same compiler-free example. Reading this file is an explicit user action, not IDE discovery.

path <- tempfile(fileext = ".rds")
saveRDS(data.frame(amount = c(30, 40)), path)
workspace$delivery <- readRDS(path)
request_metadata("profile", "binding:delivery")
unlink(path)

A private file response contains metadata only. Applications must validate the bundled schema, enforce the one MiB bound and check the request ID.

response <- request_metadata("quality")
response$kind
response$contract

Connected lakes add release, contract, lineage and freshness metadata. Supplying ide_context(workspace, lake = existing_lake) never opens a new connection. Reports list frozen report identifiers and creation times, not report values or verification results.

Documentation source snapshot · View source at 282f129 ↗
Code examples are documented source examples; they are not executed in this website build.

Search documentation

Search functions, packages and guides.