Asset
The Asset is the root container of the OpenBI model. It holds identity information, the visual layout, the semantic data model, refresh schedules, and data source connections for one BI artifact.
Asset
public class Asset
{
public string? IdSite { get; set; }
public AssetInfo? Info { get; set; }
public Layout? Layout { get; set; }
public DataModel? DataModel { get; set; }
public List<RefreshTask>? RefreshTasks { get; set; }
public List<DataSourceConnection>? DataSourceConnections { get; set; }
public IEnumerable<Asset> Dependencies { get; set; }
}
| Property | Type | Description |
|---|---|---|
IdSite |
string? |
Identifier of the BI site this asset belongs to (matches idSite in sites/*.json) |
Info |
AssetInfo? |
Identity and classification metadata |
Layout |
Layout? |
Visual layer — pages, visuals, projections, filters |
DataModel |
DataModel? |
Semantic layer — tables, columns, relationships |
RefreshTasks |
List<RefreshTask>? |
Scheduled or composite data refresh tasks |
DataSourceConnections |
List<DataSourceConnection>? |
Database / API connections used by this asset |
Dependencies |
IEnumerable<Asset> |
Other assets this asset depends on (e.g. a Report depends on a SemanticModel) |
AssetInfo
Carries the identity and classification of an asset, matching what the BI platform exposes in its catalog API.
public class AssetInfo
{
public string Id { get; set; }
public string ExternalType { get; set; }
public string IdFolder { get; set; }
public string FolderName { get; set; }
public AssetType Type { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public DateTime? LatestUpdate { get; set; }
public string? LatestUpdater { get; set; }
public ICollection<AdditionalMetadata>? AdditionalMetadata { get; set; }
}
| Property | Type | Description |
|---|---|---|
Id |
string |
OpenBI asset identifier (maps to the external platform ID) |
ExternalType |
string |
Platform-native type string (e.g. "Report", "SemanticModel", "Dataflow") |
IdFolder |
string |
ID of the folder that contains this asset |
FolderName |
string |
Display name of the folder |
Type |
AssetType |
OpenBI classification enum (Report or DataModel) |
Name |
string |
Asset display name |
Description |
string |
Optional description |
LatestUpdate |
DateTime? |
Last modification timestamp |
LatestUpdater |
string? |
Identity of the last editor |
AdditionalMetadata |
ICollection<AdditionalMetadata>? |
Platform-specific key/value metadata |
AssetType
| Value | Meaning |
|---|---|
Report |
A presentation layer artifact — dashboards, pages, visuals (reports, sheets, stories, etc.) |
DataModel |
A semantic / data layer artifact (semantic models, datasets, dataflows, etc.) |
Note
ExternalType carries the platform-native name (e.g. "SemanticModel", "Dataflow"), while Type is the normalized OpenBI classification. Both are stored.
AssetDependency
Records a directed dependency between two assets: IdAsset requires IdRequiredAsset.
public class AssetDependency
{
public string IdAsset { get; set; }
public string IdRequiredAsset { get; set; }
}
Used by the MCP Server when staging an asset graph that contains dependencies (e.g. a Report that references a SemanticModel).
AdditionalMetadata
A generic key-value extension point present on every OpenBI entity.
public class AdditionalMetadata
{
public string Name { get; set; }
public string Value { get; set; }
}
Converters use AdditionalMetadata to round-trip platform-specific attributes that have no typed field in the OpenBI schema. Examples:
| Platform | Key example | Value example |
|---|---|---|
| Platform A | formatString |
"#,0.00" |
| Platform B | loadScript |
"LOAD * FROM …" |
The add_metadata MCP tool writes directly to AssetInfo.AdditionalMetadata.