Skip to content

[v3 models] HomeTenantID / ResourceHomeTenantID not propagated to parent during ResourceNotification #32

@xiaozhiche320

Description

@xiaozhiche320

Summary

When using the ARN SDK (Go) for provider-scoped resources, we're encountering an issue where tenant identifiers set at the child level are not propagated to the parent payload structure.
According to guidance from the ARG team, provider-scoped resources require tenant identifiers to be included at the parent level. However, even when HomeTenantID and ResourceHomeTenantID can only be set on the child (ResourceNotification), these fields are not present in the top-level (parent) payload after the child → parent conversion process so our data that sent to ARG will be get dropped.

Based on the ARN V3 schema documentation, both the Inline payload and NotificationResourceData class contain the same fields: HomeTenantID and ResourceHomeTenantID. In our workflow, we operate on the NotificationResourceData struct (child class) which gets converted back to the Parent Inline Payload (Data struct).

For subscription-level resources, tenant IDs are not necessary and it could be emitted by ARN service itself (which was told by ARN team) . However, for provider-scoped resources, we need to explicitly declare these tenant ID fields ourselves which is mandatory.

Code refer:

types.go#L40
types.go#L223
msgs.go#L242

When HomeTenantID/ResourceHomeTenantID are set on the ResourceNotification (child), these values should be propagated to the corresponding fields in the top-level parent payload. Currently, the tenant ID fields are lost during the child → parent conversion process, resulting in missing tenant information at the parent level, which blocks our provider-scoped resource scenario.

Thank you for taking the time to investigate this issue. Please note that my understanding of the conversion process may not be entirely accurate, as the internal mechanics for ARN are somewhat of a black box from my perspective. I appreciate any guidance or corrections you can provide.

error details that cause the data dropped in the ARG (get from ARG team)

Image

our currently sample payload

(the tenant ID should also appear on the top from my understanding)
Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions