# Changelog

All notable changes to this project will be documented in this file.

This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

# 1.45.0
- IP-6796 - [DAL] Add displayName of Series to SequencerManager GetHydratedEpisode
- IP-6791 - [DAL] Add displayName of Episode to SequencerManager GetHydratedEpisode

# 1.44.0
- IP-6758 - [DAL] Fix Filter "associatedTo" fails when other filters are included

# 1.43.0
- IP-6499 - [DAL] Series.UpdateRatings method
- IP-6489 - [DAL] Add Additional Filtering for main-categories GetAllPaged method
- IP-6486 - [DAL] Add Error Log, Custom Metric and change of logic in DAL When Using Default or Static Placeholders

# 1.42.0

- IP-2283 - [DAL] Investigate high volume of unparsable (non-json) logs for service-dal

# 1.41.0

- IP-6233 - [DAL] Remove properties from SetOrderInChannelsListResponse
- IP-6302 - [DAL] Update DAL to new inf-lib-schema version
- IP-6303 - [DAL] Update DTOs to Support new channel property

# 1.40.0

- IP-5740 - [DAL] Enable ability to perform updateLastAired over episode
- IP-6150 - [DAL] Update GetHydratedTimeline to Include promotional and breakpoints in Clip
- IP-6100 - [DAL] Support retrieval of channels using CFAAS integration params
- IP-5741 - [DAL] Enable ability to fetch Partner by Filter
- IP-5739 - [DAL] Enable ability to fetch Channel by Filter
- IP-5935 - [DAL] Add new field hasLiveBroadcast to methods

# 1.39.0

- IP-6018 - [DAL] Fix test data issues in the integration tests
- IP-5746 - [DAL] Enable Projection - Channels.GetTimelinesForActiveContent, Timelines.GetByIds
- IP-2134 - [DAL] Add Series.GetSeriesFutureTimeline method
- IP-5744 - [DAL] Enable Projection - Channels.GetById, Timelines.GetById, Timelines.GetByEpisodeId, VodCategoryEntry.GetVodCategoryEntriesBySeriesOrEpisodeIds
- IP-5760 - [DAL] Enable "NOR" operator in the filters for Channels and VOD GetAllPaged methods for distribution field
- IP-5744 - [DAL] Enable Projection - VodCategory.GetByIds, Series.GetByIds, Episode.GetEpisodesByClipId, Episode.GetAgeRangePopulatedEpisodeById
- IP-5743 - [DAL] Enable Projection - Episode.GetPopulatedEpisodeById, Partners.GetByIds
- IP-5927 - [DAL] Persist stackingOrder in MainCategory after setOrderInChannelsList
- IP-5730 - [DAL] Update genre and sub-genre listing in static file for localized languages
- IP-5161 - [DAL] Add method - Timeline.GetAllBy
- IP-5930 - [DAL] Fix GetByIds error handling
- IP-5938 - [DAL] Fix case insensitive search for regionFilter
- IP-6013 - [DAL] include nielsen and comscore in vod and live events

# 1.38.0
- IP-5794 - [DAL] Fix for MainCatergories.GetVodCategoriesList 
- IP-5798 - [DAL] Increase 'grpc.max_send_message_length' 
- IP-5794 - [DAL] Fix for MainCatergories.GetChannelsList 
- IP-5776 - [DAL] Add new GH workflows.
- IP-5644 - [DAL] Add CronHistories.GetCronHistory and CronHistories.UpdateFields unary methods
- IP-5163 - [DAL] Add Channel.BulkRemoveEpisodesFromQueue method
- IP-5648 - [DAL] Add Series.getSeriesByChannelId method
- IP-5695 - [DAL] Error is displayed while parsing episodes for clip - Bug Fix
- IP-5162 - [DAL] Enable Projection - Episode.GetByIds, Episode.GetById, Clip.GetByIds, Channel.GetAllPaged, Clip.GetAllPaged
- IP-2052 - [DAL] Update getById method of main-categories unary method with displayName field
- PIE-465 - MRED KVETCH 2.0 | Configure & Deploy [service-dal] using Helm via Harness pipeline to nonprd-usw2-1
- IP-5159 - [DAL] Add ActiveRegion.GetByCode
- IP-2060 - [DAL] Update vod collection filter method with regionFilter property included
- IP-2051 - [DAL] Reorder multiple main categories by given orders
- IP-2059 - [DAL] Update getChannelsList method of main-categories unary method to include pagination, filtering, sorting and projection
- IP-2059 - [DAL] Add channel status to response from getChannelsList method of main-categories
- IP-2061 - [DAL] Update getChannelsList method of main-categories unary method to include order type
- IP-2062 - [DAL] Update getVodCategoriesList method of main-categories unary method to include order type
- IP-2074 - [DAL] Bulk-Insert Add unary method support to assign vod collections to main-categories
- IP-5160 - [DAL] Add support for "Distinct" operation - Episode.GetEpisodeIdsBySeriesIds
- IP-5659 - [DAL] Filtering by name in MainCategories is not working when the name includes a parenthesis
- IP-5686 - [DAL] Update TTFB implementation.
- IP-5164 - [DAL] Enable Filters - Episode.GetAllPaged
- IP-5165 - [DAL] Enable Filters - Clip.GetByIds
- IP-5693 - [DAL] Tune resources and HPA in production
- IP-5704 - [DAL] Add clip content status to Sequencer.GetHydratedEpisodeById
- IP-2073 - [DAL] Bulk-Insert Add unary method support to assign channels to main-categories
- IP-3128 - [DAL] Fix unit tests
- IP-5719 - [DAL] Update getVodCategoriesList method of main-categories unary method to include pagination, filtering, sorting and projection
- IP-5684 - [DAL] Change the method VodCategoryEntry.BulkAddVodCategoryEntries to use insertMany instead bulkWrite
- IP-5706 - [DAL] Fix merge conflicts
- IP-5732 - [DAL] GetPromotionalClips is returning incomplete Clips with changed fields
- IP-5733 - [DAL] Fix active region filter for Episode.GetEpisodeByNameSeriesAndActiveRegion
- IP-5666 - [DAL] Resources and HPA improvements
- IP-5735 - [DAL] Review/fix all helm environment files
- IP-5742 - [DAL] Add number to GetAllPagedChannelLite response
- IP-5763 - [DAL] Set read preference to primary for transactions
- IP-5795 - [DAL] For ChannelManager.GetLibrarySumDuration when sending info of a Channel without EpisodesQueue we get a timeout
- IP-5796 - [DAL] Fix clips getAllPaged
- IP-5812 - [DAL] add field durationFloat64 to subclips and clips on GetHydratedEpisode
- IP-5815 - [DAL] Fix channel.GetAllPaged for regex

