Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
79 commits
Select commit Hold shift + click to select a range
8c10904
Add validation functionality (#327)
gumbarros Jun 8, 2026
0c4d33b
Update masterdata rc version
gumbarros Jun 8, 2026
bb0ed3f
Merge remote-tracking branch 'origin/rc' into rc
gumbarros Jun 8, 2026
eb8678b
Remove .NET Framework and .NET Standard support 🔥
gumbarros Jun 8, 2026
41414d5
Merge remote-tracking branch 'origin/rc' into rc
gumbarros Jun 8, 2026
878e26b
Fix FormElementTest.cs
gumbarros Jun 8, 2026
21b5371
Version control as preview1
gumbarros Jun 8, 2026
c5b5284
Remove IHttpContext.cs abstraction and use IHttpContextAccessor
gumbarros Jun 8, 2026
7c98766
Fix JJMasterData.slnx
gumbarros Jun 8, 2026
d1a945e
Fix nullable ASP.NET Core HttpContext
gumbarros Jun 8, 2026
320f6b4
Fix delete validation and use correct getvalue
gumbarros Jun 8, 2026
3b8c0bf
Fix preview number
gumbarros Jun 9, 2026
c93968b
Merge branch 'main' into rc
gumbarros Jun 9, 2026
d8ad049
Use modern .NET hashing methods and remove useless cache
gumbarros Jun 9, 2026
f8f01d6
Merge branch 'main' into rc
gumbarros Jun 15, 2026
939f173
Merge main into rc
gumbarros Jun 15, 2026
8bb0fc0
Files refactor (#330)
gumbarros Jun 15, 2026
da907df
Remove session requirement and use cookies
gumbarros Jun 16, 2026
d3a54e7
bugfix: UploadArea not working on GET requests
gumbarros Jun 16, 2026
ba7c583
Remove userid from cookie
gumbarros Jun 16, 2026
6b69cb1
Merge branch 'main' into rc
gumbarros Jun 16, 2026
b91823b
Refactor HtmlTemplateRenderer and functions, add getFileUrl function
gumbarros Jun 17, 2026
9b40f49
Fix PageRenderService.cs
gumbarros Jun 17, 2026
c725497
Update preview number
gumbarros Jun 17, 2026
b0c3e96
Incremental nullable migration
gumbarros Jun 17, 2026
63c4b16
Merge branch 'main' into rc
gumbarros Jun 18, 2026
62e3d17
Merge branch 'main' into rc
gumbarros Jun 19, 2026
13b2129
Refactors
gumbarros Jun 21, 2026
f883a0b
Merge branch 'main' into rc
gumbarros Jun 22, 2026
bd77421
Merge with main
gumbarros Jun 22, 2026
fe289b1
Add i18n to validation rules. This closes #857
gumbarros Jun 22, 2026
c0de547
Update NCalc version
gumbarros Jun 23, 2026
5942873
Update NCalc
gumbarros Jun 24, 2026
117e5c4
Merge branch 'main' into rc
gumbarros Jun 24, 2026
7b3de40
Merge with main
gumbarros Jun 24, 2026
37ae220
Merge branch 'main' into rc
gumbarros Jun 25, 2026
279f88f
Merge with main
gumbarros Jun 25, 2026
c7f58a2
Merge branch 'main' into rc
gumbarros Jul 1, 2026
50f334e
Added support to variables at modal title. This closes #855
gumbarros Jul 1, 2026
647b5ae
Fix DataItemValue.cs nullability. This closes #862
gumbarros Jul 1, 2026
0e40f57
Fix tests warnings
gumbarros Jul 1, 2026
9e69554
Merge branch 'main' into rc
gumbarros Jul 1, 2026
98d15d1
Merge branch 'main' into rc
gumbarros Jul 1, 2026
465f220
Update NCalc
gumbarros Jul 1, 2026
a41e920
Merge branch 'main' into rc
gumbarros Jul 2, 2026
a3c11d7
Merge branch 'main' into rc
gumbarros Jul 2, 2026
1d74d32
Fix GridFilter without session.
gumbarros Jul 6, 2026
72b4d8f
Fix UrlRedirectService.cs StringLocalizer
gumbarros Jul 6, 2026
91d7945
Update preview number to 10
gumbarros Jul 6, 2026
ba8aeaa
Remove hardcoded Microsoft.Bcl.AsyncInterfaces and update third party…
gumbarros Jul 6, 2026
736ae57
Add markdown to MimeTypeUtil.cs
gumbarros Jul 7, 2026
f188c2e
Merge branch 'main' into rc
gumbarros Jul 7, 2026
0a7d2e5
Fix JJComboBoxTests.cs
gumbarros Jul 7, 2026
06701de
Refactor to use correct name (httpContextAccessor)
gumbarros Jul 8, 2026
a3685a3
Add WithFileStorage at MasterDataServiceBuilder.cs
gumbarros Jul 13, 2026
c73fc8a
Fix overload name
gumbarros Jul 13, 2026
525cd67
Added Infinity.Client.MasterData
gumbarros Jul 13, 2026
8b02b51
Remove bootstrapselect picker and bootstrap-tags-input and use tom-se…
gumbarros Jul 14, 2026
1d9c602
Update docs layout
gumbarros Jul 14, 2026
45b38a0
Use AesGcm for database encryption and Microsoft.DataProtection for e…
gumbarros Jul 15, 2026
e6d5bc7
Use https://github.com/gumbarros/EmbeddedSass.Net instead of AspNetCo…
gumbarros Jul 16, 2026
8a7b3e1
Fix select validation scss
gumbarros Jul 16, 2026
caf60db
Add MasterData.Abstractions
gumbarros Jul 16, 2026
ee1267f
refactoring JJConsulting.MasterData.Abstractions to JConsulting.Maste…
LucioPelinson Jul 17, 2026
ae8b98d
Update file client and docs
gumbarros Jul 17, 2026
44399ef
Update CI and metadata for storage abstractions
gumbarros Jul 17, 2026
60a7a1f
Update preview number
gumbarros Jul 17, 2026
820a2ef
bugfix clear filter. this closes #866
gumbarros Jul 17, 2026
be48d6e
Merge branch 'refs/heads/main' into rc
gumbarros Jul 20, 2026
9bac787
Remove --phoenix hardcoded and use --bs instead. This fix CSS errors …
gumbarros Jul 20, 2026
2ace4d4
Fix elementNameToSelect and modal title nullable. This closes #867
gumbarros Jul 20, 2026
5eacce8
Fix cookies to work with subsites. This closes #868
gumbarros Jul 20, 2026
bb4e380
Update preview number 16
gumbarros Jul 20, 2026
d4a02ea
Small code quality refactors
gumbarros Jul 20, 2026
efc3610
Add hmac support to UrlRedirectAction.cs
gumbarros Jul 20, 2026
0034585
Improve _UrlRedirectAction.cshtml UI
gumbarros Jul 20, 2026
e57e4f1
Update EmbeddedSass to v1.1.0 to fix razor class library error.
gumbarros Jul 20, 2026
ae97b7e
Remove redundant workaround
gumbarros Jul 20, 2026
7e97e82
Use rc instead of preview
gumbarros Jul 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
10 changes: 6 additions & 4 deletions .github/workflows/nuget.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ jobs:
strategy:
matrix:
project:
- src/MasterData.Storage.Abstractions
- src/MasterData.Commons
- src/MasterData.Core
- src/MasterData.Web
Expand All @@ -42,13 +43,14 @@ jobs:
run: |
npm install --prefix src/MasterData.Web
cd ${{ matrix.project }}
BASE_VERSION=$(dotnet msbuild -nologo -getProperty:Version | tail -n 1 | tr -d '\r')
BASE_VERSION=$(dotnet msbuild -nologo -getProperty:VersionPrefix | tail -n 1 | tr -d '\r')
PREVIEW_SUFFIX=$(dotnet msbuild -nologo -getProperty:PreviewVersionSuffix | tail -n 1 | tr -d '\r')
if [ "${GITHUB_REF_NAME}" = "rc" ]; then
PACKAGE_VERSION="${BASE_VERSION}-preview"
PACKAGE_VERSION="${BASE_VERSION}-${PREVIEW_SUFFIX}"
else
PACKAGE_VERSION="${BASE_VERSION}"
fi
dotnet build -c release -p:PackageVersion="${PACKAGE_VERSION}"
dotnet pack -c release --no-build --output="nuget" -p:PackageVersion="${PACKAGE_VERSION}"
dotnet build -c release -p:Version="${PACKAGE_VERSION}" -p:PackageVersion="${PACKAGE_VERSION}" -p:InformationalVersion="${PACKAGE_VERSION}"
dotnet pack -c release --no-build --output="nuget" -p:Version="${PACKAGE_VERSION}" -p:PackageVersion="${PACKAGE_VERSION}" -p:InformationalVersion="${PACKAGE_VERSION}"
cd nuget
dotnet nuget push "*.nupkg" --api-key ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json --skip-duplicate
11 changes: 8 additions & 3 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,15 @@
<PackageProjectUrl>https://www.github.com/JJConsulting/JJMasterData</PackageProjectUrl>
<RepositoryUrl>https://www.github.com/JJConsulting/JJMasterData</RepositoryUrl>
<PackageIcon>JJMasterData.png</PackageIcon>
<Version>4.5.37</Version>
<VersionPrefix>5.0.0</VersionPrefix>
<PreviewNumber>1</PreviewNumber>
<PreviewVersionSuffix>rc.$(PreviewNumber)</PreviewVersionSuffix>
<Version>$(VersionPrefix)</Version>
<Version Condition="'$(VersionSuffix)' != ''">$(VersionPrefix)-$(VersionSuffix)</Version>
<PackageVersion>$(Version)</PackageVersion>
<AssemblyVersion>$(Version)</AssemblyVersion>
<FileVersion>$(Version)</FileVersion>
<AssemblyVersion>$(VersionPrefix)</AssemblyVersion>
<FileVersion>$(VersionPrefix)</FileVersion>
<InformationalVersion>$(Version)</InformationalVersion>
<PackageReadmeFile>README.NuGet.md</PackageReadmeFile>
<IncludeSymbols>true</IncludeSymbols>
<EnableNETAnalyzers>true</EnableNETAnalyzers>
Expand Down
45 changes: 23 additions & 22 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -3,46 +3,47 @@
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
</PropertyGroup>
<ItemGroup>
<PackageVersion Include="AspNetCore.SassCompiler" Version="1.77.4" />
<PackageVersion Include="EmbeddedSass.Net.MsBuild" Version="1.1.0" />
<PackageVersion Include="Fluid.Core" Version="2.31.0" />
<PackageVersion Include="Hangfire.Console" Version="1.4.3" />
<PackageVersion Include="Hangfire.Core" Version="1.8.23" />
<PackageVersion Include="IronPython" Version="3.4.2" />
<PackageVersion Include="IronPython.StdLib" Version="3.4.2" />
<PackageVersion Include="Jint" Version="4.11.0" />
<PackageVersion Include="JJConsulting.Html.Bootstrap" Version="1.0.21" />
<PackageVersion Include="JJConsulting.Html.Bootstrap.TagHelpers" Version="1.0.21" />
<PackageVersion Include="JetBrains.Annotations" Version="2025.2.4" />
<PackageVersion Include="JetBrains.Annotations" Version="2026.2.0" />
<PackageVersion Include="Microsoft.AspNet.Mvc" Version="5.3.0" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="10.0.7" />
<PackageVersion Include="Microsoft.AspNetCore.OpenApi" Version="10.0.7" />
<PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="10.0.7" />
<PackageVersion Include="Microsoft.AspNetCore.DataProtection" Version="10.0.9" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="10.0.9" />
<PackageVersion Include="Microsoft.AspNetCore.OpenApi" Version="10.0.9" />
<PackageVersion Include="Microsoft.CSharp" Version="4.7.0" />
<PackageVersion Include="Microsoft.Data.SqlClient" Version="7.0.1" />
<PackageVersion Include="Microsoft.Extensions.Caching.Abstractions" Version="10.0.7" />
<PackageVersion Include="Microsoft.Extensions.Configuration.Abstractions" Version="10.0.7" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.7" />
<PackageVersion Include="Microsoft.Extensions.Localization.Abstractions" Version="10.0.7" />
<PackageVersion Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="10.0.7" />
<PackageVersion Include="Microsoft.Playwright.Xunit.v3" Version="1.60.0" />
<PackageVersion Include="Microsoft.Data.SqlClient" Version="7.0.2" />
<PackageVersion Include="Microsoft.Extensions.Caching.Abstractions" Version="10.0.9" />
<PackageVersion Include="Microsoft.Extensions.Configuration.Abstractions" Version="10.0.9" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.9" />
<PackageVersion Include="Microsoft.Extensions.Localization.Abstractions" Version="10.0.9" />
<PackageVersion Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="10.0.9" />
<PackageVersion Include="Microsoft.Playwright.Xunit.v3" Version="1.61.0" />
<PackageVersion Include="Microsoft.TypeScript.MSBuild" Version="5.8.3" />
<PackageVersion Include="MongoDB.Driver" Version="3.5.2" />
<PackageVersion Include="Moq" Version="4.20.72" />
<PackageVersion Include="NCalc.DependencyInjection" Version="6.3.2" />
<PackageVersion Include="NCalc.MemoryCache" Version="6.3.2" />
<PackageVersion Include="NCalc.DependencyInjection" Version="6.4.0" />
<PackageVersion Include="NCalc.MemoryCache" Version="6.4.0" />
<PackageVersion Include="Newtonsoft.Json" Version="13.0.3" />
<PackageVersion Include="PolySharp" Version="1.14.1" />
<PackageVersion Include="Spectre.Console" Version="0.55.2" />
<PackageVersion Include="Spectre.Console" Version="0.57.2" />
<PackageVersion Include="Spectre.Console.Cli" Version="0.55.0" />
<PackageVersion Include="System.Collections.Immutable" Version="10.0.7" />
<PackageVersion Include="System.Configuration.ConfigurationManager" Version="10.0.7" />
<PackageVersion Include="System.Drawing.Common" Version="10.0.7" />
<PackageVersion Include="System.Text.Json" Version="10.0.7" />
<PackageVersion Include="System.Threading.Channels" Version="10.0.7" />
<PackageVersion Include="System.Collections.Immutable" Version="10.0.9" />
<PackageVersion Include="System.Configuration.ConfigurationManager" Version="10.0.9" />
<PackageVersion Include="System.Drawing.Common" Version="10.0.9" />
<PackageVersion Include="System.Text.Json" Version="10.0.9" />
<PackageVersion Include="System.Threading.Channels" Version="10.0.9" />
<PackageVersion Include="Xunit.Extensions.Ordering" Version="1.4.5" />
<PackageVersion Include="Testcontainers.MsSql" Version="4.11.0" />
<PackageVersion Include="Testcontainers.MsSql" Version="4.13.0" />
<PackageVersion Include="itext7" Version="9.6.0" />
<PackageVersion Include="itext7.bouncy-castle-fips-adapter" Version="9.6.0" />
<PackageVersion Include="xunit.analyzers" Version="1.27.0" />
<PackageVersion Include="xunit.v3" Version="3.2.2" />
</ItemGroup>
</Project>
</Project>
1 change: 0 additions & 1 deletion JJMasterData.slnx
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
</Folder>
<Folder Name="/ConsoleApps/">
<Project Path="src\ConsoleApps\MasterData.CommandLine\MasterData.CommandLine.csproj" Type="Classic C#" />
<Project Path="src\ConsoleApps\MasterData.LegacyMetadataMigrator\MasterData.LegacyMetadataMigrator.csproj" Type="Classic C#" />
</Folder>
<Folder Name="/Docs/">
<Project Path="doc\MasterData.Docs\MasterData.Docs.csproj" Type="Classic C#" />
Expand Down
6 changes: 2 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,15 +50,14 @@ https://github.com/JJConsulting/JJMasterData/assets/28662273/9b874c9d-2a2f-4d3b-
```shell
dotnet add package JJMasterData.Web
```
3. Configure your `IConfiguration` source with a connection string at `JJMasterData:ConnectionString` and a secret key at `JJMasterData:SecretKey`
3. Configure your `IConfiguration` source with a connection string at `JJMasterData:ConnectionString`
```json
{
"JJMasterData": {
"DataDictionaryTableName": "MasterData",
"ConnectionString": "Server=localhost;Database=JJMasterData;Integrated Security=True;Trust Server Certificate=true",
"ReadProcedurePattern": "{tablename}Get",
"WriteProcedurePattern": "{tablename}Set",
"SecretKey": "ExampleSecretKey"
"WriteProcedurePattern": "{tablename}Set"
}
}
```
Expand All @@ -78,7 +77,6 @@ var app = builder.Build();

//Required middlewares
app.UseStaticFiles();
app.UseSession(); //Session is very important

app.MapDataDictionary();
app.MapMasterData();
Expand Down
2 changes: 1 addition & 1 deletion doc/MasterData.Docs/MasterData.Docs.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
<LangVersion>13</LangVersion>
<RootNamespace>JJMasterData.Documentation</RootNamespace>
<AssemblyName>JJMasterData.Documentation</AssemblyName>
Expand Down
3 changes: 1 addition & 2 deletions doc/MasterData.Docs/articles/configurations.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
There are three ways to configure an application:
<br><br>

**1)** Add your configuration keys in appsettings.json. On .NET Framework you will need to add `IConfiguration` via `Microsoft.Extensions.Configuration`
**1)** Add your configuration keys in appsettings.json.

