Skip to content

Releases: Ali-Marandi/FinAnalyzer

FinAnalyzer Enterprise v2.7.0

Choose a tag to compare

@Ali-Marandi Ali-Marandi released this 13 Aug 20:51

FinAnalyzer Enterprise v2.7.0 — Controlled Bank Reconciliation

نوع انتشار: قابلیت تجاری سازمانی و کنترل تکمیلی پیش از بستن دوره مالی.

قابلیت جدید: Bank Reconciliation Workspace

v2.7.0 یک فضای تطبیق بانکی به برنامه desktop اضافه می‌کند. postingهای جدید یا اصلاح‌شده در bank feed دیگر به‌عنوان طبقه‌بندی‌شده تلقی نمی‌شوند. هر PlaidTransactionMapping وضعیت تطبیق مستقل دارد و پس از import یا provider revision به needs_review بازمی‌گردد.

وضعیت نتیجه
needs_review نیازمند طبقه‌بندی انسانی پیش از close
exception نیازمند رفع توسط reviewer مستقل
matched طبقه‌بندی contra تأیید شده است
removed تراکنش از provider حذف شده و دیگر در صف review نیست

کاربر مجاز می‌تواند یک حساب contra هم‌شرکت و فعال انتخاب کند. سیستم فقط خط غیر بانکی همان journal entry متوازن را تغییر می‌دهد؛ مبلغ، خط بانک و تعداد lineها تغییر نمی‌کنند. انتخاب حساب بانک به‌عنوان contra، تراکنش pending، journal entry غیرposted، mapping حذف‌شده و هر دوره قفل‌شده block می‌شوند.

کنترل‌های امنیتی

permissionهای جدید bank.reconcile.match و bank.reconcile.exception.resolve به RBAC افزوده شدند. هر دو حساس هستند و MFA تازه می‌خواهند. کاربر ثبت‌کننده exception نمی‌تواند همان exception را resolve کند؛ این انکار به‌صورت bank.reconciliation.sod_denied در زنجیره HMAC ثبت می‌شود. service layer، نه UI، مجوز و scope شرکت را اعمال می‌کند.

PeriodCloseService اکنون علاوه بر تراکنش بانکی pending، هر mapping با وضعیت needs_review یا exception را به‌عنوان blocker با کد unreconciled_bank_transactions گزارش می‌کند. این بررسی هم هنگام request و هم قبل از approval/execution انجام می‌شود.

تجربه دسکتاپ

یک صفحه جدید با نام Bank Reconciliation به navigation اضافه شده است. صفحه summary وضعیت‌ها، صف باز بدون raw provider payload، انتخاب حساب contra، ثبت note و عملیات match/flag exception/resolve exception را فراهم می‌کند. عملیات همواره پس از Enterprise SSO انجام می‌شوند و در صورت شکست، UI ادعای تغییر جزئی موفق نمی‌کند.

migration و سازگاری

migration افزایشی SQLite v2.7 ستون‌های reconciliation status، note، reviewer و timestamp را به plaid_transaction_mappings اضافه می‌کند. mappingهای موجود به‌صورت محافظه‌کارانه با NEEDS_REVIEW مقداردهی می‌شوند تا close بدون reviewِ تاریخچه feed انجام نشود. هیچ داده یا entry موجود حذف نمی‌شود.

آزمون و اعتبارسنجی

تست جدید test_bank_reconciliation_v27.py پنج سناریو را پوشش می‌دهد: صف بررسی بدون raw payload، match متوازن، SoD برای exception، منع reclassification در دوره بسته و blocker readiness برای کار بانکی بررسی‌نشده. اجرای نهایی شامل کل test suite، کنترل نحوی، dependency gate Windows و بررسی diff خواهد بود.

مسیر تجاری بعدی

اولویت بعدی پیشنهادی Statement Reconciliation است: import statement، تطبیق شناسه و مبلغ با tolerance کنترل‌شده، split matching، certification balance و exception aging. سپس anchor کردن manifestهای evidence به SIEM یا WORM مستقل، سطح اطمینان audit را از workstation محلی فراتر می‌برد.

FinAnalyzer Enterprise v2.6.1

