feat: support pre-setting instance_id via LANGBOT__INSTANCE_ID env var

In SaaS (cloud edition), the instance_id can now be injected via
environment variable to match the pod UUID. This enables zero-lookup
telemetry routing in Space - no need to reverse-lookup instance_id
to find the pod.
This commit is contained in:
RockChinQ
2026-03-13 10:36:46 -04:00
parent eec0a9c9d9
commit 6c64dc057f

View File

@@ -146,6 +146,21 @@ class LoadConfigStage(stage.BootingStage):
await ap.instance_config.dump_config() await ap.instance_config.dump_config()
# load or generate instance id # load or generate instance id
# In SaaS (cloud edition), the instance id can be pre-set via LANGBOT__INSTANCE_ID
# environment variable to match the pod UUID, enabling zero-lookup telemetry routing.
env_instance_id = os.environ.get('LANGBOT__INSTANCE_ID')
if env_instance_id:
ap.instance_id = await config.load_json_config(
'data/labels/instance_id.json',
template_data={
'instance_id': env_instance_id,
'instance_create_ts': int(time.time()),
},
completion=False,
)
# Override with env value even if file already existed with a different id
ap.instance_id.data['instance_id'] = env_instance_id
else:
ap.instance_id = await config.load_json_config( ap.instance_id = await config.load_json_config(
'data/labels/instance_id.json', 'data/labels/instance_id.json',
template_data={ template_data={