Skip to content

Changelog & Roadmap

Where we are. Where we're going.

AscendCore is in private beta. 31 production runbooks, tamper-evident audit chain, multi-tenant credential isolation. Here's what's live today, what ships next, and where the platform is headed by 2027.

VisionVision2027
  • SOC-2 Type II certification: full audit report available to enterprise prospects
  • ServiceNow ITSM: bi-directional incident sync and change management automation
  • CrowdStrike Falcon: real-time endpoint isolation and device compliance enforcement
  • AWS IAM: scoped role grants, policy management, and access key lifecycle
  • Customer-managed encryption keys (BYOK): bring-your-own-KMS for application-level data
  • Single-tenant deployment option: dedicated infrastructure for full physical isolation

SOC-2 Type II report + ISO 27001 alignment: satisfies enterprise procurement requirements

ServiceNow: auto-create incidents, sync resolution status, attach full audit trail

CrowdStrike: device isolation on confirmed threat, compliance gating before access grants

AWS IAM: scoped role assignment, policy attachment, and access key rotation runbooks

Customer-managed encryption keys (BYOK): bring-your-own-KMS for app-level data encryption

Single-tenant deployment option: dedicated Netlify site or BYOC for customers requiring full isolation

99.9% uptime SLA with dedicated support tier for enterprise accounts

Q4 2026PlannedOct – Dec 2026
  • BYO-LLM routing: Bedrock and Azure OpenAI for customers requiring inference inside their own cloud
  • AI Workflow Builder: low-code canvas for building runbooks without YAML
  • SIEM export: Splunk HEC and Microsoft Sentinel real-time streaming
  • Pre-execution system-state snapshots: one-click rollback for reversible runbook actions
  • SOC-2 Type I report: Vanta/Drata 90-day audit window completes

BYO-LLM routing: pluggable inference for customers requiring data residency in their own AWS / Azure account

Drag-and-drop workflow canvas with 40+ pre-built action blocks, no YAML required

AI next-step suggestions in canvas based on existing runbook library and ticket history

Real-time SIEM export to Splunk HEC and Microsoft Sentinel

Configurable audit log retention (90d → 7yr) to meet compliance requirements

Pre-execution system-state snapshots: capture-and-rollback engine for reversible actions

PagerDuty alert routing: auto-acknowledge low-severity, escalate high-severity

Google Workspace connector: Gmail, Drive, and Meet provisioning

Q3 2026PlannedJul – Sep 2026
  • Independent penetration test: third-party assessment, reports under NDA
  • Per-tenant customer-employee SSO: each customer's IdP signs in their own users (admin SSO already live)
  • Multi-tenancy Phase 3: per-tenant Teams JWT audience enforcement (enterprise BYOB)
  • Customer-managed billing portal: Stripe checkout sessions + customer-portal links + plan upgrade flows
  • Documentation portal: self-serve runbook authoring guides and API reference
  • Live status page: connector-level health indicators at status.ascendcore.ai
  • Human-in-the-Loop 2.0: configurable per-step approval gates per runbook

Independent pen test: commissioned after multi-tenancy + Postgres land; reports available under NDA

Per-tenant customer SSO: each customer's IdP authenticates their own employees against AscendCore (distinct from the admin SSO already live since May 2026)

Multi-tenancy Phase 3: per-tenant Teams JWT audience validation, an enterprise BYOB requirement

Customer billing portal: Stripe-hosted checkout sessions + customer-portal links for plan changes; built on the live Stripe billing foundation shipped May 2026

Public docs site: runbook DSL reference, integration setup guides, API reference

Live status page with connector-level health indicators and incident history

HITL 2.0: per-step approval gates with Slack DM and email, not just per-runbook

Configurable HITL thresholds: auto-approve low-risk, require approval for privileged actions

Runbook YAML editor: inline schema validation and autocomplete

Analytics dashboard live: real deflection rate, resolution time, and labor cost savings

Q2 2026: RemainingIn ProgressMay – Jun 2026
  • SOC-2 Type I: Vanta enrollment kicks off the 90-day evidence-collection clock
  • First design-partner LOI signed: #1 unlock for investor conversations
  • Strategic runbook #2: design-partner-requested runbook (locked in after first LOI conversation)

SOC-2 Type I evidence collection begins via Vanta: control mapping, asset inventory, risk register

Strategic runbook #2: customer-driven build from the first design-partner conversation

Hardening polish across the existing runbook library: edge cases, customer-team customization paths

Datadog / PagerDuty alert webhook: auto-ack low severity, escalation cards for critical

