Coder Social home page Coder Social logo

firecamp-dev / firecamp Goto Github PK

View Code? Open in Web Editor NEW
1.6K 1.6K 111.0 13.75 MB

Developer-first OpenSource API DevTool, Postman/Insomnia alternative.

Home Page: https://firecamp.dev

License: GNU Affero General Public License v3.0

Batchfile 0.01% JavaScript 1.21% TypeScript 90.82% Sass 0.60% SCSS 3.78% MDX 2.15% CSS 1.27% HTML 0.13% Rust 0.02%
api api-client graphql graphql-playground hacktoberfest hacktoberfest2023 open-source socket-io socket-io-playground websocket websocket-playground

firecamp's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

firecamp's Issues

Remove members from org - feature request.

Is your feature request related to a problem? Please describe.
In team collaboration, the admin should be able to remove members from Organization.

Currently, we can remove workspace members but not the organization members.

[feat]: show app version

Is your feature request related to a problem? Please describe.
Currently version no. is not shown anywhere in the web app. It should be there to make sure what version I am using right now.

Describe the solution you'd like
The version no. should be shown at the footer of the main menu.

image

Hide all authorisation-only links for guest users

Feedback Description:
When a guest visits the application, they can see links like "import collection", but links like this that require authentication should really be hidden for guest users.

Feedback Type:
Enhancement and User Interface

Context:
N/A

Suggested Improvement:
Hide all authentication-only links for guest users.

Benefits:
This will remove any confusion as to what the user can do when they visit the application as the error message of "unauthorised" doesn't indicate you require an account.

Additional Information:
image

Debugger config

I tried to use vscode debugger for better development.
I found a configuration for running on debugger mode.
I add into launch.json :

{ "version": "0.2.0", "configurations": [ { "type": "node", "request": "launch", "name": "Firecamp dev", "skipFiles": [ "<node_internals>/**" ], "program": "${workspaceFolder}/node_modules/webpack/bin/webpack.js", "sourceMapPathOverrides": { "webpack://EmailsInput/./*": "${workspaceFolder}/*" }, "outFiles": [ "${workspaceFolder}/dist/**/*.js" ], "sourceMaps": true, "args": [ "serve", "--config", "./webpack.dev.js" ], } ] }

and I changed the webpack.dev.js :

... devtool: 'inline-source-map', ...
The debugger is running, but breakpoints are disabled.

I tried to add sourceMap : true in tsconfig.json .

The debugger is complaining that "sourceMap" is not true.

[bug]: Performance on GraphQL playground. Desktop App v2

Describe the bug
Hi there, I have an issue with Firecamp. When I'm trying to write a GraphQL query I'm experiencing lags of several seconds. I'm working on an Apple M2 max, 64gb ram. My colleague is experiencing the same with a MacBook i9, 32gb.... Version is 2.6.1. installed via homebrew. Do you know what we can do?

To Reproduce
Steps to reproduce the behavior:

  1. Connect to a graphql-server
  2. Start typing to create a query (maybe include variables)

Expected behavior
Characters, selections, etc. should happen as I type, not 3s later.

Desktop (please complete the following information):

  • OS: MacOS 13.2.1 (22D68)
  • Firecamp-Version: 2.6.1

Additional context
MacBook M2 max, 64gb ram

feat: gRPC support

Is your feature request related to a problem? Please describe.
Postman supports gRPC and that makes it really easy to debug and test around with Microservice apps.

Describe the solution you'd like
Possibility to paste a protobuf definition or select file/directory to use (maybe even watch).
There is also gRPC reflection, if the server supports it it's possible to retrieve the proto definition that way.

Describe alternatives you've considered
Postman ;P

Additional context
-

[PRD]: Revamping the website

