mirror of
https://github.com/hanzoai/tasks.git
synced 2026-10-04 02:04:03 +00:00
## What changed? * The Callbacks component now detects Nexus URLs of the form `temporal://internal/chasm`, which are routed to CHASM components through a new `ChasmInvocation`. * CHASM routing information is serialized into a header, the URL is left opaque. * A new CHASM interface has been added, `chasm.NexusCompletionHandler`, which components can implement to receive Nexus callbacks. * A CHASM helper method, `GetNexusCallback`, has been added that returns a `Callback` protobuf routing to the given component. * The frontend's callback argument validator has been patched to allow "temporal" schemes unconditionally. Scheduler starts workflows through the frontend, in order to be counted by metering, and so frontend must allow requests with internal-facing callbacks. * I believe @chaptersix 's changes also touch this area, we may not need my interim patch there. ## Why? * CHASM Scheduler needs to find out about workflow completions, and we want to do that with Nexus completion callbacks. ## How did you test it? - [ ] built - [ ] run locally and tested manually - [ ] covered by existing tests - [x] added new unit test(s) - [ ] added new functional test(s) ## Potential risks * The funkiness is in the frontend handler - see the TODO. I don't think it presents a security risk, since a customer would only be able to forge completions within their own namespace (since this validation takes place within `StartWorkflowExecution`'s frontend flow). But it would be nice to validate that it was only coming from internal pods. --------- Co-authored-by: Roey Berman <[email protected]>
340 lines
9.2 KiB
Go
340 lines
9.2 KiB
Go
// Code generated by protoc-gen-go-helpers. DO NOT EDIT.
|
|
package persistence
|
|
|
|
import (
|
|
"google.golang.org/protobuf/proto"
|
|
)
|
|
|
|
// Marshal an object of type ChasmNode to the protobuf v3 wire format
|
|
func (val *ChasmNode) Marshal() ([]byte, error) {
|
|
return proto.Marshal(val)
|
|
}
|
|
|
|
// Unmarshal an object of type ChasmNode from the protobuf v3 wire format
|
|
func (val *ChasmNode) Unmarshal(buf []byte) error {
|
|
return proto.Unmarshal(buf, val)
|
|
}
|
|
|
|
// Size returns the size of the object, in bytes, once serialized
|
|
func (val *ChasmNode) Size() int {
|
|
return proto.Size(val)
|
|
}
|
|
|
|
// Equal returns whether two ChasmNode values are equivalent by recursively
|
|
// comparing the message's fields.
|
|
// For more information see the documentation for
|
|
// https://pkg.go.dev/google.golang.org/protobuf/proto#Equal
|
|
func (this *ChasmNode) Equal(that interface{}) bool {
|
|
if that == nil {
|
|
return this == nil
|
|
}
|
|
|
|
var that1 *ChasmNode
|
|
switch t := that.(type) {
|
|
case *ChasmNode:
|
|
that1 = t
|
|
case ChasmNode:
|
|
that1 = &t
|
|
default:
|
|
return false
|
|
}
|
|
|
|
return proto.Equal(this, that1)
|
|
}
|
|
|
|
// Marshal an object of type ChasmNodeMetadata to the protobuf v3 wire format
|
|
func (val *ChasmNodeMetadata) Marshal() ([]byte, error) {
|
|
return proto.Marshal(val)
|
|
}
|
|
|
|
// Unmarshal an object of type ChasmNodeMetadata from the protobuf v3 wire format
|
|
func (val *ChasmNodeMetadata) Unmarshal(buf []byte) error {
|
|
return proto.Unmarshal(buf, val)
|
|
}
|
|
|
|
// Size returns the size of the object, in bytes, once serialized
|
|
func (val *ChasmNodeMetadata) Size() int {
|
|
return proto.Size(val)
|
|
}
|
|
|
|
// Equal returns whether two ChasmNodeMetadata values are equivalent by recursively
|
|
// comparing the message's fields.
|
|
// For more information see the documentation for
|
|
// https://pkg.go.dev/google.golang.org/protobuf/proto#Equal
|
|
func (this *ChasmNodeMetadata) Equal(that interface{}) bool {
|
|
if that == nil {
|
|
return this == nil
|
|
}
|
|
|
|
var that1 *ChasmNodeMetadata
|
|
switch t := that.(type) {
|
|
case *ChasmNodeMetadata:
|
|
that1 = t
|
|
case ChasmNodeMetadata:
|
|
that1 = &t
|
|
default:
|
|
return false
|
|
}
|
|
|
|
return proto.Equal(this, that1)
|
|
}
|
|
|
|
// Marshal an object of type ChasmComponentAttributes to the protobuf v3 wire format
|
|
func (val *ChasmComponentAttributes) Marshal() ([]byte, error) {
|
|
return proto.Marshal(val)
|
|
}
|
|
|
|
// Unmarshal an object of type ChasmComponentAttributes from the protobuf v3 wire format
|
|
func (val *ChasmComponentAttributes) Unmarshal(buf []byte) error {
|
|
return proto.Unmarshal(buf, val)
|
|
}
|
|
|
|
// Size returns the size of the object, in bytes, once serialized
|
|
func (val *ChasmComponentAttributes) Size() int {
|
|
return proto.Size(val)
|
|
}
|
|
|
|
// Equal returns whether two ChasmComponentAttributes values are equivalent by recursively
|
|
// comparing the message's fields.
|
|
// For more information see the documentation for
|
|
// https://pkg.go.dev/google.golang.org/protobuf/proto#Equal
|
|
func (this *ChasmComponentAttributes) Equal(that interface{}) bool {
|
|
if that == nil {
|
|
return this == nil
|
|
}
|
|
|
|
var that1 *ChasmComponentAttributes
|
|
switch t := that.(type) {
|
|
case *ChasmComponentAttributes:
|
|
that1 = t
|
|
case ChasmComponentAttributes:
|
|
that1 = &t
|
|
default:
|
|
return false
|
|
}
|
|
|
|
return proto.Equal(this, that1)
|
|
}
|
|
|
|
// Marshal an object of type ChasmDataAttributes to the protobuf v3 wire format
|
|
func (val *ChasmDataAttributes) Marshal() ([]byte, error) {
|
|
return proto.Marshal(val)
|
|
}
|
|
|
|
// Unmarshal an object of type ChasmDataAttributes from the protobuf v3 wire format
|
|
func (val *ChasmDataAttributes) Unmarshal(buf []byte) error {
|
|
return proto.Unmarshal(buf, val)
|
|
}
|
|
|
|
// Size returns the size of the object, in bytes, once serialized
|
|
func (val *ChasmDataAttributes) Size() int {
|
|
return proto.Size(val)
|
|
}
|
|
|
|
// Equal returns whether two ChasmDataAttributes values are equivalent by recursively
|
|
// comparing the message's fields.
|
|
// For more information see the documentation for
|
|
// https://pkg.go.dev/google.golang.org/protobuf/proto#Equal
|
|
func (this *ChasmDataAttributes) Equal(that interface{}) bool {
|
|
if that == nil {
|
|
return this == nil
|
|
}
|
|
|
|
var that1 *ChasmDataAttributes
|
|
switch t := that.(type) {
|
|
case *ChasmDataAttributes:
|
|
that1 = t
|
|
case ChasmDataAttributes:
|
|
that1 = &t
|
|
default:
|
|
return false
|
|
}
|
|
|
|
return proto.Equal(this, that1)
|
|
}
|
|
|
|
// Marshal an object of type ChasmCollectionAttributes to the protobuf v3 wire format
|
|
func (val *ChasmCollectionAttributes) Marshal() ([]byte, error) {
|
|
return proto.Marshal(val)
|
|
}
|
|
|
|
// Unmarshal an object of type ChasmCollectionAttributes from the protobuf v3 wire format
|
|
func (val *ChasmCollectionAttributes) Unmarshal(buf []byte) error {
|
|
return proto.Unmarshal(buf, val)
|
|
}
|
|
|
|
// Size returns the size of the object, in bytes, once serialized
|
|
func (val *ChasmCollectionAttributes) Size() int {
|
|
return proto.Size(val)
|
|
}
|
|
|
|
// Equal returns whether two ChasmCollectionAttributes values are equivalent by recursively
|
|
// comparing the message's fields.
|
|
// For more information see the documentation for
|
|
// https://pkg.go.dev/google.golang.org/protobuf/proto#Equal
|
|
func (this *ChasmCollectionAttributes) Equal(that interface{}) bool {
|
|
if that == nil {
|
|
return this == nil
|
|
}
|
|
|
|
var that1 *ChasmCollectionAttributes
|
|
switch t := that.(type) {
|
|
case *ChasmCollectionAttributes:
|
|
that1 = t
|
|
case ChasmCollectionAttributes:
|
|
that1 = &t
|
|
default:
|
|
return false
|
|
}
|
|
|
|
return proto.Equal(this, that1)
|
|
}
|
|
|
|
// Marshal an object of type ChasmPointerAttributes to the protobuf v3 wire format
|
|
func (val *ChasmPointerAttributes) Marshal() ([]byte, error) {
|
|
return proto.Marshal(val)
|
|
}
|
|
|
|
// Unmarshal an object of type ChasmPointerAttributes from the protobuf v3 wire format
|
|
func (val *ChasmPointerAttributes) Unmarshal(buf []byte) error {
|
|
return proto.Unmarshal(buf, val)
|
|
}
|
|
|
|
// Size returns the size of the object, in bytes, once serialized
|
|
func (val *ChasmPointerAttributes) Size() int {
|
|
return proto.Size(val)
|
|
}
|
|
|
|
// Equal returns whether two ChasmPointerAttributes values are equivalent by recursively
|
|
// comparing the message's fields.
|
|
// For more information see the documentation for
|
|
// https://pkg.go.dev/google.golang.org/protobuf/proto#Equal
|
|
func (this *ChasmPointerAttributes) Equal(that interface{}) bool {
|
|
if that == nil {
|
|
return this == nil
|
|
}
|
|
|
|
var that1 *ChasmPointerAttributes
|
|
switch t := that.(type) {
|
|
case *ChasmPointerAttributes:
|
|
that1 = t
|
|
case ChasmPointerAttributes:
|
|
that1 = &t
|
|
default:
|
|
return false
|
|
}
|
|
|
|
return proto.Equal(this, that1)
|
|
}
|
|
|
|
// Marshal an object of type ChasmTaskInfo to the protobuf v3 wire format
|
|
func (val *ChasmTaskInfo) Marshal() ([]byte, error) {
|
|
return proto.Marshal(val)
|
|
}
|
|
|
|
// Unmarshal an object of type ChasmTaskInfo from the protobuf v3 wire format
|
|
func (val *ChasmTaskInfo) Unmarshal(buf []byte) error {
|
|
return proto.Unmarshal(buf, val)
|
|
}
|
|
|
|
// Size returns the size of the object, in bytes, once serialized
|
|
func (val *ChasmTaskInfo) Size() int {
|
|
return proto.Size(val)
|
|
}
|
|
|
|
// Equal returns whether two ChasmTaskInfo values are equivalent by recursively
|
|
// comparing the message's fields.
|
|
// For more information see the documentation for
|
|
// https://pkg.go.dev/google.golang.org/protobuf/proto#Equal
|
|
func (this *ChasmTaskInfo) Equal(that interface{}) bool {
|
|
if that == nil {
|
|
return this == nil
|
|
}
|
|
|
|
var that1 *ChasmTaskInfo
|
|
switch t := that.(type) {
|
|
case *ChasmTaskInfo:
|
|
that1 = t
|
|
case ChasmTaskInfo:
|
|
that1 = &t
|
|
default:
|
|
return false
|
|
}
|
|
|
|
return proto.Equal(this, that1)
|
|
}
|
|
|
|
// Marshal an object of type ChasmComponentRef to the protobuf v3 wire format
|
|
func (val *ChasmComponentRef) Marshal() ([]byte, error) {
|
|
return proto.Marshal(val)
|
|
}
|
|
|
|
// Unmarshal an object of type ChasmComponentRef from the protobuf v3 wire format
|
|
func (val *ChasmComponentRef) Unmarshal(buf []byte) error {
|
|
return proto.Unmarshal(buf, val)
|
|
}
|
|
|
|
// Size returns the size of the object, in bytes, once serialized
|
|
func (val *ChasmComponentRef) Size() int {
|
|
return proto.Size(val)
|
|
}
|
|
|
|
// Equal returns whether two ChasmComponentRef values are equivalent by recursively
|
|
// comparing the message's fields.
|
|
// For more information see the documentation for
|
|
// https://pkg.go.dev/google.golang.org/protobuf/proto#Equal
|
|
func (this *ChasmComponentRef) Equal(that interface{}) bool {
|
|
if that == nil {
|
|
return this == nil
|
|
}
|
|
|
|
var that1 *ChasmComponentRef
|
|
switch t := that.(type) {
|
|
case *ChasmComponentRef:
|
|
that1 = t
|
|
case ChasmComponentRef:
|
|
that1 = &t
|
|
default:
|
|
return false
|
|
}
|
|
|
|
return proto.Equal(this, that1)
|
|
}
|
|
|
|
// Marshal an object of type ChasmNexusCompletion to the protobuf v3 wire format
|
|
func (val *ChasmNexusCompletion) Marshal() ([]byte, error) {
|
|
return proto.Marshal(val)
|
|
}
|
|
|
|
// Unmarshal an object of type ChasmNexusCompletion from the protobuf v3 wire format
|
|
func (val *ChasmNexusCompletion) Unmarshal(buf []byte) error {
|
|
return proto.Unmarshal(buf, val)
|
|
}
|
|
|
|
// Size returns the size of the object, in bytes, once serialized
|
|
func (val *ChasmNexusCompletion) Size() int {
|
|
return proto.Size(val)
|
|
}
|
|
|
|
// Equal returns whether two ChasmNexusCompletion values are equivalent by recursively
|
|
// comparing the message's fields.
|
|
// For more information see the documentation for
|
|
// https://pkg.go.dev/google.golang.org/protobuf/proto#Equal
|
|
func (this *ChasmNexusCompletion) Equal(that interface{}) bool {
|
|
if that == nil {
|
|
return this == nil
|
|
}
|
|
|
|
var that1 *ChasmNexusCompletion
|
|
switch t := that.(type) {
|
|
case *ChasmNexusCompletion:
|
|
that1 = t
|
|
case ChasmNexusCompletion:
|
|
that1 = &t
|
|
default:
|
|
return false
|
|
}
|
|
|
|
return proto.Equal(this, that1)
|
|
}
|