mainframe.scan_cache¶
Optional cache storage: bounded batches, immutable results, isolated DB pool.
Attributes¶
Functions¶
|
Reserve at most one connection per API process, outside the queue pool. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Coalesce hot-key writes to hourly batches without reviving invalid entries. |
|
Retain evidence and quota accounting; isolate only existing suspect keys. |
|
|
|
|
|
|
|
|
|
Bound cleanup work per tick; idle caches remain physically bounded too. |
Module Contents¶
- mainframe.scan_cache._recent_requests: collections.deque[float][source]¶
- mainframe.scan_cache.cache_engine() sqlalchemy.Engine[source]¶
Reserve at most one connection per API process, outside the queue pool.
- mainframe.scan_cache.cache_session() collections.abc.Generator[sqlalchemy.orm.Session, None, None][source]¶
- mainframe.scan_cache.validate_context(context: mainframe.models.scan_cache.CacheContext, rules: mainframe.rules.Rules) None[source]¶
- mainframe.scan_cache.validate_lease(session: sqlalchemy.orm.Session, scanner: str, lease: mainframe.models.scan_cache.CacheLease, subject: str) None[source]¶
- mainframe.scan_cache.lookup(session: sqlalchemy.orm.Session, request: mainframe.models.scan_cache.CacheLookup) mainframe.models.scan_cache.CacheReply[source]¶
- mainframe.scan_cache.renew_hits(session: sqlalchemy.orm.Session, context: mainframe.models.scan_cache.CacheContext, rows: list[mainframe.models.orm.ScanCacheEntry], now: datetime.datetime) None[source]¶
Coalesce hot-key writes to hourly batches without reviving invalid entries.
- mainframe.scan_cache.quarantine(session: sqlalchemy.orm.Session, context: mainframe.models.scan_cache.CacheContext, keys: list[mainframe.models.scan_cache.CacheKey]) mainframe.models.scan_cache.CacheWriteReply[source]¶
Retain evidence and quota accounting; isolate only existing suspect keys.
- mainframe.scan_cache.writer_lock(session: sqlalchemy.orm.Session, scanner: Literal['yara', 'opengrep']) bool[source]¶
- mainframe.scan_cache.generation_for_write(session: sqlalchemy.orm.Session, context: mainframe.models.scan_cache.CacheContext) mainframe.models.orm.ScanCacheNamespace | None[source]¶
- mainframe.scan_cache.store(session: sqlalchemy.orm.Session, context: mainframe.models.scan_cache.CacheContext, values: list[mainframe.models.scan_cache.CacheValue]) mainframe.models.scan_cache.CacheWriteReply[source]¶