# 1.37.0
- IP-2538 - [DAL] Enable ability to retrieve first future timeline for a list of episodes
- IP-2537 - [DAL] Enable ability to remove next timelines from episodes
- IP-2510 - [DAL] Fix GetEntriesDurationsSumByVodCategoryId for VOD Program Tab
- IP-2509 - [DAL] Genre/subG/Category/subCat do not display in column and right tray in VOD Collection Program Tab
- IP-2511 - [DAL] "No Ad Pods" Warning Displaying Incorrectly
- IP-2397 - [DAL] Adjust build image name
- IP-2463 - [DAL] Add fields projection to method "GetFilteredVodCategoryEntries"
- CMS-4824 - Add new Clip API for returning ids of clips that have a specific tag.
- CMS-5237 - Added new properties for origin to expose all defined in inf-lib-schemas to support CMS ingestion in `service-cms-content-ingestion`. Added method needed for finding a partner by Author Name.
- IP-2525 - Support on CMS ingestion with service-cms-content-ingestion
- IP-2584 - [DAL] Upgrade Go, Node.js, and some library versions to address security vulnerabilities.
- IP-2636 - [DAL] Add TTFB tests to the 10 most frequently used methods in production.
- IP-2467 - [DAL] Implement Highlight Save Logic with Markup ID Check and Cleanup Collection.
- IP-2646 - [DAL] Upgrade ESLint to the latest version.
- IP-4231 - [DAL] Add ErrorProne to the Test Automation Framework.
- IP-2591 - [DAL] Upgrade vulnerable libraries to remove Dependabot and some Snyk warnings. PHASE II
- IP-4712 - [DAL] Investigate and Fix MongoDB Aggregation Issue and Compatibility with Schema v5.0.0 and Library Upgrade
- IP-4194 - [DAL] Ensure Proper Handling of SIGTERM Signals to Avoid Child Process Connection Errors
- IP-4195 - [DAL] Investigate and Mitigate High CPU Usage During service-dal Startup
- IP-4630 - [DAL] Fix unhandled rejections for bad operation filter
- IP-4794 - [DAL] Refactor Test Automation Framework.
- IP-5362 - [DAL] Enable Filters - Series.GetAllPaged
- IP-2045 - [DAL] Add Main Categories GetAllPaged unary method for list of main categories
- IP-4630 - [DAL] Add more server/mongodb errors handling
- IP-4630 - [DAL] Revert multi threading due to memory leak and service crash issues
- IP-4630 - [DAL] HEAP size, resources and HPA improvements
- IP-4630 - [DAL] Health check improvements
- IP-2537 - [DAL] Enable ability to remove next timelines from episodes
- IP-2538 - [DAL] Enable ability to retrieve first future timeline for a list of episodes
- IP-5640 - [DAL] HPA adjustments

# 1.36.0
- IP-2423 - Test Automation Framework upgrade to Java 17. Snyk and dependabot new workflows.
- IP-2335 - DAL Add new fields regionOverrides and languageOverrides to Clip proto definition
- IP-2141 - DAL add getFilteredVodCategoryEntries
- IP-2432 - [DAL] Improve how the Sealights Lab Id is generated to conform to the Harness standard by using hostnames
- STARCH-2241 - Add properties to a clip supported by inf-lib-schema for transcoding.
- IP-2458 - [DAL] Fix response code for GetHydratedEpisodeByID
- IP-2433 - [DAL] Refactor Clip and Episode collection for PeekView
- IP-2460 - clip.GetAllPaged - INTERNAL: connection 1 to 10.59.0.93:1026 timed out
- IP-2466 - [DAL]Update DAL Schema and Inf-Lib-Schemas to Use "medias" Instead of "media" Field

# 1.35.0
- IP-2166 - DAL improve performance on getPopulatedEntriesByVodCategoryId
- IP-2304 - Fix issues and tests related to mongoose upgrade changes and inf-lib-schema

# 1.34.0
- IP-2240 - DAL add episodemanager getPopulatedEpisodesByIds
- IP-2127 - DAL Implement multi threading
- IP-2259 - Featured.GroupGetAllPaged - Sorting by name
- IP-2258 - Create a channel - INTERNAL: Channel validation failed
- IP-2284 - DAL enhance cfeeds for DE
- IP-2214 - DAL add method channelCategories.getById
- IP-2212 - DAL add method channelCategories.UpdateFields
- IP-2290 - DAL add series manager GetAllPaged
- IP-2250 - DAL add highlight to clips
- IP-2338 - GetAllPaged sorting [A, B, C, a, b, c] for FeaturedGroups

# 1.33.0
- IP-2148 - DAL include concurrentStartGroups on getAllPaged
- IP-2179 - DAL add clips.getAllPaged
- IP-2157 - DAL fix _id and id on clip.markups
- IP-2136 - DAL add GetDocumentsBetweenStartDates
- IP-2185 - Extend PartnerManager with create & update methods
- IP-2163 - Extend MainCategoriesManager methods with support hideMainCategory property
- IP-2189 - DAL include ident_card on the nonCamelCase list
- IP-2161 - Update DAL to prevent trigger of ratings webhook
- IP-2265 - DAL increase max pods and changes on hpa settings
  
# 1.32.1
- IP-2218 - DAL GetHydratedEpisode validate clip.partner

# 1.32.0
- IP-1996 - DAL add FeaturedGroupsManager.publishFeaturedGroup
- IP-2042 - DAL add FeaturedGroupsManager.unpublishFeaturedGroup
- IP-2043 - DAL add FeaturedGroupsManager.getOneByFilter
- IP-2115 - DAL include episode.rating on timeline endpoints
- IP-1951 - Channels updateFields - without id in the document
- IP-2156 - Campaigns: update DAL Swagger
- IP-2133 - DAL add support for field _isDASHReadyDRM on channels

