Commit Graph

25 Commits

Author SHA1 Message Date
bwnyasse
a5a4eae255 feat(launchpad): implement secure email hashing for access control
This commit introduces a more secure method for verifying user
access to the internal launchpad by hashing email addresses.

- Replaces the plain-text email list with SHA-256 hashes.
- Adds a script to generate these hashes from `iap-users.txt`.
- Updates the launchpad HTML to hash the input email and compare
 it against the `allowed-hashes.json` file.
- Updates Makefile to generate hashes before deploy and serve.
- Adds .keep file for krow_client folder.
2026-01-10 11:48:54 -05:00
bwnyasse
ba938be7ad feat(Makefile): replace Cloud Run deployment with Firebase Hosting for launchpad
feat(firebase.json): remove site property from api-harness hosting config
feat(firebase): migrate launchpad to firebase hosting with auth

This commit migrates the internal launchpad from Cloud Run with IAP
to Firebase Hosting with Firebase Authentication. This change
simplifies the deployment process and leverages Firebase's authentication
capabilities for user access control.

The following changes were made:

- Updated the Makefile to remove Cloud Run deployment tasks and add
 Firebase Hosting deployment tasks.
- Removed the Dockerfile and .gcloudignore files, as they are no longer
 needed for Firebase Hosting.
- Updated the firebase.json file to configure Firebase Hosting for the
 launchpad.
- Modified the launchpad's index.html to include Firebase Authentication
 logic.
- Updated the iap-users.txt file to be used as a whitelist for Firebase
 Authentication.
- Added a launchpad-dev target to run the launchpad locally using the
 Firebase Hosting emulator.
- Removed the configure-iap-launchpad target, as IAP is no longer used.
- Removed the site property from the api-harness hosting configuration
 in firebase.json, as it is not needed.

The migration to Firebase Hosting provides the following benefits:

- Simplified deployment process.
- Firebase Authentication for user access control.
- Improved scalability and reliability.
- Reduced operational overhead.
2026-01-10 11:18:48 -05:00
Achintha Isuru
41fc7c8316 feat: update icon-figma SVG attributes and replace icon-design SVG content 2025-11-30 21:58:48 -05:00
Achintha Isuru
6b2ac38fb5 feat: Add new SVG icons and update links data to reference them via file paths. 2025-11-30 21:47:16 -05:00
Achintha Isuru
d623e5477b feat: Implement dynamic loading of application links from a JSON configuration using a new JavaScript module. 2025-11-30 21:40:56 -05:00
bwnyasse
f7c2027065 feat: add internal API test harness
This commit introduces a new internal API test harness built with React and Vite. This harness provides a user interface for testing various API endpoints, including authentication, core integrations, and entity-related APIs.

The harness includes the following features:

- Firebase authentication integration for secure API testing.
- A modular design with separate components for different API categories.
- Form-based input for API parameters, allowing users to easily configure requests.
- JSON-based response display for clear and readable API results.
- Error handling and display for debugging purposes.
- A navigation system for easy access to different API endpoints.
- Environment-specific configuration for testing in different environments.

This harness will enable developers to quickly and efficiently test API endpoints, ensuring the quality and reliability of the KROW backend services.

The following files were added:

