Skip to content

API

EXPERIMENTAL

All types and services in package names like "alpha" or "beta" have to be considered as EXPERIMENTAL.

io.spoud.sdm.hooks.domain.v1.LogRecord (Message)

Field Type Label Description
entity_uuid string
timestamp Timestamp
action Type
entity_type Type
path string
cursor string Cursor of the current message, you can then use this cursor to go back to this exact position when you reconnect
data_offer DataOffer
data_port DataPort
data_subscription_state DataSubscriptionState
resource_group ResourceGroup
transport Transport
data_item DataItem
agent Agent
schema Schema
organization Organization
user User
technical_user TechnicalUser
user_group UserGroup

io.spoud.sdm.hooks.domain.v1.StateChangeAction (Message)

WARNING ! DIFFERENT FROM logitics/v1alpha/hook.proto

io.spoud.sdm.hooks.domain.v1.StreamInfo (Message)

Context specific information about the current stream. Also used for keep alives and other gossip.

Field Type Label Description
timestamp Timestamp

io.spoud.sdm.hooks.domain.v1.StateChangeAction.Type (Enum)

Name Number Description
UNKNOWN 0
UPDATED 1
DELETED 2

io.spoud.sdm.hooks.domain.v1.DataItemFilter (Message)

Entity DataPort

Field Type Label Description
id string
properties_filters PropertiesFilter repeated
transport_ref BaseRef

io.spoud.sdm.hooks.domain.v1.DataOfferFilter (Message)

Entity DataOffer

Field Type Label Description
id string
properties_filters PropertiesFilter repeated

io.spoud.sdm.hooks.domain.v1.DataPortFilter (Message)

Entity DataPort

Field Type Label Description
id string
properties_filters PropertiesFilter repeated
transport_ref BaseRef

io.spoud.sdm.hooks.domain.v1.DataSubscriptionStateFilter (Message)

Entity DataSubscriptionState

Field Type Label Description
id string
properties_filters PropertiesFilter repeated
transport_ref BaseRef

io.spoud.sdm.hooks.domain.v1.OrganizationFilter (Message)

Entity Organization

Field Type Label Description
id string
name string

io.spoud.sdm.hooks.domain.v1.PropertiesFilter (Message)

General predicate for one meta attribute (exact match)

Field Type Label Description
key string e.g. sdm.transport.kafka.topic
value string agg_topic_2383

io.spoud.sdm.hooks.domain.v1.ResourceGroupFilter (Message)

Entity ResourceGroup

Field Type Label Description
id string
properties_filters PropertiesFilter repeated

io.spoud.sdm.hooks.domain.v1.SchemaFilter (Message)

Entity Schema

Field Type Label Description
id string
entity_id string
entity_type Type

io.spoud.sdm.hooks.domain.v1.StateChangeFilter (Message)

Possible filters

Field Type Label Description
data_offer_filter DataOfferFilter
data_port_filter DataPortFilter
data_subscription_state_filter DataSubscriptionStateFilter
resource_group_filter ResourceGroupFilter
transport_filter TransportFilter
data_item_filter DataItemFilter
schema_filter SchemaFilter
organization_filter OrganizationFilter
technical_user_filter TechnicalUserFilter
user_group_filter UserGroupFilter

io.spoud.sdm.hooks.domain.v1.StateChangeStartPosition (Message)

Field Type Label Description
preset PositionPreset
cursor string

io.spoud.sdm.hooks.domain.v1.TechnicalUserFilter (Message)

Entity Technical User

Field Type Label Description
id string
user_name string
organization string

io.spoud.sdm.hooks.domain.v1.TransportFilter (Message)

Entity Transport

Field Type Label Description
id string
properties_filters PropertiesFilter repeated

io.spoud.sdm.hooks.domain.v1.UserGroupFilter (Message)

Entity User Group

Field Type Label Description
id string
name string
organization string

io.spoud.sdm.hooks.domain.v1.PositionPreset (Enum)

Name Number Description
EARLIEST 0
LATEST 1

StateChanger