Product Requirements Document (PRD) for the revamping of the Firecamp website.

  1. Overview:
    The goal of this project is to revamp the Firecamp website to enhance its user experience, improve visual design, and incorporate new features. The revamped website should align with Firecamp's brand identity and provide an intuitive and engaging experience for visitors.

  2. Objectives:
    a. Enhance User Experience:

    • Improve website navigation to make it intuitive and user-friendly.
    • Optimize page loading speed for better performance.
    • Implement responsive design to ensure compatibility across different devices and screen sizes.

    b. Improve Visual Design:

    • Create a visually appealing and modern design that reflects Firecamp's brand identity.
    • Use consistent typography, color schemes, and visual elements throughout the website.
    • Incorporate high-quality images and graphics to enhance the overall look and feel.

    c. Add New Pages:

    • Home: A landing page that provides an overview of Firecamp's features and benefits.
    • REST: A page dedicated to showcasing Firecamp's capabilities for working with REST APIs.
    • GraphQL: A page highlighting Firecamp's support for GraphQL and its related features.
    • WebSocket: A page explaining Firecamp's WebSocket capabilities and how to use them.
    • SocketIO: A page demonstrating Firecamp's integration with SocketIO for real-time communication.
    • Legals: A page containing legal information such as terms of service, privacy policy, and disclaimer.
    • Cookie: A page explaining Firecamp's cookie usage and providing options for managing preferences.
    • Pricing: A page displaying Firecamp's pricing plans and subscription options.

    d. Design References:

  3. Technical Requirements:
    a. Technology Stack:

    • Next.js: Utilize the Next.js framework for server-side rendering and efficient routing.
    • Mantine or RadixUI: Choose one of these UI libraries for building consistent and visually appealing components.
    • Tailwind CSS: Use Tailwind CSS for efficient styling and responsive design.
    • MDX: Implement MDX for flexible content creation, allowing the use of Markdown and JSX.

    b. Performance and Scalability: (Nextjs is a good choice to manage it)

    • Optimize website assets, including images, scripts, and stylesheets, for fast loading.
    • Leverage Next.js's built-in performance optimizations for improved loading speed.
    • Ensure the website is scalable to handle increased traffic and user interactions.
  4. Timeline:

    • Phase 1: Design and Planning (1 week), probably use ready to use template or components
    • Phase 2: Development (1 week)
    • Phase 3: Testing and QA (1 week)
    • Phase 4: Deployment and Launch (1 HR)

Note: The timeline is subject to change based on resource availability and project complexity.

  1. Success Metrics:

    • Improved website engagement metrics (e.g., reduced bounce rate, increased time on page).
    • Positive user feedback and increased customer satisfaction.
    • Higher organic search rankings and increased website traffic.
    • Achieving the project milestones within the defined timeline and budget.
  2. Risks and Mitigation:

    • Potential delays due to unforeseen technical challenges or resource constraints. Mitigation: Regular project monitoring and risk assessment, clear communication channels among team members, and agile project management practices.
    • Design and usability concerns that may impact user experience. Mitigation: User testing and feedback loops during development, involving stakeholders in the design review process.

By following this PRD, the revamping of the Firecamp website will ensure a more engaging and visually appealing user experience, leading to increased user satisfaction and brand recognition.

Support for client certificates

Currently, Firecamp allows for certificate authentication with Root CA for SSL Verification.
However in this case, it is the client verifying the server, which works flawlessly.
image

However, support for client certificates is missing. If i require my server to verify the client as well as client verifying the server, there is no way to do so. I have tried bundling all certificates into one, but it does not work.

Postman has this feature where you could add Root CA(.pem) as well as client certificates (.pfx/.key/.crt)
image

I hope this feature gets added to Firecamp as well.

[feature]: Firecamp CLI

Description

In order to further empower our API Platform, Firecamp is currently undertaking the development of a command-line interface (CLI) tool. This CLI tool will facilitate the seamless execution of API Collections, allowing our users to efficiently manage and run their API operations. By integrating this CLI functionality, we aim to enhance the professional capabilities and user experience of the Firecamp platform.

Example

firecamp collection run --help

WebSocket Server

Firecamp if great as WebSocket client, but sometimes you have to act as WebSocket server, e.g. for client development.