# 1.31.0
- IP-1991 - [DAL] Update to use 'inf-lib-schema' version with Featured-Groups support
- IP-1994 - [DAL] Add FeaturedGroupsManager.Get by Id
- IP-1990 - [DAL] Add GetFeaturedGroups Method (Paged)
- IP-2085 - ExternalIds field missing from EpisodePopulated
- IP-2044 - GetPopulatedEntriesByVodCategoryId return sum_durations correctly
- IP-2091 - correct default image asset urls on preprd and prod
- IP-1992 - [DAL] Add FeaturedGroupsManager.Create
- IP-1993 - [DAL] Add FeaturedGroupsManager.Delete by Id(s)
- IP-1995 - DAL add FeaturedGroupsManager.UpdateFields
- IP-2080 - DAL promotional_adpods on getPopulatedEntriesByVodCategoryId
- IP-2123 - DAL FeaturedGroupsManager.Get by Id extra field "name"

# 1.30.0
- IP-1847 - DAL - Advanced sorting behaviors on VodCategory.getAllPaged
- IP-1981 - DAL add updatedAt to Episode.getAllIds
- IP-1980 - DAL DAL bump schemas version for Device and Appname
- IP-2024 - DAL fix getPopulatedEntriesByVodCategoryId entries count
- IP-2064 - DAL preprod-tan helm values
- IP-2009 - correct error codes for GetTimelineIdsByClipId

# 1.29.0
- IP-1903 - DAL RatingDescriptors.getAllPaged
- IP-1840 - DAL Campaign GetAllPaged date ranges filter
- IP-1945 - Create GetTimelinesLiteByChannelId and GetTimelineDraftsLiteByChannelId methods
- IP-1963 - [DAL] Performance Improvements for GetPopulated Draft and  GetPopulated Published Timeline Methods
- IP-1967 - [DAL] Ensure required fields gets populated when saving timelines and timelines drafts 
- IP-1966 - [DAL] GetAllPaged Campaigns Method `createdAt` Filter Incorrect
- IP-1923 - [DAL] - Support settings configurations to be persisted for vod collection-setting tab
- IP-1964 - [DAL] TotalItems being returned for pagination
- IP-1947 - [DAL] GetPopulatedSeriesById and GetPopulatedEpisodeById fixed entries not being populated
- IP-1849 - Same Devices Can Be At Include/Exclude List (Channels/VOD) on Bulk Updates
- IP-1920 - [DAL] create GetVodAutoPublishingSettings method
- IP-1986 - [DAL] fix cannot read undefined property reading map on getPopulatedSeriesById

# 1.28.0
- IP-1916 - GetPopulatedEpisodeById method crashes when nextTimeline == {}
- IP-1863 - DAL add BulkAddVodCategoryEntries
- IP-1862 - DAL add BulkDeleteVodCategoryEntries
- IP-1803 - DAL add update order of VodCategoryEntries in bulk
- IP-1820 - DAL Partner Mapping Solution 
- IP-1918 - DAL Create and UpdateFields for AppName Collection
- IP-1919 - DAL Create and UpdateFields for Devices Collection
- IP-1904 - [DAL] Add `series.type` field to the GetChannelQueue Method Response
- IP-1913 - Refactor GetChannelLibrary and create GetLibrarySumDuration and GetQueueSumDuration APIs
- IP-1939 - DAL increase stabilization window
- IP-1928 - DAL add GetTimelineIdsByClipId
- IP-1840 - [DAL] Add GetAllPaged Campaigns Method
- IP-1853 - DAL: VOD collection "intileChannel" property update to "null value" error
- IP-1917 - DAL avoid error when dealing with undefined content property on old contents
- IP-1932 - DAL timeline-drafts fixed match intervals to get edge cases
- IP-1921 - [DAL] - support projection query params to project given fields from database [/partner api]
- IP-1848 - [DAL] Update inf-lib-schemas Version, and Include `logoOverlayEnable` Field on ChannelManager
- IP-1865 - DAL add vod flag to Episode.getAllIds
- IP-1906 - DAL getPopulatedEntriesByVodCategoryId
- IP-1902 - DAL add vod flag to Episode.cFeedsSyncDocuments
- IP-1985 - [DAL] rpc error: code = internal desc = Cannot read properties of null (reading 'map')
- IP-1956 - [DAL] rpc error: code = Internal desc = .sequencerpackage.Fragment.sub_clips: object expected 65bcbbb9ecf2e500135e83ad

# 1.27.0
- IP-1810 - DAL fix sort order for vod collection
- IP-1680 - DAL update Channel.updateFields to allow episodesQueue updates
- IP-1856 - DAL investigate crash in publishing
- IP-1859 - DAL getChannelQueue error when no channel found
- IP-1815 - [DAL] Add GetEpisodesByIds Method
- IP-1797 - Mismatch in the duration value returned
- IP-1818 - [DAL] GetTimelinesForRepeatSchedule inverted order
- IP-1838 - [DAL] Add GetSeriesPartner method
- IP-1885 - [DAL] GetTimelinesForRepeatSchedule additional fields
- IP-1912 - DAL getChannelQueue needs to use episodequeue order
- IP-1887 - DAL update order of VodCategories
- IP-1842 - DAL tags filter for GetChannelQueue
- IP-1914 - DAL inf-lib-schemas version raise