July 3 2026: Runbook Library 29Live NowJuly 3, 2026
  • Nine more production runbooks live on Slack and Teams: Service Account Credential Rotation, Dormant Account Review, Contractor Onboarding, Unused License Reclamation, DNS Record Change, Conditional Access Policy Review, Suspicious Sign-In Investigation, Microsoft Teams Provisioning, and Jira Project Access Grant
  • Runbook library grows to 29, every action approval-gated with per-step outcomes on the one-click verifiable SHA-256 audit chain, and each card honest about the per-org prerequisites its tier needs

Service Account Credential Rotation (RB-016): scans Microsoft Entra ID app registrations for client secrets nearing expiry, rotates the reviewed set on approval, and seals the new value for a single audited dashboard retrieval so it never touches chat or the log; the still-valid old secret is left to lapse for a deliberate cutover. Needs an Entra app credential with Application.ReadWrite.All and the sealing key configured

Dormant Account Review (RB-017) and Unused License Reclamation (RB-024): review cards that surface the longest-inactive Okta accounts or paid Microsoft 365 seats past a configurable threshold, then suspend or reclaim the reviewed set on one approval, re-verifying each target at execution so a recently-active account is refused rather than actioned. RB-024's dormancy tier needs AuditLog.Read.All and Entra ID P1 for sign-in telemetry and says so when that data is unavailable

Contractor Onboarding (RB-022): provisions a time-boxed Okta account and arms its end date so a recurring sweep suspends sign-in automatically and reversibly; if the automatic suspension cannot be scheduled the card says the account is live and needs manual suspension, rather than claiming success

DNS Record Change (RB-027): applies A, AAAA, CNAME, and TXT changes against a configured Cloudflare zone with the exact from-to transition shown; the zone is re-read at execution and a record that drifted since the proposal is refused rather than applied blind

Conditional Access Policy Review (RB-030): reads every Entra ID conditional-access policy, flags common gaps on one card, and records the reviewed findings on the audit chain as approver-attributed access-review evidence. It reads and records only: it creates, changes, or deletes no policy, so remediation stays a deliberate manual step

Suspicious Sign-In Investigation (RB-032): pulls recent sign-in activity for a user into one card and offers an approval-gated containment action (revoke sessions, suspend sign-in, reset MFA); the Okta tier works whenever Okta is connected, the Entra ID tier needs AuditLog.Read.All and P1 (P2 for risk signals), and even a dismissed investigation records the full report on the audit chain

Microsoft Teams Provisioning (RB-034): creates the Microsoft 365 group with a named owner and activates the team on it, retrying directory replication lag; if the group lands but activation needs another pass the card says exactly that. Needs a tenant with Teams and Microsoft 365 licensing and a Graph credential with Group.Create and Team.Create

Jira Project Access Grant (RB-036): resolves the user, project, and role, routes the grant to an approver (project lead where configured), and adds the user to the project role on approval, recorded in the audit chain. Runs against a configured Atlassian credential for the org's instance

June 15 2026: Confirm-Before-Send + ReliabilityLive NowJune 15, 2026
  • Requester confirm step: the person running a command sees a Send or Cancel preview before anything reaches the approvals channel, catching a mis-typed request before the approver ever sees it, on both Slack and Teams
  • Approval claims are now atomic in the database, so a double-tap, webhook retry, or race can never execute the same action twice
  • The test suite passes 1,387 unit tests on every commit, up from 672 at the close of Phase 2

Requester-confirm gate (REQUESTER_CONFIRM): every slash command can render an ephemeral Send/Cancel preview of the exact approval card before it posts to the admin channel, so a mis-resolved target is caught by the requester, not the approver. The previewed card is stored server-side and posted verbatim on Send, so nothing about the target is tamperable client-side

Asynchronous approval acknowledgement (ASYNC_APPROVAL_ACK): the Slack handler acknowledges inside Slack's three-second window and finalizes the runbook in the background, removing the 'app isn't responding' warning and interaction retries on runbooks that take longer than three seconds

Atomic approval claim: the claim path is now a single Neon INSERT ... ON CONFLICT, so concurrent approvals and webhook retries resolve to exactly one execution

Microsoft Teams natural language extended to multi-argument runbooks (group membership, SSO assignment, privilege elevation, software decommission) through a parameter-carrying propose-confirm card

Unit-test suite grows to 1,387 (Vitest), up from 672 at the close of Phase 2; production deploys stay gated on the full suite passing

June 14 2026: Runbook Library 20Live NowJune 14, 2026
  • Four new production runbooks: Compromised Account Response, Temporary Privilege Elevation, Distribution List Creation, and Slack Channel Provisioning, smoke-tested live against real Okta, Microsoft Entra ID, Microsoft 365, and Slack tenants
  • Runbook library grows to 20, every action approval-gated in Slack and Teams with per-step audit outcomes on the one-click verifiable SHA-256 chain