Choose a tag to compare

@Ali-Marandi Ali-Marandi released this 13 Aug 19:37

FinAnalyzer Enterprise v2.6.1 — Verified Compliance Evidence

نوع انتشار: قابلیت تجاری و سخت‌سازی انتشار.

افزوده‌های اصلی

نسخه v2.6.1 قابلیت Compliance Evidence Pack را اضافه می‌کند. این سرویس پس از MFA تازه، permission صریح compliance.evidence.export و اعتبارسنجی موفق کامل زنجیره HMAC، یک پوشه JSON company-scoped تولید می‌کند. محتوا شامل رخدادهای audit، سال‌های مالی، تاریخچه Period Close و manifest.json است. manifest، SHA-256 هر فایل و checkpoint زنجیره audit را نگه می‌دارد تا دریافت‌کننده مستقل بتواند integrity بسته را بررسی کند.

Export از یک chain نامعتبر عبور نمی‌کند. در این حالت، export block می‌شود، یک رخداد audit با outcome denied ثبت می‌گردد و هیچ پوشه partial قابل استفاده‌ای باقی نمی‌ماند. موفقیت export نیز به‌عنوان رخداد compliance ثبت می‌شود. فایل محلی evidence فقط یک staging point است و باید به مقصد تأییدشده SIEM، DMS یا WORM سازمان منتقل شود.

کنترل رفتار v2.6.1
Authentication AuthenticatedPrincipal معتبر از Enterprise SSO الزامی است
Authorization permission حساس compliance.evidence.export در scope همان شرکت بررسی می‌شود
MFA حداکثر سن MFA برای export برابر ۱۵ دقیقه است
Audit integrity AuditLogger.verify_chain() پیش از نوشتن فایل‌ها اجرا می‌شود
Confidentiality جزئیات audit که قبلاً redact شده‌اند export می‌شوند؛ secret جدید ذخیره نمی‌شود
File integrity hash هر JSON و hash canonical manifest در evidence ثبت می‌شود

رابط دسکتاپ

یک صفحه جدید با نام Compliance Evidence به برنامه Windows اضافه شده است. صفحه، session فعال را نمایش می‌دهد، Company ID و output directory می‌گیرد و manifest، SHA-256 و شمارش رخدادها را پس از export گزارش می‌کند. صفحه تنها accessibility UI است؛ authorization واقعی همچنان در service layer اجرا می‌شود.

بازبینی GitHub Actions

workflow امضای release با چهار SHA immutable برای actions/checkout، actions/setup-python، azure/login و Azure Artifact Signing action سخت‌تر شده است. این تغییر، وابستگی workflow به tagهای متحرک action را کاهش می‌دهد. artifactهای v2.6.1 به نام FinAnalyzer_Enterprise_v2_6_1.exe تولید می‌شوند.

امضای cloud واقعی هنوز منوط به پیکربندی Azure Artifact Signing، Entra federated credential و GitHub Environment production-signing است. تا پیش از تکمیل این تنظیمات، هیچ EXE امضاشده‌ای نباید به‌عنوان production artifact منتشر شود.

آزمون و اعتبارسنجی

مجموعه کامل پروژه با ۳۵ تست موفق اجرا شد. تست‌های جدید Evidence Pack، permission و MFA، manifest hash، redaction رخداد export و مسدودشدن export برای audit chain دستکاری‌شده را پوشش می‌دهند. کنترل نحوی ماژول‌های جدید، git diff --check و dependency gate Windows نیز با موفقیت اجرا شدند.

قابلیت‌های پیشنهادی بعدی

اولویت قابلیت دلیل تجاری
بالا Reconciliation Workspace حل exceptionهای bank/ledger پیش از close و کاهش زمان بستن ماهانه
بالا SIEM/WORM Anchor نگهداری مستقل head hash و manifest برای کنترل compromise محلی
متوسط Approval Policy Builder تنظیم ruleهای مبلغ، entity و SoD بدون تغییر code
متوسط Consolidation و FX پشتیبانی گروه‌های چندشرکتی و remeasurement کنترل‌شده

FinAnalyzer Enterprise v2.6.0

