autobackend-hot - AutoBackend.SDK 0.1.11-hot-301

This package provides the boilerplate infrastructure to create simplified backend services by managing DataBase and API layers.

PM> Install-Package AutoBackend.SDK -Version 0.1.11-hot-301 -Source https://www.myget.org/F/autobackend-hot/api/v3/index.json

Copy to clipboard

> nuget.exe install AutoBackend.SDK -Version 0.1.11-hot-301 -Source https://www.myget.org/F/autobackend-hot/api/v3/index.json

Copy to clipboard

> dotnet add package AutoBackend.SDK --version 0.1.11-hot-301 --source https://www.myget.org/F/autobackend-hot/api/v3/index.json

Copy to clipboard
<PackageReference Include="AutoBackend.SDK" Version="0.1.11-hot-301" />
Copy to clipboard
source https://www.myget.org/F/autobackend-hot/api/v3/index.json

nuget AutoBackend.SDK  ~> 0.1.11-hot-301
Copy to clipboard

> choco install AutoBackend.SDK --version 0.1.11-hot-301 --source https://www.myget.org/F/autobackend-hot/api/v2

Copy to clipboard
Import-Module PowerShellGet
Register-PSRepository -Name "autobackend-hot" -SourceLocation "https://www.myget.org/F/autobackend-hot/api/v2"
Install-Module -Name "AutoBackend.SDK" -RequiredVersion "0.1.11-hot-301" -Repository "autobackend-hot" -AllowPreRelease
Copy to clipboard

AutoBackend

DEVELOPER BUILDS RELEASE BUILDS
MyGet MyGet NuGet

This package provides infrastructure templates to facilitate the creation of backend services. This is a personal project with no commercial backing and offers no guarantees regarding future development.

Features

Initialization

A sample usage scenario is available here.

Initialize AutoBackend from your Program.cs file

using AutoBackend.Sdk;

await new AutoBackendHost<Program>().RunAsync(args);

Define models to represent your domain relationships

Refer to the sample project models for examples.

public class Budget
{
    public Guid Id { get; set; }
    
    //..
}

public class Transaction
{
    public Guid Id { get; set; }
    
    //..
}

public class TransactionVersion
{
    //..
}

public class User
{
    public long Id { get; set; }
    
    //..
}

public class Participating
{
    public long UserId { get; set; }
    
    public Guid BudgetId { get; set; }
    
    //..
}

Feature Configuration

All features are detailed in the sections below.


Database

The following relational databases are currently supported (including in-memory):

  • SqlServer
  • Postgres

AutoBackend.SDK will generate tables and establish relationships for your configured entities.

Schema Modeling

There are typically three types of database tables:

  • Keyless,
  • Single-column primary key,
  • Multi-column primary key.

Depending on the number of primary key columns in your entity, follow the instructions below to enable AutoBackend.SDK to track changes.

Keyless Entities

Use the [GenericEntity] attribute to designate a model as a keyless entity.

[GenericEntity]
public class TransactionVersion
{
    //...
}

Single-PK Entities

Use the [GenericEntity(<primary key property name>)] attribute to designate a model as an entity with a single-column primary key.

[GenericEntity(
    nameof(Id)
)]
public class Budget
{
    public Guid Id { get; set; }

    // ...
}

Multi-PK Entities

Use the [GenericEntity(<primary key property names>)] attribute to designate a model as an entity with a composite primary key.

Currently, the maximum number of properties in a composite key is 8.

This limit should be sufficient for most use cases.

[GenericEntity(
    nameof(UserId),
    nameof(BudgetId)
)]
public class Participating
{
    public long UserId { get; set; }

    public Guid BudgetId { get; set; }
    
    // ...
}

Providers

To configure database connection management, set up the "Database" section in your configuration.

"Database": {
  "PrimaryProvider": "InMemory",
  "Providers": {
    "InMemory": "InMemory database name",
    "SqlServer": "SqlServer database connection string",
    "Postgres": "Postgres database connection string"
  }
}

The PrimaryProvider property accepts one of the following string values:

  • InMemory,
  • SqlServer,
  • Postgres.

The Providers property must contain an object with optional properties: InMemory, SqlServer, or Postgres. The property corresponding to the selected PrimaryProvider value is required.

Migrations

First, install Entity Framework Core Tools. You can create a new migration by executing one of the following commands from the project root directory:

  • For SqlServer: dotnet ef migrations add "<your migration name>" -o Migrations/SqlServer -c SqlServerGenericDbContext
  • For Postgres: dotnet ef migrations add "<your migration name>" -o Migrations/Postgres -c PostgresGenericDbContext

Alternatively, you can use the provided scripts to add a new migration or to remove the last migration for both database providers.

If you choose not to use AutoBackend's migration management (see above), you can perform migrations manually by executing dotnet ef database update from the project root directory.

Migrate on Startup

When using a relational database (e.g., SqlServer or Postgres), you can configure AutoBackend to automatically migrate the database at application startup by passing the migrateRelationalOnStartup parameter to the RunAsync method during AutoBackend initialization. For example:

await new AutoBackend.Sdk.AutoBackendHost<Program>().RunAsync(args, migrateRelationalOnStartup: true);

API

AutoBackend.SDK currently supports two types of API interfaces:

  • HTTP REST API
  • GraphQL

HTTP API

Apply the [GenericController] attribute to your models to have AutoBackend generate HTTP API endpoints.

Disclaimer

The [GenericController] attribute is compatible only with models also marked with [GenericEntity].

Response Container and Endpoints

The current API version is v1. API v1 uses JSON and follows the following response container format:

{
  "ok": boolean,
  "error_code": number,
  "description": string,
  "request_time_ms": number,
  "result": <response object>
}

For detailed information on generated endpoints, visit /swagger.

Endpoints

The [GenericController] attribute generates the following HTTP API endpoints:

Method Url Keyless Single-PK Multi-PK Description
GET /api/v1/<model name> ✔️ ✔️ ✔️ Retrieve all entities of a specific model
GET /api/v1/<model name>/count ✔️ ✔️ ✔️ Retrieve the count of entities of a specific model
GET /api/v1/<model name>/<pk1> ✔️ Retrieve an entity with the requested primary key of a specific model
GET /api/v1/<model name>/<pk1>/<pk2>/.../<pkN> ✔️ Retrieve an entity with the requested composite primary key of a model
POST /api/v1/<model name> ✔️ Create a new keyless entity of a specific model
POST /api/v1/<model name>/<pk1> ✔️ Create a new entity with the specified primary key of a specific model
POST /api/v1/<model name>/<pk1>/<pk2>/.../<pkN> ✔️ Create a new entity with the specified composite primary key of a model
PUT /api/v1/<model name>/<pk1> ✔️ Update an entity with the specified primary key of a specific model
PUT /api/v1/<model name>/<pk1>/<pk2>/.../<pkN> ✔️ Update an entity with the specified composite primary key of a model
DELETE /api/v1/<model name>/<pk1> ✔️ Delete an entity with the specified primary key of a specific model
DELETE /api/v1/<model name>/<pk1>/<pk2>/.../<pkN> ✔️ Delete an entity with the specified composite primary key of a model

📘Filtering Capabilities

Refer to the following section for more information on filtering.

Code Samples

[GenericEntity(
    nameof(Id)
)]
[GenericController]
public class User
{
    public long Id { get; set; }

    // ...
}

GraphQL

Apply the [GenericGqlQuery] and [GenericGqlMutation] attributes to your models to generate GraphQL queries and mutations, respectively.

Disclaimer

The [GenericGqlQuery] and [GenericGqlMutation] attributes are compatible only with models also marked with [GenericEntity].

For detailed information on generated queries and mutations, visit /graphql.

Queries

The [GenericGqlQuery] attribute generates the following GraphQL queries:

Query Arguments Keyless Single-PK Multi-PK Description
all filter: generic filter input model ✔️ ✔️ ✔️ Retrieve all entities of a specific model
count filter: generic filter input model ✔️ ✔️ ✔️ Retrieve the count of entities of a specific model
byKey key: entity primary key ✔️ Retrieve an entity with the requested primary key of a model
byKey key1, key2, ..., keyN: entity PK-set ✔️ Retrieve an entity with the requested composite primary key

📘Filtering Capabilities

Refer to the following section for more information on filtering.

Code Samples

[GenericEntity(
    nameof(Id)
)]
[GenericGqlQuery]
public class User
{
    public long Id { get; set; }

    // ...
}

Mutations

The [GenericGqlMutation] attribute generates the following GraphQL mutations:

Mutation Arguments Keyless Single-PK Multi-PK Description
create request: generic entity input model ✔️ Create a new keyless entity of a specific model
create key: entity primary key, request: generic entity input model ✔️ Create a new entity with the specified primary key of a model
create key1, key2, ..., keyN: entity PK-set, request: generic entity input model ✔️ Create a new entity with the specified composite primary key
update key: entity primary key, request: generic entity input model ✔️ Update an entity with the specified primary key of a model
update key1, key2, ..., keyN: entity PK-set, request: generic entity input model ✔️ Update an entity with the specified composite primary key
delete key: entity primary key (for PK-holder entities only) ✔️ Delete an entity with the specified primary key
delete key1, key2, ..., keyN: entity PK-set ✔️ Delete an entity with the specified composite primary key

Code Samples

[GenericEntity(
    nameof(Id)
)]
[GenericGqlMutation]
public class User
{
    public long Id { get; set; }

    // ...
}

Modeling

AutoBackend.SDK automatically generates request and response models for any entity with HTTP API or GraphQL generation configured. By default, these models include all original entity properties. However, if you explicitly specify properties using the [GenericRequest] or [GenericResponse] attributes, only those specified properties will be included, and all others will be omitted.

Request Models

The [GenericRequest] attribute specifies which properties can be mapped from the request model to the entity.

Code Samples

[GenericEntity(
    nameof(Id)
)]
[GenericController]
[GenericGqlQuery]
[GenericGqlMutation]
[GenericRequest(
    nameof(Id),
    nameof(UserId),
    nameof(BudgetId),
    nameof(Amount),
    nameof(DateTimeUtc),
    nameof(Comment),
    nameof(SecretKey)
)]
public class Transaction
{
    // ...
}

Response Models

The [GenericResponse] attribute specifies which properties can be mapped from the entity to the response model.

Code Samples

[GenericEntity(
    nameof(Id)
)]
[GenericController]
[GenericGqlQuery]
[GenericGqlMutation]
[GenericResponse(
    nameof(Id),
    nameof(UserId),
    nameof(BudgetId),
    nameof(Amount),
    nameof(DateTimeUtc),
    nameof(Comment)
)]
public class Transaction
{
    // ...
}

Authorization

AutoBackend.SDK supports permission-based authorization using JWT tokens. You can control access to CRUD operations at both entity and property levels.

Configuration

Configure JWT settings in your appsettings.json:

"Jwt": {
  "PublicKey": "-----BEGIN PUBLIC KEY-----\n...\n-----END PUBLIC KEY-----",
  "ValidIssuer": "AutoBackendServer",
  "ValidAudience": "AutoBackendUser"
}
  • PublicKey: RSA public key in PEM format (required) - used to verify JWT token signatures
  • ValidIssuer: Optional issuer validation
  • ValidAudience: Optional audience validation

