Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[EPIC] Online demo version #592

Closed
13 of 14 tasks
Janpot opened this issue Jun 23, 2022 · 14 comments
Closed
13 of 14 tasks

[EPIC] Online demo version #592

Janpot opened this issue Jun 23, 2022 · 14 comments
Labels
core Infrastructure work going on behind the scenes umbrella For grouping multiple issues to provide a holistic view website Related to the marketing pages
Milestone

Comments

@Janpot
Copy link
Member

Janpot commented Jun 23, 2022

Allow evaluation of Toolpad through an online demo. Toolpad doesn't support authentication yet. The goal is to demonstrate a subset of the app building experience.

The demo version will be unauthenticated. We will disable all possibilities of entering sensitive data.

To Do:

  • Introduce TOOLPAD_DEMO configuration to enable demo version
    • remove the applications list from the overview page. Just show the app creation dialog
    • clearly mark in the UI that demo is enabled.
    • clearly mark that the app is ephemeral and may be deleted at any time without notice. Don't use for anything else than evaluation purposes.
    • disable all datasources
      • enable only the REST datasource, but disable headers/authentication. Enforce a baseurl?
      • Expand the fake movies datasource and enable it in demo only
    • add captcha when creating application
  • Currently saving the application deletes and recreates the whole app in the db, replace it with an incremental update to reduce the throughput on the database.
  • host using render.com
  • usage metrics: Add Google analytics?
  • developer metrics:
    • database workload (Can we monitor this sufficiently on render.com)
    • application logs
    • application errors (Sentry?)
    • monitor REST dataSource requests
  • Disable the "make application public" feature for the demo mode. All apps are public
  • App names have to be unique. Let's not complicate the createApp logic too much. We either add a unique id to name the user gives, or we just generate a unique name and don't let them specify one. They can't list their apps so what'd be the purpose of naming it anyway?
  • ...
@prakhargupta1 prakhargupta1 modified the milestone: Q3 Jul 4, 2022
@Janpot Janpot modified the milestones: Q3, Q3-July Jul 19, 2022
@Janpot Janpot self-assigned this Jul 19, 2022
@prakhargupta1 prakhargupta1 added the website Related to the marketing pages label Aug 22, 2022
@Janpot Janpot removed their assignment Sep 8, 2022
@apedroferreira apedroferreira self-assigned this Sep 13, 2022
@apedroferreira
Copy link
Member

apedroferreira commented Sep 13, 2022

