Files
CertifiEd.Client/CertifiEd.Client.csproj
T
Faris Laptop e0354458df feat: hardware binding modes, operator management, packaged SDK
- Hardware binding: License.HwBinding (none | fixed | firstActivation).
  firstActivation leaves the license unbound until the first activation,
  which claims the machine; afterwards it behaves like fixed. Legacy rows
  backfilled to fixed when a fingerprint was already set.
- Rebind: POST /panel/licenses/{id}/rebind moves a license to new
  hardware (or releases the binding), deactivating existing activations
  and re-signing a new version; 409 on revoked/expired. Operator or
  company admin. Audited, emits license.rebound.
- Operator management: list, invite, promote and demote operators
  (operator-only), guarding self-demotion and the last operator — until
  now a second operator could only be seeded directly into the database.
- SDK packaging: CertifiEd.Client is now a proper NuGet package (id,
  version, MIT license, README, XML docs, symbols) and gained the
  missing public XML documentation.
2026-07-20 14:16:51 +05:00

40 lines
1.7 KiB
XML

<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<Description>CertifiEd client SDK: license activation, heartbeats and offline Ed25519 token validation.</Description>
<!-- XML docs ship with the package so consumers get IntelliSense. -->
<GenerateDocumentationFile>true</GenerateDocumentationFile>
</PropertyGroup>
<!-- ── NuGet packaging ──────────────────────────────────────────────────── -->
<PropertyGroup>
<PackageId>CertifiEd.Client</PackageId>
<Version>1.0.0</Version>
<Authors>Ofarandagon</Authors>
<Company>Ofarandagon</Company>
<Product>CertifiEd</Product>
<Copyright>Copyright © Ofarandagon 2026</Copyright>
<PackageTags>licensing;license;ed25519;offline;activation;self-hosted</PackageTags>
<PackageProjectUrl>https://git.ofarandagon.tj/Ofarandagon/CertifiEd</PackageProjectUrl>
<RepositoryUrl>https://git.ofarandagon.tj/Ofarandagon/CertifiEd</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageReadmeFile>README.md</PackageReadmeFile>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<!-- Symbols for debugging; sources embedded for untracked files. -->
<IncludeSymbols>true</IncludeSymbols>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
<EmbedUntrackedSources>true</EmbedUntrackedSources>
<PublishRepositoryUrl>true</PublishRepositoryUrl>
</PropertyGroup>
<ItemGroup>
<None Include="README.md" Pack="true" PackagePath="\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="NSec.Cryptography" Version="25.4.0" />
</ItemGroup>
</Project>