← Back to Portfolio

📁 Project Request App — Self-Service Project Creation for Foundry

A full-stack workflow application that lets employees request new Foundry projects through a clean form, admins review and approve with one click, and the project is automatically created with the correct security groups assigned — no manual work, full audit trail.

What & Why

The Problem

Creating a Foundry project is a multi-step manual process: an employee sends a message or email to an admin, the admin manually creates the project, then manually adds security groups to Owner/Editor/Viewer roles. There's no audit trail, no standardization, and it's slow — especially at scale when dozens of teams need projects weekly.

The Solution

A self-service web application with two interfaces:

  • Employee view — A simple Google Forms-style interface where users name their project, pick a location, and search for security groups to assign to each role
  • Admin view — A dashboard showing all pending requests with full details, the ability to edit before approving, and one-click approve/reject
  • Automatic fulfillment — Upon approval, the project is created via the Foundry API with the correct groups assigned. No manual steps.

The Impact

  • Zero manual project creation — admin clicks Approve and the project exists with correct permissions
  • Full audit trail — who requested what, who approved, and when
  • Standardized process — every project follows the same creation workflow and permission model
  • Self-service at scale — works for 5 users or 5,000

How It Works

User Workflow

Employee opens app → Fills form (name, location, groups) → Submits
→ Request stored as "Pending"
→ Admin sees it in dashboard → Reviews → Clicks Approve
→ Project created automatically with groups assigned → Status: Fulfilled

The Request Form

Simple, clean interface. Users search for security groups by name with a typeahead dropdown. Multiple groups can be assigned to each role (Owner, Editor, Viewer). Location is selected from a dropdown of available Foundry Spaces.

Below the form, users see a "My Previous Requests" section showing all their past submissions with current status (Pending, Fulfilled, or Rejected with reason), the groups they requested, and the location — so they always know where their request stands without having to ask anyone.

User request form with group picker and previous requests

The Admin Dashboard

Shows all pending requests with project name, requester, date, location, and assigned groups visible at a glance. Admins can approve immediately or click Edit to modify groups/location before approving. A rejection reason is required when rejecting.

Only members of the designated admin group can access this page — non-admins see nothing.

Admin dashboard with pending requests and approve/reject buttons

Built-in AI Help

The app's documentation is connected to Foundry's AIP Assist, meaning any user can open the AI sidebar and ask natural language questions like "How do I request a new project?" or "What's the difference between Owner and Editor?" — and get instant answers without leaving Foundry.

AIP Assist answering a question about the app

Under the Hood

Architecture Diagram

Architecture Diagram

Technology Stack

LayerTechnologyPurpose
FrontendReact, TypeScript, CSS ModulesGoogle Forms-style request form + admin dashboard
AuthenticationOAuth2 via @osdk/oauthSecure user login with scoped API access
Semantic LayerFoundry OntologyProjectRequest object type with edit-backed storage
WorkflowFoundry Action TypesSubmit, Approve, Reject, Fulfill — with validation rules
Backend FunctionsTypeScript v2, Rest APIProject creation, group search, space listing via service token
SecurityOAuth2, action permissions, row-level filtering, Data Connection secretsMulti-layered: UI hides admin page, Foundry blocks unauthorized action execution, data layer restricts visibility to own requests
AI DocumentationFoundry Notepad → AIP AssistUsers ask natural language questions about the app