> [!TIP]
> To autocomplete with JJMasterData keys in your text editor, put this URL in the JSON Schema of your IDE.
Expand Down Expand Up @@ -70,4 +70,3 @@ You can change any property from:
[Read more](localization.md) about localization.
<br>


Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
# Custom Rules
# Customizations

If you are looking for declarative validations configured directly in the Data Dictionary UI, see [Rules](rules.md).

There are three ways to customize MasterData

Expand Down Expand Up @@ -82,7 +84,6 @@ IF (MyCustomLogic, you can use your @Parameters)
```

> [!WARNING]
> It is not a best practice write business rules at database, recommended only for simple validations.
> It is not a best practice write business rules as exceptions at the database, please use [Rules](rules.md).

---

6 changes: 3 additions & 3 deletions doc/MasterData.Docs/articles/errors/connection_string.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
This is probably the first error you can find setting up JJMasterData. You can easily
solve it in different ways.

## ..NET 8+
## .NET 10
Add a default connection string to appsettings.json.
```json
{
Expand All @@ -14,8 +14,8 @@ Add a default connection string to appsettings.json.
}
```

## .NET Framework 4.8 and .NET Standard 2.0
Using any supported .NET version, you can set programmatically your connection string.
## Programmatic configuration
You can set your connection string programmatically.
```csharp
builder.Services.AddJJMasterDataCore(new MasterDataCoreOptionsConfiguration()
{
Expand Down
7 changes: 1 addition & 6 deletions doc/MasterData.Docs/articles/getting_started.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
# Getting Started

This tutorial assumes you will use .NET 8+, for .NET Framework 4.8 support,
check our [documentation](miscellaneous/netframework.md).
This tutorial assumes you will use .NET 10.

## 1. Install JJMasterData.Web from NuGet
![JJMasterData Nuget](../media/NuGet.png)
Expand All @@ -19,7 +18,6 @@ You can replace the appsettings.json url from [here]((https://raw.githubusercont
{
"AllowedHosts": "*",
"JJMasterData": {
"SecretKey": "My secret key for cryptography",
"ConnectionString": "data source=localhost,1433;initial catalog=JJMasterData;Integrated Security=True"
}
}
Expand All @@ -33,9 +31,6 @@ Add the following lines to your Program.cs
//This line will add JJMasterData required services.
builder.Services.AddJJMasterDataWeb();

//Required middleware for JJMasterData
app.UseSession();

//Add these lines before specifing default route:

// Admin routes to create CRUDs
Expand Down
10 changes: 5 additions & 5 deletions doc/MasterData.Docs/articles/miscellaneous/assemblies.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,21 +7,21 @@ JJMasterData dependency tree can be represented by the following diagram:
## Assemblies

### JJMasterData.Web
Target Frameworks: ..NET 8
Target Framework: .NET 10
</br>
Razor Class Library with web graphical interfaces to manipulate and render your metadata.

### JJMasterData.WebApi
Target Framework: ..NET 8
Target Framework: .NET 10
</br>
Restful API to consume your metadata at any front-end.

### JJMasterData.Core
Target Frameworks: ..NET 8, .NET Standard 2.0 and .NET Framework 4.8
Target Framework: .NET 10
</br>
Library to access your metadata from .NET and/or render it at HTML components.

### JJMasterData.Commons
Target: .NET Standard 2.0
Target Framework: .NET 10
</br>
Utilities to all assemblies, like database access, l10n, logging and utils.
Utilities to all assemblies, like database access, l10n, logging and utils.
13 changes: 0 additions & 13 deletions doc/MasterData.Docs/articles/miscellaneous/netframework.md

This file was deleted.

Loading
Loading