### TL;DR
Integrates project data fetching for dynamic subdomain display on the Project Deployment Success page and the OverviewTabPanel.
### What changed?
- Updated `Id.tsx` to fetch project data and dynamically display project's subdomain after deployment.
- Modified `Overview.tsx` to make project's subdomain a clickable link.
### How to test?
1. Deploy a new project and check the deployment success page for correct subdomain display.
2. Open a project's overview tab and click the subdomain link to ensure it navigates correctly.
### Why make this change?
Improves user experience by displaying the actual subdomain and making it clickable, ensuring users can conveniently verify their deployment and access project domain.
---
### TL;DR
This pull request adds a loading icon to the 'Deploy' button in the project template creation form.
### What changed?
- Imported `LoadingIcon` from `components/shared/CustomIcon`.
- Modified the `Button` component to conditionally display the `LoadingIcon` when `isLoading` is `true`. The icon will animate by spinning.
### How to test?
1. Navigate to the project template creation form.
2. Fill in the required fields.
3. Click the 'Deploy' button.
4. Ensure the loading icon appears and spins when the button is disabled (when `isLoading` is `true`).
### Why make this change?
This change provides visual feedback to users, indicating that their action is being processed, thereby enhancing user experience.
---
### TL;DR
- Still cretaes app if user migrates from page
The PR introduces a new `AddProjectFromTemplate` mutation to facilitate project creation using a repository template. This change centralizes the template project creation logic within the backend, improving code maintainability by removing redundant client-side code.
### What changed?
- Added `AddProjectFromTemplate` input type in `schema.gql` and corresponding TypeScript interfaces.
- Implemented `addProjectFromTemplate` resolver with error handling and Octokit integration for repository creation.
- Updated `service.ts` to include the new `addProjectFromTemplate` method.
- Created new GraphQL `Mutation` for `addProjectFromTemplate` in the GraphQL schema.
- Adjusted the client-side GQLClient to support the new mutation.
- Modified frontend to utilize the new backend mutation for project creation from a template.
### How to test?
1. Ensure your backend server is running.
2. Use a GraphQL client like Postman to call the `addProjectFromTemplate` mutation with appropriate input.
3. Verify that the new project is created using the specified template, and appropriate error messages are returned for failures.
4. Check the frontend flow for creating a project from a template to ensure it is working correctly.
### Why make this change?
This change enhances code maintainability by centralizing template project creation logic within the backend, thereby reducing redundancy and potential inconsistencies in client-side implementations.
---
This pull request refactors the main `README.md` by removing detailed backend and frontend setup instructions and adding separate `README.md` files for the backend and frontend with their specific setup and deployment instructions. This makes the main `README.md` cleaner and directs users to specific READMEs for backend and frontend setups.
---
This pull request refactors several aspects of the frontend codebase focused on Storybook configurations and icon story files. It replaces `args` with `argTypes` to enhance control configurations, adds `staticDirs` for public assets in Storybook, and standardizes the titles of some icon stories.
### TL;DR
Update references to the new GitHub repository URLs and make minor formatting fixes in deployment scripts.
### What changed?
Updated GitHub repository URLs from `snowball-tools-platform` to `snowball-tools` in various deployment and test scripts. Made minor formatting adjustments including spacing and indentation.
### How to test?
Run the deployment scripts in their respective environments to ensure they reference the correct repository URLs and all functionalities work as expected. Check for successful creation and updation of application records.
### Why make this change?
This change was made to reflect the new repository structure and ensure consistency across all deployment scripts. The minor formatting fixes improve code readability.
---
### TL;DR
Implemented the new `VerifyCodeInput` component and updated the access code validation logic.
### What changed?
1. Added a new reusable `VerifyCodeInput` component for verifying codes in a user-friendly way. This component handles paste events, input changes, and keyboard navigation.
2. Updated the backend route `/accesscode` to accept an arbitrary code for now.
3. Incorporated the `VerifyCodeInput` component into the `AccessCode` page, replacing the generic `Input` component.
4. Updated the access code validation logic to check for a trimmed length of 5 characters instead of 6.
5. Added a slight pause for UX purposes when validating the access code on the frontend.
### How to test?
1. Go to the Access Code page.
2. Try entering an access code with various inputs (keyboard, paste, etc.) to see if it works seamlessly.
3. Verify that only a 5-digit code is considered valid.
4. Check the backend logs to ensure the validation endpoint is working as expected.
### Why make this change?
This change improves the user experience by providing a custom input component for access code verification and ensures that the access code validation meets the new requirements.
---
## What changed?
This Pull Request introduces an access code validation feature to the authentication process. Changes encompass backend route for access code validation, new frontend components for handling access code input, and integration of the access code verification in the signup flow.
### Backend:
- Added POST `/accesscode` route in `auth.ts` for validating access codes.
### Frontend:
- Created `AccessCode` component for access code input and validation.
- Added `AccessSignUp` component that integrates access code verification before signup.
- Updated `SignUp` component to check for valid access code on mount.
- Modified `SnowballAuth` to use new `AccessSignUp` instead of `SignUp`.
- Added `verifyAccessCode` utility function for code verification API call.
## How to test?
1. Run the backend and frontend projects.
2. Navigate to the signup page. You should be prompted to enter an access code.
3. Enter the code `444444` and proceed. Any other code should display an error message.
4. Verify that valid access code routes to the signup component.
## Why make this change?
This change improves authentication by adding an extra layer of security through access code verification.
This PR centralizes all the environment variable references into a single constants file. The change includes replacing various `import.meta.env` references with imports from the new `utils/constants` module. This improves maintainability by providing a single place to manage environment variables.
### TL;DR
This PR updates the project settings.
### What changed?
The project settings have been refactored for better organization and readability.
### How to test?
To test this change, navigate to the project settings and ensure all options are functioning as expected.
### Why make this change?
This change was made to improve the user experience when navigating through the project settings.
---
### TL;DR
This PR includes updates to the project settings.
### What changed?
The project settings have been refactored for better usability and consistency with other components.
### How to test?
To test this change, navigate to the project settings and ensure all options are working as expected.
### Why make this change?
This change was made to improve the user experience and maintain consistency across the application.
---
### TL;DR
This PR includes updates to the project settings.
### What changed?
The project settings have been refactored for better organization and readability.
### How to test?
To test this change, navigate to the project settings and ensure all options are functioning as expected.
### Why make this change?
This change was made to improve the user experience when navigating through the project settings.
---
### TL;DR
This pull request refactors the `SearchBar` and `Input` components, adding a `ref` to the former and removing an incorrect understanding of `react-hook-form` (yes, i prev "fix" the component) in the latter.
### What changed?
A ref is added to the SearchBar component for better control and handling. In the Input component, we have eliminated the usage of 'react-hook-form' and as a result, the 'register' prop is removed. This makes the component less reliant on specific libraries and more reusable.
### How to test?
Ensure that proper testing is done on the updated components. Make sure that the `SearchBar` works as expected with its ref and that Input does not depend on 'react-hook-form' anymore.
### Why make this change?
This change was made to improve the functionality of the `SearchBar` and the flexibility of the Input component, making them more effective and reusable respectively. The changes also align with the current code quality standards and best practices.
### TL;DR
This PR refactors the `UserSelect` component, adjusting the call to `getToggleButtonProps`.
### What changed?
The `getToggleButtonProps` method in the `UserSelect` component now takes in two separate objects, one for the `ref` and another for `suppressRefError`, instead of a single one.
### How to test?
Verify the component functionality hasn't changed and there are no reference errors.
### Why make this change?
This code changes improve the readability and maintainability of this component by clearly separating the component reference and error suppression configurations in separate objects.
### TL;DR
AddMemberDialog component now uses a Select dropdown for permissions instead of Checkboxes. CollaboratorsTabPanel now includes dismiss functionality for toasts.
### What changed?
- Updated AddMemberDialog to use a Select dropdown for permissions
- Added dismiss functionality for toasts in CollaboratorsTabPanel
### How to test?
Test the functionality of selecting permissions using the dropdown and toast dismissal in CollaboratorsTabPanel.
### Why make this change?
To improve user experience and UI consistency in permissions selection and toast management.
### TL;DR
Reordered the properties in the `ProjectSearchBar` component to follow better coding standards.
### What changed?
In `ProjectSearchBarDialog.tsx`, the 'getItemProps' object was moved to the end of the properties list within `ProjectSearchBarItem`.
### How to test?
Verify that the `ProjectSearchBar` component functions as intended and that no properties are unduly affected by this change.
### Why make this change?
This change enhances code readability and consistency, aligning the ordering of the properties more accurately with our standards.
### TL;DR
This small change adds 'dist/' directory to `.prettierignore` in the frontend package.
### What changed?
An entry for 'dist/' was added to `.prettierignore` file in the frontend package. Since we don't want to format the distribution files, we have added it to our list of ignored paths for prettier. The change just includes the addition of single line `dist/` to `.prettierignore` file.
### How to test?
There is no specific testing needed other than PR build success, as it is a development focused change.
### Why make this change?
The reason for this change is to prevent Prettier from installing unnecessary dependencies in the dist directory which is generated and can cause linter warnings and errors.
### TL;DR
A refactor of the Icon components in the front-end package has been carried out. This includes `CollaboratorsIcon.tsx`, `CopyUnfilledIcon.tsx`, and `TrashIcon.tsx`.
### What changed?
Several attributes previously written in kebab-case were changed to camelCase to adhere to JSX syntax standards. These include `stroke-linecap`, `stroke-linejoin`, `fill-rule`, and `clip-rule`.
### How to test?
Ensure that the rendering and functionality of the icons in the application remain unchanged after this update.
### Why make this change?
The update ensures that our code complies with the preferred casing convention in JSX and avoids all potential related issues.
### TL;DR
This PR involves a minor change on the AddMemberDialog component style.
### What changed?
The 'justify-start' class was removed from the Modal.Footer in the AddMemberDialog.tsx.
### How to test?
Check the AddMemberDialog on the project settings page to make sure the style changes reflect accurately.
### Why make this change?
It's not specified the specific reason for the change, However, it's aimed towards improving the component's layout and presentation in the project settings page.
---
### TL;DR
This pull request refactors the directory structure of the `AuthHeader` component, moving it to the `Pages/Auth` directory. The meta property's attributes were also refined.
### What changed?
The `AuthHeader` component and its story were relocated from the `packages/frontend/src/stories/` directory to the `packages/frontend/src/stories/Pages/Auth/` directory. The title in the meta property has been updated to `Pages/Auth/Header`. The previously explicit assertion that meta satisfies `Meta<typeof Header>` has been removed, making the type assertion implicit.
### How to test?
To test these changes, navigate to the new directory and any references associated with `AuthHeader` component, verify that the software builds successfully, and confirm that Storybook correctly displays the AuthHeader story.
### Why make this change?
This change improves the organization of the codebase by categorizing components into functionally relevant directories. This allows for better management and scalability of the code. Additionally, the adjustments made to the component's metadata in Storybook makes the documentation easier to understand.
### TL;DR
This PR updates formatting in `Button.stories.tsx`
### What changed?
Pulled the Button heading inside `<h1>` tags onto a new line for readability and consistency.
### How to test?
Check the Button story in Storybook and ensure that the Button title displays correctly.
### Why make this change?
This small change improves the readability and consistency of code in the `Button` story.
### TL;DR
Updated paths in `tsconfig.json` and `vite.config.ts`
### What changed?
The paths for `pages` and `types` have been added to both `tsconfig.json` and `vite.config.ts` to support easier importing.
### How to test?
Check if imports using the new paths are working correctly in the code.
### Why make this change?
These changes seem to be for better organization and accessibility of different parts of the code by providing clear and quick paths for `pages` and `types`.
### TL;DR
Added a toast notification for 'Sign-in with Passkeys' feature which is still under development.
### What changed?
'The Sign-in with Passkey' button now triggers a toast notification informing the user that this feature is coming soon.
### How to test?
Click on the 'Sign-in with Passkey' button on the login page. You should see a notification with the message 'Sign-in with Passkeys is coming soon!'.
### Why make this change?
This change has been made to inform users about upcoming features in an interactive manner and ensure a smooth user experience by preventing confusion about non-functional buttons.
### TL;DR
Update font URLs in `index.css`
### What changed?
Updated font URLs from `../public/fonts/InterDisplay/` to `/fonts/InterDisplay/` for better path consistency
### How to test?
Test loading fonts and check for any font display issues
### Why make this change?
To ensure correct font loading and path consistency in the project
### TL;DR
Added `packages/backend/dev/` to `.gitignore` file.
### What changed?
`packages/backend/dev/` is now ignored from the git repository for better development practices.
### How to test?
Try adding files to `packages/backend/dev/`, they should not be tracked by git now.
### Why make this change?
To ensure unnecessary development files don’t accidentally get checked into the repository.
### TL;DR
Update description text in project transfer section to include a 'Learn more' link.
### What changed?
The description text under the 'Transfer project' section of the project settings page is updated. A 'Learn more' link is added to provide additional information about transferring projects.
### How to test?
Navigate to a project's settings page and look for the 'Transfer project' section. Verify whether the description text contains a clickable 'Learn more' link.
### Why make this change?
To provide users with more information and to make the transfer process clearer by providing relevant resources.
### TL;DR
This pull request replaces the Avatar showing user's initial with a formatted text of user's name in Project Search layout.
### What changed?
In the `ProjectSearch` file, the `Avatar` component that displayed the user's initial is replaced with a paragraph tag that now shows the user's formatted name.
### How to test?
To test the change, navigate to the Project Search page to verify that the user's formatted name is displayed instead of an `Avatar`.
### TL;DR
This change removes unused properties from a checkbox component in the `org-slug/projects/create/template` file.
### What changed?
The `value` and `onChange` properties were deleted from the checkbox that determines whether a repo is private or not. It's important to note that this checkbox is currently disabled.
### How to test?
Try to create a new project and check that there aren't any errors or behavior changes when dealing with the 'Make this repo private' checkbox.
### Why make this change?
This change enhances code readability and ensures we're not keeping unnecessary code. It does not affect functionality as the checkbox is currently disabled.
* Add a script to deploy test records
* Add checks for ApplicationDeploymentRecord and the deployment URL
* Add a CI workflow to run the app deployment test
* Update test deployment request record config
* Add test for deployment removal
* Update test deployment request record
* Increase max retries
* Add retries when checking if URL is up or down
* Rename test script
* Run webapp deployment test CI on PR
* Remove unnecessary jq installation step from CI
* Revert "Run webapp deployment test CI on PR"
This reverts commit 01f373501a95b95cf0abc1dee8fed639ec62daf5.
* Add a step for Slack alerts on a CI failure
* Add a workflow dispatch for manual trigger
* Update workflow title and remove trigger on main
* Document deployment test setup
---------
Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
* Fetch latest registry record version and increment
* Move reference up
* Remove steps to manually update record values
* Update registry config with new key and bond
* feat: one click deployer
This adds a script for deploying whatever is the latest on main, essentially automating the changes specified in the readme.
* fix
* repurpose existing script
* clean up
* fix
* fix
* Update latest record version
---------
Co-authored-by: Nabarun <nabarun@deepstacksoft.com>
* 🎨 style: add hover interaction to the card
* ⚡️ feat: make the whole card clickable
* 🎨 style: adjust hovered background for wavy border
* ♻️ refactor: move wavy border class to project card theme
* 🎨 style: add transition when hover
* 📝 docs: add todo to experiment using `Link` componnt
* feat: reskin w/ new design system
* feat: add sepeator calc in comment
* chore: limit commit message to 4 line
* comment fixes
* chore: use Heading component
* Add script and records for deploying frontend app
* Update readme with steps for new deployment
* Add troubleshooting section
* Move config env update
* Add step to commit updated records
* Bump record version
* 🎨 style: adjust z index of the date picker popover
* 🎨 style: add new spacing and rename box shadow from calendar to dropdown
* 🐛 fix: console error becasue button inside button
* ♻️ refactor: rename shadow calendar to shador dropdown on calendar component
* 🚀 perf: remove vscode settings inside `packages/frontend`
* ⚡️ feat: create check radio icon and chevron down icon component
* 🔧 chore: install `downshift`
* ⚡️ feat: create select component
* 🎨 style: adjust the popover position based on the user screen
* ⚡️ feat: separate select item to be a component
* ⚡️ feat: separate select value to be a component
* ♻️ refactor: adjust style and refactor to a new component
* ⚡️ feat: create a type for merge two interface but keep the last value
* 🐛 fix: forward ref the component to fix console error
* ⚡️ feat: add `hideValues` prop to hide the values when on multiple
* 🐛 fix: no result not showing
* ⚡️ feat: make the select to be controller component
* ♻️ refactor: remove console log
* ♻️ refactor: update pr review
* Fix format of eth address to display
* Set authority for record name from backend config
* Add functionality to open repo button
* Use commit author image and commit url in activity card
* Handle review changes
* Fix commit author as null
* Add timeout to move to next page on project creation
---------
Co-authored-by: neeraj <neeraj.rtly@gmail.com>
* ⚡️ feat: create calendar icon for date picker
* ⚡️ feat: create date picker component
* 📝 docs: add date picker to the example page
* 🔧 chore: install `@radix-ui/react-popover`
* Create web3 modal provider with SIWE
* Add auth router to handle SIWE authentication
* Use axios instance to make request
* Add button for SIWE authentication
* Add changes to access session in web-app GQL requests
* Add auth check in GQL context and load/create user
* Use authenticated user from context
* Redirect to sign in page if unauthenticated and logout button
* Change sign-in route to login
* Get project domain from config file
* Set user ethAddress column as unique
* Use formatted user name
* Get session secret and origin url from config file
* Add unique constraint for eth address
* Get secure and samesite from origin url
* Get wallet connect id and backend url from env file
* Format user email in member tab panel
* Add backend config isProduction to set trust proxy
* Use only one server url config
* Add tool tip for displaying email
* Add trustProxy and domain in server.session config
* Add SERVER_GQL_PATH constant in frontend
---------
Co-authored-by: neeraj <neeraj.rtly@gmail.com>
* Fix alignment of deployment status chip
* Use template name from env
* Use env for git template link
* Add loading spinner for create project
* Display user name
* Format the displayed user name
---------
Co-authored-by: neeraj <neeraj.rtly@gmail.com>
2024-02-22 11:25:17 +05:30
584 changed files with 32665 additions and 11870 deletions
- Get the REST and GQL endpoint ports of Laconicd and replace the ports for `registryConfig.restEndpoint` and `registryConfig.gqlEndpoint` in backend [config file](packages/backend/environments/local.toml)
```bash
# For registryConfig.restEndpoint
laconic-so --stack fixturenet-laconic-loaded deploy port laconicd 1317
# 0.0.0.0:32777
# For registryConfig.gqlEndpoint
laconic-so --stack fixturenet-laconic-loaded deploy port laconicd 9473
# 0.0.0.0:32771
```
- Run the script to create bond, reserve the authority and set authority bond
This backend is a [node.js](https://nodejs.org/) [express.js](https://expressjs.com/) [apollo server](https://www.apollographql.com/docs/apollo-server/) project in a [yarn workspace](https://yarnpkg.com/features/workspaces).
## Getting Started
### Install dependencies
In the root of the project, run:
```zsh
yarn
```
### Build backend
```zsh
yarn build --ignore frontend
```
### Environment variables
#### Local
Copy the `envionments/local.toml.example` file to `envionments/local.toml`:
In the deployment repository, update staging [staging/configmaps/config/prod.toml](https://git.vdb.to/cerc-io/snowballtools-base-api-deployments/src/commit/318c2bc09f334dca79c3501838512749f9431bf1/deployments/staging/configmaps/config/prod.toml)
#### Production environment variables
In the deployment repository, update production [production/configmaps/config/prod.toml](https://git.vdb.to/cerc-io/snowballtools-base-api-deployments/src/commit/318c2bc09f334dca79c3501838512749f9431bf1/deployments/production/configmaps/config/prod.toml)
brew install jq # if you do not have jq installed already
```
- Run script to deploy app
- To deploy frontend app to `dashboard.staging.apps.snowballtools.com`
```bash
./deploy-frontend.staging.sh
```
- To deploy frontend app to `dashboard.apps.snowballtools.com`
```bash
./deploy-frontend.sh
```
- Commit the updated [ApplicationRecord](records/application-record.yml) and [ApplicationDeploymentRequest](records/application-deployment-request.yml) files to the repository
## Notes
- Any config env can be updated in [records/application-deployment-request.yml](records/application-deployment-request.yml)
Check if the live web app deployer is in a working state
- Web app repo used: <https://github.com/snowball-tools/test-progressive-web-app> (main branch)
- Config used: [../config.yml](../config.yml)
- The script [test-webapp-deployment-undeployment.sh](./test-webapp-deployment-undeployment.sh) performs the following:
- Create / update [`ApplicationRecord`](./records/application-record.yml) and [`ApplicationDeploymentRequest`](./records/application-deployment-request.yml) records with latest meta data from the repo
- Fetch the latest version of `deployment-test-app` from registry and increment `ApplicationRecord` version
- Publish the resulting `ApplicationRecord` record
- Set names to the record and check name resolution
- Publish the `ApplicationDeploymentRequest` record
- Check that the deployment occurs
- Check that a `ApplicationDeploymentRecord` is created
- Check that the deployment record has correct `ApplicationRecord` id
- Check that the URL present in deployment record is active
- Create and publish a [`ApplicationDeploymentRemovalRequest`](./records/application-deployment-removal-request.yml) record
- Check that the deployment is removed
- Check that a `ApplicationDeploymentRemovalRecord` is created
- Check that the deployment URL goes down
- The test script is run in a GitHub CI [workflow](../../../.github/workflows/test-app-deployment.yaml) that:
- Is scheduled to run everyday on the default (`main`) branch or can be triggered manually
- Sends Slack alerts to configured channels on failure
This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app), using [typescript-tailwindcss-eslint-prettier](https://github.com/cufarvid/cra-templates) template.
This is a [vite](https://vitejs.dev/) [react](https://reactjs.org/) [nextjs](https://nextjs.org/) project in a [yarn workspace](https://yarnpkg.com/features/workspaces).
## Available Scripts
## Getting Started
In the project directory, you can run:
### Install dependencies
### `yarn start`
In the root of the project, run:
Runs the app in the development mode.\
Open [http://localhost:3000](http://localhost:3000) to view it in the browser.
```zsh
yarn
```
The page will reload if you make edits.\
You will also see any lint errors in the console.
### Build backend
### `yarn test`
```zsh
yarn build --ignore frontend
```
Launches the test runner in the interactive watch mode.\
See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
### Environment variables
### `yarn build`
#### Local
Builds the app for production to the `build` folder.\
It correctly bundles React in production mode and optimizes the build for the best performance.
Copy the `.env.example` file to `.env`:
The build is minified and the filenames include the hashes.\
Your app is ready to be deployed!
```zsh
cp .env.example .env
```
See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
#### Staging environment variables
### `yarn eject`
Change in [deployer/deploy-frontend.staging.sh](/packages/deployer/deploy-frontend.staging.sh)
**Note: this is a one-way operation. Once you `eject`, you can’t go back!**
#### Production environment variables
If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.
Change in [deployer/deploy-frontend.sh](/packages/deployer/deploy-frontend.sh)
Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.
### Run development server
You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it.
```zsh
yarn dev
```
## Learn More
## Deployment
You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
From the root of the project, run:
To learn React, check out the [React documentation](https://reactjs.org/).
### Staging
```zsh
cd packages/deployer && ./deploy-frontend.staging.sh
```
### Production
```zsh
cd packages/deployer && ./deploy-frontend.sh
```
### Deployment status
Check the status of the deployment [here](https://webapp-deployer.apps.snowballtools.com)
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.