# 1.26.0
- IP-1687 - DAL add ratings getAllPaged
- IP-1684 - DAL timelines add deleteTimelinesInChannelUsingDates
- IP-1685 - DAL timelinedrafts deleteTimelinesInChannelUsingDates
- IP-1686 - DAL timelinedrafts getManuallyCreatedTimelines
- IP-1683 - DAL verify clip hook updateEpisodeSeriesAvailWindows
- IP-1679 - DAL Channel.getCFaasIntegratedChannel
- IP-1759 - DAL add TimelineManager Create
- IP-1721 - DAL Add Channel.GetOneCFaasIntegratedChannel
- IP-1772 - DAL Support Filtering by updatedAt Field for GetChannelQueue, and GetChannelLibrary Methods
- IP-1783 - DAL optimize resource requests
- IP-1787 - DAL add timelinedraft GetTimelineDraftsByChannelId
- IP-1788 - DAL add timeline GetTimelinesByChannelId
- IP-1790 - DAL add cfaasIntegrated to Channel to allow updateFields the cfaasIntegrated
- IP-1760 - DAL add TimelineDraftManager Create
- IP-1793 - DAL 500 error when using Episode.GetChannelLibrary
- IP-1786 - DAL Support ident card ad bumpers
- IP-1795 - DAL GetChannelQueue filter not working with rating +
- IP-1792 - DAL Sort GetChannelQueue method by Order param
- IP-1791  - DAL add EpisodeManager GetAllIds
- IP-1798 - DAL GetTimelinesForRepeatSchedule not returning correct results
- IP-1807 - DAL GetPopulatedTimelinesByChannelID not returning full results
- IP-1358 - DAL add additional values to VodCategory.GetById
- IP-1517 - DAL: Add ability to delete main categories        
- IP-1513 - [DAL] Add GetChannelLibrary Method
- IP-1618 - DAL Update Endpoint to Return "Partial" VOD Collection Names
- IP-1634 - DAL: Include additional fields for VOD category list with sorting support
- IP-1649 - Update DAL endpoint to better support Channel sorting by Main Categories
- IP-1770 - [DAL] Performance Improvements - Add GetPopulatedTimelinesByChannelId Method
- IP-1773 - DAL | GetPopulatedTimelinesByChannelId - calculated fields have incorrect values
- IP-1495 - [DAL] Add GetPopulatedTimelinesByChannelId Method
- IP-1796 - VOD categories
- IP-1799 - DAL: Add ability to GET list of channels/vod from main categories

# 1.25.0
- IP-1576 - channels GetAllPaged - samsungChannelProperties.serviceId crash when used with AND/OR operators
- IP-1292 - DAL Request for service-dal to include method additional fields to clips
- IP-1633 - DAL lower HPA to 25
- IP-1644 - DAL Add Channel Api similar to GetAllPaged that is light GetAllPagedChannelLite
- IP-1356 - DAL Add Unary VodCategory Create
- IP-1496 - DAL Add GetPopulatedTimelineDraftsByChannelId
- IP-1609 - DAL Update Endpoint to Return "Partial" Channel Names
- IP-1498 - Add UpdateTimelineDraftsBulk method
- IP-1607 - Update DAL to handle the return Channel Numbers with not set value
- IP-1497 - Add UpdateTimelinesBulk method
- IP-1500 - Unary method for VOD collection include/exclude/remove bulk update
- IP-1646 - DAL VOD filtering for GetAllPaged to enable 'OR'
- IP-1706 - Update DAL to handle request to remove Channel Number When User inputs "0"
- IP-1715 - DAL add Series.DeleteById to swagger
- IP-1731 - DAL Fix Sort Order for GetAllPagedChannelLite Method


# 1.24.0
- IP-1402 - DAL Device bulk update, support for "removing" multiple devices for multiple channels
- IP-1446 - DAL fix sort order for channels
- IP-1441 - DAL channel filtering for GetAllPaged enable the use of 'or'
- IP-1465 - DAL update the 'Young Adult' genre in genre translations
- IP-1430 - DAL remove unused methods
- IP-1479 - DAL increase code coverage to 95%
- IP-1480 - DAL Include missing Channel attributes
- IP-1506 - DAL match preprd with prd config for NN testing
- IP-1522 - DAL does not include new "customReferences" for a channel

# 1.23.0
- IP-1311 - DAL channel create remove empty accessCode
- IP-1307 - DAL not executing `remove` hooks when deleting a series by ID
- IP-1138 - DAL revplatform object in DeviceManager device response
- IP-1038 - DAL Appname object in AppNameManager needs to return device reference
- IP-1305 - DAL create/update main categories
- IP-1309 - DAL channel getAllPaged Add filtering by samsungProperties.serviceId
- IP-1310 - DAL channel UpdateFields Add support to update samsungProperties.serviceId
- IP-1379 - DAL UEFA AD Bumper is not shown for series:id bumper that use 5 for duration

# 1.22.0
- ARCH-3746 - Add sort by `createdAt` ascending for the CFeeds APIs for gracenote-logs and gracenote-runs collections.
- IP-965 - DAL Add SeriesManager.Create
- IP-967 - DAL Add SeriesManager.Delete
- IP-1029 - DAL SeriesManager.UpdateFields extra validations
- IP-1082 - DAL Add distribution to Sequencer.GetHydratedTimeline
- IP-1002 - DAL update test cases and validate that new series prefix works
- IP-1223 - DAL add GetById to vodcategoryEntryManager
- IP-1222 - DAL add GetAllPaged to vodcategoryEntryManager
- IP-1227 - Series GetPopulatedSeriesById response needs additional fields
- IP-1137 - DAL : Support for "Create" channel
- IP-1207 - DAL Add new Channels.BulkDeviceUpdate
- IP-1243 - Episode create method fails when creating an episode with deliveryPartner custom reference
- IP-1257 - DAL add ratingsDescriptors to series so updateFields can update
- IP-1284 - Return mapped validation error responses on series delete
- IP-1293 - DAL Series update is not saving the poster169 field
- IP-1296 - DAL channel getAllPaged is not filtering by samsungProperties.id
- IP-1297 - DAL Update ChannelManager to include customReference
- IP-1304 - DAL Dealing with Attributes with _ Characters by Exceptions
- IP-1312 - DAL timeout when receiving stream for timeline.getAll

# 1.21.1
- IP-1195 - DAL populatedepisodebyid null data causing episode to be read

# 1.21.0
- IP-962 - DAL return `googleDai` enabled in channel response
- IP-963 - DAL samsungtv plus return value in channel
- IP-964 - DAL channel updates need to support hooks/schema
- IP-968 - (GET /series/:id) - Add an API that Returns a Fully Populated Series Object
- IP-1089 - DAL EpisodesManager.GetByIdPopulated

# 1.20.0
- IP-817 - Add DeviceManager.getDevicesByDeviceTypes
- IP-882 - Add partner to the device response
- IP-991 - DAL saving episodes is not working because of _ character