There should be a WebSocket server mode (on a specified port), where you can send raw text or JSON from Firecamp to all connected clients.

[bug]: Development server not starting; err_pnpm_recursive_run_first_fail

Describe the bug
After doing all the steps From Here, it not starting the development server

Expected behavior
Should run the development server at localhost but showing errors in terminal: err_pnpm_recursive_run_first_fail

Screenshots
Screenshot 2023-10-03 152155

Desktop (please complete the following information):

  • OS: [windows 11]
  • Browser [chrome]
  • Version [117.0.5938.132]

Additional context
Add any other context about the problem here.

bug: Scrollbar in GraphQL -> Query collection

Describe the bug
In GraphQL playground -> query collection - > When there is more query there should be a scroll bar.

Screenshots
Screenshot 2023-08-26 at 11 58 15 AM

Desktop (please complete the following information):
Firecamp web: v3.2.2

feat: common configuration of husky, eslint and prettier across all packages

Is your feature request related to a problem? Please describe.
Currently, the code formatting is implemented package-wise as the majority of packages were independent repos before the OSS launch. So there is no code formatting, prettify and commit standards are defined for the whole app as a common config file/package.

Describe the solution you'd like
There should be a common package like @firecamp/eslint, or @firecamp/prettify available. we can install them in the mono repo to maintain the standards and reuse the same configuration across all packages.

add issue templates

Description
Add issue templates

  1. Bug Template
  2. Feature Request Template
  3. Feedback Template

[bug]: Unable to authenticate with github

Describe the bug
I'm unable to sign up with github. When I'm trying to do so, I get a blank html page with error message: The username must not be containing any spaces

To Reproduce
Steps to reproduce the behavior:

  1. Go to https://firecamp.dev/
  2. Press "Sign In or Sign Up in Firecamp image
  3. Press "Continue with Github"
    image
  4. Try to sign in with my Github account (lol)

Expected behavior
I expected to be signed in

Screenshots
image

Desktop (please complete the following information):

  • OS: Windows
  • Browser: Brave
  • Version 115

Additional context

[bug] [UI]: in collection UI, there is issue of spacing and margin

Describe the bug
In API collection UI there is issue of margin and spacing, due to that UI get disturbed.

To Reproduce
Steps to reproduce the behavior:

  1. Go to API collection.
  2. You can save few request shows like in the attached screensort, to get the idea about where is the problem.

Expected behavior
There should not be margin and spacing issue.

Screenshots

Screenshot 2023-10-01 at 2 02 08 PM

[feature]: bulk edit for FormUrlEncode body type

Is your feature request related to a problem? Please describe.
I am not able to bulk edit the form data.

Describe the solution you'd like
The form-URL-encode body type table should be bulk-editable. The developer should be able to edit the table in bulk editor with comma-separated values the same as params.

image

Mutual TLS support

Mutual TLS (mTLS) is a security mechanism that adds an extra layer of authentication to the standard SSL/TLS protocol. In a typical SSL/TLS communication, only the server is authenticated to the client using a certificate. However, in a mutual TLS setup, both the client and server authenticate each other using their respective certificates.

Would love to see this feature :)

bug: move requests to another collection and folder has issue

Describe the bug
requests move from one folder or one collection to another folder or collection is not working properly.

Expected behavior
requests should be moved successfully from one place to another by just drag and drop.

Desktop (please complete the following information):

  • OS: macos
  • Browser: chrome
  • Version: v3.2.2

[bug]: Dark Theme Selection not Persisting in LocalStorage

Description:

Current Behavior:
In the "Themes" section of the application, when selecting any dark theme, the editorTheme value in localStorage is correctly changed from editor-light to editor-dark. This behavior is functioning as intended and is a positive change.

Expected Behavior:
After selecting a dark theme and changing the editorTheme value to editor-dark (or editor-lite) in localStorage, the selection should persist even after reloading the page or navigating back to the application. However, the current behavior is that the editorTheme value reverts back to editor-light upon reload or returning to the application.