- Makefile: Added targets for installing, developing, building, and deploying the API test harness.
- firebase.json: Added hosting configurations for the API test harness in development and staging environments.
- firebase/internal-launchpad/index.html: Updated with accordion styles and navigation for diagrams and documents.
- internal-api-harness/.env.example: Example environment variables for the API test harness.
- internal-api-harness/.gitignore: Git ignore file for the API test harness.
- internal-api-harness/README.md: README file for the API test harness.
- internal-api-harness/components.json: Configuration file for shadcn-ui components.
- internal-api-harness/eslint.config.js: ESLint configuration file.
- internal-api-harness/index.html: Main HTML file for the API test harness.
- internal-api-harness/jsconfig.json: JSConfig file for the API test harness.
- internal-api-harness/package.json: Package file for the API test harness.
- internal-api-harness/postcss.config.js: PostCSS configuration file.
- internal-api-harness/public/logo.svg: Krow logo.
- internal-api-harness/public/vite.svg: Vite logo.
- internal-api-harness/src/App.css: CSS file for the App component.
- internal-api-harness/src/App.jsx: Main App component.
- internal-api-harness/src/api/client.js: API client for making requests to the backend.
- internal-api-harness/src/api/krowSDK.js: SDK for interacting with Krow APIs.
- internal-api-harness/src/assets/react.svg: React logo.
- internal-api-harness/src/components/ApiResponse.jsx: Component for displaying API responses.
- internal-api-harness/src/components/Layout.jsx: Layout component for the API test harness.
- internal-api-harness/src/components/ServiceTester.jsx: Component for testing individual services.
- internal-api-harness/src/components/ui/button.jsx: Button component.
- internal-api-harness/src/components/ui/card.jsx: Card component.
- internal-api-harness/src/components/ui/collapsible.jsx: Collapsible component.
- internal-api-harness/src/components/ui/input.jsx: Input component.
- internal-api-harness/src/components/ui/label.jsx: Label component.
- internal-api-harness/src/components/ui/select.jsx: Select component.
- internal-api-harness/src/components/ui/textarea.jsx: Textarea component.
- internal-api-harness/src/firebase.js: Firebase configuration file.
- internal-api-harness/src/index.css: Main CSS file.
- internal-api-harness/src/lib/utils.js: Utility functions.
- internal-api-harness/src/main.jsx: Main entry point for the React application.
- internal-api-harness/src/pages/ApiPlaceholder.jsx: Placeholder component for unimplemented APIs.
- internal-api-harness/src/pages/EntityTester.jsx: Component for testing entity APIs.
- internal-api-harness/src/pages/GenerateImage.jsx: Component for testing the Generate Image API.
- internal-api-harness/src/pages/Home.jsx: Home page component.
- internal-api-harness/src/pages/Login.jsx: Login page component.
- internal-api-harness/src/pages/auth/GetMe.jsx: Component for testing the Get Me API.
- internal-api-harness/src/pages/core/CreateSignedUrl.jsx: Component for testing the Create Signed URL API.
- internal-api-harness/src/pages/core/InvokeLLM.jsx: Component for testing the Invoke LLM API.
- internal-api-harness/src/pages/core/SendEmail.jsx: Component for testing the Send Email API.
- internal-api-harness/src/pages/core/UploadFile.jsx: Component for testing the Upload File API.
- internal-api-harness/src/pages/core/UploadPrivateFile.jsx: Component for testing the Upload Private File API.
- internal-api-harness/tailwind.config.js: Tailwind CSS configuration file.
- internal-api-harness/vite.config.js: Vite configuration file.
2025-11-16 21:45:17 -05:00
Achintha Isuru
ed6e51a29e feat(documents): add architecture document for client mobile application 2025-11-16 16:57:47 -05:00
Achintha Isuru
26dff819a1 feat(diagrams): add comprehensive architecture and use case diagrams for client mobile application 2025-11-16 16:57:47 -05:00
Achintha Isuru
c329dbe138 feat(diagrams): add new Mermaid diagrams for client mobile application overview, use cases, API map, and backend architecture 2025-11-16 16:57:47 -05:00
Achintha Isuru
21a1c69a41 feat(documents): update title in documents config to include migration plan 2025-11-16 16:57:47 -05:00
Achintha Isuru
8e0d9e2cf7 feat(documents): add document viewer and configuration for loading markdown files 2025-11-16 16:57:46 -05:00
Achintha Isuru
662008c870 feat(diagrams): add Mermaid diagrams for backend architecture, API map, and use-case flows 2025-11-16 16:57:46 -05:00
bwnyasse
613d64ae9f chore: remove firebase/internal-launchpad/app.yaml
The file is no longer needed.
2025-11-16 16:52:34 -05:00
bwnyasse
cf2a2d89d9 feat(admin-web): add KROW logo and title to admin console
feat(admin-web): display environment badge in admin console
feat(admin-web): configure Nginx for SPA and copy config
fix(Makefile): fix typo in CR_ADMIN_IMAGE_URI variable assignment
feat(firebase): update launchpad title to "Launchpad"
2025-11-16 08:54:11 -05:00
bwnyasse
813988293e feat(Makefile): introduce admin console deployment to Cloud Run with IAP
feat(Makefile): add IAP configuration management for both launchpad and admin
feat(Makefile): refactor IAP user management commands for reusability
feat(Makefile): add Dockerfile for admin-web to containerize the application
feat(Makefile): remove App Engine deployment targets for admin-web

This commit introduces significant changes to the deployment process
for the admin console, migrating it from App Engine to Cloud Run and
integrating Identity-Aware Proxy (IAP) for enhanced security.

The key changes include:

- **Admin Console Deployment to Cloud Run:** The admin console is now
 deployed to Cloud Run using a Dockerfile that builds and
 containerizes the application. This provides a more scalable and
 flexible deployment environment.
- **IAP Integration:** IAP is now enabled for the admin console,
 restricting access to authorized users only. This enhances the
 security of the application and protects sensitive data.
- **IAP Configuration Management:** New commands have been added to
 the Makefile to manage IAP configuration for both the launchpad and
 admin console. These commands allow for easy addition and removal
 of IAP users.
- **Refactored IAP User Management Commands:** The IAP user management
 commands have been refactored to be more reusable and generic. This
 allows for easier management of IAP users for both the launchpad and
 admin console.
- **Removal of App Engine Deployment Targets:** The App Engine
 deployment targets for the admin console have been removed, as the
 application is now deployed to Cloud Run.

These changes provide a more secure, scalable, and maintainable
deployment process for the admin console.
2025-11-16 08:26:20 -05:00
bwnyasse
3bd2dfc002 refactor(Makefile): remove App Engine configs and scripts, migrate launchpad to Cloud Run
This commit removes legacy App Engine deployment artifacts and updates the Makefile to reflect the successful migration of the `internal-launchpad` service to Cloud Run.

The following changes were made:

- Deleted obsolete permission scripts:
 - `fix-appengine-permissions-complete.sh`
 - `fix-project-level-permissions.sh`
 - `create-missing-repository.sh`
- Removed the `firebase/internal-launchpad/app.yaml` file.
- Updated `firebase.json` to remove the `launchpad` hosting configuration.

These changes streamline the repository, reduce developer confusion, and prevent the accidental use of outdated deployment logic.
2025-11-16 08:10:31 -05:00
bwnyasse
20c29dc695 update 2025-11-14 12:59:00 -05:00
bwnyasse
0921ae9fc3 feat(firebase/internal-launchpad): migrate launchpad to Tailwind CSS for improved styling and maintainability
feat(firebase/internal-launchpad): enhance UI with Tailwind CSS, improving responsiveness and aesthetics
feat(firebase/internal-launchpad): improve diagram loading and error handling
feat(firebase/internal-launchpad): enhance navigation with Tailwind CSS styling
feat(firebase/internal-launchpad): improve home view with Tailwind CSS styling
feat(firebase/internal-launchpad): add pan and zoom functionalities to diagrams
2025-11-14 10:05:54 -05:00
bwnyasse
b7477944bc feat: update title and favicon in index.html
This commit updates the title and favicon in the index.html file
to reflect the new KROW branding. It also updates the links in
the internal launchpad to point to the correct environments.

feat: add script to patch index.html during integration

This commit adds a new script to patch the index.html file during
the integration process. This script updates the title and favicon
to reflect the new KROW branding.

style: update badge style in Dashboard.jsx

This commit updates the badge style in the Dashboard.jsx file to
use a span element with rounded corners instead of the Badge
component. This is to match the design of the new KROW branding.
2025-11-14 09:06:30 -05:00
bwnyasse
9bdb250714 feat: add firebase configuration and deployment scripts
This commit introduces Firebase configuration files (.firebaserc,
firebase.json) and updates the Makefile to include deployment
commands for different environments (dev, staging).

The .firebaserc file defines Firebase projects for development and
staging, along with hosting targets.

The firebase.json file configures hosting settings, including
rewrites and ignores. It defines hosting targets for the main app
in dev and staging, and a separate target for an internal launchpad.

The Makefile is updated to include:
- GCP project IDs for dev and staging.
- Environment detection (ENV variable).
- Conditional variables based on the environment (GCP_PROJECT_ID,
 FIREBASE_ALIAS, HOSTING_TARGET).
- Deployment commands for the launchpad and the main app.
- The build command now passes the environment variable to the
 frontend build process.

The internal launchpad is added to firebase/internal-launchpad/index.html
to provide quick access to application URLs and Firebase/GCP
consoles for different environments.

A patch script is added to inject the environment label into the
Dashboard page.

The index.html title is changed to KROW.

These changes enable streamlined deployment and environment
management for the KROW application.
2025-11-14 08:53:00 -05:00
bwnyasse
16a5cd9f6f feat: create internal launchpad for KROW
This commit introduces a new internal launchpad for the KROW
project. The launchpad provides a centralized location for
accessing applications, resources, and diagrams related to the
project.

The launchpad includes the following features:

- A sidebar navigation menu for accessing different sections of
 the launchpad.
- A home view with links to applications and resources.
- A diagram viewer for displaying static SVG and dynamic Mermaid
 diagrams.
- Zoom and pan functionality for diagrams.
- Dynamic loading of Mermaid diagrams from a configuration file.

This launchpad is designed to improve the discoverability of
project resources and provide a more streamlined experience for
developers and stakeholders.
2025-11-14 06:05:05 -05:00
Achintha Isuru
58ebf49bc6 feat: add favicon.svg for the KROW Launchpad 2025-11-13 18:46:57 -05:00
Achintha Isuru
0970218682 feat: add dynamic Mermaid diagram support and configuration and add diagrams for legacy staff application 2025-11-13 18:22:47 -05:00
bwnyasse
01c592d28f feat(launchpad.html): add links to legacy mobile apps on app stores
This commit adds a new card to the launchpad page with links to the
legacy mobile apps on the Google Play Store and Apple App Store. This
will make it easier for users to find and access the legacy mobile apps.
2025-11-13 13:22:13 -05:00
bwnyasse
554dc9f9e3 feat: Initialize monorepo structure and comprehensive documentation
This commit establishes the new monorepo architecture for the KROW Workforce platform.

Key changes include:
- Reorganized project into `frontend-web`, `mobile-apps`, `firebase`, `scripts`, and `secrets` directories.
- Updated `Makefile` to support the new monorepo layout and automate Base44 export integration.
- Fixed `scripts/prepare-export.js` for ES module compatibility and global component import resolution.
- Created and updated `CONTRIBUTING.md` for developer onboarding.
- Restructured, renamed, and translated all `docs/` files for clarity and consistency.
- Implemented an interactive internal launchpad with diagram viewing capabilities.
- Configured base Firebase project files (`firebase.json`, security rules).
- Updated `README.md` to reflect the new project structure and documentation overview.
2025-11-12 12:50:55 -05:00