# 1.19.0
- IP-858 - Add URI to clips.timedText for dcp transcode
- IP-859 - DAL add totalcount metadata to pagination apis
- IP-848 - Sealights Integrations
- IP-767 - Support for clip schema method
- IP-735 - Fix all GitHub Actions warnings
- IP-766 - Support for timeline schema methods
- IP-831 - Add customReferences in series UpdateFields
- IP-775 - add missing v property for episode
- IP-877 - Add Java grpc client
- IP-923 - Add delete to vodCategoryEntries
- IP-928 - Integrate Java GRPC Client into packages/releases for mvn consumption
- IP-951 - Add getAllPaged to DeviceManager
- IP-952 - Add getAllPaged to AppNameManager

# 1.18.0
- IP-516 - Expose DAL service to read and retrieve the data from Users DB
- IP-555 - Add 16x9 poster artwork to service-dal series and episodes
- IP-556 - Increase Code coverage for service-dal
- IP-559 - When creating service-dal release we should not create ECR for node client workflow
- IP-566 - ACS deadline exceeded investigate
- IP-573 - Error spikes in the performance tests
- IP-618 - Extend DAL API to update channel metadata
- IP-619 - Extend DAL API to update vod category metadata
- IP-620 - Extend DAL API to update series metadata
- IP-622 - Update inf-lib-schema version to get new genre list
- IP-635 - service-dal use update so hooks trigger on all updates}
- IP-639 - service-dal add discreteaudio to clips
- IP-658 - Remove cyprien from code owners
- IP-684 - Add genres translations API
- IP-712 - Add an api that returns a fully populated episode object
- IP-724 - Extend DAL API to update vodCategoryEntries metadata
- IP-725 - Extend DAL API to create vodCategoryEntries
- IP-727 - Add VodCategoryEntryManager.GetVodCategoryEntriesByVodCategoryId
- IP-729 - Add VodCategoryManager.GetByEpisodeId
- IP-730 - Add TimelineManager GetByEpisodeId
- IP-731 - Add episode and channel fields for IS
- IP-748 - Add AppNameManager.getByDeviceId
- IP-762 - Add TimelineManager getOne
- IP-763 - Add new manager TimelinesPast
- IP-765 - Add Episodes setAdPodDurations and calculateTotalAdPodsDuration
- IP-773 - Add DeviceManager getById
- IP-781 - Add TimelineManager deleteById
- IP-782 - Add TimelineManager count
- IP-783 - Add TimelineManager find
- IP-787 - Add TimelineManager.getDocumentsUpdatedBetweenDates
- IP-803 - No Error messaging being returned for Clip Validation Error
- IP-815 - Performance Optimization for this getPopulatedEpisodeApi
- IP-819 - Add AppNameManager getAll
- IP-830 - DAL circuit breaker changes
- IP-833 - Add devices array to appname responses
- IP-855 - Add customReference to episode
- IP-854 - DAL investigate server crash on episode.updateFields

# 1.17.0

- IP-413 - create deploy/helm/service-dal/environments/values-sandbox-use1-6-dal-test.yaml and scripts/sandbox-deploy.sh for deploying to sandbox
- IP-282 - Upgrade logging style in every DAL method for DataDog logs populate with traces
- IP-57 - DAL | Improvement | Dynamic configuration from Vault
- IP-484 - Add gRPC Server Reflection to the DAL
- IP-519 - Create sandbox values files for service-freewheel-ivi
- IP-319 - Combine DAL and STE repos
- IP-529 - service-dal ecr repo should be changed to plutotv/service-dal
- IP-481 - Investigate ACS Issue: ACS DEADLINE_EXCEEDED over 5000 [DAL]
- IP-513 - Create sandbox for preprd-tan that is similiar in config to K1 preprd tan

# 1.16.0