Note

  • Package: io.spoud.sdm.hooks.v1
  • File: hooks/service/v1/hooks.proto
Method Name Request Type Response Type Description
SubscribeChange SubscribeChangeRequest SubscribeChangeResponse stream subscribe to any changes

io.spoud.sdm.hooks.v1.SubscribeChangeRequest (Message)


Subscribe Request Each subscribe request will result in a stateful server stream, whereas the server tries to forward state changes only, if: 1) the filter is true (in the case of initial loading or new state) OR 2) an entity previously matching the filter no longer matches the filter (in the case of the new state is no longer interesting)

in case 2) you'll just get the new state once to be able to cleanup or adapt...

The state will be bound to the stream. If there's a communication problem like connection loss, the server should close the connection and do a cleanup. There's no support for resuming a stream. Later on, there will be some mechanisms to clearly express a position to start from (as a param in the request), to avoid always streaming from the beginning.


Field Type Label Description
start_position StateChangeStartPosition
filters StateChangeFilter repeated

io.spoud.sdm.hooks.v1.SubscribeChangeResponse (Message)


Subscribe Response The log record response guarantees that all entities in the response are ordered in a consistent way. By consistent it means: 1) by creation timestamp (for initial state loading), by modified timestamp/when things happening (after initial loading, stream) - whereas a "timestamp" should be strictly ordered (sequence, ...) OR 2) by acyclic dependencies (for initial state loading), same as 1) after initial loading.


Field Type Label Description
log_record LogRecord
stream_info StreamInfo

io.spoud.sdm.logistics.domain.v1.Agent (Message)

Agents

Field Type Label Description
id string
name string
path string
resource_group IdPathReference @deprecated 05.07.2021 use path instead
technical_user_id IdReference
username string
privilege PrivilegeInformation
info DocInfo additional entity/doc information

io.spoud.sdm.logistics.domain.v1.DataItem (Message)

DataItem

Field Type Label Description
id string
name string
label string
properties PropertiesEntry repeated
transport_url string
transport IdReference
deleted bool
data_port IdReference
info DocInfo additional entity/doc information
tags SimpleTag repeated tag list.

io.spoud.sdm.logistics.domain.v1.DataItem.PropertiesEntry (Message)

Field Type Label Description
key string
value string

io.spoud.sdm.logistics.domain.v1.DataOffer (Message)

Data Offer

Field Type Label Description
id string
name string
properties PropertiesEntry repeated
info DocInfo additional entity/doc information
path string
resource_group IdPathReference @deprecated 05.07.2021 use path instead
data_port IdReference
label string
tags SimpleTag repeated tag list.
privilege PrivilegeInformation

io.spoud.sdm.logistics.domain.v1.DataOffer.PropertiesEntry (Message)

Field Type Label Description
key string
value string

io.spoud.sdm.logistics.domain.v1.DataPort (Message)

DataPort

Field Type Label Description
id string
name string
properties PropertiesEntry repeated
endpoint_url string
transport IdReference
deleted bool
data_offer IdReference
path string
info DocInfo additional entity/doc information
resource_group IdPathReference @deprecated 05.07.2021 use path instead
label string
tags SimpleTag repeated tag list.
privilege PrivilegeInformation

io.spoud.sdm.logistics.domain.v1.DataPort.PropertiesEntry (Message)

Field Type Label Description
key string
value string

io.spoud.sdm.logistics.domain.v1.DataSubscriptionState (Message)

DataSubscriptionState

Field Type Label Description
id string
name string
properties PropertiesEntry repeated
transport_url string
data_port IdReference
deleted bool
path string
info DocInfo additional entity/doc information
resource_group IdPathReference @deprecated 05.07.2021 use path instead
transport IdReference
label string
tags SimpleTag repeated tag list.
privilege PrivilegeInformation

io.spoud.sdm.logistics.domain.v1.DataSubscriptionState.PropertiesEntry (Message)

Field Type Label Description
key string
value string

io.spoud.sdm.logistics.domain.v1.HistoryEntity (Message)

History

Field Type Label Description
id string
type Type

io.spoud.sdm.logistics.domain.v1.HistoryEntry (Message)

