<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Architecture on psLens</title><link>https://pslens.com/tags/architecture/</link><description>Recent content in Architecture on psLens</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://pslens.com/tags/architecture/index.xml" rel="self" type="application/rss+xml"/><item><title>Architecture Overview</title><link>https://pslens.com/docs/getting-started/architecture/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pslens.com/docs/getting-started/architecture/</guid><description>&lt;h2 id="architecture-overview"&gt;Architecture Overview&lt;/h2&gt;
&lt;p&gt;psLens has only two moving parts:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The &lt;strong&gt;SWS framework&lt;/strong&gt;, a small Integration Broker service installed inside your PeopleSoft environment.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;psLens application&lt;/strong&gt;, a single Docker container hosted externally (default: fly.io) or on your own infrastructure.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Everything psLens displays (search results, alerts, reports) flows over a single HTTPS connection from the psLens container into your SWS endpoint. There is no other channel.&lt;/p&gt;
&lt;h3 id="the-short-version"&gt;The Short Version&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Two components, nothing else.&lt;/strong&gt; SWS inside PeopleSoft; psLens as a Docker container outside it.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Traffic only flows one way.&lt;/strong&gt; psLens calls SWS over HTTPS. SWS never reaches out to psLens.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;One protocol.&lt;/strong&gt; REST + HTTP basic auth + &lt;a href="https://sws.books.cedarhillsgroup.com/docs/psoftql/psoftql-syntax/"&gt;psoftQL&lt;/a&gt; JSON queries. No database drivers, no ODBC, no jump hosts.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;One scope.&lt;/strong&gt; SWS only answers queries against PeopleTools metadata tables that you whitelist. Anything outside the list is rejected before it touches the database.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dedicated deployment per customer.&lt;/strong&gt; No shared psLens app, no shared storage, no multi-tenant SaaS backend.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="how-the-pieces-fit"&gt;How the Pieces Fit&lt;/h3&gt;
&lt;pre class="mermaid"&gt;%%{init: {&amp;#34;flowchart&amp;#34;: {&amp;#34;htmlLabels&amp;#34;: true, &amp;#34;padding&amp;#34;: 16, &amp;#34;nodeSpacing&amp;#34;: 60, &amp;#34;rankSpacing&amp;#34;: 80, &amp;#34;subGraphTitleMargin&amp;#34;: {&amp;#34;top&amp;#34;: 10, &amp;#34;bottom&amp;#34;: 14}}}}%%
flowchart LR
 USER([&amp;#34;Your team&amp;#39;s&amp;lt;br/&amp;gt;web browser&amp;#34;])
 subgraph EXT[&amp;#34;Cedar Hills Group hosted or your own infrastructure&amp;#34;]
 APP[&amp;#34;psLens&amp;lt;br/&amp;gt;Docker container&amp;#34;]
 end
 subgraph PS[&amp;#34;Your PeopleSoft Environment&amp;#34;]
 SWS[&amp;#34;SWS Framework&amp;lt;br/&amp;gt;REST endpoint&amp;#34;]
 DB[(&amp;#34;PeopleSoft DB&amp;lt;br/&amp;gt;read-only&amp;lt;br/&amp;gt;whitelisted tables&amp;#34;)]
 SWS --&amp;gt; DB
 end
 USER -- &amp;#34;HTTPS&amp;#34; --&amp;gt; APP
 APP -- &amp;#34;HTTPS · Basic auth&amp;lt;br/&amp;gt;psoftQL JSON&amp;#34; --&amp;gt; SWS

 classDef ps fill:#e8f4fd,stroke:#0d6efd,stroke-width:2px,color:#000
 classDef ext fill:#fff5e6,stroke:#fd7e14,stroke-width:2px,color:#000
 classDef user fill:#e9f7ef,stroke:#198754,stroke-width:2px,color:#000
 classDef subgraphStyle fill:#fafafa,stroke:#666,stroke-width:1px,color:#000
 class SWS,DB ps
 class APP ext
 class USER user
 class PS,EXT subgraphStyle&lt;/pre&gt;
&lt;p&gt;Your team reaches psLens with any current web browser over HTTPS. There is no desktop client to install. Everything the user sees comes from the psLens container; the browser never talks to PeopleSoft directly.&lt;/p&gt;</description></item></channel></rss>