Renders an interactive FeatureStore simulation dashboard that runs a feature computation job in a background thread and streams progress logs to the browser.
FEATURESTORESIM — set as ReportType in def_report.
def Render(self, Param1="", Param2="", Param3="") -> str:
Param1 — FeatureCode identifying which feature set to simulate.Param2 — Package name (uses active package if empty).Returns an HTML dashboard page with a progress bar, live log panel, feature list, and results table. The simulation is launched in a background thread on first render; subsequent RPC calls poll for status updates.
RpcStartsim(data)Starts a new simulation run (or returns the existing one if already running) for the given feature_code and package. Accepts an optional record_limit to cap the number of source records processed. Returns {"sim_guid": str, "status": str}.
RpcPollsim(data)Returns the current simulation state for a given sim_guid: status, completed_features, total_features, current_feature, latest log lines, and the name of the output table.
RpcGetsimresults(data)Queries the simulation output table and returns up to 100 rows as a list of dicts for display in the results table.
RpcCancelsim(data)Marks a running simulation as cancelled (best-effort; does not interrupt the thread).
RpcClearsim(data)Removes a completed or failed simulation state from the in-process registry.
Simulation state is held in a module-level _SIM_RUNS dict protected by a threading.Lock. Up to 20 concurrent runs are retained; older entries are pruned automatically. Progress callbacks from ObjFeatureStore.compute_features drive log messages. Requires ObjFeatureStore from factory.ai or factory.service.