Permission Attributes

Use permission attributes on entity classes to require authorization for specific operations:

  • [GenericCreatePermission] - Requires permission to create entities
  • [GenericReadPermission] - Requires permission to read entities
  • [GenericUpdatePermission] - Requires permission to update entities
  • [GenericDeletePermission] - Requires permission to delete entities

Code Samples

[GenericEntity(
    nameof(Id)
)]
[GenericController]
[GenericGqlQuery]
[GenericGqlMutation]
[GenericCreatePermission]
[GenericReadPermission]
[GenericUpdatePermission]
[GenericDeletePermission]
public class Budget
{
    public Guid Id { get; set; }
    
    // ...
}

Property-Level Permissions

⚠️ Note: Property-level permissions are currently only processed for Update operations.

You can apply permission attributes to individual properties for fine-grained access control during update operations:

[GenericEntity(
    nameof(Id)
)]
[GenericController]
[GenericGqlMutation]
[GenericUpdatePermission]
public class Transaction
{
    public Guid Id { get; set; }
    
    [GenericUpdatePermission]
    public string? SecretKey { get; set; }
    
    // ...
}

When updating an entity, AutoBackend will check property-level permissions only for properties that are actually being modified. This allows you to restrict access to sensitive fields while allowing updates to other properties.

JWT Token Format

JWT tokens must be sent in the Authorization header with the Bearer prefix:

Authorization: Bearer <your-jwt-token>

The JWT token must contain claims with:

  • Type: permissions
  • Value: Permission strings in the format {EntityName}{PermissionType} or {EntityName}{PropertyName}{PermissionType}

Permission Name Format

  • Entity permissions: {EntityName}{PermissionType}
    • Examples: BudgetCreate, BudgetRead, BudgetUpdate, BudgetDelete
  • Property permissions: {EntityName}{PropertyName}{PermissionType} (only for Update operations)
    • Examples: TransactionSecretKeyUpdate

Example JWT Claims

{
  "permissions": [
    "BudgetCreate",
    "BudgetRead",
    "BudgetUpdate",
    "BudgetDelete",
    "TransactionSecretKeyUpdate"
  ]
}

Error Handling

When a request lacks required permissions, AutoBackend returns an Unauthorized error with details about missing permissions.

Filtering

AutoBackend.SDK generates filter models for any entity with configured HTTP API or GraphQL generation. By default, these models include only pagination management properties. To include specific entity properties in the filter model, use the [GenericFilter] attribute.

Defaults

By default, two filter parameters are always available for any GET request (returning a list of entities) or GraphQL queries to manage pagination:

  • skipCount: number
  • takeCount: number

Custom Filtering

The [GenericFilter] attribute marks a model property as filterable in the generated filter model.

[GenericEntity(
    nameof(Id)
)]
[GenericController]
[GenericGqlQuery]
[GenericGqlMutation]
public class Budget
{
    [GenericFilter]
    public Guid Id { get; set; }

    [GenericFilter]
    public string Name { get; set; }

    [GenericFilter]
    public long? OwnerId { get; set; }

    // ...
}

AutoBackend will construct a filter model with parameters that can be used in API endpoints like /api/v1/<model name> or /api/v1/<model name>/count, as well as in GraphQL queries.

  • API filter parameter names follow the pattern: <property's camelCase-name>.<condition name>
  • GraphQL queries will have filtering models with condition properties generated

The following filter conditions are supported:

  • equal
  • notEqual
  • greaterThan
  • greaterThanOrEqual
  • lessThan
  • lessThanOrEqual
  • in
  • isNull

Changelog Summary:

Enhancements:

  • Released version v0.1.10 with major infrastructure updates.
  • Added JWT authorization support with configurable public key validation.
  • Refactored AutoBackendHost configuration by consolidating StartupBoilerplate logic inline.
  • Enhanced sample project with PostgreSQL as primary database provider.
  • Updated README.md with comprehensive authorization documentation.

Package Updates:

  • Target framework advanced to .NET 10.0 with SDK version 10.0.0.
  • Upgraded Microsoft.EntityFrameworkCore packages from 8.0.4 to 10.0.1.
  • Updated Npgsql.EntityFrameworkCore.PostgreSQL from version 8.0.2 to 10.0.0.
  • Upgraded HotChocolate.AspNetCore from 13.9.0 to 15.1.11.
  • Updated HotChocolate.Data.EntityFramework from 13.9.0 to 15.1.11.
  • Incremented NSwag.AspNetCore from 14.0.7 to 14.6.3.
  • Upgraded Microsoft.NET.Test.Sdk from 17.9.0 to 18.0.1.
  • Updated MSTest.TestAdapter from 3.3.1 to 4.0.2.
  • Updated MSTest.TestFramework from 3.3.1 to 4.0.2.
  • Elevated coverlet.collector version from 6.0.2 to 6.0.4.
  • Removed Flurl.Http dependency.

Infrastructure Updates:

  • Updated Dockerfile base images to .NET 10.0.
  • Enhanced GitHub Actions workflows with latest versions.
  • Upgraded actions/checkout from v4 to v6.
  • Updated actions/setup-dotnet from v4 to v5.
  • Incremented tj-actions/changed-files from v41 to v47.
  • Upgraded actions/github-script from v7 to v8.
  • Enhanced Dependabot configuration with GitHub Actions support.
  • Added parallel test execution configuration.

