3 packages tagged with “auto-increment”
Reliable unique ID generation and management for distributed applications. Auto-increment IDs reveal sensitive information. UUIDs (also known as GUIDs) are inefficient as primary keys in a database. Having two different IDs is cumbersome and counterintuitive. We can do better. - For a 93-bit UUID replacement that is efficient as a primary key, use the DistributedId. - For a 128-bit 128-bit UUID replacement with the advantages of the DistributedId and practically no rate limits or collisions, at the cost of more space, use the DistributedId128. - To expose IDs externally in a sensitive environment where zero metadata must be leaked, transform them with PublicIdentities. https://github.com/TheArchitectDev/Architect.Identities Release notes: 2.1.1: - Enhancement: Upgraded package versions. 2.1.0: - Semi-breaking: IPublicIdentityConverter now features additional methods, although the type is generally not user-implemented. - Semi-breaking: HexadecimalIdEncoder's char-based parameters have been renamed from "bytes" to "chars". - Added DistributedId128, a 128-bit (Guid/UInt128) DistributedId variant with practically no rate limits or collisions that also doubles as a version-7 UUID. - Added encoding methods for UInt128. - Added extension methods to transcode between UInt128 and Guid. - Added public identity conversions for UInt128 and Guid. - DistributedIdGeneratorScope and DistributedId128GeneratorScope now expose the CurrentGenerator property, which helps when implementing generators that need to piggyback on the encapsulated generator. 2.0.0: - BREAKING: Removed Fluid. Ambient scopes with startup configuration are now considered undesirable. - BREAKING: Removed ApplicationInstanceId. Ambient scopes with startup configuration are now considered undesirable. - BREAKING: Removed ambient access to IPublicIdentityConverter. Ambient scopes with startup configuration are now considered undesirable. - BREAKING: IdEncoder has been reworked into BinaryIdEncoder, AphanumericIdEncoder, and HexadecimalIdEncoder. - BREAKING: ID decoding methods now throw if the input is too long. This is specially relevant for strings (such as query parameters) where 0123456789123456 and 0123456789123456aaaa should not produce the same ID. - BREAKING: IPublicIdentityConverter now throws on big-endian architectures, instead of risking silent portability issues between architectures. - BREAKING: Now using AmbientContexts 2.0.0. - Semi-breaking: DistributedIds are now always 28 digits, to avoid a change from 27 to 28 digits in the future. Newly generated IDs will be significantly greater than before. Avoid downgrading after upgrading. - DistributedIds can now burst-generate ~128,000 IDs at once before the ~128 IDs per millisecond throttling kicks in. This makes throttling much less likely to be encountered. - DistributedId now stays incremental even under clock adjustments of up to 1 second. (Note that the UTC clock remains unaffected by DST.) - Hexadecimal ID encodings are now supported. - IPublicIdentityConverter now comes with a TestPublicIdentityConverter implementation for unit tests. - Added UnsupportedOSPlatform("browser") to PublicIdentities, due to continuing lack of AES support. 1.0.2: - Now using AmbientContexts 1.1.1, which fixes extremely rare bugs and improves performance. 1.0.1: - Now using AmbientContexts 1.1.0, for a performance improvement.
Entity Framework extensions for the Architect.Identities package. https://github.com/TheArchitectDev/Architect.Identities Release notes: 2.1.1: - Enhancement: Upgraded package versions. 2.1.0: - The ConfigureDecimalIdTypes() extension method now truncates needless trailing zeros received from the database provider (`123.0` => `123`), as is the case with SQLite. 2.0.0: - BREAKING: Now targeting .NET 6+, to support new EF Core APIs. - BREAKING: Now using EF Core 7.0.0. - BREAKING: No longer referencing the Identities package. (The current package is still considered an addition to it, but the hard link is gone.) - BREAKING: Removed ApplicationInstanceIds. (See Identities 2.0.0.) - BREAKING: Decimal IDs in SQLite may get reconstituted with a one (inadvertent) decimal place, e.g. "1234567890123456789012345678" => "1234567890123456789012345678.0". Detecting and fixing for SQLite is a hassle. - BREAKING: DecimalIdMappingExtensions's methods have been replaced by modelConfigurationBuilder.ConfigureDecimalIdTypes(). This should be called from DbContext.ConfigureConventions(). - The new extension method handles decimal-convertible types (i.e. value objects) in addition to plain decimals. - The new extension method also sets DefaultTypeMapping, to achieve appropriate behavior when EF writes things like CAST(). Property mappings alone do not cover such scenarios. 1.0.2: - Fixed an incompatibility with EF Core 6.0.0+ (caused by a breaking change in EF itself). - Now using AmbientContexts 1.1.1, which fixes extremely rare bugs and improves performance. 1.0.1: - Now using AmbientContexts 1.1.0, for a performance improvement.
Release notes: 1.0.2: - Now using AmbientContexts 1.1.1, which fixes extremely rare bugs and improves performance. 1.0.1: - Now using AmbientContexts 1.1.0, for a performance improvement. Description: Azure-based implementations for the Architect.Identities package. This package allows Azure blob storage to be used as the synchronization mechanism for assigning unique IDs to each application instance. services.AddIdGenerator(generator => generator.UseAzureBlobStorageContainer(new BlobContainerClient("ConnectionString", "ContainerName")));