How Customer Data is Handled
Documents, emails, prompts and search indexes stay inside your customer's own Azure subscription and never pass through SkyStack. What SkyStack's own servers keep, and what access it holds, is set out below: written plainly, and kept to what the product does today.
Entra ID & Delegated Access
Sign-in runs through Microsoft Entra ID, so your tenant's MFA and Conditional Access apply. SkyStack never sees or stores a password.
Customer-Owned Azure
AI models, search indexes and storage are created inside the customer's own Azure subscription, with least-privilege access the customer can see and remove at any time. SkyStack is never Owner.
Pre-Flight Policy & Budget Caps
Every deployment runs pre-flight first: access, AI model quota, region, Azure Policy and names. Nothing is created until it passes, and each solution gets a budget alert.
SkyStack's reach, at a glance
Your data stays in your Azure
Each solution is deployed into the customer's own Azure subscription, in a resource group SkyStack creates. Documents, emails, search indexes, AI requests and logs live there. They never pass through SkyStack's servers.
SkyStack's own servers store only: customer and solution names, the answers given in the wizard, price estimates, month-to-date cost figures, support messages, and the audit log. A partner's own settings are stored too: alert addresses and, if they connect one, their PSA keys. Those are never shown to customers.
What access SkyStack holds
A customer's admin approves the SkyStack app once, then signs in once to set up access. After set-up SkyStack holds these roles, and you can see them live in the portal under Access and security:
- Read-only roles on the subscription, to check health, AI quota and cost.
- Change access on one resource group only: a custom role limited to the Kit's resource types, with no access to the data inside them.
- A conditioned role-assignment right on that resource group. It can give out only the six data roles the solutions' own apps need (storage, search and AI data access, and pulling the app's own container image), and nothing else.
SkyStack is never Owner on a customer's subscription. The customer can remove every role at any time in the Azure portal, or delete the app in Entra, and the access ends.
Two more apps are optional, read-only, and approved separately only when a customer wants what they do: SkyStack Insights reads Microsoft 365 Copilot licence and usage counts; SkyStack Assessment reads directory, sign-in and sharing settings for an assessment. Neither can read email, files, chats or prompts, or change anything, and both can be removed in the Entra admin center at any time.
Security profiles
Every solution has the built-in guardrails above (the Standard profile). Partners can choose Strict for customers who need more: nothing SkyStack created can be deleted from the Azure portal, logs are kept 365 days instead of 90, stored files are versioned and recoverable for 30 days, and the app can be limited to the customer's office addresses. Regulated adds a private network: storage, search and the AI services accept connections only from the solution's private network. The app itself is still reached in a browser, with sign-in. Changing a profile after go-live needs the customer's approval. Not in place yet: Defender plans, a compliance scan, and private access for the SkyStack platform itself.
Changes need the customer's approval
Anything that changes cost, behaviour or data (resize, switch AI model, change security profile, remove a solution) is sent to the customer's portal and only applied after they approve it. Routine operations such as restarting an app do not need approval. A customer can also set their own monthly spend limit; it is an early warning for their IT partner.
The solutions themselves
- No keys or passwords: each app uses a managed identity, and sign-in uses the customer's own Microsoft accounts with their MFA and Conditional Access.
- InboxReply never sends email. It saves drafts for a person to review. Its access to Microsoft 365 is limited to one mailbox by the customer's own admin, and it logs message ids and outcomes, never email text.
- InvoiceCapture never posts to accounting and never pays an invoice. It reads an uploaded invoice, suggests an account from the customer's own chart, and shows what looks wrong. A named approver decides, and the result is a CSV that a person imports. Invoice files stay in the customer's own storage, and the log holds invoice ids and outcomes, never supplier or amount details.
- CallRecap never records or joins a call and sends nothing to anyone. Staff upload a recording they already have, after confirming that everyone on the call knew it was recorded. The recording is deleted as soon as it is transcribed. Each person sees only their own calls, and only managers named at deployment see everyone's. Transcripts and recaps are deleted after the period chosen at deployment. Azure Storage keeps deleted files recoverable for 14 days (30 in Strict) as protection against mistakes, then they are gone. The log holds call ids and outcomes, never what was said.
- HelpdeskAgent only answers: it never acts. It answers staff questions in Teams from help articles the customer's own editors wrote, and says which articles it used. When they do not cover a question it says so and gives the contact chosen at deployment; it does not guess. It cannot reset a password, change an account or run anything. Every message must arrive from Microsoft's Teams service with a signed token for the customer's own tenant, or it is refused. It keeps the articles, a count of questions each day, and the words of questions it could not answer, without who asked, for 90 days. It does not keep conversations or its answers, and the log holds counts and outcomes, never question text.
- ContractReview gives a first-pass reading, not legal advice, and sends nothing to anyone. It compares an uploaded contract with the playbook the customer's own reviewers wrote, and every finding quotes the contract word for word. The app checks each quotation against the contract's text and marks one it cannot find as unchecked. A named reviewer must sign off before a review can be downloaded. It runs only on the Regulated security profile, with its data services closed to the internet. The uploaded file is deleted as soon as its text has been read, and the text and the review are deleted after the period chosen at deployment. Azure Storage keeps deleted files recoverable for 30 days as protection against mistakes, then they are gone. Each person sees only the contracts they uploaded, and the reviewers named at deployment see all of them. The log holds ids and outcomes, never what a contract says. Its security badge is a design target: the red-team and evaluation tests behind a Gold badge have not been run yet.
- AskDocs answers only from the documents the customer uploaded, and cites them.
Your IT partner and the money
The customer's Azure is billed by Microsoft through their IT partner as usual. The partner's margin is visible only to the partner's own staff: never to the customer and never through the API.
Accountability
Every action is recorded with who did it and when. Partners can export the full log as CSV or JSON, and customers can download the activity for their own organization from the portal.
What is not in place yet
SkyStack is an early product. It has not been through a SOC 2 or ISO 27001 audit, and it runs as a single instance. The Kits have been tested against simulated Azure and are being proven against real tenants. SkyStack is an independent product and is not endorsed by or affiliated with Microsoft.