ORE Studio 0.0.4
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
publish_datasets_request Struct Referencefinal

Request to publish one or more datasets to production tables. More...

#include <publication_protocol.hpp>

Collaboration diagram for publish_datasets_request:
Collaboration graph

Public Member Functions

std::vector< std::byte > serialize () const
 Serialize request to bytes.
 

Static Public Member Functions

static std::expected< publish_datasets_request, ores::utility::serialization::error_code > deserialize (std::span< const std::byte > data)
 Deserialize request from bytes.
 

Public Attributes

std::vector< boost::uuids::uuid > dataset_ids
 IDs of datasets to publish.
 
domain::publication_mode mode = domain::publication_mode::upsert
 Publication mode.
 
std::string published_by
 Username of person initiating publication.
 
bool resolve_dependencies = true
 If true, automatically include and publish dependencies first.
 
bool atomic = true
 If true, first failure causes entire publication to abort.
 

Detailed Description

Request to publish one or more datasets to production tables.

This triggers the publication workflow:

  1. Resolve dataset dependencies (if resolve_dependencies is true)
  2. Determine publication order (dependencies first)
  3. Call appropriate dq_populate_* functions for each dataset
  4. Record publication history

Member Function Documentation

◆ serialize()

std::vector< std::byte > serialize ( ) const

Serialize request to bytes.

Format:

  • 4 bytes: dataset_ids count
  • N * 16 bytes: dataset_ids (UUIDs)
  • 1 byte: mode
  • 2 bytes: published_by length
  • N bytes: published_by (UTF-8)
  • 1 byte: resolve_dependencies
  • 1 byte: atomic

Member Data Documentation

◆ mode

domain::publication_mode mode = domain::publication_mode::upsert

Publication mode.

Controls how existing data is handled:

  • upsert: Insert new, update existing
  • insert_only: Insert new, skip existing
  • replace_all: Delete all, then insert

◆ atomic

bool atomic = true

If true, first failure causes entire publication to abort.

In atomic mode, all datasets succeed or all fail together. Defaults to true for safer behavior.