* added mux analyzer * updated mux analyzer print function and mux detector * updated mux analyzer test expected output
116 lines
3.1 KiB
Go
116 lines
3.1 KiB
Go
package mux
|
|
|
|
import "github.com/trufflesecurity/trufflehog/v3/pkg/analyzer/analyzers"
|
|
|
|
var muxResourcesMap map[ResourceType][]string
|
|
|
|
func init() {
|
|
muxResourcesMap = map[ResourceType][]string{
|
|
ResourceTypeVideo: {
|
|
"Transcription Vocabularies",
|
|
"Web Inputs",
|
|
"Assets",
|
|
"Live Streams",
|
|
"Uploads",
|
|
"Playback Restrictions",
|
|
"DRM Configurations",
|
|
},
|
|
ResourceTypeData: {
|
|
"Video Views",
|
|
"Filters",
|
|
"Dimensions",
|
|
"Export",
|
|
"Metrics",
|
|
"Monitoring",
|
|
"Realtime",
|
|
"Incidents",
|
|
"Annotations",
|
|
},
|
|
ResourceTypeSystem: {
|
|
"Signing Keys",
|
|
},
|
|
}
|
|
}
|
|
|
|
func createAssetResource(asset asset) analyzers.Resource {
|
|
return analyzers.Resource{
|
|
Name: asset.ID,
|
|
FullyQualifiedName: "asset/" + asset.ID,
|
|
Type: "asset",
|
|
Metadata: map[string]any{
|
|
"duration": asset.Duration,
|
|
"status": asset.Status,
|
|
"videoQuality": asset.VideoQuality,
|
|
"mp4Support": asset.MP4Support,
|
|
"aspectRatio": asset.AspectRatio,
|
|
"createdAt": asset.CreatedAt,
|
|
},
|
|
}
|
|
}
|
|
|
|
func createAssetTrackResources(asset asset, parent *analyzers.Resource) []analyzers.Resource {
|
|
trackResources := []analyzers.Resource{}
|
|
for _, track := range asset.Tracks {
|
|
trackResources = append(trackResources, analyzers.Resource{
|
|
Name: track.ID,
|
|
FullyQualifiedName: "asset/" + asset.ID + "/track/" + track.ID,
|
|
Type: "track",
|
|
Metadata: map[string]any{
|
|
"name": track.Name,
|
|
"type": track.Type,
|
|
"duration": track.Duration,
|
|
"status": track.Status,
|
|
"primary": track.Primary,
|
|
"textType": track.TextType,
|
|
"textSource": track.TextSource,
|
|
"languageCode": track.LanguageCode,
|
|
"maxWidth": track.MaxWidth,
|
|
"maxHeight": track.MaxHeight,
|
|
"maxFrameRate": track.MaxFrameRate,
|
|
"maxChannels": track.MaxChannels,
|
|
},
|
|
Parent: parent,
|
|
})
|
|
}
|
|
return trackResources
|
|
}
|
|
|
|
func createAssetPlaybackIDResources(asset asset, parent *analyzers.Resource) []analyzers.Resource {
|
|
playbackIDResources := []analyzers.Resource{}
|
|
for _, playbackID := range asset.PlaybackIDs {
|
|
playbackIDResources = append(playbackIDResources, analyzers.Resource{
|
|
Name: playbackID.ID,
|
|
FullyQualifiedName: "asset/" + asset.ID + "/playback_id/" + playbackID.ID,
|
|
Type: "playback_id",
|
|
Metadata: map[string]any{
|
|
"policy": playbackID.Policy,
|
|
},
|
|
Parent: parent,
|
|
})
|
|
}
|
|
return playbackIDResources
|
|
}
|
|
|
|
func createAnnotationResource(annotation annotation) analyzers.Resource {
|
|
return analyzers.Resource{
|
|
Name: annotation.ID,
|
|
FullyQualifiedName: "annotation/" + annotation.ID,
|
|
Type: "annotation",
|
|
Metadata: map[string]any{
|
|
"subPropertyID": annotation.SubPropertyID,
|
|
"note": annotation.Note,
|
|
"date": annotation.Date,
|
|
},
|
|
}
|
|
}
|
|
func createSigningKeyResource(signingKey signingKey) analyzers.Resource {
|
|
return analyzers.Resource{
|
|
Name: signingKey.ID,
|
|
FullyQualifiedName: "signing_key/" + signingKey.ID,
|
|
Type: "signing_key",
|
|
Metadata: map[string]any{
|
|
"createdAt": signingKey.CreatedAt,
|
|
},
|
|
}
|
|
}
|