Will do in 3 separate PRs (actually will separate into issues as it's too much stuff):

  • [ ] application changes
  • [ ] set up metrics
  • [ ] deployment

@prakhargupta1
Copy link
Member

Correct me if I am wrong, we will provide 3 pre-enabled connections:

  1. Stats app public API (Template 1)
  2. Dog app API (Template 2)
  3. Fake movies API

@bytasv Regarding examples in our docs, is there any other connection that you think we should provide?

@bytasv
Copy link
Contributor

bytasv commented Sep 14, 2022

I think it really depends how much freedom we want to give. There is also google sheets and postgres that must use connection. But it seems that for demo purposes all we gonna allow us a short list of allowed URLs that users can try to use for fetching in fetch or function datasource?

@apedroferreira
Copy link
Member

It shouldn't be too difficult to add more APIs similar to movies just to enable more options, as long as they have about the same functionality.

@Janpot
Copy link
Member Author

Janpot commented Sep 14, 2022

But it seems that for demo purposes all we gonna allow us a short list of allowed URLs that users can try to use for fetching in fetch or function datasource?

A whitelist of urls for the fetch/function datasources could be an idea. The only thing I'd still be worried about is Toolpad being used for DDOS attacks to those urls.

Another thing that we should probably consider for "application changes" is the addition of a captcha when creating a Toolpad application.

@apedroferreira
Copy link
Member

apedroferreira commented Sep 14, 2022

I've created separate issues for adding metrics as it might not be such a simple task and seems a bit independent from creating the online demo.

This issue can be about building the demo itself + hosting it.

One more note about:

database workload (Can we monitor this sufficiently on render.com)

Render does have some default database metrics, other than that they have a Datadog integration for Postgres databases.
If we want automatic alerts it's a paid feature of Datadog I think (not sure if Render alerts us if we get to certain % of memory or CPU usage).
So if we want to use anything other than the default Render metrics maybe we should create a separate issue for it too.

@apedroferreira apedroferreira added core Infrastructure work going on behind the scenes website Related to the marketing pages and removed website Related to the marketing pages labels Sep 16, 2022
@prakhargupta1 prakhargupta1 changed the title Online demo version [EPIC] Online demo version Sep 16, 2022
@prakhargupta1 prakhargupta1 added the umbrella For grouping multiple issues to provide a holistic view label Oct 19, 2022
@oliviertassinari
Copy link
Member

oliviertassinari commented Oct 20, 2022

Relative to the demo app experience, I have found:

Screenshot 2022-10-20 at 15 13 11

https://app.forestadmin.com/Live%20Demo/Production/Operations/data/806052/index

Maybe it would make sense to have a banner for our demo app to point to how to install it. I haven't seen our demo app UX yet. (I changed ForestAdmin banner color contrast because OMG black).

@apedroferreira
Copy link
Member

apedroferreira commented Oct 20, 2022

Relative to the demo app experience, I have found:

Screenshot 2022-10-20 at 15 13 11

https://app.forestadmin.com/Live%20Demo/Production/Operations/data/806052/index

Maybe it would make sense to have a banner for our demo app to point to how to install it. I haven't seen our demo app UX yet. (I changed ForestAdmin banner color contrast because OMG black).

Would that be a link for the instructions on how to self-host? We should have space for a banner like this in the demo, we could make an issue for it if you think it's worth adding.
I think it's worth it if we're interested in having demo users try to self-host the app.
Issue link: #1254

@apedroferreira
Copy link
Member

apedroferreira commented Nov 28, 2022

I've just deployed the latest version of the demo, it should be functional. Some notes:

  • I did not add an option for creating a query for the movies "API" because it's already the initial value for default queries, so it would be a bit redundant?
  • I did not add an option for directly creating a query for the COVID or dogs APIs not to have to include a new feature just for the demo, but also because there are already queries for both these APIs in the templates that users can pick, and they make more sense inside those apps.

We can easily add pre-created queries though if you still think it would make sense.

There's also a couple more small things we maybe should fix before launching the demo:

  • Calling the movies "API" isn't working as the initial value is https://master--toolpad.mui.com/static/movies.json, should be a simple fix?
  • We only allow client-side queries in the demo, but client-side queries don't work with connections, which means creating connections is useless in this case... Should we just disable being able to create connections for now in the demo?

@Janpot
Copy link
Member Author

Janpot commented Nov 28, 2022

Should we just disable being able to create connections for now in the demo

connections are a server side thing and will become when more so when we make them global so I'd say yes

@apedroferreira
Copy link
Member

@prakhargupta1 The demo should be good to go unless there's anything else!

@oliviertassinari
Copy link
Member

oliviertassinari commented Nov 30, 2022

@apedroferreira Awesome! I have started to use the demo app in mui/mui-x#6899 (comment). I have one last question: #1213 (comment).

@apedroferreira
Copy link
Member

Can we finally close this issue? :) Or should we keep it ongoing?

@prakhargupta1
Copy link
Member

prakhargupta1 commented Dec 12, 2022

Can we finally close this issue? :) Or should we keep it ongoing?

yes sure, marking it closed.

@prakhargupta1 prakhargupta1 unpinned this issue Dec 12, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
core Infrastructure work going on behind the scenes umbrella For grouping multiple issues to provide a holistic view website Related to the marketing pages
Projects
Status: Completed
Development

No branches or pull requests

5 participants