Steps to Reproduce:

  1. Open the firecamp.dev.
  2. Navigate to the "Themes" section.
  3. Choose a dark theme (e.g., "Dark Orange").
  4. Inspect localStorage to verify the change to editor-dark (or editor-lite).
  5. Reload the page or navigate away from the application.
  6. Return to the application and observe that the editorTheme value in localStorage has reverted back to editor-light.

Additional Information:

  • Operating System: Windows 10
  • Browser: Google Chrome, version: 116
  • Application Version: v3.2.1

This issue prevents users from enjoying their preferred dark theme across sessions, which impacts user experience.

[bug]: Playgrounds are getting the @firecamp/types version 0.1.21

Describe the bug
When trying to npm run dev it throws an error saying "Property 'connection' does not exist on type 'IWebSocket'. Did you mean 'connections'?"

To Reproduce

  1. Clone the project
  2. Run pnpm i
  3. Run pnpm dev

Expected behavior
Should build app and uses the @firecamp/types version 0.2.2

Screenshots
image

Desktop (please complete the following information):

  • OS: Windows and Linux
  • Version: 3.2.2

Additional context
I tried to run in my local machine (Windows) and a github codespace machine (Ubuntu 20.04.6 LTS)

Maybe there's an inconsistency in pnpm.lock?

feat: create Firecamp Echo Server compatible with Postman

Description:

Firecamp currently has a minimal echo server that is compatible with Postman's echo server features and APIs. We should create a Firecamp Echo Server that implements the same endpoints and functionality as Postman's echo server so that we can maintain the highest level of compatibility for those users who're coming from the postman background.

This will allow Firecamp users to have parity with Postman when testing API clients and workflows. The Echo Server can be used to validate REST calls, auth mechanisms, and response handling. It will be the single source of truth for all services and tooling in Firecamp like API Testing, Monitoring, Collaboration, and Documentation while ensuring postman compatibility. It will make it easy for users to migrate to Firecamp for API testing and development will less friction.

Firecamp Echo Server
https://github.com/firecamp-dev/firecamp/blob/main/packages/firecamp-echo-server/src/rest/rest.controller.ts

  1. pnpm i at packages/firecamp-echo-server
  2. pnpm start:dev to start the development server

Tech Stack
NestJS & Typescript

dx improvements

Description

  • FcAgentSelector: Remove box-shadow, check click action, update extension agent location to the bottom
  • Table: Description field outline visible
  • Rest request section: Update table heading/labels to a lighter color compared to values
  • Storybook: Create possible samples for using Mantine layout for Firecamp root layouts
image image

feat: clone or duplicate the request

Is your feature request related to a problem? Please describe.
Currently, the user is not able to clone or duplicate the saved request.

Describe the solution you'd like
The request should be cloned quickly with a shortcut and option menu. The request should have the duplicate/clone option in the menu.

Add Contribution Guide

Description
Repo should have a clear and concise guide on How to contribute. The standard is to create a CONTRIBUTING.md

[feat] rest request icon should be improved

Is your feature request related to a problem? Please describe.
The current rest request icon is not up to mark. It's so dull and the text Get it not visible without extra effort.

Describe the solution you'd like
The rest request icons should be clear and concise. It should represent http of rest instead of the Get specific method.

Here is the current request icon.
image

ui: show tooltip on action bar item

Description
when the user hovers on the action bar item icon (Explorer, Environments, History) the tooltip needs to be shown.

here we need to do two thing

  1. create a tooltip component/api in @firecamp/ui package using mantine
  2. use this component/api in the action bar component to show the tooltip
image

[feature]: Open Collection or Folder by clicking on arrow too

Description

Currently, the API Collection and its folders can only be expanded by clicking on their names. To enhance the user experience, it would be beneficial to make them expandable by clicking on the arrow as well. This would provide a more intuitive and seamless interaction for navigating through the API Collection explorer.

image

