Commit Graph
86 Commits
Author SHA1 Message Date
IgorRachkovandGitHub cd61a530d6 Merge pull request #35 from igor04091968/refactor/portal-static-assets
refactor(portal): move static assets into module
2026-06-15 07:15:25 +03:00
IgorRachkovandGitHub 7f1abdb9a7 Merge pull request #34 from igor04091968/refactor/portal-snapshot-cache
refactor(portal): move snapshot cache helpers into module
2026-06-15 01:43:58 +03:00
IgorRachkovandGitHub 5312da175d Merge pull request #33 from igor04091968/refactor/portal-role-access
refactor(portal): move role access helpers into module
2026-06-15 00:43:06 +03:00
IgorRachkovandGitHub b629879958 Merge pull request #32 from igor04091968/refactor/portal-readiness-api
refactor(portal): move readiness API helpers into module
2026-06-14 23:56:40 +03:00
IgorRachkovandGitHub 803c3169d7 Merge pull request #31 from igor04091968/refactor/portal-api-contracts
refactor(portal): move API contract summary into module
2026-06-14 23:25:49 +03:00
IgorRachkovandGitHub 2f8193e7b3 Merge pull request #30 from igor04091968/refactor/portal-path-query-helpers
refactor(portal): move path and query helpers into module
2026-06-14 23:05:35 +03:00
IgorRachkovandGitHub 68c0fd1a37 Merge pull request #29 from igor04091968/refactor/portal-command-runner
refactor(portal): move command runner into module
2026-06-14 22:11:39 +03:00
IgorRachkovandGitHub 0cd6e4f856 Merge pull request #28 from igor04091968/refactor/portal-roles-module
refactor(portal): move role model into module
2026-06-14 21:43:48 +03:00
IgorRachkovandGitHub 9ad5b2fc34 Merge pull request #27 from igor04091968/release/github-release-assets
rust-binary-build / build-linux-x86_64 (push) Waiting to run
ci: publish Rust binary package to GitHub Releases on tags
2026-06-14 21:00:59 +03:00
IgorRachkovandGitHub 42b0fdb718 Merge pull request #26 from igor04091968/codex/rust-professionalization
docs(rust): professionalize production guardrails
2026-06-14 18:14:27 +03:00
IgorRachkov 452354a8e3 fix(ci): copy release binaries without preserving unsupported metadata
Rust clippy diagnostic / detmir-portal-clippy-diagnostic (push) Waiting to run
2026-06-14 17:55:14 +03:00
IgorRachkov 5fb37bfbaf ci: add binary package path compatibility aliases 2026-06-14 16:56:48 +03:00
IgorRachkov cdd8c292db ci: focus binary workflow on release packaging 2026-06-14 16:55:47 +03:00
IgorRachkov 9cdad90e3a ci: package release binaries with manifest and checksums 2026-06-14 16:51:37 +03:00
IgorRachkov da1a21ee47 ci: add Rust release packaging helper 2026-06-14 16:51:08 +03:00
IgorRachkov 1fdc13aa73 ci: run binary build workflow on pull requests 2026-06-14 16:38:31 +03:00
IgorRachkov 374b320ba4 docs: document GitHub binary build policy 2026-06-14 16:29:07 +03:00
IgorRachkov 4dbb39b8ee ci: limit binary artifact to release outputs 2026-06-14 16:28:42 +03:00
IgorRachkov 26de69b6e2 ci: add pinned GitHub binary build workflow 2026-06-14 16:28:28 +03:00
IgorRachkov f3d5a8161d ci: run professionalization checks with Rust 1.94.0 2026-06-14 16:18:28 +03:00
IgorRachkov ffaae2b459 ci: run workspace checks with Rust 1.94.0 2026-06-14 16:18:13 +03:00
IgorRachkov 8b8dec0754 ci: pin Rust toolchain to 1.94.0 2026-06-14 16:17:59 +03:00
IgorRachkov cd6d8b5119 ci: force pinned Cargo in professionalization workflow 2026-06-14 16:17:32 +03:00
IgorRachkov a303a0d7f5 ci: force pinned Cargo in rust workspace workflow 2026-06-14 16:17:17 +03:00
IgorRachkov f711e6babb ci: pin Rust toolchain for GitHub Actions 2026-06-14 16:17:04 +03:00
IgorRachkov 00fb35096d ci(portal): mark existing clippy debt explicitly 2026-06-14 15:08:13 +03:00
IgorRachkov d33ce4d64c ci: capture detmir portal clippy diagnostics 2026-06-14 15:02:18 +03:00
IgorRachkov 61ad96bc1a fix(portal): compare request headers without static lifetime 2026-06-14 15:00:00 +03:00
IgorRachkov 98505ed7b4 ci: add detmir portal clippy diagnostic 2026-06-14 14:55:39 +03:00
IgorRachkov a961501b6d fix(portal): avoid owned header comparison 2026-06-14 14:52:54 +03:00
IgorRachkov 0a54751b7e ci: scope professionalization clippy checks 2026-06-14 14:49:11 +03:00
IgorRachkov 313237f167 ci: add Rust professionalization check workflow 2026-06-14 14:43:55 +03:00
IgorRachkov de1a5c2893 docs(portal): document metrics contract 2026-06-14 14:36:56 +03:00
IgorRachkov e93368fa84 docs(portal): clarify readiness semantics 2026-06-14 14:36:37 +03:00
IgorRachkov 067a257b6a docs(portal): clarify version endpoint contract 2026-06-14 14:35:53 +03:00
IgorRachkov 07b754090a docs(portal): clarify liveness probe contract 2026-06-14 14:35:36 +03:00
IgorRachkov 5d3b3e96bb docs(portal): explain production query limits 2026-06-14 14:35:13 +03:00
IgorRachkov 3742fc63fe docs(portal): document request correlation contracts 2026-06-14 14:34:48 +03:00
IgorRachkov 48121aec0d docs(portal): annotate structured access logging 2026-06-14 14:34:22 +03:00
IgorRachkov 2618fb9e45 docs(portal): document production runtime boundary 2026-06-14 14:33:58 +03:00
IgorRachkov a747e4c1bb docs(core): document runtime guardrails 2026-06-14 14:33:42 +03:00
IgorRachkovandGitHub 51eed69fe4 Update FULL_DEPLOYMENT_MANUAL_RU.md 2026-06-13 11:42:38 +03:00
IgorRachkovandGitHub 8caedd11d5 Update FULL_DEPLOYMENT_MANUAL_RU.md 2026-06-13 11:37:30 +03:00
IgorRachkovandGitHub 3b5fe0c116 Update COMPETITIVE_POSITIONING_RU.md 2026-06-12 22:17:34 +03:00
IgorRachkovandGitHub a2575233b7 Update COMPETITIVE_POSITIONING_RU.md 2026-06-12 22:14:34 +03:00
IgorRachkovandGitHub 02967629ff Update README.md 2026-06-12 15:30:45 +03:00
IgorRachkovandGitHub da84a9a800 Create TASK_016_UEBA_CONFIDENCE_GUARDRAILS.md 2026-06-07 22:18:11 +03:00
IgorRachkovandGitHub 32e1a97877 Create TASK_015_UEBA_CRITICAL_EVIDENCE_REVIEW 2026-06-07 22:03:49 +03:00
IgorRachkovandGitHub c751035374 Create TASK_014_DEPLOYMENT_DRIFT_REMEDIATION.md 2026-06-07 21:48:29 +03:00
IgorRachkovandGitHub ff6d7155cd Create TASK_013_DETMIR_PRODUCTION_VALIDATION.md 2026-06-07 21:25:57 +03:00
IgorRachkovandGitHub 5820de1d85 Add visual conformance smoke testing documentation 2026-06-07 20:25:46 +03:00
IgorRachkovandGitHub 0b34782b8e TASK_009
Added a detailed conformance audit document for DetMir/AWatch roadmap, outlining required checks, goals, and audit areas.
2026-06-07 19:52:03 +03:00
IgorRachkovandGitHub 56134e832a Update TASK_010_PILOT_VALIDATION.md 2026-06-07 19:00:51 +03:00
IgorRachkovandGitHub cb943d1328 Create TASK_010_PILOT_VALIDATION.md 2026-06-07 19:00:16 +03:00
IgorRachkovandGitHub 9fa085a53e Update TASK_009_ENTERPRISE_DEPLOYMENT_GUIDE.md 2026-06-07 17:15:50 +03:00
IgorRachkovandGitHub 7c57bac03c Create TASK_009_ENTERPRISE_DEPLOYMENT_GUIDE.md 2026-06-07 17:14:23 +03:00
IgorRachkovandGitHub 755c8b6f0f Update TASK_008_REGISTRY_READINESS.md 2026-06-07 17:04:42 +03:00
IgorRachkovandGitHub 4c39dd3fb0 Update TASK_007_CUSTOMER_DEMO_PACK.md 2026-06-07 16:45:47 +03:00
IgorRachkovandGitHub 307170b128 Update TASK_006_EXECUTIVE_ACTION_CENTER.md 2026-06-07 16:21:52 +03:00
IgorRachkovandGitHub a734815a63 Create TASK_006_EXECUTIVE_ACTION_CENTER.md 2026-06-07 16:20:27 +03:00
IgorRachkovandGitHub 41e28adbf9 Delete TASK_006_PFSENSE_CONTRACT_LAYER.md 2026-06-07 16:17:15 +03:00
IgorRachkovandGitHub 00ff5e7ddf Update TASK_005_RUST_AGENT_BASELINE.md 2026-06-07 15:50:39 +03:00
IgorRachkovandGitHub 5277097032 Update TASK_004_RISK_NARRATIVE.md 2026-06-07 15:32:18 +03:00
IgorRachkovandGitHub 2fb3271558 Create TASK_003A_PORTAL_HARDENING_CLEANUP.md 2026-06-07 14:17:15 +03:00
IgorRachkovandGitHub 7df665a457 Update TASK_003_EXPLAINABLE_KPI.md 2026-06-07 13:34:33 +03:00
IgorRachkovandGitHub e43c502bcb Update TASK_002_PRODUCTION_HARDENING.md 2026-06-07 13:32:57 +03:00
IgorRachkovandGitHub 77ad99d8a7 Update README.md 2026-06-07 13:28:52 +03:00
IgorRachkovandGitHub 45f9907450 Update PRESENTATION_RU.md 2026-05-15 17:02:18 +03:00
IgorRachkovandGitHub 95bf1edd37 Merge pull request #24 from igor04091968/codex/-e2e-grafana-+-prometheus
Harden Grafana Prometheus e2e readiness
2026-05-09 05:22:16 +03:00
IgorRachkov dc8988e5f7 Harden Grafana Prometheus e2e readiness 2026-05-09 03:58:52 +03:00
IgorRachkovandGitHub 5e5cb30fab Merge pull request #15 from igor04091968/devin/1777897921-print-docname-ansible-innosetup
fix(print): исправление имени документа «Печать документа» + интеграция email collector в деплой
2026-05-07 07:34:42 +03:00
IgorRachkovandGitHub 083b05d096 Merge pull request #19 from igor04091968/codex/-rdp
Fix Windows/RDP collectors startup and make bucket creation idempotent
2026-05-07 07:34:20 +03:00
IgorRachkovandGitHub eb25a230fc Merge pull request #3 from igor04091968/codex/explain-codebase-structure-to-beginner
Add newcomer onboarding guide and link it from README
2026-05-07 07:32:03 +03:00
IgorRachkovandGitHub 96ee17f156 Merge pull request #6 from igor04091968/codex/validate-ansible-playbooks-in-repository
Add install-kit validation tools and add Ansible syntax check to quality gate
2026-05-07 07:31:54 +03:00
IgorRachkovandGitHub 66a8c47319 Merge pull request #7 from igor04091968/codex/find-and-fix-error-in-powershell-dlp-script
Refine detection of masked Cyrillic print titles and normalize printer names
2026-05-07 07:31:50 +03:00
IgorRachkovandGitHub 5a89a79803 Merge pull request #13 from igor04091968/devin/1777839496-strategic-dlp-roadmap
docs: стратегический DLP roadmap — AWatch-rus vs InfoWatch Traffic Monitor
2026-05-07 07:31:44 +03:00
IgorRachkovandGitHub a00bbdee06 Merge pull request #16 from igor04091968/codex/analyze-powershell-scripts-for-functionality
Fix DLP PowerShell collectors: config default, HTTP handling, event cleanup, headless fallback
2026-05-07 07:31:38 +03:00
IgorRachkovandGitHub 9ef09cb892 Merge pull request #18 from igor04091968/codex/review-dlp-related-code
Add print-job dedupe, improve clipboard guards and add polling error logs
2026-05-07 07:31:33 +03:00
IgorRachkov b2a1a6289c Fix Windows RDP collectors startup 2026-05-06 17:23:47 +03:00
IgorRachkov 945efd203f Harden DLP endpoint collector error handling and print dedupe 2026-05-05 07:55:03 +03:00
IgorRachkov d88ef78184 Fix DLP collector defaults, HTTP error handling, and cleanup 2026-05-04 21:47:03 +03:00
IgorRachkovGitHubFashion LisaDevin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
eea851141f feat(dlp): enforcement + email outbound collector (#14)
* feat(dlp): add enforcement — USB write-block, print cancel, clipboard clear

Phase 2.5: when DLP policy rule has action="block", the collector
now actively prevents the action instead of just logging:

- USB: Set-Disk -IsReadOnly via Get-Partition/Get-Disk pipeline
- Print: Remove-CimInstance Win32_PrintJob for matching jobs
- Clipboard: Set-Clipboard -Value $null to clear sensitive content

Each enforcement adds enforced=true/false to incident telemetry.
Windows balloon notification shown to user on every block action.
Backward-compatible: existing action="alert" rules unchanged.

Co-Authored-By: Fashion Lisa <igor04091968@gmail.com>

* feat(dlp): add email outbound collector — Outlook COM + SMTP monitor

Two collection modes:
- outlook: polls Sent Items via COM, extracts metadata (subject hash,
  recipients hash, attachment names, body length)
- smtp: monitors SMTP connections (25/587/465/2525) via Get-NetTCPConnection

DLP policy rules: endpoint.email[] with regex matching on subject,
recipients, sender, attachments, externalOnly flag.

Enforcement: action=block moves mail to Drafts (Outlook mode).
Privacy: subject/recipients stored as SHA256, body never read.
Co-Authored-By: Fashion Lisa <igor04091968@gmail.com>

---------

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-05-04 00:23:06 +03:00
IgorRachkovGitHubDevin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
36e4255ad9 fix: handle undefined bucket filters in AQL query rewriter (#12)
The network patch that intercepts /api/0/query/ requests only handled
'unknown' hostnames in bucket IDs. When the WebUI activity store has
uninitialized bucket IDs (e.g. browser watcher not installed on a host),
find_bucket("undefined") or query_bucket("undefined") calls reach the
server and fail with BucketQueryError.

Extend rewriteUnknownCategoryBuilderQueryBody to:
- Replace query_bucket(find_bucket("undefined")) and flood() wrappers
  with empty arrays ([]) so the query continues without missing data.
- Rewrite aw-watcher-{window,afk}_undefined to the preferred host,
  matching the existing 'unknown' hostname logic.

Applied to both aw-server/ and install-kit copies of aw-ru-patch.js.

Fixes: BucketЗапросError on Trends page for host SHARKON2025

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-05-03 22:27:50 +03:00
IgorRachkov 8f10bef904 Limit print title fallback to masked Russian document names 2026-05-01 15:50:02 +03:00
IgorRachkov aca42caf0a Add install-kit to repo drift checker 2026-04-30 20:59:40 +03:00
IgorRachkov 9bdf28ed2b Add newcomer onboarding guide for repository structure 2026-04-29 13:09:23 +03:00