diff options
| author | Leitwolf11 | 2026-08-29 11:01:02 +0300 |
|---|---|---|
| committer | Leitwolf11 | 2026-08-29 11:01:02 +0300 |
| commit | c8073a82bbc8d39d8a45334bdcd969d00a3c3f1c (patch) | |
| tree | cfbdccab474bce8c31eb4268d4045ae2a6bed641 /apps | |
| parent | 762890d8a3ad02d841d5b46fbbf578e35ffc8708 (diff) | |
| download | progmaweb-c8073a82bbc8d39d8a45334bdcd969d00a3c3f1c.tar.gz | |
Establish Progmasoft copyright ownership across the corporate website and account service, license all project-owned sources under AGPL-3.0-or-later, add the shared defensive Progmasoft patent grant with SPDX and REUSE coverage, preserve source-availability obligations, and align notices, npm and .NET package metadata, frontend, API, tests, deployment configuration, and repository documentation
Diffstat (limited to 'apps')
38 files changed, 116 insertions, 0 deletions
diff --git a/apps/api-tests/AccountApiFactory.cs b/apps/api-tests/AccountApiFactory.cs index fb21f60..b1cbca2 100644 --- a/apps/api-tests/AccountApiFactory.cs +++ b/apps/api-tests/AccountApiFactory.cs @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com> +// SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.0 + using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc.Testing; using Microsoft.Extensions.Configuration; diff --git a/apps/api-tests/AccountEndpointTests.cs b/apps/api-tests/AccountEndpointTests.cs index b868ccd..a794e96 100644 --- a/apps/api-tests/AccountEndpointTests.cs +++ b/apps/api-tests/AccountEndpointTests.cs @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com> +// SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.0 + using System.Net; using System.Net.Http.Json; using System.Text.Json; diff --git a/apps/api-tests/GlobalUsings.cs b/apps/api-tests/GlobalUsings.cs index c802f44..fd1737f 100644 --- a/apps/api-tests/GlobalUsings.cs +++ b/apps/api-tests/GlobalUsings.cs @@ -1 +1,4 @@ +// SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com> +// SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.0 + global using Xunit; diff --git a/apps/api-tests/Progmaweb.Api.Tests.csproj b/apps/api-tests/Progmaweb.Api.Tests.csproj index 7c7202f..c25f8ac 100644 --- a/apps/api-tests/Progmaweb.Api.Tests.csproj +++ b/apps/api-tests/Progmaweb.Api.Tests.csproj @@ -1,3 +1,6 @@ +<!-- SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com> --> +<!-- SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.0 --> + <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>net10.0</TargetFramework> diff --git a/apps/api-tests/SecurityHeaderTests.cs b/apps/api-tests/SecurityHeaderTests.cs index 384ee75..91889cd 100644 --- a/apps/api-tests/SecurityHeaderTests.cs +++ b/apps/api-tests/SecurityHeaderTests.cs @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com> +// SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.0 + using System.Net; namespace Progmasoft.Progmaweb.Api.Tests; diff --git a/apps/api/Accounts/AccountContracts.cs b/apps/api/Accounts/AccountContracts.cs index d37e5cb..8d77272 100644 --- a/apps/api/Accounts/AccountContracts.cs +++ b/apps/api/Accounts/AccountContracts.cs @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com> +// SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.0 + namespace Progmasoft.Progmaweb.Api.Accounts; public sealed record RegisterAccountRequest(string? AccountName, string? Email, string? Password); diff --git a/apps/api/Accounts/AccountEndpoints.cs b/apps/api/Accounts/AccountEndpoints.cs index c8ddc15..b1bdfe0 100644 --- a/apps/api/Accounts/AccountEndpoints.cs +++ b/apps/api/Accounts/AccountEndpoints.cs @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com> +// SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.0 + namespace Progmasoft.Progmaweb.Api.Accounts; internal static class AccountEndpoints diff --git a/apps/api/Accounts/AccountNamePolicy.cs b/apps/api/Accounts/AccountNamePolicy.cs index 7bc6c1b..fd96984 100644 --- a/apps/api/Accounts/AccountNamePolicy.cs +++ b/apps/api/Accounts/AccountNamePolicy.cs @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com> +// SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.0 + using System.Collections.Frozen; using System.Text.RegularExpressions; diff --git a/apps/api/Accounts/AccountRecord.cs b/apps/api/Accounts/AccountRecord.cs index 14b79b1..a098fd1 100644 --- a/apps/api/Accounts/AccountRecord.cs +++ b/apps/api/Accounts/AccountRecord.cs @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com> +// SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.0 + namespace Progmasoft.Progmaweb.Api.Accounts; internal sealed record AccountRecord( diff --git a/apps/api/Accounts/AccountService.cs b/apps/api/Accounts/AccountService.cs index e72f289..a3f83ad 100644 --- a/apps/api/Accounts/AccountService.cs +++ b/apps/api/Accounts/AccountService.cs @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com> +// SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.0 + using Microsoft.AspNetCore.Identity; namespace Progmasoft.Progmaweb.Api.Accounts; diff --git a/apps/api/Accounts/EmailAddressPolicy.cs b/apps/api/Accounts/EmailAddressPolicy.cs index a057e6e..9edadc8 100644 --- a/apps/api/Accounts/EmailAddressPolicy.cs +++ b/apps/api/Accounts/EmailAddressPolicy.cs @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com> +// SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.0 + using System.Net.Mail; namespace Progmasoft.Progmaweb.Api.Accounts; diff --git a/apps/api/Accounts/IAccountStore.cs b/apps/api/Accounts/IAccountStore.cs index e5a8b44..7414164 100644 --- a/apps/api/Accounts/IAccountStore.cs +++ b/apps/api/Accounts/IAccountStore.cs @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com> +// SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.0 + namespace Progmasoft.Progmaweb.Api.Accounts; internal interface IAccountStore diff --git a/apps/api/Accounts/InMemoryAccountStore.cs b/apps/api/Accounts/InMemoryAccountStore.cs index f4e1418..9e07a8f 100644 --- a/apps/api/Accounts/InMemoryAccountStore.cs +++ b/apps/api/Accounts/InMemoryAccountStore.cs @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com> +// SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.0 + namespace Progmasoft.Progmaweb.Api.Accounts; // This development store models the uniqueness and session semantics required by the future PostgreSQL implementation. diff --git a/apps/api/Accounts/PasswordPolicy.cs b/apps/api/Accounts/PasswordPolicy.cs index f40b220..8463756 100644 --- a/apps/api/Accounts/PasswordPolicy.cs +++ b/apps/api/Accounts/PasswordPolicy.cs @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com> +// SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.0 + namespace Progmasoft.Progmaweb.Api.Accounts; internal static class PasswordPolicy diff --git a/apps/api/Accounts/SessionService.cs b/apps/api/Accounts/SessionService.cs index 010b9fb..5334530 100644 --- a/apps/api/Accounts/SessionService.cs +++ b/apps/api/Accounts/SessionService.cs @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com> +// SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.0 + using System.Security.Cryptography; using Microsoft.Extensions.Options; diff --git a/apps/api/Progmaweb.Api.csproj b/apps/api/Progmaweb.Api.csproj index 6412f37..57255cd 100644 --- a/apps/api/Progmaweb.Api.csproj +++ b/apps/api/Progmaweb.Api.csproj @@ -1,3 +1,6 @@ +<!-- SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com> --> +<!-- SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.0 --> + <Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>net10.0</TargetFramework> diff --git a/apps/api/Program.cs b/apps/api/Program.cs index 5ca2e17..68d3f26 100644 --- a/apps/api/Program.cs +++ b/apps/api/Program.cs @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com> +// SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.0 + using System.Threading.RateLimiting; using Microsoft.AspNetCore.HttpOverrides; using Progmasoft.Progmaweb.Api.Accounts; diff --git a/apps/api/Security/SecurityHeadersMiddleware.cs b/apps/api/Security/SecurityHeadersMiddleware.cs index fbb555f..8290afd 100644 --- a/apps/api/Security/SecurityHeadersMiddleware.cs +++ b/apps/api/Security/SecurityHeadersMiddleware.cs @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com> +// SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.0 + namespace Progmasoft.Progmaweb.Api.Security; internal sealed class SecurityHeadersMiddleware(RequestDelegate next) diff --git a/apps/web/app/[accountName]/dashboard/page.tsx b/apps/web/app/[accountName]/dashboard/page.tsx index afb4d9f..daeb4be 100644 --- a/apps/web/app/[accountName]/dashboard/page.tsx +++ b/apps/web/app/[accountName]/dashboard/page.tsx @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com> +// SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.0 + import type { Metadata } from "next"; import { DashboardClient } from "@/components/DashboardClient"; diff --git a/apps/web/app/account/page.tsx b/apps/web/app/account/page.tsx index 05a7b69..f5f9409 100644 --- a/apps/web/app/account/page.tsx +++ b/apps/web/app/account/page.tsx @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com> +// SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.0 + import type { Metadata } from "next"; import Link from "next/link"; import { Footer } from "@/components/Footer"; diff --git a/apps/web/app/globals.css b/apps/web/app/globals.css index 2cfb5b5..a481a52 100644 --- a/apps/web/app/globals.css +++ b/apps/web/app/globals.css @@ -1,3 +1,6 @@ +/* SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com> */ +/* SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.0 */ + :root { --blue-700: #004e8c; --blue-600: #0066b8; diff --git a/apps/web/app/layout.tsx b/apps/web/app/layout.tsx index 30c97e2..d17b927 100644 --- a/apps/web/app/layout.tsx +++ b/apps/web/app/layout.tsx @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com> +// SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.0 + import type { Metadata } from "next"; import type { ReactNode } from "react"; import "./globals.css"; diff --git a/apps/web/app/login/page.tsx b/apps/web/app/login/page.tsx index b6bfff7..2162ffe 100644 --- a/apps/web/app/login/page.tsx +++ b/apps/web/app/login/page.tsx @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com> +// SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.0 + import type { Metadata } from "next"; import { AccountShell } from "@/components/AccountShell"; import { AuthForm } from "@/components/AuthForm"; diff --git a/apps/web/app/page.tsx b/apps/web/app/page.tsx index de9cdfc..d499c3d 100644 --- a/apps/web/app/page.tsx +++ b/apps/web/app/page.tsx @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com> +// SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.0 + import { Footer } from "@/components/Footer"; import { SiteHeader } from "@/components/SiteHeader"; diff --git a/apps/web/app/recover/page.tsx b/apps/web/app/recover/page.tsx index ae1c523..40444aa 100644 --- a/apps/web/app/recover/page.tsx +++ b/apps/web/app/recover/page.tsx @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com> +// SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.0 + import type { Metadata } from "next"; import Link from "next/link"; diff --git a/apps/web/app/register/page.tsx b/apps/web/app/register/page.tsx index b317a6e..97c63e5 100644 --- a/apps/web/app/register/page.tsx +++ b/apps/web/app/register/page.tsx @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com> +// SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.0 + import type { Metadata } from "next"; import { AccountShell } from "@/components/AccountShell"; import { AuthForm } from "@/components/AuthForm"; diff --git a/apps/web/app/robots.ts b/apps/web/app/robots.ts index f1a7105..a06b468 100644 --- a/apps/web/app/robots.ts +++ b/apps/web/app/robots.ts @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com> +// SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.0 + import type { MetadataRoute } from "next"; export default function robots(): MetadataRoute.Robots { diff --git a/apps/web/app/sitemap.ts b/apps/web/app/sitemap.ts index d9f73bb..5091788 100644 --- a/apps/web/app/sitemap.ts +++ b/apps/web/app/sitemap.ts @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com> +// SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.0 + import type { MetadataRoute } from "next"; export default function sitemap(): MetadataRoute.Sitemap { diff --git a/apps/web/components/AccountShell.tsx b/apps/web/components/AccountShell.tsx index 1519a2a..af335ad 100644 --- a/apps/web/components/AccountShell.tsx +++ b/apps/web/components/AccountShell.tsx @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com> +// SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.0 + import type { ReactNode } from "react"; import { SiteHeader } from "./SiteHeader"; diff --git a/apps/web/components/AuthForm.tsx b/apps/web/components/AuthForm.tsx index 310822c..56fb78d 100644 --- a/apps/web/components/AuthForm.tsx +++ b/apps/web/components/AuthForm.tsx @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com> +// SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.0 + "use client"; import Link from "next/link"; diff --git a/apps/web/components/Brand.tsx b/apps/web/components/Brand.tsx index 8baf825..2e84d3c 100644 --- a/apps/web/components/Brand.tsx +++ b/apps/web/components/Brand.tsx @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com> +// SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.0 + import Link from "next/link"; interface BrandProps { diff --git a/apps/web/components/DashboardClient.tsx b/apps/web/components/DashboardClient.tsx index b029808..0347559 100644 --- a/apps/web/components/DashboardClient.tsx +++ b/apps/web/components/DashboardClient.tsx @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com> +// SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.0 + "use client"; import { useEffect, useState } from "react"; diff --git a/apps/web/components/Footer.tsx b/apps/web/components/Footer.tsx index 2962522..388b859 100644 --- a/apps/web/components/Footer.tsx +++ b/apps/web/components/Footer.tsx @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com> +// SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.0 + import { Brand } from "./Brand"; export function Footer() { diff --git a/apps/web/components/SiteHeader.tsx b/apps/web/components/SiteHeader.tsx index 2495279..91e6dbe 100644 --- a/apps/web/components/SiteHeader.tsx +++ b/apps/web/components/SiteHeader.tsx @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com> +// SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.0 + import Link from "next/link"; import { Brand } from "./Brand"; diff --git a/apps/web/eslint.config.mjs b/apps/web/eslint.config.mjs index 56ed46f..a044361 100644 --- a/apps/web/eslint.config.mjs +++ b/apps/web/eslint.config.mjs @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com> +// SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.0 + import { defineConfig, globalIgnores } from "eslint/config"; import nextCoreWebVitals from "eslint-config-next/core-web-vitals"; import nextTypeScript from "eslint-config-next/typescript"; diff --git a/apps/web/next.config.ts b/apps/web/next.config.ts index f32d55c..61eb5d8 100644 --- a/apps/web/next.config.ts +++ b/apps/web/next.config.ts @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com> +// SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.0 + import type { NextConfig } from "next"; const nextConfig: NextConfig = { diff --git a/apps/web/package.json b/apps/web/package.json index b4ccec9..ba3bcf5 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -2,6 +2,11 @@ "name": "@progmasoft/web", "version": "1.0.0", "private": true, + "license": "AGPL-3.0-or-later", + "author": { + "name": "Progmasoft", + "email": "support@progmasoft.com" + }, "scripts": { "dev": "next dev", "build": "next build", diff --git a/apps/web/proxy.ts b/apps/web/proxy.ts index 06bbc8c..475d9c8 100644 --- a/apps/web/proxy.ts +++ b/apps/web/proxy.ts @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com> +// SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.0 + import type { NextRequest } from "next/server"; import { NextResponse } from "next/server"; |