The <IngestSettings> block manages stream publishing (ingesting) to the application. It controls whether streams can be published, how they are handled on arrival, and which authorization method is used to verify incoming broadcasters.
Specifies whether publishing streams to this application is allowed (e.g., via OBS or other RTMP encoders).
true
<AutoStreamPublish>
Determines whether a newly ingested stream is automatically set to PUBLISHED, allowing immediate playback.
true
<AllowStreamOverwrite>
Defines whether an existing stream can be overwritten by a new incoming stream with the same key.
true
Authorization
The <Authorization> block controls how broadcasters are authenticated when publishing streams. Several methods are available depending on your use case.
Parameter
Description
Authorization:enabled
If set to true, stream ingest authorization is required.
Authorization:type
Specifies the authorization method: managed, request, file, or local.
No Authorization
No Authorization
xml
<Authorization enabled="false" />
When authorization is disabled, any broadcaster can publish a stream to the application without providing credentials.
Managed Authorization
Managed Authorization
xml
<Authorization enabled="true" type="managed" />
With managed authorization, a stream must be created in advance along with its authentication credentials. Only then can a broadcaster connect to it. This approach provides precise control over stream creation and does not require external endpoints or predefined authorization lists.
A stream with credentials can be created in two ways:
a) Via Control Panel
Navigate to the Streams section, select Create New Stream, choose the application, assign a Stream Key, set Auth Method to Credentials, and provide a Username and Password.
b) Via REST API
REST API – Create stream with credentials
bash
POST {{base_url}}/api/streams/{{application_name}}
This method is designed for dynamic environments with multiple external broadcasters. When a stream publishing attempt is made, Storm performs an HTTP request to the configured endpoint to obtain authentication credentials. The X-Api-Key header (configured via <XApiKey>) is included in every request.
The request URL supports the following template variables:
Standard HTTP response codes apply: 200 – OK, 401 – Access Denied, 404 – Not Found. Responses with a status code other than 200 are not parsed and their content is ignored.
This method is suited for environments with a small and stable number of broadcasters. When a publishing attempt is made, Storm compares the provided credentials against the entries in the configured file.
With this method, authentication credentials are stored directly within the application configuration. This is suited for simple setups with a small number of broadcasters. The credential list can also be managed via the REST API.
Note
Authentication credentials are stored in plain text in the preferences.xml file.
Managing credentials via REST API:
REST API – Update local credentials
bash
POST {{base_url}}/api/applications/{{application_name}}/settings/ingest
All parameters support environment variables using the ${EV:VARIABLE_NAME} syntax. Fields locked by environment variables cannot be modified via the REST API.
Support Needed?
If you have any questions or need assistance, please create a support ticket and our team will help you.