Object ::nsmcp::access_bot_routing (public)

 ::nsmcp::AccessDiagnosticTool ::nsmcp::access_bot_routing[i]

Defined in /usr/local/ns/tcl/nsmcp/traffic-tools.tcl

Testcases:
No testcase defined.
Source code:
namespace eval ::nsmcp {}
::nsf::object::alloc ::nsmcp::AccessDiagnosticTool ::nsmcp::access_bot_routing {set :adminExample {}
   set :adminSummary {}
   set :authorizer ::nsmcp::authorization
   set :defaultMode scan
   set :description {Scan access-log traffic in a background job by default; poll log_results with jobHandle. The question backend waits and shows progress. mode page retains manual byte paging. Aggregated counts cover all examined pages, with bounded evidence and explicit omissions. Compare access-log traffic with effective runtime pool mappings. Requires diagnostics.runtime.read as well as diagnostics.logs.read. Uses ns_server mapped -context when supported to resolve current path, header and IP precedence from logged User-Agent and peer address. Reports lookupMode, expectedPool and contextComplete; missing predicate inputs remain unknown. Native target-pool discrepancies are candidates, not proof of historical routing failure. Older cores retain explicitly labeled root User-Agent rule membership analysis. Bot-like heuristics are separate from routing decisions. Candidate evidence is prioritized. Use category to select an exact routing category; selectedMatches, filteredOutRecords and omittedCategoryTotals distinguish filtering from omitted evidence. limit is 1..100. Page-local counts; follow nextArguments and sum categories. Use aggregateTraffic true in mode scan for address-free source concentration and User-Agent rankings; exact path filters the queryless URL path. Aggregates count all selected records before evidence truncation. No peer permission is needed for address-free aggregates; source keys are never disclosed. Inspect observedPeerCountsComplete, peerCountsIncompleteReasons, observedUserAgentCountsComplete, cardinality limits and window coverage separately. Peer grouping/disclosure requires includePeerAddresses and diagnostics.logs.peers.read.}
   set :inputSchema {{} object {type string object properties object {mode object {type string string enum array {0 string scan 1 string page} description string {Bot routing: aggregateTraffic true adds address-free source concentration and User-Agent rankings; path selects an exact queryless path. scan aggregates all pages in a background job, polled with log_results. page returns one bounded byte page. Slow requests remain paged.}} authenticationState object {type string string enum array {0 string anonymous 1 string authenticated 2 string unknown} description string {Filter by logged authentication state; no identity is disclosed.}} aggregateTraffic object {type string boolean default boolean false description string {Scan mode only: address-free source concentration and User-Agent rankings over all selected records, independent of evidence limits. No peer-disclosure permission required.}} path object {type string string description string {Exact queryless path, e.g. /bugtracker/openacs/}} scanStrategy object {type string string enum array {0 string window 1 string full} default string window description string {Background scans: window seeks by completion timestamps with a 300s margin and explicit ordering assumptions; full examines the entire current file.}} lastMinutes object {type string integer minimum number 1 maximum number 1440 default number 60} from object {type string number} to object {type string number} limit object {type string integer minimum number 1 maximum number 100 default number 20} pool object {type string string default string bots} module object {type string string default string nslog} category object {type string string enum array {0 string matching-rule-in-target 1 string matching-rule-other-pool-candidate 2 string bot-like-unmatched-heuristic 3 string no-target-rule-match 4 string unknown 5 string native-target-in-target 6 string native-target-other-pool-candidate 7 string bot-like-routed-elsewhere-heuristic 8 string native-other-pool} description string {Bot routing only: retain evidence for this exact category. categoryTotals still covers all matching records; selectedMatches and filteredOutRecords distinguish selection from omitted evidence.}} includePeerAddresses object {type string boolean default boolean false} beforeOffset object {type string integer minimum number 0} sourceBytes object {type string integer minimum number 0} sourceIdentity object {type string string} mappingIdentity object {type string string}} additionalProperties boolean false}}
   set :maxAggregateSources 100000
   set :maxAggregateUserAgents 4096
   set :maxReadBytes 4194304
   set :name access_bot_routing
   set :operation bot
   set :outputSchema {}
   set :peerRedactor ::nsmcp::mcpPeerLogRedactor
   set :permission diagnostics.logs.read
   set :redactor ::nsmcp::mcpLogRedactor
   set :routing ::nsmcp::requestRouting
   set :seekMinimumBytes 8388608
   set :service ::nsmcp::logService}
XQL Not present:
Generic, PostgreSQL, Oracle
[ hide source ] | [ make this the default ]
Show another procedure: