Skip to main content

Logging & License Cache

The AgiqonConnector writes structured log entries to dedicated files and reduces live HTTP calls to the license API through a built-in cache.


Log channels and log files

Since version 3.7.2 the connector uses four dedicated Monolog channels. Each channel writes to its own rotating log file under log/AgiqonConnector/:

ChannelFileContent
agiqon_apiapi_<env>.logAll HTTP calls to the license API
agiqon_ocioci_<env>.logOCI login controller and function controllers
agiqon_cxmlcxml_<env>.logcXML login controller and cXML auth controller
agiqon_connectorconnector_<env>.logGeneral connector events

<env> corresponds to the Symfony environment value (dev, prod, …).

Rotation settings: Each file rotates automatically. Up to 14 files are retained at DEBUG level.


What is logged?

OCI login controller (agiqon_oci)

EventLevel
Successful loginINFO
Wrong credentialsWARNING
Inactive systemWARNING
Missing required fieldsWARNING
Invalid hook URLWARNING
Invalid licenseWARNING
Unsupported OCI function (OciUndefinedFunctionController)WARNING
Unhandled error in the download JSON flowERROR

cXML login controller and cXML auth controller (agiqon_cxml)

EventLevel
Successful login / authINFO
Invalid or expired auth keyWARNING
Customer not foundWARNING
System not foundWARNING
Malformed stored XMLWARNING
SimpleXML parse errorWARNING

License API client (agiqon_api)

EventLevel
Cache hit (license served from cache)DEBUG
Live license check against APIDEBUG
Stale cache used (API unreachable)WARNING

License check caching

To reduce the number of live HTTP calls to the license API on every login, the connector caches the result of the license check.

How it works

Login request


Cache lookup (cache.app, key: agiqon_connector.license.<type>.<hash>)

├── Cache hit? → return result directly (no API call)

└── Cache miss?


HTTP call to license API

├── Success (2xx)
│ → store result in short cache (10 min)
│ → store result in stale cache (24 h)
│ → return result

├── 4xx (invalid license)
│ → invalidate short cache + stale cache
│ → throw LicenseValidationException

└── Network error / API unreachable

├── Stale cache available?
│ → return stale result (WARNING logged)
└── No stale cache
→ throw LicenseApiUnavailableException

Cache parameters

ParameterValue
Cache servicecache.app (Symfony)
TTL10 minutes (600 seconds)
Stale fallback TTL24 hours (86 400 seconds)
Cache key formatagiqon_connector.license.<type>.<sha1(id.domain)>

Cache invalidation

The cache is invalidated immediately when the license API returns a 401 or 403 response. This ensures that invalid licenses are never served from cache.

Note for operations

The stale fallback ensures that users can continue to log in during a temporary license API outage. After 24 hours at most, logins will no longer succeed without a valid API response.


Exception classes

Since version 3.7.2 there are typed exception classes for license API errors:

ClassWhen thrown
LicenseValidationException4xx response from the license API (carries the HTTP status code)
LicenseApiUnavailableExceptionNetwork error / license API unreachable
OciAuthenticationExceptionFailed OCI authentication flow