Field Type Label Description
source HistoryEntity
event_type Type
timestamp Timestamp
username string

io.spoud.sdm.logistics.domain.v1.HistoryEventType (Message)

io.spoud.sdm.logistics.domain.v1.ResourceEntityType (Message)

io.spoud.sdm.logistics.domain.v1.ResourceGroup (Message)

Field Type Label Description
id string
name string
properties PropertiesEntry repeated
info DocInfo additional entity/doc information
parent IdReference
path string
label string @deprecated use name instead
privilege PrivilegeInformation

io.spoud.sdm.logistics.domain.v1.ResourceGroup.PropertiesEntry (Message)

Field Type Label Description
key string
value string

io.spoud.sdm.logistics.domain.v1.SimpleTag (Message)

Simplest form of a tag - means just a name.

Field Type Label Description
name string

io.spoud.sdm.logistics.domain.v1.StateResourceLifecycle (Message)

io.spoud.sdm.logistics.domain.v1.Transport (Message)

Transports

Field Type Label Description
id string
name string
properties PropertiesEntry repeated
info DocInfo additional entity/doc information
path string
resource_group IdPathReference @deprecated 05.07.2021 use path instead
label string @deprecated use name instead
privilege PrivilegeInformation
type TransportType

io.spoud.sdm.logistics.domain.v1.Transport.PropertiesEntry (Message)

Field Type Label Description
key string
value string

io.spoud.sdm.logistics.domain.v1.TransportDataType (Message)

io.spoud.sdm.logistics.domain.v1.TransportType (Message)

Field Type Label Description
id string
name string
initial_properties InitialPropertiesEntry repeated
info DocInfo
label string
data_type Type
config_template_docker_compose string Config template for agent startup

io.spoud.sdm.logistics.domain.v1.TransportType.InitialPropertiesEntry (Message)

Field Type Label Description
key string
value string

io.spoud.sdm.logistics.domain.v1.HistoryEventType.Type (Enum)

Name Number Description
UNKNOWN 0
CREATED 1
MODIFIED 2
DELETED 3
LINKED 4
UNLINKED 5

io.spoud.sdm.logistics.domain.v1.ResourceEntityType.Type (Enum)

Name Number Description
UNKNOWN 0
DATA_OFFER 1
DATA_PORT 2
DATA_SUBSCRIPTION_STATE 4
DATA_ITEM 5

io.spoud.sdm.logistics.domain.v1.StateResourceLifecycle.Status (Enum)

Name Number Description
ADOPTED 0
DELETED 1

io.spoud.sdm.logistics.domain.v1.TransportDataType.Type (Enum)

Name Number Description
UNKNOWN 0
DATA_SET 1
STREAM 2

io.spoud.sdm.permission.domain.v1.PartialReadInformation (Message)

Field Type Label Description
allowed bool
path string

io.spoud.sdm.permission.domain.v1.Permission (Message)

Field Type Label Description
subject IdReference
privilege Type repeated
info DocInfo
path string
resource ResourceFilter
privilegeInformation PrivilegeInformation

io.spoud.sdm.permission.domain.v1.Privilege (Message)

io.spoud.sdm.permission.domain.v1.PrivilegeInformation (Message)

Field Type Label Description
path string
privilege Type repeated

io.spoud.sdm.permission.domain.v1.ResourceFilter (Message)

Field Type Label Description
entity Type
grouping Type

io.spoud.sdm.permission.domain.v1.ResourceGroupings (Message)

io.spoud.sdm.permission.domain.v1.SubjectRef (Message)

Field Type Label Description
name string

io.spoud.sdm.permission.domain.v1.Privilege.Type (Enum)

Name Number Description
UNKNOWN 0
READ 1 READ -> READ_INFO
WRITE 2 WRITE -> READ WRITE -> LINK
ADMIN 3 ADMIN -> WRITE
LINK 4 LINK -> READ_INFO
READ_INFO 5 READ_INFO -> NONE
NONE 6 NONE

io.spoud.sdm.permission.domain.v1.ResourceGroupings.Type (Enum)