Choose a tag to compare

@Ali-Marandi Ali-Marandi released this 13 Aug 19:24

FinAnalyzer Enterprise v2.6.0 — آمادگی بستن دوره و انتشار Windows قابل‌راستی‌آزمایی

نوع انتشار: قابلیت تجاری و سخت‌سازی امنیتی.
دامنه: کنترل‌های پیش از Period Close، اتمیک‌سازی بانک، نمونه قابل‌اجرا برای audit chain و راه‌اندازی امضای خودکار Windows.

قابلیت تجاری جدید: Close Readiness Controls

v2.6.0 یک کنترل پیشگیرانه پیش از ایجاد یا اجرای Period Close اضافه می‌کند. سرویس PeriodCloseService.assess_readiness() یک گزارش explainable تولید می‌کند و request یا approval را دوباره پیش از mutation اصلی بررسی می‌کند. بنابراین «ready بودن در زمان درخواست» برای اجرای close کافی نیست؛ تمام blockerها در مرحله approval نیز ارزیابی می‌شوند.

blocker اثر تجاری
fiscal_year_missing یا fiscal_year_already_closed جلوگیری از close روی دوره نامعتبر یا از پیش قفل‌شده
closing_account_out_of_scope یا closing_account_ineligible جلوگیری از انتقال سود/زیان به حساب خارج از شرکت یا غیرحقوق صاحبان سهام
active_close_request جلوگیری از workflow موازی یا تأییدهای مبهم
unbalanced_journal_entry جلوگیری از قفل شدن دفتر دارای entry نامتوازن
pending_bank_transactions جلوگیری از close قبل از تعیین تکلیف تراکنش‌های بانکی معلق
audit_chain_invalid جلوگیری از close هنگامی که evidence امنیتی local نامعتبر است

نتیجه assessment در زنجیره HMAC با رخداد period_close.readiness_assessed ثبت می‌شود. outcome برابر success یا denied و جزئیات آن فقط شامل phase، fiscal year و کدهای blocker/warning است؛ secret یا payload بانکی در audit ذخیره نمی‌شود.

کنترل‌های بانکی و SoD

مسیر Plaid اکنون در sync روی دوره بسته، در revision تراکنش و در removal تراکنش قبل از mutation متوقف می‌شود. failure باید به‌طور atomic journal entry، transaction lines، mapping و cursor را rollback کند. v2.6.0 همچنین readiness را در approval دوباره ارزیابی می‌کند تا pending bank work ایجادشده پس از request، period را به‌اشتباه قفل نکند.

امضای خودکار Windows و OIDC

workflow .github/workflows/release-sign.yml برای release tagهای semantic، build، dependency gate، test suite، Azure OIDC، Azure Artifact Signing، RFC 3161 timestamp، Authenticode verification و upload evidence را آماده می‌کند. این workflow تا زمان پیکربندی Entra Federation و GitHub Environment production-signing امضای واقعی انجام نمی‌دهد.

asset انتشار پس از پیکربندی هدف
FinAnalyzer_Enterprise_v2_6.exe EXE امضاشده Authenticode
FinAnalyzer_Enterprise_v2_6.exe.sha256 تأیید integrity دانلود
signed-release-evidence.json commit، signer، timestamp و hash قابل‌ممیزی

نمونه آموزشی audit chain

فایل scripts/demo_hmac_audit_chain.py نمونه مستقل و بدون database ارائه می‌دهد. این نمونه redaction، payload canonical، HMAC-SHA256، verification و تغییر عمدی event را نشان می‌دهد. اجرای موفق باید ابتدا chain معتبر و سپس دستکاری در sequence دوم را به‌شکل HMAC mismatch گزارش کند.

اعتبارسنجی

مجموعه Period Close به ۱۲ تست رسید و سناریوهای SoD، MFA، account scope، duplicate request، rollback، pending bank blocker، unbalanced legacy entry و approval recheck را پوشش می‌دهد. مجموعه کامل test suite قبل از release باید همراه dependency gate Windows اجرا شود.

قابلیت‌های تجاری بعدی

