delphi.etl { env-name: "prod" mdc-root: "delphi.etl" log4j-config: "classpath:log4j.dbx.properties" config-bucket: "prod-delphi-configs" heartbeat-rate: "5m" apps { mode: "default" output-bucket: "prod-delphi-apps-etl-output" state-bucket: "prod-delphi-sme-etl-state" bigtable { project.id: "delphi-prod" instance.id: "delphi-consumer-analytics-hdd" } elasticsearch { nodes: ["https://vpc-prod-delphi-search-bplxqbgg3vwknlnwgu6btxejey.us-east-1.es.amazonaws.com"] port: "443" } youtube-metadata { low-profile-views-threshold: 10000 overwrite-tables: false processing-content-types: "PARTNER_UPLOADED,PREMIUM_UGC,SONG_UGC,UGC" jdbc-upsert-batch-size: 10000 } dapd { apple-dsp: 2 spotify-dsp: 1 es.apple.streams.count.period.days: 56 } gras { processing-entities: "ALL" } gras { processing-entities: "ALL" } feature { tiktok-trends-daily-deduplication-enabled: false validation-enabled: true validation-notify-warnings: false } } aws { assume-role.arn: "arn:aws:iam::323555055331:role/prod-delphi-databricks_role" secretsmanager { secrets { bigtable: "delphi/prod/gcp/external-bigtable-user" slack: "delphi/prod/slack_notifications/SLACK_API_TOKEN" postgres: "delphi/prod/gras/pg_rw" snowflake: "delphi/prod/snowflake_reader" } } } slz { schema-versions-config: "apps-etl-versions.json" file-read-mode: "FAILFAST" bucket { decompressed: "sme-data-decompressed" archive: "sme-data-archive" parquet: "prod-delphi-sme-data-parquet" } } apollo { path-key { historical: "playlist-tracklist-history/dbSony_dbo/dbSony_dbo" backfill: "backfill/raw" } bucket { historical: "prod-delphi-apollo-rds-export" snapshot: "prod-delphi-apollo-playlist-track-positions-daily-snapshot" } } dapd.bucket { export: "prod-delphi-public-data-etl-export" snapshot: "prod-delphi-dapd-snapshot" backfill: "prod-delphi-apollo-rds-export" } amazon-metadata.bucket { snapshot: "prod-delphi-amazon-stations-metadata-snapshot" } notification { slack { enabled: false channelId.alert: "C05RPGKUXPW" } } validation { gras { threshold.error: 10 should-fail-job: true } applemusic { streams-count.threshold { error: 50 warning: 10 } retrospective-data { should-fail-job: false should-save-on-failure: true fields: [ "streams" ] threshold { error: 20 warning: 10 } } } spotify { streams-count.threshold { error: 50 warning: 5 } retrospective-data { should-fail-job: false should-save-on-failure: true fields: [ "streams" ] threshold { error: 15 warning: 10 } } } amazonmusic { streams-count.threshold { error: 50 warning: 5 } retrospective-data { should-fail-job: false should-save-on-failure: true fields: [ "royalty_bearing_play_yes" ] threshold { error: 25 warning: 10 } } } youtube { common.threshold { error: 15 warning: 5 } retrospective-data { should-fail-job: false should-save-on-failure: true fields: [ "views" ] threshold { error: 15 warning: 10 } } } tiktok { common.threshold { error: 15 warning: 5 } retrospective { should-fail-job: false should-save-on-failure: true fields: [ "video_views" ] threshold { error: 15 warning: 10 } } } youtube-metadata { write-count-validation-enabled: true } apollo-playlists { write-count-validation-enabled: true } } }