Compromised Account Response (RB-018): one approval revokes every active session, invalidates the password, resets MFA factors, and revokes the Microsoft Entra ID counterpart's sessions; reports the containment incomplete if any step fails

Temporary Privilege Elevation (RB-014): time-boxed membership in a privileged group with automatic removal at expiry by a recurring sweep, recorded as a system-actor audit event; refuses standing members so a grant can never become a delayed revocation

Distribution List Creation (RB-023): create a mail-enabled Microsoft 365 group and seed its members, with an execute-time name re-check that refuses same-named duplicates

Slack Channel Provisioning (RB-035): create a channel, set its purpose, and invite the requester, leaving any existing channel untouched

Four new audit verb namespaces (account_compromise, privilege_elevation, dl_creation, slack_channel) for clean compliance-evidence separation, including a dedicated system-actor lane for automatic expiry events

June 11 2026: Runbook Library 16Live NowJune 11, 2026
  • Three new production runbooks: Device Enrollment Assignment, Guest Account Cleanup, and SSO App Assignment, smoke-tested live against real Entra ID and Okta tenants
  • Runbook library grows to 16, all approval-gated in Slack and Teams with per-step audit outcomes

Device Enrollment Assignment (RB-021): approve a user into the Intune enrollment group from Slack or Teams; existing managed devices reported for context

Guest Account Cleanup (RB-019): approval-gated removal of external guest accounts with an execute-time safety gate that refuses member accounts; 30-day restorable

SSO App Assignment (RB-015): direct Okta user-to-app grant with exact-label resolution at execution and idempotent re-runs

Three new audit verb namespaces (device_enrollment, guest_cleanup, sso_app) for clean compliance-evidence separation

May 10 2026: Phase 2 ReleaseLive NowMay 10, 2026
  • All 13 production runbooks LIVE: VPN Access Grant, Software Decommission, and Confluence Space Provisioning wired live, completing the runbook library
  • OIDC SSO for admin login: Microsoft Entra and Okta supported (env-var configured)
  • MFA enforcement via mandatory SSO: admin access brokered through customer IdP, which enforces MFA + conditional access
  • Stripe billing infrastructure live: customer + subscription mirror in Postgres, webhook receiver with signature verification, plan-tier enforcement primitives
  • Graduated API rate limits: free 60/min · pro 600/min · enterprise 6000/min (paid tiers receive higher limits automatically)

RB-004 VPN Access Grant: Slack + Teams approval flow → Entra security group add → optional Intune device sync (per-device, isolated failures); 19 unit tests

RB-010 Software Decommission: Slack + Teams approval flow → M365 license revoke + seat-pool delta + Intune device-discovery audit trail; 23 unit tests

RB-012 Confluence Space Provisioning: Slack + Teams approval flow → propose-time key-collision detection → Atlassian Confluence Cloud REST API v2 create; 25 unit tests

OIDC SSO admin login (Microsoft Entra + Okta): NextAuth v5 provider integration, email-allowlist gating, env-var-configured per deployment, fully additive to existing credentials path

Mandatory-SSO toggle (ADMIN_REQUIRE_SSO): when enabled, password login is server-side disabled and the login UI hides the credentials form. IdP becomes the sole admin sign-in path, matching the procurement-grade pattern used by enterprise SaaS for MFA delegation

Stripe billing foundation: customer + subscription tables in Postgres, webhook receiver at /api/webhooks/stripe with signature verification, plan-tier resolution from price IDs, enforcement primitives (requirePlan() + getEffectiveRateLimit())

Plan-tier enforcement: graduated API rate limits per tier (free 60/min, pro 600/min, enterprise 6000/min); admin-set per-key overrides honored verbatim; backward-compat invariant tested (free-tier behavior IDENTICAL to before)

Microsoft Intune integration foundation: shared Graph token module + Intune client (device configurations, managed devices, mobile apps, sync trigger); reuses existing Entra app registration with extra Graph permissions

Atlassian Confluence Cloud client: env-var fallback to JIRA_* for shared-Atlassian-tenant deployments, v2 API for space lookup + create

All 13 runbook /runbooks detail pages now show 'live' status (was 10 live + 3 templates at start of Phase 2)

Drizzle migration 0004 applied to production Neon: stripe_customers + stripe_subscriptions tables (caught up missed migration 0003 for webhook_subscriptions in same operation)

672 unit tests passing (was 493 at start of Phase 2; +179 across the 8 sessions)

