الانتقال إلى المحتوى
KAMOUniverse

سجل التغييرات

ما الجديد؟

كل تحسين للمنصة، كما هو الشحن.

  1. · kamo-internal

    Real work orders and subscriptions per market — dispatch, customer accounts, live subscriptions, cancel at period end

    Service (work orders): - the grid reads its own market's jobs (plus older jobs with no market), shows the customer, the technician (member chip, never an id), the next visit, and status / priority words from the dictionary; rows keep ?back= - the work order page shows its market, files the job under an account or none (swap beside Customer), dispatches a technician (Choose Technician, arrival and finish, visit notes; a new job becomes Assigned), adds return visits, edits summary / description / trade / priority / address, labels status buttons by what they do (Start Work, Put On Hold, Mark Complete, Mark Invoiced, Cancel Work Order), shows each note's author with photo, and goes Back to its market's tab - no screen shows a job's uid: new jobs are numbered, older ones show a short ref Subscription: - the Agreements sub-tab was fifteen generated agreements whose buttons changed nothing; it now lists the market's live subscriptions (customer with photo, plan, status, seats, MRR, next billing, balance due, overdue, ending) and opens each on its order page - Signups reads the market's orders, names customers by account and member chip (was Member #<id>), offers only the market's plans in the order wizard - the subscription page shows the customer with photo and Open Account, the market, loads its subscription by id (no org-wide account or subscription scan), and cancels a live subscription with a reason, now or at the end of the billing period (Cancel only marked the order before, leaving the subscription billing); cancelling an order asks first - /commerce/agreements/new opens the order wizard for the market instead of a Coming Soon page - Back on agreement and signup pages no longer points at a tab id that never existed Removed the unreachable mortgage mock PipelineCommitmentsTab and /commerce/commitments/[id] (generated data; nothing linked to either). Help: How to Manage a Work Order and How to Manage a Subscription, linked from the grids, the visit window and the cancel window.

  2. · SecurityService

    Market-scoped work orders and subscriptions; dispatch and customer endpoints

    - GET **************** lists one market's work orders (plus those with no market) - PUT /service-jobs/{uid}/customer files a job under an account or takes it off - POST /service-jobs/{uid}/visits adds a visit; PUT .../visits/{visitUid} schedules it and assigns a technician (409 on a finished visit) - GET /pos/subscription-orders and /pos/subscriptions take ?marketId= - GET **************** takes the market UUID (it was a Long, so every market-scoped request was a 400) and returns only the caller's plans - ServiceJobRightsGateTest covers the three new handlers

  3. · kamo-shared-library

    Market on the engagement, job numbers, dispatch, customer accounts, market-scoped lists

    Service work orders: - createJob stores the chosen market on Engagement.market (it only picked the engagement type before) and the customer account on Engagement.account - every new job gets a person-readable number (WO-00001…), so no screen falls back to the uid - JobView carries marketId / marketTitle; customerName reads Company (Contact) - listJobs(org, status, marketId): one fetched read (engagement, market, customer, visits) instead of up to four lazy loads per row; a market tab also shows jobs that carry no market - setCustomer: file a job under an account or take it off one (engagement follows) - addVisit / updateVisit: schedule a visit, assign a technician (org-checked in SQL), mark en route / no access / cancelled; assigning someone to a CREATED job moves it to ASSIGNED Subscriptions: - createOrder stores the plan's market and the customer member's account on the engagement (a quote's engagement keeps what it has) - SubscriptionOrderDTO and SubscriptionRecordDTO carry marketId, marketTitle, customerAccountUid and customerAccountName - getOrders / getSubscriptions take a marketId (engagement market, else plan market; none stays in) and read the rows with one fetched query - getPlansForMarket: the market filter on plans took a Long and could never parse a market UUID; it is also limited to the caller's org now

  4. · kamo-internal

    Every rental has a renter; cancel, re-date, check out, check in and end; booked dates beside the date picker

    - New Rental Request: the Renter (customer account) is required and pre-filled from ?accountId; ?marketId is sent so the rental is filed under the market. Once an asset is chosen, Already Booked lists its booked dates, names a clash, and Create waits for free dates. No assets: a way to the market's Rental Assets. - Rental request: Change Dates (with Charge By and booked dates), Cancel Request (cancel or decoder, with a reason kept on the request), Confirm Booking asks for a renter first; market and the booking's stage shown. - Booking: Check Out, Check In (late fee suggested from the daily rate when it is overdue, damage fee, condition notes, new total), End Rental (nothing handed over), Change Dates (end only once out), Cancel Booking, Open Request; price breakdown, checked out / returned times, overdue warning. - The renter can be changed, never removed; account saves use the record the server answers instead of reloading. - Pipeline lists ask the server for the market's rentals (by the rental's market); Market column when no market is chosen; bookings listed by stage (Reserved, Checked Out, Returned, Cancelled). - Market Rental Assets: Offered switch (switch an asset off instead of deleting it), translated copy, theme tokens, the server's sentence when an asset in use can't be deleted. The unused PipelineRentalAssetsTab (hard-coded English) is removed. - Help: Rentals and Bookings article (commerce/orders) linked from each rental page.

  5. · kamo-internal

    Market-filtered lists, line items, approve/reject/withdraw, send/receive/close/cancel, and a real Vendors list

    - Procurement tab: Purchase Requests / Vendor Orders / Vendors; lists ask the server for the selected market (plus rows with none), show a Market column, and filter/count in plain words (Waiting for Approval, Rejected, Partly Received…); the "every market shows the same list" caption is gone - New / Change Purchase Request: vendor picker (active, this market's first) with New Vendor on the spot, market, lines with live total (or an estimated amount), notes, optional customer account - Record page: who asked and who decided (with photos), status banner, line table with arrived / still to come, history; Approve, Reject (reason shown to the requester), Change, Withdraw; Mark as Sent, Record Delivery (per line or everything), Close Order, Cancel Order — each confirmed - Vendors: contact person, email and phone through EmailAddress/PhoneNumber, website, notes, market; Active / Inactive with counts; deactivate instead of delete; ids stay strings - Help: "Buying from Your Vendors" help center article, linked from the form and the record page

  6. · SecurityService

    ProcurementController — market-filtered lists, change/reject/withdraw a request, send/receive/close/cancel a vendor order, records returned from every change

    - purchase requests and vendor orders move out of POSController into ProcurementController (MANAGE_PROCUREMENT to buy and run orders, APPROVE_PURCHASE_REQUESTS to approve or reject) - PUT …/account and …/market answer with the updated record - ProcurementNotifier: a new request tells everyone who can approve it; a decision tells the requester - vendor create/edit/deactivate opens to MANAGE_PROCUREMENT (MANAGE_SUBSCRIPTION_SETTINGS kept)

  7. · kamo-shared-library

    Market, lines, approval decisions, and the vendor order lifecycle (send, receive, close, cancel)

    ProcurementService owns purchase requests and vendor orders: - the engagement carries the market (chosen Procurement market, else the vendor's); lists filter by market plus rows with none; marketId/marketTitle on both DTOs; PUT market/account return the record - lines (description, quantity, unit cost, received) in the record payload; the total is their sum - reject (outcome REJECTED + reason) and withdraw (CANCELLED) a waiting request; requester and decider recorded; the request is SUBMITTED on create - vendor order: mark sent, receive in parts or whole, close (FULFILLED), cancel before anything arrived (VOIDED); derived stage on the DTO, never stored - EngagementLifecycle: all commitments voided -> CANCELLED, all ended -> FULFILLED - one-query lists (fetch-joined engagement/account/market, vendors and orders batched) - vendors: contact name, email, phone, website, notes, market, active flag (deactivate, never delete) - indexes on org_id / intent_id / commitment_id of the intent and commitment tables (applied by hand)

  8. · KBService

    Turn Antivirus scanning on in kbservice

    KamoAntivirus is Ready (StatefulSet kamowsantivirus 2/2, /readyz ready, release 2026.11.08.0101); a direct scan from the cluster returns MALICIOUS/TEST_FILE for the standard test string and CLEAN for plain text with this service's internal-auth secret.

  9. · DocsService

    Turn Antivirus scanning on in docsservice

    KamoAntivirus is Ready (StatefulSet kamowsantivirus 2/2, /readyz ready, release 2026.11.08.0101); a direct scan from the cluster returns MALICIOUS/TEST_FILE for the standard test string and CLEAN for plain text with this service's internal-auth secret.

  10. · MediaService

    Turn Antivirus scanning on in mediaservice

    KamoAntivirus is Ready (StatefulSet kamowsantivirus 2/2, /readyz ready, release 2026.11.08.0101); a direct scan from the cluster returns MALICIOUS/TEST_FILE for the standard test string and CLEAN for plain text with this service's internal-auth secret.

  11. · ConversionService

    Turn Antivirus scanning on in conversionservice

    KamoAntivirus is Ready (StatefulSet kamowsantivirus 2/2, /readyz ready, release 2026.11.08.0101); a direct scan from the cluster returns MALICIOUS/TEST_FILE for the standard test string and CLEAN for plain text with this service's internal-auth secret.

  12. · DocsService

    Assignment rows say what the member still owes

    Adds signableOutstandingCount (signable documents not yet signed) and uploadsOwedCount (required requests with no live file) to each assignment row, so the member's list can label its button by what is actually owed instead of "Continue Signing" on a Quick Request with nothing to sign. Three grouped queries per page; LegalAssignmentCountsParseTest parses them against the real mapping.

  13. · KBService

    KBService checks knowledge-base resources and looks up the verdict before signing

    - Resource upload writes the raw kb bucket, so it goes through AntivirusUploadGuard (KB) before anything touches storage: 422 ANTIVIRUS_BLOCKED (nothing stored) / 503 ANTIVIRUS_UNAVAILABLE, answered in that shape by the controller. - The content hashes ride on the object as user metadata (kamo-blake3 / kamo-sha3), so every presign site (single URL, batch, library tiles, platform help) looks up the content's global verdict first: a locked or still-checking resource is never signed (423 on the single URL, no URL for a tile). Resources stored before this carry no hashes and are not judged here. - ConfigMap kamo.antivirus.* (enabled: false until KamoAntivirus is Ready); ANTIVIRUS_INTERNAL_AUTH_SECRET from mlos-internal-auth.

  14. · DaemonService

    وضع علامة على تقرير الحماية الأسبوعي (كل ساعة، الاثنين 08:00 بالتوقيت المحلي للمنظمة) ومراقبة تفشي المرض (15 دقيقة)

  15. · SecurityService

    الواجهة البرمجية للبرامج المضادة للفيروسات، وضوابط المنصة، والنقاط النهائية المقررة؛ مسارات الملفات الخاصة بخدمة الأمن

    /api/antivirus/** (وتوأمه /api/security/antivirus الذي يحاوله الوكيل أولا): نظرة عامة، عمليات الكشف، إعدادات (مراجعة سياسات الفيروسات)، الإنذارات الكاذبة، البحث عن الحكم. الحالة، تجديد/إلغاء التوقيع، استعراض الإنذار الكاذب (ALLOWLIST يفتح القفل في كل مكان + يخبر الناس)، allowlist، داخلي: تقرير حماية أسبوعي وتحقق من تفشي الفيروسات لخدمة DaemonService. يتم فرز الملفات الخام (الصور بما في ذلك SVG، والخلفيات، والشعارات، والواردات الرئيسية، والكشف، وصحائف الأسعار) قبل تحميلها أي شيء مكتوب؛ مسارات ImageService تحتفظ بوابتها الحرة وتجيب الآن 422/423/503 بدلاً من 500؛ خزانة، يبقى kamo.antivirus.enabled false حتى الفيروسات المضادة للفيروسات

  16. · APIService

    Route /api/antivirus/** to SecurityService and seal its internal subtree

  17. · KlusterServices

    KamoAntivirus تصفية البريد أولاً على smtpd الوارد (المنفذ 25)، فشل مؤقت عند عدم الوصول

    البريد الالكتروني: default_action=tempfail }, then rspamd unchanged. المرفقات الضارة وإذا كانت الرسالة تحتوي على جزء صغير يشغل مكانها، فإن الرسالة ما زالت تصل؛ لا يمكن الوصول إلى المرشح المرسل يحصل على 4xx ويحاول من جديد submission (587) يبقي على rspamd فقط؛ postfix-bulk غير متأثر. تم التحقق من ملتر مباشرة قبل هذا الدفع (عميل بروتوكول ملتر في المجموعة: اختبار استبدال الملف بعلامة الاحتلال، والاحتفاظ بـ CSV النظيف، ونزع العلامة المزورة).

  18. · EmailService

    مكافحة الفيروسات للبريد - بوابة قراءة على كل صندوق بريد، ووضع علامات بديلة، وفحص اﻹرسال، وعمليات الكشف

    - قراءة: كل ملحق/جزء في السطر من أي صندوق بريد (Kamo Mail, IMAP providers, Graph; personal and (الملف المؤقت بعد 8 ميغابايت، ومحذوف عند الإغلاق)، وحكمه الشامل بدا كما يلي: وإذا لم يكن معروفاً، يتم التحقق منه بواسطة KamoAntivirus (origin MAIL_READ, bytes_stored=false) ANTIVIRUS_BLOCKED، غير قابل للتحقق = 423 ANTIVIRUS_CHECKING؛ السبب/العائلة أيضاً X-Kamo-Antivirus-* أدوات البريد SI تقرأ من خلال هذه المسارات، لذلك فهي مغلقة أيضاً. تحمل AttachmentInfo **************** فقط للأجزاء التي تم تقسيمها بالفعل. - قائمة ملتر (X-Kamo-Antivirus-Removed) تحت الاسم الأصلي، removed=true، قفل؛ أبدا X-Kamo-Antivirus عنوان رسالة مكشوف ك EmailMessage.antivirus للشعار. - إرسال/مسودة (المقرر 11): ترفع صور الأجهزة والصور الملصقة عبر AntivirusGate.scanUpload (المخزنة 422 ANTIVIRUS_BLOCKED with fileName, 503 برنامج مضاد للفيروسات غير متاح. - NATS antivirus.detection.mail (مجموعة الطابور antivirus-mail-detections): المتلقون الذين تم تحديدهم للأعضاء عن طريق أصحاب صناديق البريد، واﻷسماء المستعارة الشخصية، وقراء صناديق البريد المشتركة، والنطاقات المستعارة؛ مسجلة لكل عضو (MAIL_INBOUND, counterparty = sender) لذلك FILE_BLOCKED / THREAT_ALERT يخرج حسب إعدادات المنظمة. - الإخطارات: ANTIVIRUS_THREAT_ALERT -> VIEW_ANTIVIRUS (التطبيق الأساسي، لا حاجة إلى صف خاصية)؛ FILE_BLOCKED/UNLOCKED لا ينتمي إلى أي تطبيق؛ ترتيب الكتالوج. عينات مسبقة لـ 4 نماذج مضادة للفيروسات. - configmap kamo.antivirus.* (ممكن: kamowsantivirus جاهز). يحتاج إلى مكتبة كامو المشتركة b6c41d34 (HashUtils BLAKE3 على bcprov 1.70).

  19. · SecurityService

    خطوات الاستئجار، والقوائم المرشحة للسوق، والمستأجر الذي يمكن أن ينتقل ولكن لا يمكن إزالته أبدا

    - GET /rental-requests and /bookings take ?marketId (سوق المتصل) و مرشح من قبل سوق الالتزام. - POST /rental-requests/{id}/cancel, PUT /rental-requests/{id}/dates, POST /bookings/{id}/check-out | return | cancel, PUT /bookings/{id}/dates (MANAGE_RENTALS)، يرد كل منها على السجل المستكمل؛ ويكون الرفض 400 مع الجملة. - GET /rental-assets/{id}/bookings: التواريخ التي سبق حجز الأصل من أجلها. - PUT /rental-requests/{id}/account و /bookings/{id}/account يرفضان حسابا فارغا والرد على السجل المستكمل بدلا من رسالة مجردة. - DELETE /rental-assets/{id} يجيب 409 بجملة عندما يكون لدى الأصل إيجارات.

  20. · kamo-internal

    مرشحات علامة الطلبات حسب أسواق المنظمة

    وكانت الرقاقة وبطاقات الصف تخص كل خط من خطوط الأعمال، وسميت على اسم أول خط لها سوق التجزئة، وبالتالي انهار سوقان للتجزئة في سوق واحد السوق الخاصة به (من الخادم)؛ ويذهب سجل أقدم لا يوجد فيه سوق السوق الوحيدة لخطها عندما يكون هناك سوق واحد، أو إلى سوق أخرى مجموعة "<خط> - لا سوق". مرشح متذكر لم يعد له سوق يعود إلى كل شيء.

  21. · DocsService

    DocsService يرفض الوثائق المقفلة في كل مكان ويتحقق من حفظ المحرر

    - WOPI PutFile يكتب raw MinIO، لذا فإن الحفظ يمر عبر AntivirusUploadGuard أولاً: تخزين ضار لا يكتب شيئاً، يحتفظ بالمحتوى الأخير الجيد للمستند ويجيب على المحرر 422 ANTIVIRUS_BLOCKED (503 ANTIVIRUS_UNAVAILABLE لذا يحاول مجدداً)؛ يتم وضع علامة على حفظ نظيف GetFile يرفض المحتويات المقفلة/التحقق مع 423. - التصوير/التنزيل،/التدفق، وتحويل PDF والصفحات المصغرة تستدعي بوابة القراءة قبل أي بايت: 423 ANTIVIRUS_BLOCKED / ANTIVIRUS_CHECKING التصدير بالجملة يسقط الوثائق المقفلة مثل الاستثناءات الأخرى. - النسخة تنزيل/pdf/thumbnail الحكم على محتوى النسخة نفسها. - يتم التحقق من السير الذاتية الوظيفية بوصفها سيراً ذاتية وظيفية مع مقدم الطلب والطلب؛ المراقبون يجيبون على رفض الفيروسات في شكل المنصة بدلا من 500. - القانونية: تحميل الرفض الخريطة إلى الخاص بهم 422/503، واحتجز تحميل يطلب إعادة المحاولة (PDF )يجري اﻻستنساخ من بايتـات غيـر مفحصـة(، وتنفذ الحزم وعينات الطلبات ألبومات الصور تترك الصور المقفلة خارجاً - تحمل صفوف قائمة الوثائق/البيانات الوصفية scanStatus / scanFamily / scanOutcome. - ConfigMap kamo.antivirus.* (ممكن: false until KamoAntivirus is Ready)؛ كلمة السر الداخلية لـ ANTIVIRUS_INTERNAL_AUTH_SECRET من mlos-internal-auth

  22. · SecurityService

    يسمي كل صف من صفوف الطلبات السوق الخاصة به

    تحمل الصفوف بيانات marketId/marketTitle من التزاماتها (استفسار واحد لكل صف) منظمة لديها سوقين للتجزئة ترى أي منهما واحد طلب جاء من بدلا من كلاهما تحت اسم السوق الأولى. وتظل السجلات التي توضع قبل تتبع الأسواق باطلة.

  23. · KlusterServices

    تنبيهات مضادة للفيروسات (تعطل الماسح الضوئي، وتقادم التوقيعات، وفشل بوابة المرآة، و p95، وزيادة الكشف، واحتجاز المتأخرات)

    تطبيق يدوياً (الرصد ليس هدفاً من أهداف التكامل الإقليمي).

  24. · kamo-shared-library

    A rental needs a renter; market on the engagement; cancel, re-date, check out, return and cancel a booking

    - createRentalRequest refuses a missing or foreign customer account, records the market (the asset's, else the chosen one) on the engagement, and validates dates and the rate type. Confirm refuses a request with no account. - setRentalRequestAccount / setBookingAccount move the renter to another account and never clear it; both answer the updated record. - Requests: cancel/decoder (IntentStatus.CANCELLED, reason kept) and new dates (with the availability check). Bookings: check out (the booking's FulfillmentOrder IN_PROGRESS), return or end (COMPLETED; CommitmentStatus.FULFILLED; late and damage fees added to the total; condition notes), cancel (VOIDED, before it goes out), and new dates (only the end while out), each checking the asset's other bookings under a row lock on the asset so two confirms cannot double-book. - EngagementLifecycle: a VOIDED commitment commits nothing; all voided and no order is CANCELLED. - A returned booking no longer holds its dates. The asset's held dates are readable (findRentalAssetBookings) for date pickers. - DTOs: marketId/marketTitle on requests, bookings and assets; booking -> rentalRequestUid, rateType, checkedOutAt, returnedAt, fees, notes, cancel reason; request -> cancelReason, bookingStatus. Lists filter by market and load assets, bookings and hand-overs in one query each instead of per row. - Rental assets: description column; market validated as the org's Rental market and movable on update; negative rates refused; duplicate codes refused on update; an asset with rentals on record cannot be deleted (switch it off instead). - Indexes: **************** by engagement, commitments by rental asset, fulfillments by commitment, rental assets by org and market (applied by hand).

  25. · kamo-internal

    الأسواق - الأسواق الخاصة بالمنظمة، بأسمائها الخاصة

    لقد اختفت "التجارة" فالسوق هو ما يعرفه الأعضاء (العنوان + السوق) الوصف)؛ وﻻ يكون مجال عملها سوى من نوعه. - خيار التنقل هو الأسواق، ففي حالة سوق واحدة يكون ذلك السوق هو الأسواق، بحسب تصنيفها العنوان (كما سبق)؛ مع اثنين أو أكثر يفتح قائمة مع صف لكل السوق - عنوانه، ووصفه في أسفله، ورمز لسطره قائمة مخزنة واحدة تغذي 10000000000000000000000000000000000000000000000000000000000000000000000 كلتا العلامتين، منصة الإطلاق والعلامة، تم تحديثها على التغيرات في السوق. - تتضمن صفوف قائمة التنقل وصفا اختياريا (الباب العلوي، السكك الحديدية، الشريط العلوي). - صندوق النوع في استمارة السوق هو "النشاط التجاري"؛ كل خيار يقول ما الذي يعطيه للسوق، وواحد مقفل يسمي التطبيق الذي يحتاجه )كانت اﻻنكليزية مشفرة بشكل ثابت( انظر قائمة الأسواق. - ACCESS_COMMERCE تعني "الوصول إلى الأسواق"؛ وتشير صفحة الإقراض إلى قائمة خطوط الأعمال التجارية.

  26. · MediaService

    يفحص برنامج MediaService المرفقات ببرنامج مضاد للفيروسات ويرفض الملفات المقفلة عند كل قراءة

    - مرفقات الدردشة (الدردشة بين الأعضاء، والدردشة بين الزوار على شبكة الإنترنت)، وملفات أخطاء النظام، وصور مركز النمو يتم التحقق منها داخل storeContentAddressed مع سياقها (عضو، محادثة)؛ يصل الرفض إلى العميل عندما يقوم شكل المنصة (422) بتحميل المستند ANTIVIRUS_BLOCKED {family} / 503 ANTIVIRUS_UNAVAILABLE) بدلا من أن يتم لفها في 500. - خلفيات الاجتماع (الخام MinIO، الدفة العامة) تمر عبر AntivirusUploadGuard أولا. - /attachments/link (dedup by hash) يرفض المحتوى المغلقة ضد الفيروسات (422)؛ قد يكون ملف محتجز ويظل غير مقروء إلى أن يتم التحقق منه. - المرفقات تحمل مسح {الوضع، الأسرة، النتيجة} على تحميل الرد، الرسالة الحية الإطار والتاريخ؛ معلقة أثناء الاحتفاظ بها. - ImagingProxyController (الأصلي والمسبق)، وبرنامج تنزيل الزائر، وملفات عيوب النظام، صور ومواد مركز النمو ومواد كانفا التي تقرأ بالاتصال ببوابة القراءة: 423 تم التحقق من الفيروسات المحظورة / الفيروسات المراقبة قبل المحتويات المفقودة 410 لذلك احتفظت الملف يقول 'لا يزال يتم التحقق منه'. الوكيل الآن يتحقق من العضوية قبل حالة المحتوى. - ConfigMap kamo.antivirus.* (ممكن: false until KamoAntivirus is Ready)؛ كلمة السر الداخلية لـ ANTIVIRUS_INTERNAL_AUTH_SECRET من mlos-internal-auth

  27. · ConversionService

    ConversionService checks uploads with Antivirus, completes held files, re-checks on new signatures

    Replaces the in-service clamd client (malware/ package, UploadScanGuard, QuarantineStore, retro-scan) with the shared-library Antivirus: - /upload, /replace, /templates/upload are checked inside ImageService before any row or object is written (HOLD allowed); refusals use the platform shapes: 422 ANTIVIRUS_BLOCKED {family}, 503 ANTIVIRUS_UNAVAILABLE, 503 HASH_MISMATCH. MALWARE_DETECTED is gone and no signature name is ever returned. Responses carry scan {status, family, outcome}; a held file is PENDING and converts once stored. The pipeline emits a 'scanning' stage. - /register-existing (dedup by reference) refuses content Antivirus locked (422). - Sound effects (raw MinIO) go through AntivirusUploadGuard (no hold, 503 when down). - QuarantineStore no longer exists, so nothing is written to the quarantine bucket; nothing in it is touched. - antivirus.hold.verdict (queue antivirus-hold-completer) -> AntivirusHoldCompleter, then the ordinary conversion for the released documents; a storage failure naks for redelivery. - antivirus.signatures.promoted (queue antivirus-recheck) -> AntivirusRecheckService: every flagged hash whose bytes are stored (unlock + notify + AUTO_CLEARED reports) and CLEAN content first seen in the last 14 days (LOCKED_LATER + alerts), streamed from MinIO, one at a time, throttled. Subscribes retry until the ANTIVIRUS stream exists. - ConfigMap: kamo.antivirus.* (enabled: false until KamoAntivirus is Ready); ANTIVIRUS_INTERNAL_AUTH_SECRET from mlos-internal-auth.

  28. · kamo-shared-library

    ينتمي التدخل إلى سوق يحددها العضو

    commerce_engagements.market_id (يطبق يدوياً، FK إلى commerce_markets، طلبات البيع بالتجزئة، وأعمال الخدمات، والإيجار، والمشتريات وليس لسجلات السوق عمود خاص بها؛ فهي تقرأها من سجﻻتها المشاركة، بنفس الطريقة التي يقرأون بها حساب العميل.

  29. · kamo-internal

    واجهة المستخدم المضادة للفيروسات - تغلق الحماية كل مكان يظهر فيه ملف، ومركز مكافحة الفيروسات، وعلامة التبويب المنصة، والإنذارات والمساعدة

    مجموعة أدوات التصميم (التطبيقات/المكونات/البرامج المضادة للفيروسات): محمي، حذر، محظور، لا يمكن التحقق؛ العلامة التجارية + --av-* رموز، الحركة المخفضة احترام)، BlockedFileCard / LockedAttachment / LockedOverlay، حذر Banner مع فتح نسخة آمنة، رسالة AntivirusBanner, ShieldClip, FalseAlarmDialog ("أعتقد أن هذا خطأ") AntivirusNotReady. منطق من @kamo/antivirus-core 0.1.0 (بالإنجليزية: Anti-Virus_Blocked/Malware_Detected/Anti-Virus_Checking/Anti-Virus_Unavailable/Scan_Unavailable). الأسطح: لوحة قراءة البريد (الأختام، الأجزاء المنزوعة المقفلة بأسمائها الأصلية، الرسالة (الشعار، الصور في السطر المحتفظ بها، تنزيل جميع يخطوهم، قائمة الصف درع مقطع، الجسم مخزنة v2)، صانع الرسائل/الدردشة/الرسائل النصية القصيرة/صناديق نظام المعلومات الإدارية المتكامل (التحقق + الحالات المحظورة)، فقاعات الدردشة للمتلقين، الوثائق (مرحلة التحقق، الأختام، الإجراءات المقفلة، بوابة التحذير)، والنخب عند الرفض في كل عملية تحميل (المعارف الأساسية، الصورة، الوظائف، عيوب النظام، الأصوات، وثائق الحسابات/المرضى/التطبيقات، الشعارات). مركز مكافحة الفيروسات على العنوان التالي: **************** (VIEW_ANTIVIRUS؛ احتياجات السياسات :: إدارة سياسة مكافحة الفيروسات (MANAGE_ANTIVIRUS_POLICY): دائرة الحماية، مؤشرات الأداء الرئيسية للعد، رسوم بيانية للاتجاه/الأصل/الأسرة، بيانات حية الجدول الزمني للتهديدات، وتغيير السياسات مع المساعدة، والإنذارات الكاذبة (MANAGE_PLATFORM_ANTIVIRUS): صحة الماسح الضوئي، الإصدارات مع التجديد/التراجع، صف الاستعراض، ثلاثة أنواع من الإخطارات، جولة مرشدة لمكافحة الفيروسات، /api/antivirus BFF، مرايا لنوع الخدمة ANTIVIRUS(41)، الحقوق 698-700 و MANAGE_PLATFORM_ANTIVIRUS (shared-lib 332f7275)، وسبعة مقالات في مركز المساعدة. تم إنشاء عنصر الحماية في الصفحة الرئيسية ولكنه لم يسجل: ANTIVIRUS_WIDGET كتلة اليمين التي لا تملكها المكتبة المشتركة بعد.

  30. · KlusterServices

    Svc_antivirus login + ANTIVIRUS stream؛ التحويل/البريد الإلكتروني قد يستهلك الفيروسات.>

    - svc_antivirus: STREAM.INFO/CREATE ANTIVIRUS، نشر antivirus.> و rt.org.>، الاشتراك في برنامج مكافحة الفيروسات.> و _INBOX.> (Secret kamo/nats-user-antivirus, SECRETS.md). - svc_conversion: برنامج مكافحة الفيروسات المستهلك API (احتفظ الأحكام، إعادة التحقق من الترقية)، publish/subscribe antivirus.>, publish rt.org.> (تقوم الأحكام المسجلة بتجديد واجهة المستخدم). - svc_email: برنامج &quot; ANTIVIRUS &quot; لواجهة المستهلك البرنامجية (اكتشافات مرشحات البريد)، البرامج المضادة للفيروسات. - توفير وظائف مكافحة الفيروسات (R1, 14d) بحيث يمكن للمستهلكين الربط أولا. تم التحقق من صحته باستخدام nats-server -t مقارنة بالخادوم الحي.

كونك ينتظرك

ابدأ مجانا في دقائق. أضف المنتجات كلما كنت مستعدا - لا هجرة، لا دخول جديد.

مجانا إلى الأبد - لا حاجة إلى بطاقة ائتمان