- ARCH-1881:
  - **Library**:
    - Add cFeedsSyncDocuments method for each of the following collections - AgeRange, Channel, Clip, Episode, SamsungChannelProperty, Series, Timeline, VodCategory
    - Added support for Gracenote-Logs, Gracenote-Metadata, Gracenote-Runs
  - **Service**
    - Add support for `gracenote-logs`, `gracenote-metadata`, `Gracenote-runs` CFEEDS MongoDB collections
    - Added/Removed APIs for Services. Removed APIs are removed because they were developed by Jonny Jesperson his CFEEDS integration. CFEEDS with the DAL has never made it to preprod or prod. This integration has been redone and these are no longer needed.
      - ActiveRegions:
        * `getForContentFeeds` (-)
        * `getChangeStreamDeletesForContentFeeds` (-)
        * `GetDocumentsColumnsNotEmptyByIds` (-)
        * `cFeedsSyncDocuments` (+)
        * `cFeedsSyncAllIds` (+)
      - AgeRange:
        * `getForContentFeeds` (-)
        * `getChangeStreamDeletesForContentFeeds` (-)
        * `GetDocumentsColumnsNotEmptyByIds` (-)
        * `cFeedsSyncDocuments` (+)
        * `cFeedsSyncAllIds` (+)
      - AppNames:
        * `getForContentFeeds` (-)
        * `getChangeStreamDeletesForContentFeeds` (-)
        * `GetDocumentsColumnsNotEmptyByIds` (-)
      - ChannelCategory:
        * `getForContentFeeds` (-)
        * `getChangeStreamDeletesForContentFeeds` (-)
        * `GetDocumentsColumnsNotEmptyByIds` (-)
        * `cFeedsSyncDocuments` (+)
        * `cFeedsSyncAllIds` (+)
      - Channel:
        * `getForContentFeeds` (-)
        * `getChangeStreamDeletesForContentFeeds` (-)
        * `GetDocumentsColumnsNotEmptyByIds` (-)
        * `cFeedsSyncDocuments` (+)
        * `cFeedsSyncAllIds` (+)
      - Clips:
        * `getForContentFeeds` (-)
        * `getChangeStreamDeletesForContentFeeds` (-)
        * `GetDocumentsColumnsNotEmptyByIds` (-)
        * `cFeedsSyncDocuments` (+)
        * `cFeedsSyncAllIds` (+)
      - Devices:
        * `getForContentFeeds` (-)
        * `getChangeStreamDeletesForContentFeeds` (-)
        * `GetDocumentsColumnsNotEmptyByIds` (-)
      - Episodes:
        * `getForContentFeeds` (-)
        * `getChangeStreamDeletesForContentFeeds` (-)
        * `GetDocumentsColumnsNotEmptyByIds` (-)
        * `cFeedsSyncDocuments` (+)
        * `cFeedsSyncAllIds` (+)
      - **[NEW]** Gracenote-Logs:
        * `cFeedsSyncDocuments` (+)
        * `cFeedsSyncAllIds` (+)
      - **[NEW]** Gracenote-Metadata:
        * `cFeedsSyncDocuments` (+)
        * `cFeedsSyncAllIds` (+)
      - **[NEW]** Gracenote-Runs:
        * `cFeedsSyncDocuments` (+)
        * `cFeedsSyncAllIds` (+)
      - MainCategories:
        * `getForContentFeeds` (-)
        * `getChangeStreamDeletesForContentFeeds` (-)
        * `GetDocumentsColumnsNotEmptyByIds` (-)
        * `cFeedsSyncDocuments` (+)
        * `cFeedsSyncAllIds` (+)
      - Partners:
        * `getForContentFeeds` (-)
        * `getChangeStreamDeletesForContentFeeds` (-)
        * `GetDocumentsColumnsNotEmptyByIds` (-)
        * `cFeedsSyncDocuments` (+)
        * `cFeedsSyncAllIds` (+)
      - RatingDescriptors:
        * `getForContentFeeds` (-)
        * `getChangeStreamDeletesForContentFeeds` (-)
        * `GetDocumentsColumnsNotEmptyByIds` (-)
      - Ratings:
        * `getForContentFeeds` (-)
        * `getChangeStreamDeletesForContentFeeds` (-)
        * `GetDocumentsColumnsNotEmptyByIds` (-)
        * `cFeedsSyncDocuments` (+)
        * `cFeedsSyncAllIds` (+)
      - SamsungChannelProperties:
        * `getForContentFeeds` (-)
        * `getChangeStreamDeletesForContentFeeds` (-)
        * `GetDocumentsColumnsNotEmptyByIds` (-)
        * `cFeedsSyncDocuments` (+)
        * `cFeedsSyncAllIds` (+)
      - Series:
        * `getForContentFeeds` (-)
        * `getChangeStreamDeletesForContentFeeds` (-)
        * `GetDocumentsColumnsNotEmptyByIds` (-)
        * `cFeedsSyncDocuments` (+)
        * `cFeedsSyncAllIds` (+)
      - Timelines:
        * `getForContentFeeds` (-)
        * `getChangeStreamDeletesForContentFeeds` (-)
        * `GetDocumentsColumnsNotEmptyByIds` (-)
        * `cFeedsSyncDocuments` (+)
        * `cFeedsSyncAllIds` (+)
      - Vod:
        * `getForContentFeeds` (-)
        * `getChangeStreamDeletesForContentFeeds` (-)
        * `GetDocumentsColumnsNotEmptyByIds` (-)
        * `cFeedsSyncDocuments` (+)
        * `cFeedsSyncAllIds` (+)
      - VodCategoryEntries:
        * `getForContentFeeds` (-)
        * `getChangeStreamDeletesForContentFeeds` (-)
        * `GetDocumentsColumnsNotEmptyByIds` (-)
        * `cFeedsSyncDocuments` (+)
        * `cFeedsSyncAllIds` (+)
  - **NodeJS Client**
    - Add support for Gracenote-Logs, Gracenote-Metadata, Gracenote-Runs
    - Add generic method (`promisifyGrpcClientFunction`) to wrap unary and server streaming gRPC client functions. Simplifies using the client.
      - Updated the README explaining usage for the above.
    - Added JSDocs for current gRPC Client Services
  - **Administrative**
    - Updated inf-lib-schemas from 4.8.0 to 4.10.0 to support the gracenote-* collections.
    - Update grpc-tools from 1.11.3 to 1.12.0
- IP-385 Add kidsOnly boolean in VOD DAL Response
- IP-241 - GET `/clip/:Id` Method Not Returning `adSparkAdpolicy` Key in the Clip Sources Array
- IP-261 - Name inf-service-dal to service-dal
- IP-144 - Support `searchText` Ability on episodes End Point in DAL
- IP-2 - DAL | Handoff | Upgrade DAL nodejs version
- IP-305 - Create a Method for GetAllPaged /vod-categories
- IP-243 - Create swaggerhub for DAL endpoints and integrate with github CI/CD
- IP-284 - DAL: Method to Update a Clip Is Not Triggering Hooks in Schemas
- IP-277 - GetAllPaged Method for Retrieving /channels is Returning Inconsistent Results
- IP-283 - DataDog Custom Metrics
- PRO-3421 - Add missing DataDog resources for service-dal
- IP-285 - Tests intermittently fail during build / release process
- IP-330 - Create API for age-ranges that can filter by activeRegion
- IP-298 - DAL: Add channel_ids filter to Timelines GetAll stream method
- IP-315 - Create a script to version DAL
- IP-305 - Create a Method for GetAllPaged /vod-categories
- IP-375 - Align environments for DataDog tags
- IP-391 - adSparxPolicy is returning blank field causing issues post transcode
- IP-410 - Investigate memory issues with service-dal

# 1.15.0

- IP-193 - Add Jamil and Salvador as code owners
- IP-222 - Standardize protobuf versions
- IP-1 - DAL lib and service repo merge
- IP-148 - Include Additional Offset and Count Metadata
- IP-202 - GetAll Stream Methods (Channels, Episodes and Clips)
- IP-145 - Update GET/channels End Pt. to Support Query Parameters for Filtering
- ARCH-2150 - Additional and missing methods in terms of implementing service-dcp-revenue VodCategoryManager(GetById, GetByIds), VodCategoryEntryManager. GetVodCategoryEntriesBySeriesOrEpisodeIds, EpisodeManager.GetEpisodeIdsBySeriesIds
- IP-211 - Add GetAll stream method (Timelines)
- IP-155 - Use externalSecret to get Vault secrets
- IP-252 - Merge develop and K2.0 branch so we have a KVETCH 2.0 compliant branch for DAL
- IP-249 - Add Robert as code owner, remove Jonny and Pavlo as code owners
- IP-238 - Receiving the error after a few minutes in the open stream for timelines.proto - GetAll
- IP-236 - DAL | PreProd/Prod | Update fallback placeholders with additional DASH source type
- IP-260 - placeholder.proto GetBumperSets - "error": "14 UNAVAILABLE: upstream request timeout"
- IP-278 - Update the log-level for DataDog logs
- IP-247 - "RESOURCE_EXHAUSTED " in episodes.proto GetPopulatedEpisodesByClipId with a limit of 4 and more
- IP-296 - dashEnabled field is not set for episode, when updating clip from sources
- IP-291 - fix intermittent upstream timeout