اولویت قابلیت ارزش تجاری
بالا Evidence export به SIEM/WORM و anchor روزانه hash حسابرسی مستقل و کاهش ریسک compromise محلی
بالا Reconciliation workspace برای بانک، ledger و statement کوتاه‌شدن close cycle و کنترل exceptionها
بالا Approval matrix قابل‌پیکربندی با سقف مبلغ و SoD rule builder انطباق شرکت‌های چندواحدی و کنترل داخلی دقیق‌تر
متوسط Budget vs actual، forecast scenario و driver-based planning مدیریت عملکرد و برنامه‌ریزی مالی
متوسط Multi-currency remeasurement و FX gain/loss workflow پشتیبانی شرکت‌های بین‌المللی
متوسط e-Invoicing، tax engine و integration با ERP/CRM کاهش ورود دستی و افزایش اتوماسیون
متوسط Document retention، OCR invoice و three-way matching کنترل AP و آماده‌سازی audit
پایین Mobile approval برای مدیران با device posture تسریع approvalهای کنترل‌شده
پایین Plugin/connector SDK با sandbox و policy گسترش اکوسیستم و درآمد B2B

در این release، قابلیت اولویت‌دار Close Readiness Controls از پیشنهاد به پیاده‌سازی، آزمون و رابط دسکتاپ تبدیل شده است. قابلیت بعدی پیشنهادی، Reconciliation Workspace به‌همراه export evidence خارجی است؛ این دو قابلیت باید پس از تعیین سامانه مقصد SIEM/WORM و بانک‌های هدف پیاده‌سازی شوند.

FinAnalyzer Enterprise v2.5.0

Choose a tag to compare

@Ali-Marandi Ali-Marandi released this 12 Aug 22:29

یادداشت انتشار FinAnalyzer Enterprise — نسخه 2.5.0

تاریخ انتشار: ۱۳ اوت ۲۰۲۶
وضعیت: آماده برای build و امضای Windows در محیط ایزوله
حوزه انتشار: کنترل بستن دوره مالی، تفکیک وظایف، رابط دسکتاپ و automation امضای EXE

نسخه 2.5.0 بر پایه امنیت v2.4.0 ساخته شده است. این انتشار، یک کنترل تجاری قابل‌استفاده را به محصول اضافه می‌کند: بستن سال مالی تنها با درخواست و تأیید دو کاربر مستقل، MFA تازه و شواهد audit زنجیره‌ای انجام می‌شود.

قابلیت جدید: Controlled Financial Period Close

FinAnalyzer اکنون workflow بستن دوره مالی را از یک فراخوانی مستقیم حسابداری به یک فرایند کنترل‌شده تبدیل می‌کند. کاربر دارای مجوز ledger.period.close.request می‌تواند با یک session دارای MFA تازه درخواست بستن سال مالی ثبت کند. سپس کاربر مستقل دارای مجوز ledger.period.close.approve—نقش پیشنهادی financial_controller—می‌تواند درخواست را بررسی، رد یا تأیید و اجرا کند.

کنترل رفتار v2.5.0
MFA هر دو مرحله درخواست و تأیید به MFA حداکثر ۱۵ دقیقه نیاز دارند.
RBAC دو permission حساس مستقل برای درخواست و تأیید تعریف شده‌اند.
تفکیک وظایف درخواست‌کننده نمی‌تواند درخواست خود را تأیید یا رد کند.
محدوده شرکت درخواست، حساب retained earnings و سال مالی در scope همان company بررسی می‌شوند.
atomicity closing entry، قفل سال مالی، وضعیت workflow و رخداد audit در یک تراکنش هماهنگ ثبت می‌شوند.
هم‌زمانی SQLite فقط یک درخواست active (PENDING یا APPROVED) برای هر شرکت/سال مالی می‌پذیرد.
ممیزی درخواست، اجرا و تلاش نقض SoD با audit event ساختاریافته در HMAC chain ثبت می‌شوند.

تجربه دسکتاپ

صفحه جدید Period Close Controls به navigation اپلیکیشن افزوده شد. این صفحه امکان ثبت درخواست، انتخاب درخواست، تأیید/اجرای close و مشاهده تاریخچه درخواست‌ها را فراهم می‌کند. عملیات حساس تا زمان SSO سازمانی و ارائه evidence MFA معتبر، غیرفعال هستند.

