Skip to content
Draft

Beta #186

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions .cursor/rules/README.md

This file was deleted.

54 changes: 0 additions & 54 deletions .github/workflows/back-merge-pr.yml

This file was deleted.

20 changes: 20 additions & 0 deletions .github/workflows/check-branch.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: 'Check Branch'

on:
pull_request:

jobs:
check_branch:
runs-on: ubuntu-latest
steps:
- name: Comment PR
if: github.base_ref == 'master' && github.head_ref != 'staging'
uses: thollander/actions-comment-pull-request@v2
with:
message: |
We regret to inform you that you are currently not able to merge your changes into the master branch due to restrictions applied by our SRE team. To proceed with merging your changes, we kindly request that you create a pull request from the staging branch. Our team will then review the changes and work with you to ensure a successful merge into the master branch.
- name: Check branch
if: github.base_ref == 'master' && github.head_ref != 'staging'
run: |
echo "ERROR: We regret to inform you that you are currently not able to merge your changes into the master branch due to restrictions applied by our SRE team. To proceed with merging your changes, we kindly request that you create a pull request from the staging branch. Our team will then review the changes and work with you to ensure a successful merge into the master branch."
exit 1
86 changes: 0 additions & 86 deletions .github/workflows/check-version-bump.yml

This file was deleted.

2 changes: 1 addition & 1 deletion .github/workflows/sca-scan.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
- name: Setup .NET Core @ Latest
uses: actions/setup-dotnet@v1
with:
dotnet-version: "7.0.x"
dotnet-version: "10.0.x"

- name: Run Dotnet Restore
run: dotnet restore
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/unit-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4.2.2
- name: Setup .NET 7.0
- name: Setup .NET
uses: actions/setup-dotnet@v4.3.0
with:
dotnet-version: '7.0.x'
dotnet-version: '10.0.x'
- name: Restore dependencies
run: dotnet restore Contentstack.Net.sln
- name: Build solution
Expand Down
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -67,4 +67,6 @@ packages/
*.sln.docstates

# Python
Scripts/venv/
Scripts/venv/
# Cached region registry — regenerated at runtime from CDN
*/Assets/regions.json
49 changes: 0 additions & 49 deletions AGENTS.md

This file was deleted.

57 changes: 36 additions & 21 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,44 @@
### Version: 2.28.0
#### Date: Jun-24-2026
### Version: 3.0.0-beta.2
#### Date: Jun-22-2026

##### Fix:
- Register `EmbeddedObjectConverter` in `ContentstackClient` constructor so `.includeEmbeddedItems().Fetch<T>()` deserializes `_embedded_items` correctly when the model implements `IEntryEmbedable`. No changes required in consumer code.
- Upgraded utils dependency from `contentstack.utils 1.3.0` to `contentstack.utils 1.4.0` which ships the concrete `EmbeddedObject` class and `EmbeddedObjectConverter`.
##### Feat:
- Added `Endpoint` class for dynamic region-to-URL resolution via CDN-backed `regions.json`
- Added `ContentstackRegionMap` to map `ContentstackRegion` enum to registry region IDs
- Added `GCP_EU` region support

##### Enh:
- `Config.BaseUrl` now resolves hosts from the regions registry; removed hardcoded `regionCode()` and `HostURL`

##### Chore:
- Replaced `refresh-region.cs` with `refresh-region.py` — avoids MSBuild compiling the script as source
- Added `build/contentstack.csharp.targets` to auto-deliver `refresh-region.py` to consumer projects on first build
- Added `Assets/regions.json` to `.gitignore`
- Added `EndpointTest.cs`

### Version: 2.27.0
#### Date: Apr-23-2026
---

### Version: 3.0.0-beta.1
#### Date: May-04-2026

##### Breaking Changes:
- Removed `Newtonsoft.Json` dependency; all JSON serialisation now uses `System.Text.Json` (BCL)
- `AssetJsonConverter` and `EntryJsonConverter` now implement `System.Text.Json.Serialization.JsonConverter<T>`
- `ContentstackCollection<T>` no longer carries `[JsonObject]`; direct `JsonSerializer` usage on this type is not supported
- Updated `contentstack.utils` from `1.0.6` to `2.0.0-beta.1` (major version bump)

##### Feat:
- Timeline Preview Support
- Added `ReleaseId` and `PreviewTimestamp` properties to `LivePreviewConfig` for temporal content queries
- Enhanced `LivePreviewQueryAsync()` to support `preview_timestamp` and `release_id` parameters
- Implemented Timeline Preview API headers (`preview_timestamp`, `release_id`) in preview requests
- Added intelligent cache fingerprinting system to prevent stale timeline data
- New `IsCachedPreviewForCurrentQuery()` method for Timeline-aware cache validation
- Fork isolation now maintains independent Timeline contexts for concurrent operations
- Timeline Preview works seamlessly with complex nested content types and group fields
- Integration Test Coverage Enhancement
- Added comprehensive Timeline Preview integration test suites (70+ test cases)
- New test categories: `TimelinePreviewApiTests`, `TimelineAuthenticationTests`, `TimelineCacheValidationTests`
- Enhanced performance testing with Timeline-specific benchmarking
- Added authentication flow validation for Management Token vs Preview Token scenarios
- Comprehensive error handling tests for Timeline Preview edge cases
- Migrated all internal JSON handling to `System.Text.Json`
- Added `ApiErrorBodyParser` for consistent API error envelope parsing
- Added `JsonNodeConversion` and `JsonObjectMerge` utilities to replace Newtonsoft equivalents
- Added `ContentstackJsonDefaults` — shared `JsonSerializerOptions` used across all custom converters

##### Enh:
- Replaced `Console.WriteLine` with `Debug.WriteLine` in `ContentstackConvert` to suppress parse warnings from application stdout

##### Chore:
- Updated .NET version in SCA scan CI from `7.0.x` to `10.0.x`

---

### Version: 2.26.0
#### Date: Feb-10-2026
Expand Down
15 changes: 2 additions & 13 deletions Contentstack.Core.Tests/Contentstack.Core.Tests.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0">

<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>

<IsPackable>false</IsPackable>
<ReleaseVersion>$(Version)</ReleaseVersion>
Expand All @@ -27,20 +27,9 @@
<DotNetCliToolReference Include="dotnet-reportgenerator-cli" Version="4.2.10" />
<PackageReference Include="AutoFixture" Version="4.18.1" />
<PackageReference Include="AutoFixture.AutoMoq" Version="4.18.1" />

<PackageReference Include="Fare" Version="2.2.2" />

<PackageReference Include="System.Net.Http" Version="4.3.4" />
<PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" />
<PackageReference Include="Moq" Version="4.20.72" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.4" />
</ItemGroup>

<ItemGroup>
<Reference Include="Contentstack.Core">
<HintPath>..\Contentstack.Core\bin\Debug\Contentstack.Core.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Remove="SingletoneTest.cs" />
<Compile Remove="EmptyClass.cs" />
Expand Down Expand Up @@ -70,4 +59,4 @@
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>
</Project>
Loading
Loading