# 1.14.1

- ARCH-2448 - DAL should not have Redis as a dependency through inf-lib-schemas. Set `USE_MOCK_KUE_RUNNER` on all containers.
- ARCH-2157 - Created episodes protobuf have populated sources. `inf-lib-schemas` populates the clips on sources automatically.
- ARCH-2412 - Fixed bug in `inf-lib-schemas` where `Episode.parent` was referencing `'Clip'` instead of `'Episode'`. Bring in updated package (through `inf-lib-dal`) and update tests accordingly.
- ARCH-2408 - Service to allow sorting for the following: `getByIds` for each collection. Episode entity `getPopulatedEpisodesByClipId`, `getPopulatedEpisodesByIds`, `getAgeRangePopulatedEpisodesByIds`, `getEpisodesByClipId`. Defaults are provided by the library for backward compatibility with previous clients.
- ARCH-2406 - Update namespace and stack name for default nonprod deployment.
- IP-146 - **BUGFIX**: (`inf-lib-dal v0.0.97`) Fix issue where mongodb skip was not specified correctly for dal > getEpisodesByClipId.
- IP-146 - **BUGFIX**: (`inf-lib-dal v0.0.96`) Fix issue where mongodb skip was not specified correctly for bll > getPopulatedEpisodes.
- ARCH-2360 - Fix to the NodeJS client `convertKeysProtobufToMongo` method used to convert objects from `protobuf` to MongoDB `JSON`. Now `id` is preserved. This has the effect of allowing the `id` to be set for `Clip.Author`. All other objects use `_id`.
- ARCH-2335 - Allow sorting for getAllPaged API
- ARCH-2310 - Show PublishingUser id.
- ARCH-2056 - Require auth tokens for create, update, delete APIs.
- ARCH-2166 - getEpisodesByClipId now has the ability to receive an offset.
- ARCH-2300 - Add to clip markup, timedText. Add to Vod Category: archived, heroCarousel
- ARCH-2392 - **BUGFIX** for ARCH-2300: Clip markup should be plural (`markups`) and the `start` and `end` attributes should be `int32` instead of `string`.
- ARCH-2236 - Add CMS TNG API for getting a fully populated list of episodes containing a clipId in its sources.
- ARCH-2328 - Upgrade lib-observability-js to v2.1.0. Update log messages to meet message format compliance.
- ARCH-1855 - Update helm chart so container names start with `service-*`. This will allow logs to be captured by Datadog.
- ARCH-2157 - Episode create, delete, get paged APIs. Get Publishing users paged.
- ARCH-2142 - Add property symbol to ratings APIs.
- ARCH-2134 - Get channels by supplying limit and/or offset.
- ARCH-2050 - Delete clip
- ARCH-2049 - Create/update user
- ARCH-2057 - Create/update clip
- ARCH-1910 - Update Comscore logic so that the episode genre will be used as a fallback if the clip does not have a genre
- ARCH-2076 - Updated readme for the way to set timeout for all calls for the grpc cleint and configuration of retry strategy
- ARCH-2047 - Methods for genres. Retrieve Genres from inf-lib-schemas config.
- ARCH-2048 - Get all, by id, by ids methods for publishing users.
- ARCH-2078 - Methods for categories. Retrieve categories from inf-lib-schemas config.
- ARCH-2077 - Methods for languages. Retrieve languages from 'iso-language-codes'.

# 1.13.2

- ARCH-2155 - **HOTFIX**: Update production certificate at the request of Vipul.

# 1.13.1

- ARCH-2100 - **BUGFIX**: Fix for an issue populating the episode age range for sequences where an episode does not have any clips.

# 1.13.0

- ARCH-1850 - Make content feed names more generic with new API names. Preserved old APIs for backward compatibility.
- ARCH-467, ARCH-1815 - Remove Manual OpenTelemetry Metrics. Add OpenTelemetry tracing.
- ARCH-1408 adding generated golang client files

# 1.12.1

- RM-1803 - **BUGFIX**: Revert series, episode and clip meta.views data type from double to int32. Caused issue with previously generated clients.

# 1.12.0

- ARCH-1812 - Update `contentTimestamp` to now when MAM content UUIDs are updated for series, clips, and episodes.
- ARCH 1799 - **BUGFIX**: update meta.views datatype from int32 to double on lab partners, episodes, and clips.
- ARCH-1778 - **BUGFIX**: by pulling new dal lib. foreach of undefined when filling out ageranges for lab partner function.
- ARCH-1742 New generic APIs to find documents in a given set (by ids) that have specific columns that are not empty. For use initially by content feeds.

# 1.11.0

- ARCH-1778 BUGFIX foreach of undefined when filling out ageranges for lab partner function.
- ARCH-1741 Update DAL lib that makes the content feeds query min timestamp `gte` instead of `gt`.
- ARCH-1732 Populate the rating descriptors on the series, episodes and clips for the lap partners API.
- ARCH-1731 Populate the age ranges in the episodes for the lap partners API.
- ARCH-1719 Function call counter adds a client and function as labels allowing more flexibility in Grafana dashboards.

# 1.10.0

- ARCH-1665 Generate the client to use the npm package grpc_js instead of the deprecated grpc package. Update to many gRPC packages.
- OPS-33 Basic prometheus support through `:9090/metrics/`.

# 1.9.0

- ARCH-1427 Add kids default to complex bumpers

# 1.8.0