انتشار Windows امضاشده

اسکریپت PowerShell جدید scripts/build_signed_windows_release.ps1 کل مسیر release را در یک فرایند fail-closed انجام می‌دهد: ایجاد virtual environment تازه، نصب manifest ساخت، اجرای dependency gate، ساخت EXE، امضای Authenticode با گواهی موجود در certificate store کاربر release، RFC 3161 timestamp، verification با SignTool و تولید evidence SHA-256.

خروجی مسیر
فایل اجرایی dist/FinAnalyzer_Enterprise_v2_5.exe
snapshot وابستگی‌ها security-reports/windows-build-dependencies.json
خروجی ممیزی بسته‌ها security-reports/pip-audit.json
evidence امضا security-reports/signed-release-evidence.json

کلید خصوصی گواهی در آرگومان خط فرمان، repository یا فایل release قرار نمی‌گیرد. اسکریپت فقط thumbprint گواهی را می‌پذیرد و وجود private key، Code Signing EKU و اعتبار گواهی را پیش از امضا کنترل می‌کند.

اعتبارسنجی

کنترل نتیجه
syntax compile ماژول‌های جدید و رابط UI موفق
تست کامل پروژه ۲۰ تست موفق
بستن دوره با تأیید کاربر مستقل موفق
مسدودسازی self-approval و ثبت audit موفق
رد درخواست با MFA منقضی موفق
وابستگی‌های Windows و pip-audit موفق در محیط اعتبارسنجی

سازگاری و ملاحظات ارتقا

migration این نسخه افزایشی است. جدول period_close_requests و index کنترل درخواست فعال با Base.metadata.create_all() و migration SQLite ایجاد می‌شوند. اجرای DatabaseManager.init_database() در شروع برنامه علاوه بر schema، role و permission جدید financial_controller و catalog مجوزهای بستن دوره را به‌صورت idempotent bootstrap می‌کند.

برای release عمومی Windows، باید فایل EXE نهایی طبق docs/V2_5_SIGNED_WINDOWS_EXE_FA.md در VM ویندوز clean ساخته، امضا و مستقلاً verify شود. این repository هیچ private key، PFX یا artifact امضانشده‌ای را منتشر نمی‌کند.

FinAnalyzer Enterprise v2.4.0

Choose a tag to compare

@Ali-Marandi Ali-Marandi released this 12 Aug 21:40

یادداشت انتشار FinAnalyzer Enterprise — نسخه 2.4.0

تاریخ انتشار: ۱۲ اوت ۲۰۲۶
وضعیت: آماده برای انتشار پس از ساخت در محیط ایزوله ویندوز
حوزه انتشار: لاگ ممیزی غیرقابل‌دست‌کاری، سخت‌سازی وابستگی‌ها و کنترل انتشار Windows EXE

این نسخه یک ارتقای امنیتی و عملیاتی است. هدف آن فراهم‌کردن قابلیت ردیابی قابل‌اتکا برای رخدادهای حساس سازمانی و جلوگیری از ساخت فایل اجرایی با وابستگی‌های شناخته‌شده آسیب‌پذیر است.

خلاصه مدیریتی

FinAnalyzer 2.4.0 مدل لاگ‌برداری قبلی را به یک ثبت رویداد ساختاریافته، زنجیره‌ای و قابل‌راستی‌آزمایی ارتقا می‌دهد. هر رخداد جدید با یک HMAC-SHA256 که به هش رخداد پیشین متصل است امضا می‌شود. کلید امضا در ویندوز با DPAPI حفاظت می‌شود؛ بنابراین تغییر یک رکورد تاریخی، حذف یک حلقه از زنجیره یا جایگزینی جزئیات رخداد در بررسی صحت زنجیره آشکار خواهد شد.

هم‌زمان، baseline ساخت ویندوز برای وابستگی‌های pypdf و wheel اصلاح شد، وابستگی ناامن و بلااستفاده xhtml2pdf از مسیر انتشار حذف شد و وابستگی qifparse اختیاری شد. پیش از ساخت EXE، یک دروازه fail-closed وضعیت بسته‌ها و نتیجه pip-audit را بررسی و فایل‌های شواهد انتشار را ثبت می‌کند.