Name Number Description
UNKNOWN 0
ALL 1

io.spoud.sdm.global.domain.v1.ActionInfo (Message)

Field Type Label Description
username string
timestamp Timestamp

io.spoud.sdm.global.domain.v1.DocInfo (Message)

Field Type Label Description
created ActionInfo
last_modified ActionInfo

io.spoud.sdm.global.domain.v1.IdPathReference (Message)

Field Type Label Description
id string
path string

io.spoud.sdm.global.domain.v1.IdReference (Message)

Field Type Label Description
id string

io.spoud.sdm.global.domain.v1.ResourceEntity (Message)

io.spoud.sdm.global.domain.v1.ResourceEntityTypeWrapper (Message)

Field Type Label Description
value Type

io.spoud.sdm.global.domain.v1.ResourceEntity.Type (Enum)

Name Number Description
UNKNOWN 0
DATA_OFFER 1
DATA_PORT 2
DATA_SUBSCRIPTION_STATE 4
TRANSPORT 5
RESOURCE_GROUP 6
PERMISSION 7
USER 8
USER_GROUP 9
DATA_PROFILE 10
SCHEMA 11
DATA_PROFILING_JOB 12 @Deprecate since 17.12.2020 we don't use jobs anymore
ORGANIZATION 13
DATA_SAMPLE 14 @Deprecate since 12.04.2021 we don't use jobs anymore
TECHNICAL_USER 15 user (account) managed completely in collaboration for integration and automation purposes (agents). same authorization is applied as for regular users.
AGENT 16
DATA_ITEM 17
CHECKPOINT 999 Used only for hooks

io.spoud.sdm.global.mutation.v1.PropertyMap (Message)

Wrapper for a map of properties. The default merge option is MERGE. Merge options are:

  • MERGE will merge the old list of properties with yours. In case of conflict the value of the request will be taken into account
  • REPLACE_ALL will simply take the properties of the request as properties for the entity (and discard old ones)
  • REMOVE will remove the properties of the request (value will be ignored, just the key will be used)
Field Type Label Description
merge_option MergeOption
properties PropertiesEntry repeated

io.spoud.sdm.global.mutation.v1.PropertyMap.PropertiesEntry (Message)

Field Type Label Description
key string
value string

io.spoud.sdm.global.mutation.v1.PropertyMap.MergeOption (Enum)

Name Number Description
MERGE 0
REPLACE_ALL 1
REMOVE 2

io.spoud.sdm.global.selection.v1.PageRequest (Message)

Field Type Label Description
page_size int32 same as "first" in graphql
page_token string same as "after" in graphql pagination

io.spoud.sdm.global.selection.v1.PageResult (Message)

Field Type Label Description
next_page_token string

io.spoud.sdm.global.selection.v1.BaseRef (Message)

Base ref type. Used for any resource ref without a specific ref message. Support ref evolution by moving from this basic ref type to a dedicated ref messages.

Field Type Label Description
id_path IdPathRef

io.spoud.sdm.global.selection.v1.EntityRef (Message)

Field Type Label Description
id string
entity_type Type

io.spoud.sdm.global.selection.v1.IdPathRef (Message)

Field Type Label Description
id string ref by id
name string ref by name
path string ref by path;

Scalar Value Types

.proto Type Notes C++ Type Java Type Python Type
double double double float
float float float float
int32 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. int32 int int
int64 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. int64 long int/long
uint32 Uses variable-length encoding. uint32 int int/long
uint64 Uses variable-length encoding. uint64 long int/long
sint32 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. int32 int int
sint64 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. int64 long int/long
fixed32 Always four bytes. More efficient than uint32 if values are often greater than 2^28. uint32 int int
fixed64 Always eight bytes. More efficient than uint64 if values are often greater than 2^56. uint64 long int/long
sfixed32 Always four bytes. int32 int int
sfixed64 Always eight bytes. int64 long int/long
bool bool boolean boolean
string A string must always contain UTF-8 encoded or 7-bit ASCII text. string String str/unicode
bytes May contain any arbitrary sequence of bytes. string ByteString str