diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 7e21a72..9f28c9a 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,8 +1,8 @@ blank_issues_enabled: false contact_links: - name: GitHub Discussions - url: https://github.com/umesh0492/go-app-kit/discussions + url: https://github.com/Abeta-dev/go-app-kit/discussions about: Ask questions, share architecture designs, and discuss ideas with the community. - name: Security Vulnerability Report - url: https://github.com/umesh0492/go-app-kit/security/advisories/new + url: https://github.com/Abeta-dev/go-app-kit/security/advisories/new about: Privately report a security vulnerability according to our security policy. diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index ce1ad4a..1792611 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -59,7 +59,7 @@ representative at an online or offline event. ## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders at [umesh0492@gmail.com](mailto:umesh0492@gmail.com) or via GitHub private reporting. +reported to the community leaders at [security@abeta.dev](mailto:security@abeta.dev) or via GitHub private reporting. All complaints will be reviewed and investigated promptly and fairly. All community leaders are obligated to respect the privacy and security of the diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7996751..284c376 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -151,5 +151,5 @@ This removes local build binaries (`invoice_service`, `examples/invoice_service/ ## 6. Need Help? -- **Questions & Discussions**: Open a [GitHub Discussion](https://github.com/umesh0492/go-app-kit/discussions) for architecture or design questions. +- **Questions & Discussions**: Open a [GitHub Discussion](https://github.com/Abeta-dev/go-app-kit/discussions) for architecture or design questions. - **Security Inquiries**: Please consult [SECURITY.md](SECURITY.md) for our private vulnerability disclosure process. Do NOT file public issues for security vulnerabilities. diff --git a/LICENSE b/LICENSE index 4933b5c..023be9d 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2026 Umesh Gupta (umesh0492) +Copyright (c) 2026 Abeta. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index ffdc076..b0992e2 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ > Current main-line published release: `v0.3.2`. The lightweight `v0.3.0` tag points to an earlier commit and remains an immutable, separate artifact. See [Release Baseline](docs/RELEASE_BASELINE.md) before selecting a release or publishing a reconciliation. -[![CI](https://github.com/umesh0492/go-app-kit/actions/workflows/ci.yml/badge.svg)](https://github.com/umesh0492/go-app-kit/actions/workflows/ci.yml) +[![CI](https://github.com/Abeta-dev/go-app-kit/actions/workflows/ci.yml/badge.svg)](https://github.com/Abeta-dev/go-app-kit/actions/workflows/ci.yml) [![Code Quality: golangci-lint](https://img.shields.io/badge/code%20quality-golangci--lint-brightgreen?logo=go)](https://golangci-lint.run/) [![Go Version](https://img.shields.io/badge/Go-1.26.0-00ADD8?logo=go)](https://go.dev/) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) @@ -10,7 +10,7 @@ **Production-grade enterprise application and domain accelerator kit for Go.** -While [`go-libs`](https://github.com/umesh0492/go-libs) provides low-level, zero-dependency microservice systems engineering (resilience, concurrency pools, rate limiting, SRE golden signals), **`go-app-kit`** delivers high-velocity business capabilities: **Indian localized fintech helpers (GSTIN, PAN, IFSC, Aadhaar), transactional outbox with PostgreSQL DDL, multi-channel notifications, PDF document generation with GST invoice templates, partitioned compliance audit logging, and streaming data exports**. +While [`go-libs`](https://github.com/Abeta-dev/go-libs) provides low-level, zero-dependency microservice systems engineering (resilience, concurrency pools, rate limiting, SRE golden signals), **`go-app-kit`** delivers high-velocity business capabilities: **Indian localized fintech helpers (GSTIN, PAN, IFSC, Aadhaar), transactional outbox with PostgreSQL DDL, multi-channel notifications, PDF document generation with GST invoice templates, partitioned compliance audit logging, and streaming data exports**. --- @@ -70,7 +70,7 @@ With `go.work` in place, any changes in `go-libs` are immediately reflected in ` `go-app-kit` contains no local `replace` directives. Published builds resolve `github.com/umesh0492/go-libs@v0.2.1` and `github.com/umesh0492/go-fintech-india@v0.2.3` from the Go proxy. The repository's immutable release and isolated-consumer verification are documented in [Release Baseline](docs/RELEASE_BASELINE.md). ### Concurrency Architecture & Dependency on `go-libs/workerpool` -`go-app-kit`'s asynchronous background execution in `notifications` (async multi-channel fan-out) and `audit` (asynchronous audit log ingestion) imports [`go-libs/workerpool`](https://github.com/umesh0492/go-libs/tree/main/workerpool) directly. It leverages bounded concurrency, graceful draining, panic resilience, and Prometheus saturation metrics without maintaining any duplicated forks. +`go-app-kit`'s asynchronous background execution in `notifications` (async multi-channel fan-out) and `audit` (asynchronous audit log ingestion) imports [`go-libs/workerpool`](https://github.com/Abeta-dev/go-libs/tree/main/workerpool) directly. It leverages bounded concurrency, graceful draining, panic resilience, and Prometheus saturation metrics without maintaining any duplicated forks. --- @@ -127,7 +127,7 @@ pdfBuf, err := pdf.GenerateFromTemplate(pdf.GSTInvoiceTemplate, invoiceData, --- ### 3. `notifications` - Multi-Channel Notification Dispatcher -Central broker powered by bounded workerpools (adhering to the [`go-libs/workerpool`](https://github.com/umesh0492/go-libs/tree/main/workerpool) concurrency architecture) supporting sync and async delivery: +Central broker powered by bounded workerpools (adhering to the [`go-libs/workerpool`](https://github.com/Abeta-dev/go-libs/tree/main/workerpool) concurrency architecture) supporting sync and async delivery: - **SMTP Email** (`NewEmailSender`): RFC 2822 / MIME multipart messaging (text/plain, text/html, attachments, and authentication). - **Slack** (`NewSlackSender`): Structured Slack Webhook adapter with priority color bars (Red for Critical, Orange for High, Blue for Normal, Green for Low) and metadata fields. - **Webhook** (`NewWebhookSender`, `VerifyWebhook`, `WebhookVerifier`): HTTP POST webhook with `X-Signature-SHA256` HMAC tamper-proofing, replay prevention via timestamp binding, and constant-time signature verification. diff --git a/SECURITY.md b/SECURITY.md index 23d69e3..1d0f085 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -21,13 +21,13 @@ Instead, report vulnerabilities through one of the following confidential channe ### 1. GitHub Private Vulnerability Reporting (Preferred) Submit a confidential advisory directly via GitHub: -- Navigate to the **Security** tab of `github.com/umesh0492/go-app-kit`. +- Navigate to the **Security** tab of `github.com/Abeta-dev/go-app-kit`. - Click **"Report a vulnerability"** to open a private advisory draft. - Include a description, affected package(s), minimal reproduction or proof-of-concept (PoC), and potential impact. ### 2. Direct Security Contact If you cannot use GitHub Security Advisories, email the maintainer directly: -- **Email**: [umesh0492@gmail.com](mailto:umesh0492@gmail.com) +- **Email**: [security@abeta.dev](mailto:security@abeta.dev) - **Subject**: `[SECURITY] go-app-kit Vulnerability Report: ` - Please include full reproduction steps and environment details. diff --git a/india/aadhaar.go b/india/aadhaar.go index c3bb8ef..4651da8 100644 --- a/india/aadhaar.go +++ b/india/aadhaar.go @@ -23,7 +23,7 @@ var ( // ValidateAadhaar verifies that an Aadhaar number is 12 digits, does not start with 0 or 1, // and satisfies the official UIDAI Verhoeff dihedral D5 checksum. -// Delegates statutory validation to github.com/umesh0492/go-fintech-india. +// Delegates statutory validation to Abeta go-fintech-india. func ValidateAadhaar(aadhaar string) error { clean := strings.ReplaceAll(strings.ReplaceAll(strings.TrimSpace(aadhaar), "-", ""), " ", "") if len(clean) != 12 { @@ -65,7 +65,7 @@ func MaskAadhaar(aadhaar string) string { } // FormatAadhaar formats an Aadhaar into standard 4-digit groups (e.g., "1234 5678 9012"). -// Delegates formatting to github.com/umesh0492/go-fintech-india. +// Delegates formatting to Abeta go-fintech-india. func FormatAadhaar(aadhaar string) string { clean := strings.ReplaceAll(strings.ReplaceAll(strings.TrimSpace(aadhaar), "-", ""), " ", "") if len(clean) != 12 { diff --git a/india/currency.go b/india/currency.go index 7a0d7a5..e59b207 100644 --- a/india/currency.go +++ b/india/currency.go @@ -9,14 +9,14 @@ import ( // FormatINRPaise formats an exact integer amount in paise (1 INR = 100 paise) // into Indian currency format with comma placements and two decimal digits. // e.g. 123456789 -> "12,34,567.89", -5000 -> "-50.00" -// Delegates formatting to github.com/umesh0492/go-fintech-india. +// Delegates formatting to Abeta go-fintech-india. func FormatINRPaise(paise int64) string { return fintechin.FormatINR(paise) } // AmountToWordsINR converts an integer rupee amount into words following the Indian numbering system. // Supports amounts up to arbitrary Crores (Crore, Lakh, Thousand, Hundred). -// Delegates word conversion to github.com/umesh0492/go-fintech-india. +// Delegates word conversion to Abeta go-fintech-india. func AmountToWordsINR(amount int64) string { if amount == 0 { return "Zero Rupees Only" diff --git a/india/doc.go b/india/doc.go index 192fe58..48fba26 100644 --- a/india/doc.go +++ b/india/doc.go @@ -2,6 +2,6 @@ // and formatting helpers tailored for Indian enterprise SaaS and fintech workflows. // // Deprecated: This package is maintained solely as a backward-compatibility façade. -// Developers should import github.com/umesh0492/go-fintech-india directly for +// Developers should import the Abeta Indian fintech library directly for // statutory Indian fintech primitives (Aadhaar, GSTIN, PAN, IFSC, etc.). package india diff --git a/india/fy.go b/india/fy.go index beb07b4..fca1212 100644 --- a/india/fy.go +++ b/india/fy.go @@ -49,7 +49,7 @@ type FinancialYear struct { // Converts timestamps to Asia/Kolkata IST location before computing calendar year, month, or day boundaries // to prevent 5.5h/day UTC shift errors. // In India, the Financial Year begins on April 1st and ends on March 31st. -// Delegates statutory financial year calculation to github.com/umesh0492/go-fintech-india. +// Delegates statutory financial year calculation to Abeta go-fintech-india. func GetFinancialYear(t time.Time) FinancialYear { tIST := t.In(istLocation) finFY := fintechin.FYFromDate(tIST) diff --git a/india/gstin.go b/india/gstin.go index cef8cd2..def3e99 100644 --- a/india/gstin.go +++ b/india/gstin.go @@ -32,7 +32,7 @@ type GSTINDetails struct { } // ValidateGSTIN checks length, regex format, state code, and the official mod-36 checksum. -// Delegates statutory validation to github.com/umesh0492/go-fintech-india. +// Delegates statutory validation to Abeta go-fintech-india. func ValidateGSTIN(gstin string) error { clean := strings.ToUpper(strings.TrimSpace(gstin)) if len(clean) != 15 { @@ -81,7 +81,7 @@ func ParseGSTIN(gstin string) (*GSTINDetails, error) { } // CalculateGSTINCheckDigit computes the official mod-36 checksum character for the first 14 chars. -// Delegates calculation to github.com/umesh0492/go-fintech-india. +// Delegates calculation to Abeta go-fintech-india. func CalculateGSTINCheckDigit(input14 string) byte { clean := strings.ToUpper(strings.TrimSpace(input14)) check, err := fintechin.CalculateGSTINChecksum(clean) diff --git a/india/ifsc.go b/india/ifsc.go index cde0e37..e41b08a 100644 --- a/india/ifsc.go +++ b/india/ifsc.go @@ -21,7 +21,7 @@ var ( ) // ValidateIFSC checks the structural validity of an Indian Financial System Code. -// Delegates statutory validation to github.com/umesh0492/go-fintech-india. +// Delegates statutory validation to Abeta go-fintech-india. func ValidateIFSC(code string) error { clean := strings.ToUpper(strings.TrimSpace(code)) if len(clean) != 11 { @@ -44,7 +44,7 @@ func IsValidIFSC(code string) bool { } // GetBankCode extracts the 4-letter bank identifier prefix from an IFSC code. -// Delegates extraction to github.com/umesh0492/go-fintech-india. +// Delegates extraction to Abeta go-fintech-india. func GetBankCode(code string) (string, error) { if err := ValidateIFSC(code); err != nil { return "", err @@ -54,7 +54,7 @@ func GetBankCode(code string) (string, error) { } // GetBranchCode extracts the 6-character branch identifier from an IFSC code. -// Delegates extraction to github.com/umesh0492/go-fintech-india. +// Delegates extraction to Abeta go-fintech-india. func GetBranchCode(code string) (string, error) { if err := ValidateIFSC(code); err != nil { return "", err diff --git a/india/money.go b/india/money.go index 2294481..bbac0fc 100644 --- a/india/money.go +++ b/india/money.go @@ -20,7 +20,7 @@ var ( // Money represents a monetary value in Indian Rupees stored as an exact integer count of paise (1 INR = 100 paise). // This eliminates IEEE-754 floating-point inaccuracies in financial and accounting operations. -// Delegates underlying monetary arithmetic to github.com/umesh0492/go-fintech-india. +// Delegates underlying monetary arithmetic to Abeta go-fintech-india. type Money struct { inner fintechin.Money } diff --git a/india/pan.go b/india/pan.go index b93acec..5dd064b 100644 --- a/india/pan.go +++ b/india/pan.go @@ -41,7 +41,7 @@ type PANDetails struct { } // ValidatePAN verifies the structural validity of a 10-character Indian PAN card number. -// Delegates statutory validation to github.com/umesh0492/go-fintech-india. +// Delegates statutory validation to Abeta go-fintech-india. func ValidatePAN(pan string) error { clean := strings.ToUpper(strings.TrimSpace(pan)) if len(clean) != 10 {