Files
tasks/api/persistence/v1/chasm.go-helpers.pb.go
e70a69ceeb [Nexus] Support internal callback completion routing to CHASM (#8372)
## 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]>
2025-10-16 21:58:44 +00:00

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)
}