ui: Seeking design help to improve ui/ux/dx

The Firecamp project has made great strides in providing a high-quality developer experience so far. As we continue improving the product, we would like to get design help from the community to take the UI/UX/DX to the next level.

Some areas we think could use a design refresh:

  • Onboarding flow for new users
  • Visual design for core features like Explorer, Url, Terminal, etc.
  • Accessibility

Niche areas where we could use design help:

  1. Color tokens and theme - Help define a scalable color system and light/dark themes
  2. Sidebar experience - Improve navigation and information hierarchy
  3. Typography - Define type scale, fonts, and typographic styles
  4. Collection DX - Enhance dx for managing collections of APIs

This is a great opportunity for designers interested in open source to directly influence a popular dev tool. We welcome any and all design contributions - from user research findings to high-fidelity mockups and Figma to front-end code.

If you're interested in helping out, please comment on this issue or reach out to @firecampdev We'd love to work with you!

Let us know if you have any other questions. Excited to collaborate with the design community to improve firecamp!

bug: Dev Server Not Starting From Powershell

When I'm starting the dev server from my windows system . Its not starting up its throwing me this error:
└─ Running...
playgrounds/firecamp-socket-io-executor build$ run-p 'build:'
│ ERROR: Task not found: "'build:
'"
└─ Failed in 284ms at E:\nipun\firecamp\playgrounds\firecamp-socket-io-executor
playgrounds/firecamp-ws-executor build$ run-p 'build:'
│ ERROR: Task not found: "'build:
'"
└─ Failed in 277ms at E:\nipun\firecamp\playgrounds\firecamp-ws-executor

 ERR_PNPM_RECURSIVE_RUN_FIRST_FAIL  @firecamp/[email protected] build: run-p 'build:*'
Exit status 1
 ELIFECYCLE  Command failed with exit code 1.
ERROR: "build:workspace" exited with 1.
 ELIFECYCLE  Command failed with exit code 1.
image

long live typescript

Description
The whole project is moved to typescript, to power the front and back the types are written under @firecamp/type library but it's not open-sourced due to internal debt. now it's time to make it open-source.

Why did I move to TS? I promise I'll write a blog post.

feat: The Desktop Application

Introduction

The Firecamp Desktop Application aims to provide users with a seamless and feature-rich desktop experience for managing API requests. By leveraging the desktop environment, Firecamp will be able to extend its capabilities beyond the web browser, offering enhanced performance and native experience.

Features

Firecamp desktop app will have the all features of the web version. alongside It'll have other desktop-specific features like SSL, proxy, CORS whitelist, and native performance.

Technology Stack

The application will be built using the following technologies:

  • Electron: To create the cross-platform desktop application.
  • React: For building the user interface components.
  • TypeScript: To ensure the desktop packages' type safety
  • Axios: For handling HTTP requests.
  • WebSocket API: For establishing WebSocket connections.
  • IndexedDB: For storing user preferences and other relevant data.

Phases

  • The electron, typescript basic configuration and setup (minimum mvp)
  • Integrate the Firecamp application within the Electron, and change the request execution agent to desktop.
  • #152
  • #147
  • #150
    • #148
    • Mac
    • Windows
    • Linux

ETA

the new ETA will be 31st Dec 2023

[feature]: UI feedback on GraphQL introspection

Description

In the current state, users do not receive any visual feedback in the Firecamp UI when they enter an invalid GraphQL server URL or when the introspection schema fails to be fetched. It is standard practice to disable introspection in production environments. To address this issue, Firecamp should implement a notification or message system to inform users about such events.

Expected behavior

The Firecamp UI should visually notify users when an invalid GraphQL server URL is entered or when the introspection schema fails to be fetched.

User feedback reference

image

Add security policy Readme

Create a default security policy for firecamp
To give people instructions for reporting security vulnerabilities in the project, we can add a SECURITY.md file to the repository's root, docs, or .github folder. When someone creates an issue in your repository, they will see a link to your project's security policy.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.