حوزه تغییر اصلی اثر عملیاتی
ممیزی زنجیره HMAC-SHA256 با checkpoint کشف تغییرات در لاگ‌های ساختاریافته
حریم داده پاک‌سازی فیلدهای حساس پیش از ذخیره جلوگیری از ثبت token، password و secret در audit
مجوزدهی رخدادهای allow/deny ساختاریافته امکان بررسی دسترسی‌های حساس و تلاش‌های ناموفق
هویت ثبت ورود، خروج، revoke و خطای ورود SSO ردیابی چرخه نشست Entra/OIDC
بانکداری ثبت Link، اتصال، sync، حذف و خطای Plaid قابلیت پاسخ‌گویی و بررسی عملیات بانکی
گزارش‌دهی ثبت ایجاد schedule، تولید، تحویل و خطا ردیابی گزارش‌های خودکار و delivery خارجی
زنجیره تأمین constraints و gate برای build ویندوز جلوگیری از انتشار با بسته‌های مسدود یا آسیب‌پذیر

ثبت ممیزی v2.4.0

مدل AuditLog علاوه بر متن legacy، اکنون شناسه رخداد، شماره توالی، شرکت، نشست، دسته، شدت، نتیجه، منبع، هدف، هش قبلی، هش فعلی و شناسه کلید را نگهداری می‌کند. جدول AuditChainState وضعیت آخرین رخداد امضاشده را نگهداری می‌کند تا ایجاد رخدادهای بعدی به‌صورت ترتیبی و تراکنشی انجام شود. مهاجرت SQLite افزایشی است؛ یعنی ستون‌ها و indexهای جدید به پایگاه‌های داده موجود افزوده می‌شوند و رویدادهای قدیمی به‌عنوان legacy قابل‌تشخیص باقی می‌مانند.

گروه رخداد نمونه action داده ساختاریافته کلیدی
Authorization authorization.denied actor، permission، company، MFA، دلیل
Identity identity.sign_in_succeeded provider، session، identity provider
Banking bank.item_synced Plaid item، company، تعداد تغییرات
Reporting report.delivered schedule، قالب‌ها، کانال تحویل
Audit audit.migration_checked وضعیت migration و شمارش legacy

جزئیات رخداد پیش از ذخیره‌سازی scrub می‌شود. کلیدهایی مانند access_token، refresh_token، password، secret، client_secret، authorization و cookie با مقدار [REDACTED] جایگزین می‌شوند. هیچ token خام، کلید رمزنگاری یا گذرواژه‌ای نباید در audit log ثبت شود.

اصلاح وابستگی‌ها و انتشار Windows EXE

وابستگی / رفتار تصمیم v2.4.0 دلیل
pypdf الزام >= 6.15.0 رفع یافته‌های نسخه پایین‌تر در baseline انتشار
wheel الزام >= 0.46.2 جلوگیری از استفاده از نسخه آسیب‌پذیر گزارش‌شده
xhtml2pdf حذف از مسیر runtime و build نسخه 0.2.x برای PYSEC-2026-2056 / CVE-2024-25885 رفع منتشرشده ندارد
qifparse اختیاری نبود آن نباید مانع اجرای قابلیت‌های اصلی شود
pip-audit اجرای اجباری در gate ممیزی محیط واقعی ساخت، نه فقط فایل requirements

مسیر ساخت باید در یک virtual environment تازه و ایزوله ویندوز اجرا شود:

py -3.12 -m venv .venv-build
.\.venv-build\Scripts\Activate.ps1
py -m pip install --upgrade pip
py -m pip install -r requirements-windows-build.txt
py scripts\verify_windows_release.py
py build_exe.py

اگر verify_windows_release.py خطا برگرداند، ساخت release باید متوقف شود. این اسکریپت فایل‌های security-reports/windows-build-dependencies.json و security-reports/pip-audit.json را به‌عنوان شواهد قابل‌بازبینی تولید می‌کند. build_exe.py نیز در ویندوز همین gate را پیش از اجرای PyInstaller فراخوانی می‌کند.