- ARCH-1409 **BUGFIX**: update framerate instances in protobuf files from `int32` to `float`.
- ARCH-1365 New BLL for constructing the Lab Partner Object requested by an array of episodeIds.
- ARCH-1357 Support for streaming changes and deletes for the main categories collection.
- ARCH-1290 Add API for retrieving all bumpers (kids and legacy generic) in a new format. Returns HLS and DASH in placeholder sources.
- ARCH-1302 Update contentUUID APIs
- ARCH-1421 dashEnabled flag not being set properly by DAL

# 1.7.0

- ARCH-1283 Add sources to subClips in sequence protobufs to help support DASH.
- ARCH-1336 Surface sources on placeholders and backfill showing DASH manifest(s).
- ARCH-1315 update inf-lib-dal where inf-lib-schemas to 3.6.2 with the latest fix for episode.dashEnabled hook for clips
- ARCH-1342 update inf-lib-dal to the 0.0.54 which has the new hook for clips to update the episode.dashEnabled
- ARCH-1350 Adding to clip.transcodes object following properties encryptionParams, libVersion, transcoderVersion

# 1.6.0

- ARCH-977 API for getting Available VOD for content recommendations.
- ARCH-1211 Add activeRegion to episode for Sequences.
- ARCH-1234 GetDataForAvailableVodContentRecommendations to Streaming Response

# 1.5.0

- ARCH-1169 Dal Library Fix - handling case where and ageRange not existing on an episode was causing a undefined .map error.
- ARCH-1170 Dal Library Fix - getAgeRangePopulatedEpisodesByIds was returning a list of a list of objects instead of just a list of objects.
- ARCH-1143 Method for getting error clips from the DB.
- ARCH-1021 Expose `dashEnabled` property on episodes in episode service and sequencer service.
- ARCH-1053 Expose and populate `ageRange` objects on `episodes.ageRange` property in episode service and sequencer service.

# 1.4.0

- ARCH-1049 add fragments property for transcode-job
- ARCH-1024 Update to support changes for DASH/DRM, sub-clips has a hook to return source HLS if it doesn't exit
- ARCH-1131 Add fields to clips protofile

# 1.3.0

- ARCH-643 Support CFaaS change stream deletes.
- ARCH-519 Pass playback type/context to the comscore function. This allows the population of the 'c6' value. Remove support for Advanced Channel Categories because its support has been removed from inf-lib-schemas.
- ARCH-838 DAL support of getting kids and non-kids backfill clip ids.
- ARCH-922 New dal lib (0.0.31) for the new comscore implementation replacing values populated using sub genre with genre.
- ARCH-738 Fix parsing of mongodb connection string. Now it handles query parameters and mongodb+srv.
- ARCH-809 fix undefined on port-less string

# 1.2.0

- ARCH-701 Handle missing placeholders by introducing default (hard-coded) placeholders in DAL. Handle duplicate duration placeholders, by picking the first.
- ARCH-680 Added config api listing connected DB, dependencies, version, etc.
- ARCH-694 Restore legacy getById(s) methods for selected services for Lambdas using the legacy methods.
- ARCH-410 Support for content feeds as a service syncing of Mongo collections. New inf-lib-dal, consolidated naming of getById, getByIds, getForContentFeeds. Add Metadata in server stream responses for the document count.
- ARCH-437 Integration of transcode lambda to DAL
- ARCH-20 Account updatedAt field to update episodes which were modified
- ARCH-697 error if a package already existing is attempting to be published. This would allow the Github Action to fail to alert developers to change the version number if they are attempting to push to master or with a tag.
- ARCH-720 Use in our github actions GH_PKG_REPO_TOKEN instead of NPM_TOKEN
- ARCH-734 GHA to run tests.
- ARCH-794 transcodeJobs changes for VOD enhancement thumbnails
- ARCH-795 Add integer type field named `interval` to Thumbnails in clips
- ARCH-801 Use clip url when hydrating episodes for stitchables.
- ARCH-809 Fixing issue when updating clip and not passing \_id to sub objects

# 1.1.2

- ARCH-681: bugfixes to malformed placeholders and sequences.

# 1.1.1

- ARCH-663: Update message for when no channel category found.

# 1.1.0

- ARCH-266: Integrate service test mocks into nodejs-client, helping other services more easily mock DAL responses. Unit tests validating mock functions.

# 1.0.0

- Official release to production

# 0.0.14

- ARCH-521 Updating google-protobuf to a higher version which has the fix for packed by default int arrays. Updated tests to account for this case. Setting the limit to client receiving messages up to 1 Gb instead of the default one 4Mb.

# 0.0.13

- ARCH-478 Fix issues where sequencer generation was giving various errors.

# 0.0.12

- ARCH-420 Fix issue where duration was not showing in Nielsen.
- ARCH-416 Fix issue when generating episode for sequencer where we were getting a "Cannot read property 'forEach' of null".

# 0.0.11

- ARCH-468 Added method on the nodejs-client to force close the grpc client.

# 0.0.10

- ARCH-459 Updates to validate comscore object.

# 0.0.9

- ARCH-397 New services with new proto files for Active Regions, Advanced Channel Categories, Deleted Docs, Devices, Ratings, Samsung Channel Properties, and Vod Category Entries.
  Added get{entity}ForContentFeeds() for each of the above entities plus the following entities: Channel, Clip, Episode, Series, Subclip, Timeline, and Vod Category.
- ARCH-419 update eslint to latest and resolve lint failures.

# 0.0.7

- ARCH-374,ARCH-376 Fix to clip proto.
- ARCH-279 Added function to get episode by clip id. Supports effort to integrate Freewheel Lambda functionality into DAL.
- DEVOPS-2714 Added helm charts.

# 0.0.6

- ARCH-210 Logging integration through inf-lib-dal.
- ARCH-175 Auto load services in `server.js` and auto load services in `nodejs-client`.

# 0.0.5

- ARCH-264 Health Checks.
- ARCH-211 Integration for vod/channel sequencers for stitcher sequence lambdas.

# 0.0.4

- ARCH-40 Integration for placeholder.

# 0.0.3

- ARCH-39 Integration with ACS.

# 0.0.1

- ARCH-34 Implement stub implementation of DAL library.
