pdevito3/craftsman
A .NET scaffolding tool to help you stop worrying about boilerplate and focus on your business logic 🚀
30 Releases
Latest: 1y ago
v0.28.3Latest
📋 What's Changed
- Extra bool parameter present in template (GetById) by @BuzukBzh in https://github.com/pdevito3/craftsman/pull/149
✨ New Contributors
- @BuzukBzh made their first contribution in https://github.com/pdevito3/craftsman/pull/149
- Full Changelog: https://github.com/pdevito3/craftsman/compare/v0.28.2...v0.28.3
v0.28.2
🐛 Fixed
- hard coded config
v0.28.1
🐛 Fixed
- getbyid usage
v0.28.0
📦 Updated
- Update keycloak image to quay
- Update auth examples for new keycloak handling
- Upgrade pulumi and keycloak setup
- Full Changelog: https://github.com/pdevito3/craftsman/compare/v0.27.2...v0.28.0
v0.27.2
🐛 Fixed
- jaeger options pointer
v0.27.1
🐛 Fixed
- Permission tests skipped for queries
v0.27.0
📦 Updated
- New extension methods on dbcontext for direct `GetById` options
- Queries use DbContext directly with new ext methods
- Consolidated options pattern object and cleaned it up
- Remove functional tests scaffolding (other than health)
- Tweak producer example
- No more repository/uow abstraction
- No more unit tests for user policy handler
- No more default permission. Must be explicitly provided
🐛 Fixed
- Timespan recognition
- Hangfire config typo
- Lower/upper invariance resolution #137
v0.26.4
🐛 Fixed
- Fix db context ctor in repos
- can run a `new domain` with no entities (#135)
v0.26.3
📦 Updated
- Use newer header append method on paginated list endpoint
🐛 Fixed
- Indentation for smart enumvalue objects
v0.26.2
🐛 Fixed
- Fix typo on smart enum error
- Can recognize `datetimeoffset` property type
- Versioning in functional tests
- Full Changelog: https://github.com/pdevito3/craftsman/compare/v0.26.1...v0.26.2
v0.26.1
📦 Updated
- Remove unused swagger props
🐛 Fixed
- Route builder includes version
- Full Changelog: https://github.com/pdevito3/craftsman/compare/v0.26.0...v0.26.1
v0.26.0
📦 Updated
- Refactor to primary ctors
- Removed deprecated (and partial) api versioning in favor of new versioning
- Added versioning to controller routes
- Updated versioning service
- Updated swagger to support versioning
- Full Changelog: https://github.com/pdevito3/craftsman/compare/v0.25.1...v0.26.0
v0.25.1
📦 Updated
- Better exception for smart enum errors
- Sponsorship request
- Bump naming conventions
- Group Otel in dependabot
v0.25.0
✨ Additions and Updates
- Scaffolded projects use .NET 8
- Bump Nuget packages
- Bespoke `DateTimeProvider` removed in favor of the new built in `TimeProvider`
- `BaseEntity` audit times use `DateTimeOffset`
- Model classes use `record` type
- Remove `DateOnlyConverter` for `SqlServer` since it's built into .NET 8
- Moved `PagedList` to `Resources` directory
- Underlying craftsman code uses .NET 8
- + 3 more
🐛 Fixed
- Dependabot indent
- Github test actions
v0.24.1
🐛 Fixed
- Swagger config can handle nested DTO classes: `config.CustomSchemaIds(type => type.ToString().Replace("+, "."));`
- Don't ignore default hangfire queue
- Smart value object scaffolding doesn't use old enum logic for entity or fakes
- Full Changelog: https://github.com/pdevito3/craftsman/compare/v0.24.0...v0.24.1
v0.24.0
✨ Added
- New `IsLogMasked` option for masking entity properties in logs
- Dependabot scaffolding. Can be excluded with `IncludeDependabot = false` at the domain template level
- Github test action scaffolding. Can be excluded with `IncludeGithubTestActions = false` at the api template level
- Support for `string[]` when using Postgres
- `ValueObject` property scaffolding
- > ⚠️ note there's a new new marker in db config:
- ```
- public sealed class RecipeConfiguration : IEntityTypeConfiguration<Recipe>
- + 7 more
📦 Updated
- Logging was refactored to use app settings
- Add missing HttpClientInstrumentation on OTel
- `SortOrder` and `Filters` are nullable on list dto param
- Remove old and unused fluent assertion options
- Entity plural is more powerful with `Humanizer`
🐛 Fixed
- Email setter
v0.23.2
🐛 Fix
- Hangfire CompatibilityLevel updated to latest
v0.23.1
🐛 Fixed
- Entity usings for data annotations (#126)
- get all is plural (#127)
v0.23.0
✨ Additions and Updates
- New `GetAll` and `Job` features
- Hangfire integration (details on adding to existing projects below)
- Moq -> NSubsititute
- Bump base page size limit to 500
- Added global usings to the test projects
- Entity variables in tests don't start with `fake` anymore
- Moved `BasePaginationParameters` and `Exceptions` and `ValueObject` to api project (#124)
- Package bumps and cleanup with the exception of pulumi
- + 2 more
🐛 Fixed
- Can handle no global git config (#122, #72)
- Can use `.` in project name (#111)
✨ Adding Hangfire To an Existing Project
- Install
- ```
- <PackageReference Include="Hangfire" Version="1.8.5" />
- <PackageReference Include="Hangfire.MemoryStorage" Version="1.8.0" />
- ```
- Add this to your Infra Registration
- ```csharp
- services.SetupHangfire(env);
- + 240 more
v0.22.1
🐛 Fixed
- Can respect audience prop. fixes #119
v0.22.0
📋 What's Changed
- Revamped Relationships to a new model
- Integration and Functional tests use the latest versions and implementations of `testcontainers`
- Removed `Sieve` in favor of `QueryKit`
- Removed `CanFilter` and `CanSort` properties. These can still be set in your code, but will no longer pollute your entities.
- Use top level routing for health checks and controllers
- Update OTel to latest with newer syntax
- Remove other base specification things from generic repo
- Commands/Queries use records for input
- + 2 more
🐛 Fixed
- Sql server setups can handle dateonly
- Duplicate usings
- Remove bad serilog enricher and update logger for env name
- `MigrationHostedService` will not conflict with dbcontext when adding entities
- fix: get endpoint when name == plural
- Bugfix, Change AddProducerCommand to AddMessageCommand by @Ken1Nil in https://github.com/pdevito3/craftsman/pull/118
✨ New Contributors
- @Ken1Nil made their first contribution in https://github.com/pdevito3/craftsman/pull/118
- Full Changelog: https://github.com/pdevito3/craftsman/compare/v0.21.1...v0.22.0
v0.21.1
🐛 Fixed
- Remove lingering mapper from empty feature
- Fix connection string prop in dev app settings
- Fix using statement for interop
v0.21.0
✨ Added
- New `bool` option of `UseCustomErrorHandler` on `ApiTemplate` that defaults to a new error handler using `Hellang.ProblemDetails`. If you don't want a dependency, you can use the existing custom one, but the hellang one is richer and I didn't want to reinvent the wheel
📦 Updated
- Major MediatR update to 12.x
- Features returning bool will now have no return value
- Mapster -> Mapperly
- Missing test projects won't cause failure
🐛 Fixed
- Can better handle unneccessary `I` on messages
- Mapper scaffolding
v0.20.0
✨ Added
- Specification support in repositories
- Support for array property types
📦 Updates
- No more manipulation DTO
- No default new guid on DTO
- Tests use builder methods
- No more autofaker for domain entity, only a builder
- Entity properties not virtualized anymore
- `IProjectService` renamed to `IProjectScopedService`
v0.19.4
📦 Updates
- Removed extra db call on `Add` feature
v0.19.3
🐛 Fixed
- Fix bracket on DTOs
v0.19.2
🐛 Fixed
- DTO indentations
v0.19.1
📦 Updates
- Removed custom dateonly and timeonly json converters in facor of built in .net 7 options
v0.19.0
📦 Updates
- Craftsman uses .NET 7
- Scaffolding uses .NET 7
- Test projects updated to use XUnit
- Integration tests have better service collection scoping and now have a service collection per test. This makes service mocking possible without clashing with other tests
- RMQ container setup for integration and functional tests
- Use `IConfiguration` instead of custom `EnvironmentService`
- Move parameters from `launchsetting` to `appsettings`
- `UserPolicyHandler` refactor
- + 4 more
🗑️ Removed
- No more event handler test scaffolding
v0.18.0
✨ Added
- New `MigrationHostedService` to automatically apply migrations when starting your project
- New `EnvironmentService` for easy access to environment variables
📦 Updates
- Removed `Validators` and in favor of direct validation in entiy factories and methods.
- Additional helper methods on `ValidationException`
- Additional OTel config
- Cleaner functional test helpers
- Bump HeimGuard
- Update `UserPolicyHandler` to include a `HasPermission()` implementation
- Json attribute refactor
- Simplify swagger comments
🐛 Fixes
- RMQ Password var
- Email guards for whitespace
- Minor spacing items
