#Overlays / Stitching not working with entities already ingested by Github Org Provider

10 messages · Page 1 of 1 (latest)

onyx sail
#

Hi there,

We have a Backstage instance which ingests Github teams as entities via the Github Org Provider.

We would like to add additional meta data to these entities.

Our thought was to keep using the Github Org Provider to ingest teams in the db, and use overlay yml files in our catalog to enrich the entities.

Unfortunately, this seems to be the output:

[1] 2025-10-02T10:15:49.301Z catalog warn Detected conflicting entityRef group:default/team-foo already referenced by github-multi-org-provider:elastic and now also url:https://github.com/elastic/catalog-info/tree/main-compiled/catalog-info.compiled.yaml

I was under the impression entities with the same ref would get stitched together during ingestion, is this not the case?

Thanks for any help!

snow sage
#

No, that's not a feature that we have.

#

The reason that these are handled as conflicts (whether we had merging as a feature or not), is security. You don't want someone to be able to easily just merge in an admin: true (conceptually) on top of their user for example without anyone being able to control it

#

Fist across the gate wins. Later attempts to clobber your data (maliciously or not) are rejected

onyx sail
#

Interesting, I’ve observed behavior which suggests otherwise. When a yaml of a GitHub group is first ingested which has no members, and then the GitHub Org provider ingests that same team, the final entity has both aspects of the yaml file (annotations) as well as from the provider (the gh members who are part of that group, but where not defined in the yaml file).

If this is an unintended consequence, what would be the approach to annotate additional data to entities generated at runtime by a provider? An entity processor would still need to have some source to map information onto an entity.

split ridge
#

Assuming you're talking about the open source, and not internal version, then what you want is an entity processor. We use one to augment user data from Okta to add both their Github username and Slack user information

snow sage
#

@onyx sail note that SaaS provides may have amended additional capabilities and specialization on top of the open source backstage