Release History
Releases and changes.
Mobiz Backend v5.1.1
- Send all the .NET Logs to the Mobiz Logger
- Removed dependency to Hangfire.Pro
Mobiz Backend v5.1.0
Enhanced the MigrationRunner to apply migrations found in extensions in their own schema. Migrations can be using FluentMigrator or EntityFramework.
Mobiz Backend v5.0.1
Fixed recursion error from MobizElasticClient Added Grafana docker image with the default logger dashboard New endpoint (PATCH /user/{guid}) for patching user
Mobiz Backend v5.0.0
Upgraded to .NET Core v6.0
Mobiz Backend v4.4.2
- Renamed the
GroupMembership
table toOrganizationGroupMembership
& referenceMembershipId
instead ofUserId
- Created the
InviteGroupMembership
table for mappings between GroupId and InviteId
Mobiz Backend v4.4.1
Fixed the UserCreate action from the Migration Runner.
Mobiz Backend v4.2.0
Introduces the concept of ActivityFeed as described here https://gitlab.com/mobiz1/documentation/-/blob/activity-feed-documentation/mobiz-platform/ActivityFeed/ActivityFeedInGeneral.md.
Mobiz Backend v4.1.4
Invite and invite confirmation templates updated for a better user experience.
Mobiz Backend v4.1.3
Mobiz Invite template updated to only support english templates.
Mobiz Backend v4.1.0
DTO’s
Introduces UserProfile
for patching a user based Profile
public class Profile
{
/// <summary>
/// Type of profile
/// * Organization
/// * User
/// </summary>
public ProfileType Type { get; set; }
/// <summary>
/// Public display name of the user
/// </summary>
public string DisplayName { get; set; }
/// <summary>
/// Profile picture (base64 encoded)
/// </summary>
public string ProfilePicture { get; set; }
/// <summary>
/// Name of the organization pertaining to the specific user
/// </summary>
public string OrganizationMembership { get; set; }
/// <summary>
/// Official title of the user within the organization
/// </summary>
public string OrganizationMembershipTitle { get; set; }
/// <summary>
/// Public phone number of profile.
/// </summary>
public string PhoneNumber { get; set; }
}
Introduces UserProfile
DTO for creating user public profiles
public class UserProfile
{
/// <summary>
/// Name that the User has choosen to use.
/// </summary>
public string DisplayName { get; set; }
/// <summary>
/// Profile picture that the User has choosen to use.
/// </summary>
public IFormFile ProfilePicture { get; set; }
/// <summary>
/// Optional title that the User has choosen to use within a Organization.
/// </summary>
public string OrganizationMembershipTitle { get; set; }
/// <summary>
/// Public phone number to include in profile.
/// </summary>
public string PhoneNumber { get; set; }
}
Introduces OrganizationProfile
DTO for creating organization public profiles
public class OrganizationProfile
{
/// <summary>
/// Name that the Organization has choosen to use.
/// </summary>
public string DisplayName { get; set; }
/// <summary>
/// Profile picture that the Organization has choosen to use.
/// </summary>
public IFormFile ProfilePicture { get; set; }
}
Endpoints
Introduces endpoints for getting / patching public profiles.
- GET
api/v1/user/profile/{userId:guid}?organizationId={guid}
- Returns an public profile for a user and optional scoped to a organiation membership.
- GET
api/v1/organization/profile/{organizationId:guid}
- Returns an public profile for a organization.
- PATCH
api/v1/user/profile/{userId:guid}
- Patches a user profile using
UserProfile
as form data.
- Patches a user profile using
- PATCH
api/v1/user/organization/{organizationId:guid}
- Patches a user profile using
OrganizationProfile
as form data.
- Patches a user profile using
Testing
Introduces the Mobiz.Test.Scenario
project.
Removes TestRunner, use GitLab services for testing.
Mobiz Backend v3.4.0
- Made Mock services transient
- Introduces
IGlobalMockDataAccessor
allowing for accessing data created by mock services.- Register in your custom fixture with
this.mobizServices.RegisterExtensionService<IGlobalMockDataAccessor, GlobalMockDataAccessor>(MobizExtensionManager.SystemServiceKey);
MobizMockedTestFixture
andMobizGlobalTestFixture
already do so, meaning that if you inherit either fixture and register an mock service generated from the service can be accessed there.
- Introduces extension method to retrieve accessor on all fixtures inheriting
MobizBaseTestFixture
example:this.fixture.GetGlobalMockDataAccessor()
- Register in your custom fixture with
- Adds support for
SqlServerTracker
to remember its state between iterations whenkeepAlive
is false.- This is done by setting
SqlServerTrackerStoreSequenceNumber
to true
- This is done by setting
- Fixes data integrity for deletions and inserts
- Instead of splitting the SQL rows by Deletion/Insert we are now creating buckets
- Example: Instead of
[Insert, Insert, Delete, Insert}
becomming[[Insert, Insert, Insert], [Delete]]
it becomes[[Insert, Insert], [Delete], [Insert]]
- Example: Instead of
- Instead of splitting the SQL rows by Deletion/Insert we are now creating buckets
- Introduces
NotFoundExceptionHandler
andNotFoundException
for 404 error
Mobiz Backend v3.3.2
- Fixes bug where
validateDefaultEmail
wasn’t respected inMockUserRepository.Update
- Introduce
Body(MultipartFormDataContent content)
builder functions for sending IFormData inMobizTestServer
- Adds TraceIdentifier and TrackingId as tags in Sentry
- Fixes LogLevel on ValidationExceptions when intercepted by GlobalExceptionFilter
Mobiz Backend v3.3.1
- Configure the HttpContextAccessor from the WebApiConfig.ConfigureWebApiServices method so that we obtain it via DI
- Configure the HttpContextAccessor when setting up tests
Mobiz Backend v3.3.0
- XSS filter: Ignore body argument if key = “password”
- XSS filter: Configuration option for excluding body arguments from XSS filtering by name. Configuration property: “XssPreventionFilterArgumentExcludes” contains a CSV list of excluded argument names.
- XSS filter: Configuration option for excluding URLs from XSS filtering by pattern. Configuration property: “XssPreventionFilterUrlExcludes” contains a CSV list of URL patterns to exclude.
- DOCUMENTATION: Logging Feature Handbook v1 COMPLETED.
- Logging API: Extension methods to simplify logging in terms of context information, HttpContext, Client information, etc.
- General, simplified logging methods.
- Add information from HttpContext: ClientId, ClientVersion, Browser, Os, etc.
- Add details for authentication if available, like impersonation info and similar details.
- Logging JSON: Improved JSON structure for Console logger to better match DataDog expected fields:
- Add logger.name field
- Add logger.thread_name field
- Add error.stack field
- Add error.kind field
- Logging Sentry: Fixed how arguments are forwarded to Sentry. key/value arguments where sent as tags into Sentry API resulting in broken user experience when researching and analyzing. Now these are sent as extra arguments.