تضمین کیفیت

مجموعه آزمون v2.4.0 شامل ایجاد زنجیره، پاک‌سازی داده حساس، کشف دست‌کاری، مهاجرت افزایشی schema و ثبت denial مجوزدهی است. این آزمون‌ها همراه با آزمون‌های SSO/MFA، RBAC/DPAPI، Plaid و گزارش‌دهی اجرا شده‌اند.

کنترل نتیجه اعتبارسنجی
syntax compile برای ماژول‌های امنیتی و integration موفق
تست‌های واحد و یکپارچه پروژه ۱۷ تست موفق
تشخیص tamper در زنجیره HMAC موفق
ثبت denial مجوزدهی با metadata ساختاریافته موفق
دروازه وابستگی Windows و pip-audit موفق در محیط اعتبارسنجی به‌روزشده

ملاحظات عملیاتی و ارتقا

۱. کلید امضای audit باید بخشی از backup و disaster-recovery سازمان باشد. در ویندوز، بازیابی همان زنجیره روی دستگاه/حساب دیگر به برنامه حفاظت و بازیابی DPAPI سازمان وابسته است.

۲. برای export یا انتقال لاگ به SIEM، ابتدا نتیجه AuditLogger.verify_chain() را ثبت کنید. خروجی نامعتبر باید به‌عنوان رخداد امنیتی بررسی شود، نه صرفاً یک خطای نرم‌افزاری.

۳. تمامی buildهای release باید از محیط جدید، بدون xhtml2pdf و با manifest requirements-windows-build.txt انجام شوند. نصب مستقیم و کنترل‌نشده بسته‌ها پس از عبور gate، مبنای صدور release نیست.

۴. این نسخه جایگزین کنترل‌های زیرساختی مانند محدودیت دسترسی به فایل پایگاه داده، backup رمزنگاری‌شده، EDR، SIEM و policyهای Entra نیست؛ بلکه شواهد کاربردی مکمل آن کنترل‌ها را فراهم می‌کند.

فایل‌های کلیدی

مسیر کارکرد
core/audit.py کلید امضا، HMAC chain، scrub و verify
core/models.py مدل‌های توسعه‌یافته AuditLog و AuditChainState
core/database.py migration افزایشی v2.4.0 برای SQLite
constraints-windows.txt حداقل نسخه‌ها و exclusionهای امنیتی ویندوز
requirements-windows-build.txt manifest ساخت ایزوله ویندوز
scripts/verify_windows_release.py دروازه fail-closed وابستگی و pip-audit
tests/test_audit_v24.py آزمون‌های ممیزی ساختاریافته v2.4.0

برای جزئیات اجرایی dependency remediation و واکنش به خطای gate، سند docs/V2_4_AUDIT_AND_WINDOWS_RELEASE_FA.md را مطالعه کنید.

FinAnalyzer Enterprise v2.1.0

Choose a tag to compare

@Ali-Marandi Ali-Marandi released this 12 Aug 14:50

FinAnalyzer Enterprise v2.1.0

Secure Banking and Automated Management Reporting

FinAnalyzer Enterprise v2.1.0 adds a secure Plaid banking workflow and automated PDF/Excel management reporting to the existing double-entry accounting platform. The release keeps the v2 accounting engine intact and introduces bank-feed provenance, encryption, and reporting automation as additive capabilities.

Included Features

Area Delivered capability
Plaid Link On-demand browser-based Plaid Link consent through a temporary localhost bridge.
Credential protection Encryption at rest for locally stored access tokens; configuration secrets are supplied only by environment variables.
Transaction synchronization Cursor-based synchronization for added, modified, and removed transactions with no partial cursor persistence on failure.
Accounting integration Imported banking records create balanced journal entries and preserve a source-to-journal audit mapping.
Review controls Unclassified feed events initially post to clearly labelled uncategorized income/expense accounts for accountant review.
Reporting Ledger-backed management summary, balance sheet, income statement, trial balance, PDF export, and Excel export.
Automation Local daily, weekly, or monthly schedules plus a Windows Task Scheduler runner; optional SMTP or Telegram delivery hooks.
Desktop UX New Bank Connections navigation page and fully operational Financial Reports exports and monthly scheduling control.