Every Phase 2 change purely additive or 100% backward-compatible, with zero regression in existing functionality

May 2026 ReleaseLive NowMay 2026
  • 13 production runbooks across Slack, Teams, and dashboard: identity, access, lifecycle, and group management
  • Tamper-evident SHA-256 audit chain LIVE end-to-end: Postgres attached, every approve/deny appended to a verifiable hash chain
  • Multi-tenancy Phase 1+2: per-org credential isolation and namespaced data wired through every handler
  • Public /runbooks library: all 13 runbooks documented with YAML previews, prerequisites, and supported systems
  • /dashboard/audit page: live chain reads with cryptographic hash markers, demo-aware for prospect demos
  • Doppler ↔ Netlify production secrets: single source of truth, full rotation completed

Group membership runbook (RB-013): Entra security group add/remove with idempotent execution and full HITL parity in Slack and Teams

New employee provisioning enhanced: optional group assignments at propose time, deferred when user not yet in Entra

Public /runbooks library: 13 documented runbooks with SEO-optimized detail pages and YAML previews

SHA-256 hash-chain audit library: canonical JSON serialization, chain verification, CSV export, 98 unit tests

Audit chain handler wiring: every Slack interactive + Teams invoke approve/deny path calls logRunbookOutcome() with graceful no-op when DB unavailable

Neon Postgres attached: tamper-evident audit chain live in production (US East 2), single-column hash markers viewable in /dashboard/audit

/dashboard/audit live chain reader: paginated load-more, hash-prefix column for verification, demo-aware (fictitious Acme rows for prospect demos)

Multi-tenancy Phase 1+2: org-scoped credential vaults via Zod-validated schema, secret-ref resolution (env: / doppler:), resolvers wired into Slack/Teams/Okta/Entra handlers

Dual-mode dashboard security: real owner data vs public demo data on identical URLs, 4-layer enforcement (auth, middleware, client header, API guard)

Trust Center / /security page: implementation-accurate Live / In Progress / Roadmap split with sub-processor list and CISO FAQ

Idle-timeout (5 min, server-enforced) + closed-tab session termination, for SOC-2 CC6.1 alignment

Read-side RBAC isolation: demo / non-owner sessions never see real production telemetry

Per-IP rate limiting + idempotent action handling: no double-execution under retry, no abuse via public endpoints

AscendCore, Inc. C-Corp filed (Stripe Atlas, May 2026): forward-looking entity references in /privacy and /dpa now have entity backing

Datadog ↔ AscendCore integration live in production: webhook receiver + monitor mute API (us5 region)

Vitest infrastructure: 305 unit tests across hash-chain, multi-tenancy, classifier, runbooks, audit, format helpers, parser edge cases

Entra findUser() mail/proxyAddresses fallback: resolves users by email alias when UPN differs (B2B Member accounts, +addressing). Discovered via own smoke testing.

Slack/Teams group-name parser strips surrounding quotes: `/group-add user@x.com "My Group"` now works as users naturally type it

Private BetaLive NowApril 2026
  • Four automations live end-to-end: MFA reset, password reset, account unlock, and account offboarding
  • Microsoft Teams bot: full HITL parity with Slack, Adaptive Card approve/deny flows
  • Microsoft Entra ID connector: account unlock via Graph API, resolves in under 90 seconds
  • Admin dashboard: live approval queue, activity feed, and source tracking across Slack and Teams

MFA reset (Okta): intent classified via Claude Haiku, HITL-gated, factor cleared and re-enrollment sent on approval

Password reset (Okta): admin approve/deny from Slack, Teams, or dashboard, with an Okta temp password set on approval

Account unlock (Entra ID): Graph API enableAccount call, resolves in under 90 seconds end-to-end

Account offboarding (Okta): user deactivation + group removal, HITL-gated with full audit trail

Microsoft Teams bot: registered in Azure (Bot Framework), JWT-verified, Adaptive Card HITL with approve/deny

All four automations available from Slack slash commands and Teams bot chat, with an identical approval flow in both

Source tracking: every request tagged as 'slack' or 'teams' through the full pipeline, visible in dashboard and audit log

Admin dashboard: live approval queue with confidence scoring, completed history, 5-scenario interactive walkthrough

Guided onboarding wizards: step-by-step credential setup for Okta, Entra ID, M365, Teams, Jira, and Duo Security

Lead capture and demo access flow: prospects get dashboard access in under 5 minutes

Claude Haiku classifier for identity requests; skips intent detection for plain email inputs

Teams Adaptive Card submit routing: fixed Action.Submit to route through handleInvoke, not handleMessage

Serverless function lifecycle extended via next/server after() to keep async Slack and Teams work alive post-response