Documentation and Organization:

  • Expanded README.md with authorization section and improved descriptions.
  • Updated sample project configuration with JWT settings.
  • Enhanced PostgreSQL connection string with error detail inclusion.
  • .NETFramework 10.0
    • HotChocolate.AspNetCore (>= 15.1.12)
    • HotChocolate.Data.EntityFramework (>= 15.1.12)
    • Microsoft.EntityFrameworkCore (>= 10.0.3)
    • Microsoft.EntityFrameworkCore.InMemory (>= 10.0.3)
    • Microsoft.EntityFrameworkCore.SqlServer (>= 10.0.3)
    • Npgsql.EntityFrameworkCore.PostgreSQL (>= 10.0.0)
    • NSwag.AspNetCore (>= 14.6.3)
  • .NETFramework 10.0: 10.0.0.0

Owners

vorobalek

Authors

Alexey Vorobev

Project URL

https://github.com/vorobalek/autobackend

License

Unknown

Info

333 total downloads
0 downloads for version 0.1.11-hot-301
Download (81.61 KB)
Found on the current feed only

Package history

Version Size Last updated Downloads Mirrored?
0.1.11-hot-301 81.61 KB Mon, 02 Mar 2026 01:25:34 GMT 0
0.1.11-hot-300 81.61 KB Tue, 17 Feb 2026 07:28:10 GMT 0
0.1.11-hot-299 81.61 KB Tue, 17 Feb 2026 07:02:22 GMT 0
0.1.11-hot-298 81.61 KB Tue, 17 Feb 2026 07:19:19 GMT 0
0.1.11-hot-297 81.61 KB Mon, 16 Feb 2026 01:25:43 GMT 0
0.1.11-hot-296 81.61 KB Mon, 16 Feb 2026 01:25:27 GMT 2
0.1.11-hot-295 81.6 KB Mon, 09 Feb 2026 01:25:17 GMT 0
0.1.11-hot-294 81.62 KB Mon, 09 Feb 2026 01:25:05 GMT 0
0.1.11-hot-293 81.61 KB Mon, 26 Jan 2026 01:26:27 GMT 2
0.1.11-hot-292 81.61 KB Mon, 19 Jan 2026 07:27:25 GMT 2
0.1.11-hot-291 81.61 KB Mon, 19 Jan 2026 01:33:26 GMT 0
0.1.11-hot-290 81.61 KB Mon, 19 Jan 2026 07:22:22 GMT 1
0.1.11-hot-289 81.61 KB Mon, 19 Jan 2026 01:32:35 GMT 1
0.1.11-hot-288 81.61 KB Mon, 19 Jan 2026 07:16:02 GMT 1
0.1.11-hot-287 81.61 KB Mon, 19 Jan 2026 01:32:08 GMT 0
0.1.10-hot-286 81.6 KB Tue, 23 Dec 2025 22:12:32 GMT 1
0.1.10-hot-285 81.6 KB Tue, 23 Dec 2025 21:54:59 GMT 0
0.1.10-hot-284 81.64 KB Tue, 23 Dec 2025 21:28:13 GMT 0
0.1.10-hot-283 76.85 KB Mon, 22 Dec 2025 10:38:58 GMT 0
0.1.10-hot-282 76.85 KB Mon, 22 Dec 2025 01:06:49 GMT 0
0.1.10-hot-281 76.85 KB Mon, 15 Dec 2025 01:07:24 GMT 0
0.1.10-hot-280 76.84 KB Mon, 15 Dec 2025 01:06:45 GMT 1
0.1.10-hot-279 76.84 KB Wed, 03 Dec 2025 21:26:38 GMT 1
0.1.10-hot-278 76.42 KB Wed, 03 Dec 2025 20:34:33 GMT 0
0.1.10-hot-277 76.42 KB Wed, 03 Dec 2025 20:33:19 GMT 3
0.1.10-hot-276 76.41 KB Wed, 03 Dec 2025 20:32:09 GMT 2
0.1.10-hot-275 76.42 KB Wed, 03 Dec 2025 20:30:36 GMT 0
0.1.10-hot-274 76.41 KB Wed, 03 Dec 2025 20:26:48 GMT 1
0.1.10-hot-273 76.42 KB Wed, 03 Dec 2025 20:24:36 GMT 0
0.1.10-hot-272 76.41 KB Wed, 03 Dec 2025 20:23:55 GMT 4
0.1.10-hot-271 76.41 KB Mon, 01 Dec 2025 01:32:07 GMT 1
0.1.10-hot-270 76.42 KB Mon, 24 Nov 2025 10:47:59 GMT 2
0.1.10-hot-269 76.41 KB Mon, 24 Nov 2025 10:53:44 GMT 2
0.1.10-hot-268 76.42 KB Mon, 24 Nov 2025 09:28:44 GMT 1
0.1.10-hot-267 76.42 KB Mon, 24 Nov 2025 09:01:08 GMT 1
0.1.10-hot-266 76.42 KB Mon, 24 Nov 2025 08:32:49 GMT 0
0.1.10-hot-265 76.42 KB Mon, 24 Nov 2025 01:09:51 GMT 1
0.1.10-hot-264 76.42 KB Mon, 24 Nov 2025 09:09:21 GMT 3
0.1.10-hot-263 76.42 KB Mon, 24 Nov 2025 01:08:48 GMT 3
0.1.10-hot-262 76.28 KB Mon, 10 Nov 2025 01:07:22 GMT 1
0.1.10-hot-261 76.28 KB Mon, 27 Oct 2025 01:09:04 GMT 1
0.1.10-hot-260 76.28 KB Mon, 20 Oct 2025 19:55:07 GMT 0
0.1.10-hot-259 76.29 KB Mon, 20 Oct 2025 19:50:13 GMT 4
0.1.10-hot-258 76.29 KB Mon, 20 Oct 2025 16:40:41 GMT 3
0.1.10-hot-257 76.29 KB Mon, 20 Oct 2025 01:09:01 GMT 0
0.1.10-hot-256 76.29 KB Mon, 20 Oct 2025 01:08:16 GMT 1
0.1.10-hot-255 76.29 KB Mon, 13 Oct 2025 12:54:27 GMT 0
0.1.10-hot-254 76.28 KB Mon, 13 Oct 2025 12:54:12 GMT 2
0.1.10-hot-253 76.29 KB Mon, 13 Oct 2025 12:49:41 GMT 3
0.1.10-hot-252 76.29 KB Mon, 13 Oct 2025 01:06:36 GMT 0
0.1.10-hot-251 76.28 KB Mon, 06 Oct 2025 09:58:42 GMT 0
0.1.10-hot-250 76.28 KB Mon, 06 Oct 2025 09:33:35 GMT 4
0.1.10-hot-249 76.28 KB Mon, 06 Oct 2025 09:02:49 GMT 1
0.1.10-hot-248 76.28 KB Mon, 06 Oct 2025 08:57:57 GMT 1
0.1.10-hot-247 76.28 KB Mon, 06 Oct 2025 01:06:28 GMT 6
0.1.10-hot-246 76.29 KB Mon, 29 Sep 2025 08:27:17 GMT 0
0.1.10-hot-245 76.28 KB Mon, 29 Sep 2025 08:19:58 GMT 0
0.1.10-hot-244 76.29 KB Mon, 29 Sep 2025 08:15:14 GMT 0
0.1.10-hot-243 76.29 KB Mon, 29 Sep 2025 01:06:50 GMT 1
0.1.10-hot-242 76.29 KB Mon, 22 Sep 2025 01:06:20 GMT 0
0.1.10-hot-241 76.29 KB Mon, 22 Sep 2025 07:53:46 GMT 6
0.1.10-hot-240 76.28 KB Mon, 22 Sep 2025 08:02:09 GMT 2
0.1.10-hot-239 76.29 KB Mon, 15 Sep 2025 01:07:02 GMT 0
0.1.10-hot-238 76.28 KB Mon, 22 Sep 2025 07:56:12 GMT 0
0.1.10-hot-237 76.29 KB Mon, 15 Sep 2025 01:06:35 GMT 4
0.1.10-hot-236 76.29 KB Mon, 08 Sep 2025 01:12:13 GMT 0
0.1.10-hot-235 76.28 KB Mon, 08 Sep 2025 01:12:14 GMT 1
0.1.10-hot-234 76.28 KB Mon, 08 Sep 2025 18:47:46 GMT 1
0.1.10-hot-233 76.28 KB Mon, 08 Sep 2025 01:06:38 GMT 0
0.1.10-hot-232 76.29 KB Mon, 01 Sep 2025 08:46:47 GMT 0
0.1.10-hot-231 76.29 KB Mon, 01 Sep 2025 08:42:34 GMT 3
0.1.10-hot-230 76.29 KB Mon, 01 Sep 2025 08:34:54 GMT 0
0.1.10-hot-229 76.29 KB Mon, 01 Sep 2025 02:15:43 GMT 5
0.1.10-hot-228 76.28 KB Mon, 01 Sep 2025 02:10:15 GMT 1
0.1.10-hot-227 76.3 KB Mon, 01 Sep 2025 02:08:36 GMT 1
0.1.10-hot-226 76.28 KB Tue, 19 Aug 2025 18:32:14 GMT 1
0.1.10-hot-225 76.29 KB Tue, 19 Aug 2025 18:15:06 GMT 1
0.1.10-hot-224 76.28 KB Tue, 12 Aug 2025 10:46:11 GMT 6
0.1.10-hot-223 76.28 KB Wed, 06 Aug 2025 11:59:18 GMT 1
0.1.10-hot-222 76.28 KB Wed, 06 Aug 2025 11:46:18 GMT 2
0.1.10-hot-221 76.28 KB Wed, 06 Aug 2025 11:43:22 GMT 1
0.1.10-hot-220 74.14 KB Thu, 20 Feb 2025 01:13:10 GMT 4
0.1.10-hot-219 74.15 KB Thu, 20 Feb 2025 01:12:41 GMT 3
0.1.10-hot-218 74.15 KB Thu, 13 Feb 2025 01:21:00 GMT 3
0.1.10-hot-217 74.14 KB Thu, 13 Feb 2025 01:20:32 GMT 2
0.1.10-hot-216 74.16 KB Wed, 12 Feb 2025 01:20:13 GMT 2
0.1.10-hot-215 74.15 KB Wed, 12 Feb 2025 01:19:06 GMT 2
0.1.10-hot-214 74.14 KB Wed, 12 Feb 2025 01:18:30 GMT 0
0.1.10-hot-213 74.14 KB Tue, 11 Feb 2025 01:55:46 GMT 1
0.1.10-hot-212 74.15 KB Fri, 07 Feb 2025 01:23:29 GMT 1
0.1.10-hot-211 74.16 KB Fri, 07 Feb 2025 01:22:44 GMT 1
0.1.10-hot-210 74.14 KB Thu, 06 Feb 2025 02:03:43 GMT 0
0.1.10-hot-209 74.15 KB Thu, 06 Feb 2025 02:03:21 GMT 1
0.1.10-hot-208 74.14 KB Wed, 05 Feb 2025 01:47:12 GMT 0
0.1.10-hot-207 74.15 KB Wed, 05 Feb 2025 01:46:02 GMT 1
0.1.10-hot-206 74.14 KB Tue, 28 Jan 2025 01:47:31 GMT 3
0.1.10-hot-205 74.15 KB Tue, 28 Jan 2025 01:47:18 GMT 0
0.1.10-hot-204 74.14 KB Wed, 22 Jan 2025 01:56:54 GMT 0
0.1.10-hot-203 74.13 KB Wed, 22 Jan 2025 01:56:54 GMT 0
0.1.10-hot-202 74.14 KB Mon, 20 Jan 2025 01:29:03 GMT 0
0.1.10-hot-201 74.15 KB Wed, 15 Jan 2025 01:12:28 GMT 0
0.1.10-hot-200 74.14 KB Tue, 14 Jan 2025 01:22:56 GMT 1
0.1.10-hot-199 74.14 KB Tue, 14 Jan 2025 01:23:06 GMT 2
0.1.10-hot-198 74.15 KB Tue, 31 Dec 2024 01:09:20 GMT 2
0.1.10-hot-197 74.14 KB Mon, 23 Dec 2024 01:32:04 GMT 1
0.1.10-hot-196 74.14 KB Mon, 23 Dec 2024 01:31:37 GMT 0
0.1.10-hot-195 74.16 KB Tue, 17 Dec 2024 01:22:36 GMT 1
0.1.10-hot-194 74.15 KB Tue, 17 Dec 2024 01:22:14 GMT 0
0.1.10-hot-193 74.15 KB Mon, 09 Dec 2024 01:10:18 GMT 4
0.1.10-hot-192 74.22 KB Wed, 04 Dec 2024 10:04:20 GMT 2
0.1.10-hot-191 74.21 KB Wed, 04 Dec 2024 10:04:46 GMT 1
0.1.10-hot-190 74.14 KB Wed, 04 Dec 2024 10:23:12 GMT 5
0.1.10-hot-188 74.22 KB Wed, 20 Nov 2024 01:28:06 GMT 4
0.1.10-hot-187 74.2 KB Wed, 04 Dec 2024 10:04:06 GMT 2
0.1.10-hot-186 74.2 KB Wed, 04 Dec 2024 09:58:33 GMT 3
0.1.10-hot-185 74.21 KB Tue, 19 Nov 2024 01:39:41 GMT 1
0.1.10-hot-184 74.21 KB Wed, 13 Nov 2024 01:22:49 GMT 0
0.1.10-hot-183 74.21 KB Wed, 13 Nov 2024 01:22:39 GMT 1
0.1.10-hot-182 74.21 KB Wed, 13 Nov 2024 01:22:30 GMT 1
0.1.10-hot-181 74.22 KB Wed, 13 Nov 2024 01:21:38 GMT 1
0.1.10-hot-180 74.21 KB Wed, 13 Nov 2024 01:21:17 GMT 0
0.1.10-hot-177 74.21 KB Fri, 01 Nov 2024 01:21:03 GMT 1
0.1.10-hot-176 74.21 KB Fri, 01 Nov 2024 01:20:58 GMT 3
0.1.10-hot-175 74.21 KB Fri, 18 Oct 2024 01:36:19 GMT 0
0.1.10-hot-172 74.21 KB Wed, 09 Oct 2024 01:50:53 GMT 3
0.1.10-hot-171 74.21 KB Wed, 09 Oct 2024 01:50:24 GMT 0
0.1.10-hot-170 74.21 KB Wed, 09 Oct 2024 01:49:54 GMT 0
0.1.10-hot-169 74.21 KB Fri, 04 Oct 2024 01:13:27 GMT 0
0.1.10-hot-168 74.21 KB Fri, 04 Oct 2024 01:13:00 GMT 2
0.1.10-hot-167 74.21 KB Tue, 01 Oct 2024 01:12:30 GMT 0
0.1.10-hot-166 74.22 KB Tue, 01 Oct 2024 01:12:16 GMT 4
0.1.10-hot-165 74.21 KB Mon, 30 Sep 2024 01:34:33 GMT 0
0.1.10-hot-164 74.21 KB Mon, 30 Sep 2024 01:30:31 GMT 0
0.1.10-hot-163 74.21 KB Mon, 30 Sep 2024 01:34:22 GMT 0
0.1.10-hot-162 74.21 KB Thu, 19 Sep 2024 06:00:40 GMT 0
0.1.10-hot-161 74.21 KB Thu, 19 Sep 2024 06:00:34 GMT 2
0.1.10-hot-160 74.21 KB Thu, 19 Sep 2024 06:00:54 GMT 0
0.1.10-hot-159 74.22 KB Thu, 19 Sep 2024 06:00:48 GMT 7
0.1.10-hot-158 74.21 KB Thu, 19 Sep 2024 06:00:30 GMT 0
0.1.10-hot-157 74.21 KB Thu, 19 Sep 2024 06:00:41 GMT 0
0.1.10-hot-156 74.21 KB Mon, 26 Aug 2024 01:53:42 GMT 2
0.1.10-hot-155 74.21 KB Fri, 23 Aug 2024 11:12:28 GMT 0
0.1.10-hot-154 74.21 KB Fri, 23 Aug 2024 11:12:25 GMT 1
0.1.10-hot-153 74.22 KB Fri, 23 Aug 2024 11:03:02 GMT 0
0.1.10-hot-152 74.21 KB Fri, 23 Aug 2024 11:12:28 GMT 2
0.1.10-hot-151 74.22 KB Fri, 23 Aug 2024 11:03:01 GMT 1
0.1.10-hot-150 74.21 KB Fri, 23 Aug 2024 11:07:34 GMT 0
0.1.10-hot-149 74.21 KB Fri, 23 Aug 2024 10:57:07 GMT 0
0.1.10-hot-148 74.2 KB Fri, 09 Aug 2024 01:54:09 GMT 1
0.1.10-hot-147 74.2 KB Thu, 08 Aug 2024 08:49:30 GMT 1
0.1.10-hot-146 74.2 KB Thu, 08 Aug 2024 11:48:12 GMT 0
0.1.10-hot-145 74.2 KB Thu, 08 Aug 2024 08:16:59 GMT 2
0.1.10-hot-144 74.21 KB Thu, 08 Aug 2024 09:07:19 GMT 1
0.1.10-hot-143 74.19 KB Thu, 08 Aug 2024 09:03:23 GMT 5
0.1.10-hot-142 74.2 KB Thu, 08 Aug 2024 08:59:42 GMT 1
0.1.10-hot-141 74.2 KB Thu, 08 Aug 2024 01:10:21 GMT 2
0.1.10-hot-140 74.2 KB Thu, 08 Aug 2024 01:10:29 GMT 0
0.1.10-hot-139 74.2 KB Fri, 26 Jul 2024 01:28:03 GMT 2
0.1.10-hot-138 74.21 KB Fri, 26 Jul 2024 01:27:48 GMT 1
0.1.10-hot-137 74.2 KB Thu, 08 Aug 2024 08:55:52 GMT 1
0.1.10-hot-136 74.2 KB Wed, 17 Jul 2024 01:11:13 GMT 0
0.1.10-hot-135 74.2 KB Wed, 17 Jul 2024 01:11:14 GMT 1
0.1.10-hot-134 74.19 KB Thu, 08 Aug 2024 08:16:28 GMT 0
0.1.10-hot-133 74.2 KB Thu, 08 Aug 2024 08:16:33 GMT 1
0.1.10-hot-132 74.21 KB Fri, 05 Jul 2024 01:45:11 GMT 1
0.1.10-hot-131 74.21 KB Fri, 05 Jul 2024 01:44:35 GMT 1
0.1.10-hot-130 74.2 KB Thu, 13 Jun 2024 02:05:14 GMT 0
0.1.10-hot-129 74.2 KB Thu, 13 Jun 2024 02:00:38 GMT 2
0.1.10-hot-128 74.2 KB Thu, 13 Jun 2024 01:59:44 GMT 3
0.1.10-hot-127 74.2 KB Fri, 31 May 2024 01:17:20 GMT 0
0.1.10-hot-126 74.2 KB Fri, 31 May 2024 01:16:31 GMT 1
0.1.10-hot-125 74.21 KB Wed, 29 May 2024 01:19:50 GMT 7
0.1.10-hot-124 74.2 KB Wed, 29 May 2024 01:19:23 GMT 5
0.1.10-hot-123 74.2 KB Wed, 29 May 2024 01:19:07 GMT 4
0.1.10-hot-122 74.2 KB Wed, 29 May 2024 01:18:42 GMT 3
0.1.10-hot-121 74.2 KB Tue, 28 May 2024 01:51:16 GMT 0
0.1.10-hot-120 74.19 KB Tue, 28 May 2024 01:50:47 GMT 2
0.1.10-hot-119 74.2 KB Fri, 24 May 2024 01:26:49 GMT 0
0.1.10-hot-118 74.2 KB Fri, 24 May 2024 01:26:10 GMT 4
0.1.10-hot-117 74.2 KB Thu, 08 Aug 2024 08:11:58 GMT 0
0.1.10-hot-116 74.16 KB Wed, 15 May 2024 01:16:13 GMT 0
0.1.10-hot-115 74.16 KB Tue, 14 May 2024 01:36:25 GMT 1
0.1.10-hot-114 74.16 KB Tue, 14 May 2024 01:35:55 GMT 0
0.1.10-hot-113 74.16 KB Mon, 13 May 2024 01:24:29 GMT 2
0.1.10-hot-112 74.16 KB Mon, 13 May 2024 01:24:06 GMT 2
0.1.10-hot-111 74.15 KB Mon, 13 May 2024 01:23:42 GMT 2
0.1.10-hot-110 74.16 KB Wed, 08 May 2024 01:34:28 GMT 0
0.1.10-hot-109 74.17 KB Wed, 08 May 2024 01:38:53 GMT 0
0.1.10-hot-108 74.15 KB Wed, 01 May 2024 10:45:09 GMT 0
0.1.10-hot-107 74.15 KB Wed, 01 May 2024 10:19:46 GMT 0
0.1.10-hot-106 74.16 KB Wed, 01 May 2024 09:59:45 GMT 5
0.1.9-hot-105 74.15 KB Sat, 27 Apr 2024 03:54:41 GMT 0
0.1.8-hot-104 73.43 KB Sat, 27 Apr 2024 03:41:50 GMT 2
0.1.7-hot-103 73.45 KB Sat, 27 Apr 2024 03:15:22 GMT 1
0.1.6-hot-99 79.77 KB Sat, 27 Apr 2024 00:18:11 GMT 0
0.1.6-hot-98 79.77 KB Sat, 20 Apr 2024 11:29:52 GMT 0
0.1.6-hot-97 78.88 KB Sat, 20 Apr 2024 09:31:12 GMT 1
0.1.6-hot-96 79.12 KB Fri, 19 Apr 2024 20:59:16 GMT 1
0.1.6-hot-95 60.74 KB Mon, 15 Apr 2024 18:24:11 GMT 1
0.1.6-hot-93 60.58 KB Wed, 09 Aug 2023 01:22:40 GMT 0
0.1.6-hot-90 60.57 KB Mon, 07 Aug 2023 02:06:24 GMT 4
0.1.6-hot-89 60.58 KB Tue, 25 Jul 2023 01:24:58 GMT 3
0.1.6-hot-88 60.59 KB Tue, 25 Jul 2023 01:25:08 GMT 0
0.1.6-hot-87 60.57 KB Mon, 17 Jul 2023 01:31:14 GMT 4
0.1.6-hot-86 60.57 KB Mon, 17 Jul 2023 01:31:04 GMT 5
0.1.6-hot-84 60.58 KB Wed, 12 Jul 2023 01:44:08 GMT 0
0.1.6-hot-83 60.59 KB Wed, 12 Jul 2023 01:43:28 GMT 1
0.1.6-hot-82 60.58 KB Wed, 12 Jul 2023 01:43:20 GMT 1
0.1.6-hot-79 60.58 KB Tue, 11 Jul 2023 02:01:03 GMT 0
0.1.6-hot-78 60.58 KB Tue, 11 Jul 2023 02:00:41 GMT 1
0.1.6-hot-77 60.59 KB Thu, 06 Jul 2023 01:32:47 GMT 0
0.1.6-hot-76 60.58 KB Thu, 06 Jul 2023 01:32:44 GMT 1
0.1.6-hot-75 60.58 KB Tue, 04 Jul 2023 01:44:52 GMT 5
0.1.6-hot-74 60.58 KB Tue, 04 Jul 2023 01:44:01 GMT 3
0.1.6-hot-73 60.57 KB Wed, 28 Jun 2023 02:06:39 GMT 0
0.1.6-hot-71 60.58 KB Fri, 23 Jun 2023 02:03:48 GMT 0
0.1.6-hot-66 60.58 KB Wed, 14 Jun 2023 02:04:52 GMT 3
0.1.6-hot-64 60.58 KB Wed, 07 Jun 2023 02:04:20 GMT 0
0.1.6-hot-63 60.58 KB Tue, 06 Jun 2023 02:04:29 GMT 2
0.1.6-hot-62 60.58 KB Tue, 06 Jun 2023 02:04:13 GMT 5
0.1.6-hot-61 60.58 KB Mon, 05 Jun 2023 02:10:36 GMT 1
0.1.6-hot-60 60.58 KB Mon, 05 Jun 2023 02:09:50 GMT 2
0.1.6-hot-59 60.58 KB Fri, 02 Jun 2023 02:03:44 GMT 0
0.1.6-hot-58 60.58 KB Fri, 02 Jun 2023 02:03:47 GMT 0
0.1.6-hot-57 60.58 KB Fri, 02 Jun 2023 02:03:54 GMT 0
0.1.6-hot-56 60.57 KB Fri, 26 May 2023 02:04:33 GMT 0
0.1.6-hot-55 60.58 KB Fri, 26 May 2023 02:04:21 GMT 0
0.1.6-hot-54 60.58 KB Mon, 22 May 2023 02:12:20 GMT 0
0.1.6-hot-53 60.59 KB Mon, 22 May 2023 02:11:36 GMT 0
0.1.6-hot-52 60.58 KB Mon, 22 May 2023 02:11:05 GMT 0
0.1.6-hot-51 60.57 KB Wed, 17 May 2023 02:04:46 GMT 2
0.1.6-hot-50 60.57 KB Fri, 05 May 2023 02:04:19 GMT 1
0.1.6-hot-49 60.58 KB Thu, 04 May 2023 02:05:24 GMT 0
0.1.6-hot-48 60.58 KB Wed, 03 May 2023 02:04:33 GMT 0
0.1.6-hot-47 60.58 KB Tue, 25 Apr 2023 02:05:11 GMT 4
0.1.6-hot-46 60.58 KB Wed, 12 Apr 2023 02:05:55 GMT 0
0.1.6-hot-45 60.57 KB Tue, 18 Apr 2023 08:18:48 GMT 5
0.1.6-hot-44 60.58 KB Tue, 18 Apr 2023 08:11:07 GMT 0
0.1.6-hot-43 60.58 KB Tue, 18 Apr 2023 08:14:38 GMT 3
0.1.6-hot-42 60.36 KB Sun, 07 May 2023 16:01:48 GMT 2
0.1.6-hot-41 60.58 KB Mon, 03 Apr 2023 17:51:47 GMT 0
0.1.6-hot-40 50.01 KB Wed, 15 Mar 2023 11:49:09 GMT 4
0.1.6-hot-39 50.02 KB Wed, 15 Mar 2023 11:39:17 GMT 1
0.1.6-hot-38 50.02 KB Wed, 15 Mar 2023 11:22:34 GMT 1
0.1.6-hot-37 50.01 KB Wed, 15 Mar 2023 11:30:52 GMT 2
0.1.6-hot-36 50.02 KB Wed, 15 Mar 2023 11:25:14 GMT 0
0.1.6-hot-35 50.02 KB Wed, 15 Mar 2023 10:47:01 GMT 1
0.1.6-hot-34 50.02 KB Wed, 15 Mar 2023 11:28:03 GMT 3
0.1.6-hot-33 73.44 KB Sat, 27 Apr 2024 02:54:20 GMT 2
0.1.6-hot-32 50.01 KB Sat, 11 Mar 2023 21:27:52 GMT 1
0.1.6-hot-102 73.45 KB Sat, 27 Apr 2024 02:33:58 GMT 1
0.1.6-hot-101 73.54 KB Sat, 27 Apr 2024 02:24:26 GMT 0
0.1.6-hot-100 79.42 KB Sat, 27 Apr 2024 00:29:41 GMT 5