Read-only mirrors. Development, issues and pull requests are on GitHub.

summaryrefslogtreecommitdiffhomepage
path: root/apps
diff options
context:
space:
mode:
authorLeitwolf112026-08-29 11:01:02 +0300
committerLeitwolf112026-08-29 11:01:02 +0300
commitc8073a82bbc8d39d8a45334bdcd969d00a3c3f1c (patch)
treecfbdccab474bce8c31eb4268d4045ae2a6bed641 /apps
parent762890d8a3ad02d841d5b46fbbf578e35ffc8708 (diff)
downloadprogmaweb-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')
-rw-r--r--apps/api-tests/AccountApiFactory.cs3
-rw-r--r--apps/api-tests/AccountEndpointTests.cs3
-rw-r--r--apps/api-tests/GlobalUsings.cs3
-rw-r--r--apps/api-tests/Progmaweb.Api.Tests.csproj3
-rw-r--r--apps/api-tests/SecurityHeaderTests.cs3
-rw-r--r--apps/api/Accounts/AccountContracts.cs3
-rw-r--r--apps/api/Accounts/AccountEndpoints.cs3
-rw-r--r--apps/api/Accounts/AccountNamePolicy.cs3
-rw-r--r--apps/api/Accounts/AccountRecord.cs3
-rw-r--r--apps/api/Accounts/AccountService.cs3
-rw-r--r--apps/api/Accounts/EmailAddressPolicy.cs3
-rw-r--r--apps/api/Accounts/IAccountStore.cs3
-rw-r--r--apps/api/Accounts/InMemoryAccountStore.cs3
-rw-r--r--apps/api/Accounts/PasswordPolicy.cs3
-rw-r--r--apps/api/Accounts/SessionService.cs3
-rw-r--r--apps/api/Progmaweb.Api.csproj3
-rw-r--r--apps/api/Program.cs3
-rw-r--r--apps/api/Security/SecurityHeadersMiddleware.cs3
-rw-r--r--apps/web/app/[accountName]/dashboard/page.tsx3
-rw-r--r--apps/web/app/account/page.tsx3
-rw-r--r--apps/web/app/globals.css3
-rw-r--r--apps/web/app/layout.tsx3
-rw-r--r--apps/web/app/login/page.tsx3
-rw-r--r--apps/web/app/page.tsx3
-rw-r--r--apps/web/app/recover/page.tsx3
-rw-r--r--apps/web/app/register/page.tsx3
-rw-r--r--apps/web/app/robots.ts3
-rw-r--r--apps/web/app/sitemap.ts3
-rw-r--r--apps/web/components/AccountShell.tsx3
-rw-r--r--apps/web/components/AuthForm.tsx3
-rw-r--r--apps/web/components/Brand.tsx3
-rw-r--r--apps/web/components/DashboardClient.tsx3
-rw-r--r--apps/web/components/Footer.tsx3
-rw-r--r--apps/web/components/SiteHeader.tsx3
-rw-r--r--apps/web/eslint.config.mjs3
-rw-r--r--apps/web/next.config.ts3
-rw-r--r--apps/web/package.json5
-rw-r--r--apps/web/proxy.ts3
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";