Security and Compliance Boundary

This release stores access tokens encrypted locally and intentionally excludes credentials from reports and repository files. Production rollout requires the organization to complete its own security review, provider configuration, consent, privacy, retention, accounting-policy, and regional compliance requirements. No live banking account or production Plaid credential was used during validation.

Validation

Three offline integration tests passed:

✓ Mocked Plaid exchange, encrypted token storage, and balanced journal posting
✓ Ledger-derived PDF and Excel management-pack generation
✓ Due-schedule execution and local output generation

Upgrade

pip install -r requirements.txt
python -m unittest tests/test_plaid_v2.py tests/test_reporting_v2.py -v
python build_exe.py

Refer to docs/V1_1_BANKING_AND_REPORTING.md for configuration, security boundaries, Windows scheduling, and operational setup.

FinAnalyzer Enterprise v2.0.0

Choose a tag to compare

@Ali-Marandi Ali-Marandi released this 11 Aug 21:40

🏢 FinAnalyzer Enterprise v2.0.0

Complete Commercial-Grade Rewrite

This is a major release — a complete rewrite of FinAnalyzer into an enterprise-grade financial management suite that competes with QuickBooks, Xero, Fathom, and Sage.


✨ New Features

🧮 Core Accounting Engine

  • True double-entry bookkeeping with GAAP/IFRS compliance
  • Journal entry posting with automatic debit/credit balance verification
  • Hierarchical Chart of Accounts (parent-child relationships)
  • Multi-entity/multi-company support for corporate groups
  • Fiscal year management with period locking
  • Year-end closing entries with retained earnings
  • Multi-currency conversion with real-time exchange rates

🤖 AI/ML Analytics

  • Cash flow forecasting (3, 6, 12 months) using Polynomial Regression
  • Anomaly detection with IsolationForest for fraud identification
  • 50+ institutional financial KPIs (Current Ratio, ROE, ROA, Debt-to-Equity, etc.)
  • What-if scenario modeling with interactive sliders
  • Budget vs Actual variance analysis
  • Trend analysis with statistical significance

📊 Professional Reports

  • Balance Sheet (Assets = Liabilities + Equity)
  • Income Statement (P&L) with Revenue, COGS, Operating Expenses
  • Cash Flow Statement
  • Trial Balance with debit/credit verification
  • Export to PDF (publication-grade via ReportLab)
  • Export to Excel with automated SUM formulas (openpyxl)

💎 Modern Enterprise UI

  • Beautiful Dark/Light themes (Fluent Design inspired)
  • Collapsible sidebar navigation with professional icons
  • Command palette (Ctrl+K) for power users
  • Interactive Matplotlib charts embedded in Qt
  • Summary cards with trend indicators and hover effects
  • Sortable/filterable transaction tables
  • Hierarchical tree view for Chart of Accounts

🔐 Enterprise Security

  • bcrypt password hashing
  • AES-256 Fernet encryption for data at rest
  • Role-based access control (Admin, Accountant, Viewer)
  • HMAC-SHA256 signed license keys
  • Comprehensive audit trail logging
  • Two-factor authentication support

📥 Data Management

  • Import from CSV, Excel, OFX, QIF bank formats
  • Bulk transaction processing
  • Encrypted SQLite database (WAL mode, ACID compliant)
  • Hot backup and restore functionality
  • Connection pooling for high performance

🛠️ Tech Stack

  • Python 3.11+ | PySide6 (Qt6) | SQLAlchemy 2.0
  • scikit-learn | Matplotlib | Pandas | NumPy
  • ReportLab | openpyxl | bcrypt | cryptography

📦 Installation

Download the binary below and run directly. No installation required.

For Windows users: Clone the repo and run python build_exe.py on Windows to generate the .exe file.


⚡ Quick Start

# From source
git clone https://github.com/Ali-Marandi/FinAnalyzer.git
cd FinAnalyzer
pip install -r requirements.txt
python main.py