Skip to content

chore: recategorize apps#9306

Merged
PeerRich merged 32 commits intocalcom:mainfrom
rjackson:recategorise-apps
Jun 28, 2023
Merged

chore: recategorize apps#9306
PeerRich merged 32 commits intocalcom:mainfrom
rjackson:recategorise-apps

Conversation

@rjackson
Copy link
Copy Markdown
Contributor

@rjackson rjackson commented Jun 3, 2023

What does this PR do?

This PR updates the config.json or _metadata.ts files of our app store apps, to recategorise them as per the Google Sheet link provided by in #9304.

There are also a number of supporting changes to ensure the app store & categories continue to work correctly after the recategorisation:

  • Update the static list of categories (getAppCategories.ts) as per the desired set of categories
  • Update the AppCategories enum, so apps can be saved in the database as per the new categories
  • Replaced some static categories lists with the enum, to improve type-safety and consistency between the code & database
  • Fixed the "Installed Apps" and "Admin Apps" lists improperly handling new or changed categories
    • The lists sometimes served a 404 for the new categories, due to the use of static category lists
    • The admin apps list had a bug where it didn't always show the "There are no apps in this category" messaging
  • Updated the seed-app-store.ts file, so the set of apps that come alongside a dev environment are in-sync with the app metadata
  • Replaced seed-app-store.config.json with loading each app's config / metadata entries directly, so its guaranteed to be in-sync with the apps we have in the codebase
  • Added syncAppMeta cron to keep the App metadata stored in the database (categories, dirName) in sync with the raw config values.
  • Added redirects for "video" category pages to "conferencing" pages

Differences from the spreadsheet

There were a few apps in the spreadsheet that were missing from the codebase, which I've therefore not recategorised (because there's nothing to recategorise):

  • msteams (this was actually office365-video, which has been updated)
  • slack
  • space-booking

And a few apps that were missing from the spreadsheet, which I've recategorised as:

App Before After
Discord Video conferencing
eightxeight video conferencing
mirotalk video conferencing
sylapsvideo video conferencing
event-type-location-static video conferencing
webex video conferencing
zohocrm other crm
metapixel analytics (no change)
office365-video conferencing (no change)
rainbow web3 (no change)
basic other (no change)
booking-pages-tag analytics (no change)
event-type-app-card other (no change)
general-app-settings other (no change)
link-as-an-app other (no change)
zoho-bigin other (no change)
**Potentially outstanding**

This PR does not include any data migrations to correct apps that are already in the database's App table.

This does mean that the old categories might still be visible and accessible from the "Apps Store" pages, as those pages infer the supported categories from the apps in the database, rather than using the static list from getAppsCategories or the AppCategories enum.

Some options we could explore here:

  1. Write a data migration to update the database entries
  2. Refactor the Apps Store pages to use the getAppCategories and load via app-store metadata, rather than what's in the database
  3. Or, a hybrid of both approaches.

I don't think this is an immediate issue, because inferring the valid categories from database entries ensures forward/backward compatibility as we recategorise apps.

Fixes #9304

Environment: Staging(main branch) / Production

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • Chore (refactoring code, technical debt, workflow improvements)

How should this be tested?

Page See the new categories? See apps in the right category?
Apps Store Yes Yes
Installed Apps Yes Yes
Categories list Yes Yes
Category page (n/a) Yes
Admin apps list Yes Yes
Page Screenshot
App Store app store
Installed apps installed apps 2
Categories list categories list
Category Page category page
Admin apps list admin apps 2

Checklist

  • Ensure no breakages in tests (currently waiting for e2e tests to finish, they're taking a while!)
  • Add apps/web/public/app-categorise/messaging.svg (Job for you @PeerRich?)
  • If we do a data migration: Redirect /apps/categories/video to /apps/categories/conferencing?

Solves #9304
/claim #9304

@vercel
Copy link
Copy Markdown

vercel bot commented Jun 3, 2023

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
cal ❌ Failed (Inspect) Jun 24, 2023 0:35am
ui ✅ Ready (Inspect) Visit Preview 💬 Add feedback Jun 24, 2023 0:35am

@vercel
Copy link
Copy Markdown

vercel bot commented Jun 3, 2023

@rjackson is attempting to deploy a commit to the cal Team on Vercel.

A member of the Team first needs to authorize it.

@github-actions github-actions bot added the ❗️ migrations contains migration files label Jun 3, 2023
@rjackson rjackson changed the title [CAL-1857] chore: recategorize apps chore: recategorize apps Jun 3, 2023
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Jun 3, 2023

📦 Next.js Bundle Analysis for @calcom/web

This analysis was generated by the Next.js Bundle Analysis action. 🤖

Eight Pages Changed Size

The following pages changed size from the code in this PR compared to its base branch:

Page Size (compressed) First Load % of Budget (350 KB)
/404 89.57 KB 242.53 KB 69.30% (🟢 -0.23%)
/apps 277.75 KB 430.72 KB 123.06% (🟢 -5.01%)
/apps/[slug] 295.74 KB 448.7 KB 128.20% (🟢 -5.02%)
/apps/categories/[category] 261 KB 413.96 KB 118.27% (🟢 -5.01%)
/apps/installed/[category] 277.49 KB 430.45 KB 122.99% (🟢 -4.99%)
/booking/[uid] 216.49 KB 369.46 KB 105.56% (🟢 -0.25%)
/getting-started/[[...step]] 413.6 KB 566.57 KB 161.88% (🟢 -7.58%)
/payment/[uid] 109.81 KB 262.78 KB 75.08% (🟢 -3.26%)
Details

Only the gzipped size is provided here based on an expert tip.

First Load is the size of the global bundle plus the bundle for the individual page. If a user were to show up to your website and land on a given page, the first load size represents the amount of javascript that user would need to download. If next/link is used, subsequent page loads would only need to download that page's bundle (the number in the "Size" column), since the global bundle has already been downloaded.

Any third party scripts you have added directly to your app using the <script> tag are not accounted for in this analysis

The "Budget %" column shows what percentage of your performance budget the First Load total takes up. For example, if your budget was 100kb, and a given page's first load size was 10kb, it would be 10% of your budget. You can also see how much this has increased or decreased compared to the base branch of your PR. If this percentage has increased by 20% or more, there will be a red status indicator applied, indicating that special attention should be given to this. If you see "+/- <0.01%" it means that there was a change in bundle size, but it is a trivial enough amount that it can be ignored.

@sean-brydon sean-brydon requested a review from hariombalhara June 3, 2023 16:07
@PeerRich
Copy link
Copy Markdown
Member

PeerRich commented Jun 3, 2023

amazing PR + description! thank you so much. super quick too

@PeerRich
Copy link
Copy Markdown
Member

PeerRich commented Jun 3, 2023

@hariombalhara can you look into this:

Potentially outstanding

This PR does not include any data migrations to correct apps that are already in the database's App table.

This does mean that the old categories might still be visible and accessible from the "Apps Store" pages, as those pages infer the supported categories from the apps in the database, rather than using the static list from getAppsCategories or the AppCategories enum.

Some options we could explore here:

Write a data migration to update the database entries
Refactor the Apps Store pages to use the getAppCategories and load via app-store metadata, rather than what's in the database
Or, a hybrid of both approaches.
I don't think this is an immediate issue, because inferring the valid categories from database entries ensures forward/backward compatibility as we recategorise apps.

@PeerRich
Copy link
Copy Markdown
Member

PeerRich commented Jun 3, 2023

@rjackson can you remove Web3? Huddle can be moved into conferencing

@PeerRich
Copy link
Copy Markdown
Member

PeerRich commented Jun 3, 2023

messaging

here is the messaging.svg

@PeerRich
Copy link
Copy Markdown
Member

PeerRich commented Jun 3, 2023

i saw you went above and beyond, adding another bounty!

@PeerRich
Copy link
Copy Markdown
Member

PeerRich commented Jun 3, 2023

/tip 100

@algora-pbc
Copy link
Copy Markdown

algora-pbc bot commented Jun 3, 2023

🎉🎈 @rjackson has been awarded $100! 🎈🎊

@algora-pbc algora-pbc bot added the 💰 Rewarded Rewarded bounties on Algora.io label Jun 3, 2023
@calcom calcom deleted a comment from algora-pbc bot Jun 3, 2023
zomars
zomars previously approved these changes Jun 20, 2023
Copy link
Copy Markdown
Contributor

@zomars zomars left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Codewise LGTM. Delegating tests to QA 🙏🏽

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Jun 20, 2023

Thank you for following the naming conventions! 🙏

@hariombalhara
Copy link
Copy Markdown
Member

@hariombalhara I've updated the PR as per your feedback.

Prisma doesn't really offer a nice way of running scripts for data migrations, and I didn't really fancy writing and hardcoding all the current categories in the SQL migration. Instead I've gone for something a little more future-proof: A cron script that syncs app entries in the database with the app metadata files, and a Github Action to run that on the 1st of each month.

This sync script can also be triggered manually with the same curl request used by the Github Action:

curl ${{ secrets.APP_URL }}/api/cron/syncAppMeta \
-X POST \
-H 'content-type: application/json' \
-H 'authorization: ${{ secrets.CRON_API_KEY }}' \
--fail

Substituting in appropriate values, of course.

Example output (applied to a db seeded on main):

@calcom/web:dev: 🧐 Checking DB apps are in-sync with app metadata
@calcom/web:dev: 🔨 Updating app daily-video with categories
@calcom/web:dev: ✅ App gtm is up-to-date and correct
@calcom/web:dev: ✅ App apple-calendar is up-to-date and correct
@calcom/web:dev: ✅ App fathom is up-to-date and correct
@calcom/web:dev: ✅ App caldav-calendar is up-to-date and correct
@calcom/web:dev: 🔨 Updating app jitsi with categories
@calcom/web:dev: ✅ App plausible is up-to-date and correct
@calcom/web:dev: 🔨 Updating app wipe-my-cal with categories
@calcom/web:dev: 🔨 Updating app discord with categories
@calcom/web:dev: 🔨 Updating app huddle01 with categories
@calcom/web:dev: ✅ App wordpress is up-to-date and correct
@calcom/web:dev: 🔨 Updating app routing-forms with categories
@calcom/web:dev: 🔨 Updating app whereby with categories
@calcom/web:dev: ✅ App ga4 is up-to-date and correct
@calcom/web:dev: 🔨 Updating app around with categories
@calcom/web:dev: 🔨 Updating app sylapsvideo with categories
@calcom/web:dev: 🔨 Updating app riverside with categories
@calcom/web:dev: ✅ App pipedream is up-to-date and correct
@calcom/web:dev: 🔨 Updating app typeform with categories
@calcom/web:dev: 🔨 Updating app ping with categories
@calcom/web:dev: 🔨 Updating app sirius_video with categories
@calcom/web:dev: 🔨 Updating app campfire with categories
@calcom/web:dev: 🔨 Updating app raycast with categories
@calcom/web:dev: 🔨 Updating app sendgrid with categories
@calcom/web:dev: ✅ App n8n is up-to-date and correct
@calcom/web:dev: ✅ App exchange is up-to-date and correct
@calcom/web:dev: 🔨 Updating app closecom with categories
@calcom/web:dev: ✅ App qr_code is up-to-date and correct
@calcom/web:dev: ✅ App weather_in_your_calendar is up-to-date and correct
@calcom/web:dev: 🔨 Updating app whatsapp with categories
@calcom/web:dev: 🔨 Updating app telegram with categories
@calcom/web:dev: 🔨 Updating app signal with categories
@calcom/web:dev: ✅ App vimcal is up-to-date and correct
@calcom/web:dev: ✅ App amie is up-to-date and correct
@calcom/web:dev: 🔨 Updating app facetime with categories
@calcom/web:dev: 🔨 Updating app zohocrm with categories
@calcom/web:dev: 🔨 Updating app webex with categories
@calcom/web:dev: ✅ App cron is up-to-date and correct

As this solves the lasting database-driven categories, I've also included redirects to forward any visits to the "video" category to the "conferencing" category.

That's so cool @rjackson. Thank you 🙏

Copy link
Copy Markdown
Member

@hariombalhara hariombalhara left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left 2 more comments.

@rjackson
Copy link
Copy Markdown
Contributor Author

PR updated with an environmental variable, CRON_ENABLE_APP_SYNC, to enable/disable the syncAppMeta endpoint. When disabled, the script does a dry-run of the change – reporting what it would do, but not acting on it.

The syncAppMeta endpoint only executes if CRON_ENABLE_APP_SYNC is set to true. If its omitted, false, or any other value then it runs in the dry-run mode.

I've also swapped over from console.log to @calcom/lib/logger, using the log prefixes' to indicate what script we're in and whether or not we're in dry-run mode.

Dry run output

@calcom/web:dev: 13:30:08.936 INFO  [api/cron/syncAppMeta] (dry-run) 🧐 Checking DB apps are in-sync with app metadata
@calcom/web:dev: 13:30:08.946 INFO  [api/cron/syncAppMeta] (dry-run) 🔨 Updating app daily-video with categories
@calcom/web:dev: 13:30:08.946 INFO  [api/cron/syncAppMeta] (dry-run) ✅ App apple-calendar is up-to-date and correct
@calcom/web:dev: 13:30:08.946 INFO  [api/cron/syncAppMeta] (dry-run) 🔨 Updating app routing-forms with categories
@calcom/web:dev: 13:30:08.946 INFO  [api/cron/syncAppMeta] (dry-run) ✅ App caldav-calendar is up-to-date and correct
@calcom/web:dev: 13:30:08.947 INFO  [api/cron/syncAppMeta] (dry-run) ✅ App plausible is up-to-date and correct
@calcom/web:dev: 13:30:08.947 INFO  [api/cron/syncAppMeta] (dry-run) ✅ App google-calendar is up-to-date and correct
@calcom/web:dev: 13:30:08.947 INFO  [api/cron/syncAppMeta] (dry-run) 🔨 Updating app whereby with categories
@calcom/web:dev: 13:30:08.947 INFO  [api/cron/syncAppMeta] (dry-run) 🔨 Updating app google-meet with categories
@calcom/web:dev: 13:30:08.947 INFO  [api/cron/syncAppMeta] (dry-run) 🔨 Updating app zohocrm with categories
@calcom/web:dev: 13:30:08.947 INFO  [api/cron/syncAppMeta] (dry-run) 🔨 Updating app jitsi with categories
@calcom/web:dev: 13:30:08.947 INFO  [api/cron/syncAppMeta] (dry-run) 🔨 Updating app around with categories
@calcom/web:dev: 13:30:08.948 INFO  [api/cron/syncAppMeta] (dry-run) 🔨 Updating app wipe-my-cal with categories
@calcom/web:dev: 13:30:08.948 INFO  [api/cron/syncAppMeta] (dry-run) ✅ App wordpress is up-to-date and correct
@calcom/web:dev: 13:30:08.948 INFO  [api/cron/syncAppMeta] (dry-run) 🔨 Updating app huddle01 with categories
@calcom/web:dev: 13:30:08.948 INFO  [api/cron/syncAppMeta] (dry-run) 🔨 Updating app riverside with categories
@calcom/web:dev: 13:30:08.948 INFO  [api/cron/syncAppMeta] (dry-run) ✅ App ga4 is up-to-date and correct
@calcom/web:dev: 13:30:08.948 INFO  [api/cron/syncAppMeta] (dry-run) 🔨 Updating app typeform with categories
@calcom/web:dev: 13:30:08.948 INFO  [api/cron/syncAppMeta] (dry-run) 🔨 Updating app webex with categories
@calcom/web:dev: 13:30:08.948 INFO  [api/cron/syncAppMeta] (dry-run) 🔨 Updating app ping with categories
@calcom/web:dev: 13:30:08.948 INFO  [api/cron/syncAppMeta] (dry-run) ✅ App pipedream is up-to-date and correct
@calcom/web:dev: 13:30:08.949 INFO  [api/cron/syncAppMeta] (dry-run) 🔨 Updating app campfire with categories
@calcom/web:dev: 13:30:08.949 INFO  [api/cron/syncAppMeta] (dry-run) 🔨 Updating app raycast with categories
@calcom/web:dev: 13:30:08.949 INFO  [api/cron/syncAppMeta] (dry-run) 🔨 Updating app sirius_video with categories
@calcom/web:dev: 13:30:08.949 INFO  [api/cron/syncAppMeta] (dry-run) ✅ App n8n is up-to-date and correct
@calcom/web:dev: 13:30:08.949 INFO  [api/cron/syncAppMeta] (dry-run) ✅ App cron is up-to-date and correct
@calcom/web:dev: 13:30:08.949 INFO  [api/cron/syncAppMeta] (dry-run) ✅ App exchange is up-to-date and correct
@calcom/web:dev: 13:30:08.949 INFO  [api/cron/syncAppMeta] (dry-run) 🔨 Updating app sendgrid with categories
@calcom/web:dev: 13:30:08.949 INFO  [api/cron/syncAppMeta] (dry-run) ✅ App qr_code is up-to-date and correct
@calcom/web:dev: 13:30:08.950 INFO  [api/cron/syncAppMeta] (dry-run) ✅ App weather_in_your_calendar is up-to-date and correct
@calcom/web:dev: 13:30:08.950 INFO  [api/cron/syncAppMeta] (dry-run) ✅ App gtm is up-to-date and correct
@calcom/web:dev: 13:30:08.950 INFO  [api/cron/syncAppMeta] (dry-run) ✅ App fathom is up-to-date and correct
@calcom/web:dev: 13:30:08.950 INFO  [api/cron/syncAppMeta] (dry-run) 🔨 Updating app closecom with categories
@calcom/web:dev: 13:30:08.950 INFO  [api/cron/syncAppMeta] (dry-run) 🔨 Updating app whatsapp with categories
@calcom/web:dev: 13:30:08.950 INFO  [api/cron/syncAppMeta] (dry-run) 🔨 Updating app discord with categories
@calcom/web:dev: 13:30:08.950 INFO  [api/cron/syncAppMeta] (dry-run) 🔨 Updating app telegram with categories
@calcom/web:dev: 13:30:08.951 INFO  [api/cron/syncAppMeta] (dry-run) 🔨 Updating app signal with categories
@calcom/web:dev: 13:30:08.951 INFO  [api/cron/syncAppMeta] (dry-run) 🔨 Updating app sylapsvideo with categories
@calcom/web:dev: 13:30:08.951 INFO  [api/cron/syncAppMeta] (dry-run) ✅ App vimcal is up-to-date and correct
@calcom/web:dev: 13:30:08.951 INFO  [api/cron/syncAppMeta] (dry-run) ✅ App amie is up-to-date and correct
@calcom/web:dev: 13:30:08.951 INFO  [api/cron/syncAppMeta] (dry-run) 🔨 Updating app facetime with categories

Live run output:

@calcom/web:dev: 13:30:47.140 INFO  [api/cron/syncAppMeta] 🧐 Checking DB apps are in-sync with app metadata
@calcom/web:dev: 13:30:47.210 INFO  [api/cron/syncAppMeta] 🔨 Updating app daily-video with categories
@calcom/web:dev: 13:30:47.220 INFO  [api/cron/syncAppMeta] ✅ App apple-calendar is up-to-date and correct
@calcom/web:dev: 13:30:47.220 INFO  [api/cron/syncAppMeta] 🔨 Updating app routing-forms with categories
@calcom/web:dev: 13:30:47.224 INFO  [api/cron/syncAppMeta] ✅ App caldav-calendar is up-to-date and correct
@calcom/web:dev: 13:30:47.225 INFO  [api/cron/syncAppMeta] ✅ App plausible is up-to-date and correct
@calcom/web:dev: 13:30:47.225 INFO  [api/cron/syncAppMeta] ✅ App google-calendar is up-to-date and correct
@calcom/web:dev: 13:30:47.225 INFO  [api/cron/syncAppMeta] 🔨 Updating app whereby with categories
@calcom/web:dev: 13:30:47.230 INFO  [api/cron/syncAppMeta] 🔨 Updating app google-meet with categories
@calcom/web:dev: 13:30:47.234 INFO  [api/cron/syncAppMeta] 🔨 Updating app zohocrm with categories
@calcom/web:dev: 13:30:47.237 INFO  [api/cron/syncAppMeta] 🔨 Updating app jitsi with categories
@calcom/web:dev: 13:30:47.241 INFO  [api/cron/syncAppMeta] 🔨 Updating app around with categories
@calcom/web:dev: 13:30:47.245 INFO  [api/cron/syncAppMeta] 🔨 Updating app wipe-my-cal with categories
@calcom/web:dev: 13:30:47.249 INFO  [api/cron/syncAppMeta] ✅ App wordpress is up-to-date and correct
@calcom/web:dev: 13:30:47.249 INFO  [api/cron/syncAppMeta] 🔨 Updating app huddle01 with categories
@calcom/web:dev: 13:30:47.253 INFO  [api/cron/syncAppMeta] 🔨 Updating app riverside with categories
@calcom/web:dev: 13:30:47.257 INFO  [api/cron/syncAppMeta] ✅ App ga4 is up-to-date and correct
@calcom/web:dev: 13:30:47.258 INFO  [api/cron/syncAppMeta] 🔨 Updating app typeform with categories
@calcom/web:dev: 13:30:47.262 INFO  [api/cron/syncAppMeta] 🔨 Updating app webex with categories
@calcom/web:dev: 13:30:47.266 INFO  [api/cron/syncAppMeta] 🔨 Updating app ping with categories
@calcom/web:dev: 13:30:47.270 INFO  [api/cron/syncAppMeta] ✅ App pipedream is up-to-date and correct
@calcom/web:dev: 13:30:47.270 INFO  [api/cron/syncAppMeta] 🔨 Updating app campfire with categories
@calcom/web:dev: 13:30:47.274 INFO  [api/cron/syncAppMeta] 🔨 Updating app raycast with categories
@calcom/web:dev: 13:30:47.278 INFO  [api/cron/syncAppMeta] 🔨 Updating app sirius_video with categories
@calcom/web:dev: 13:30:47.281 INFO  [api/cron/syncAppMeta] ✅ App n8n is up-to-date and correct
@calcom/web:dev: 13:30:47.281 INFO  [api/cron/syncAppMeta] ✅ App cron is up-to-date and correct
@calcom/web:dev: 13:30:47.281 INFO  [api/cron/syncAppMeta] ✅ App exchange is up-to-date and correct
@calcom/web:dev: 13:30:47.281 INFO  [api/cron/syncAppMeta] 🔨 Updating app sendgrid with categories
@calcom/web:dev: 13:30:47.285 INFO  [api/cron/syncAppMeta] ✅ App qr_code is up-to-date and correct
@calcom/web:dev: 13:30:47.285 INFO  [api/cron/syncAppMeta] ✅ App weather_in_your_calendar is up-to-date and correct
@calcom/web:dev: 13:30:47.285 INFO  [api/cron/syncAppMeta] ✅ App gtm is up-to-date and correct
@calcom/web:dev: 13:30:47.285 INFO  [api/cron/syncAppMeta] ✅ App fathom is up-to-date and correct
@calcom/web:dev: 13:30:47.285 INFO  [api/cron/syncAppMeta] 🔨 Updating app closecom with categories
@calcom/web:dev: 13:30:47.289 INFO  [api/cron/syncAppMeta] 🔨 Updating app whatsapp with categories
@calcom/web:dev: 13:30:47.292 INFO  [api/cron/syncAppMeta] 🔨 Updating app discord with categories
@calcom/web:dev: 13:30:47.296 INFO  [api/cron/syncAppMeta] 🔨 Updating app telegram with categories
@calcom/web:dev: 13:30:47.299 INFO  [api/cron/syncAppMeta] 🔨 Updating app signal with categories
@calcom/web:dev: 13:30:47.302 INFO  [api/cron/syncAppMeta] 🔨 Updating app sylapsvideo with categories
@calcom/web:dev: 13:30:47.306 INFO  [api/cron/syncAppMeta] ✅ App vimcal is up-to-date and correct
@calcom/web:dev: 13:30:47.306 INFO  [api/cron/syncAppMeta] ✅ App amie is up-to-date and correct
@calcom/web:dev: 13:30:47.307 INFO  [api/cron/syncAppMeta] 🔨 Updating app facetime with categories

Copy link
Copy Markdown
Member

@hariombalhara hariombalhara left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM now !! Thank you so much @rjackson. I learned a few things from you while collaborating with you on this 🙏

@hariombalhara
Copy link
Copy Markdown
Member

@keithwillcode This should be tested on staging. Maybe @ericrommel can do this?

@rjackson
Copy link
Copy Markdown
Contributor Author

LGTM now !! Thank you so much @rjackson. I learned a few things from you while collaborating with you on this 🙏

Yeah no worries!

It's been a really fun & interesting task 😆 Sounded like a small job in the first place, but exposed a few warts opportunities for improvement behind-the-scenes. Really useful to get a better understanding of the app store & related architecture as well.

Thanks for your feedback and support throughout 🎉

@PeerRich PeerRich merged commit 171827f into calcom:main Jun 28, 2023
@PeerRich
Copy link
Copy Markdown
Member

/tip 50

@PeerRich
Copy link
Copy Markdown
Member

tippin a fiffy @rjackson

@algora-pbc
Copy link
Copy Markdown

algora-pbc bot commented Jun 28, 2023

🎉🎈 @rjackson has been awarded $50! 🎈🎊

@algora-pbc algora-pbc bot added the 💰 Rewarded Rewarded bounties on Algora.io label Jun 28, 2023
fritterhoff pushed a commit to hm-edu/cal.com that referenced this pull request Jul 25, 2023
* Remove unused code in InstalledAppsLayout

* Add new app categories "crm", "conferencing" and "messaging"

* Sort getAppCategories entries alphabetically

* Fix 404s on new category pages (and remove hardcoded category lists)

* Fix admin apps list not showing "no available apps" for new categories

* Recategorise apps

* Sync seed-app-store categories with config files

* Replace unnecessary seed-app-store.config.json with appStoreMetadata

* Copy video.svg to conferencing.svg

* Add messaging.svg

* Remove web3 from getAppCategories (used by installed apps, admin apps)

* Fix app-store-cli categories

- Add conferencing
- Add CRM
- Remove video
- Remove web3

* Remove outdated web3 comment in seed-app-store

* Update apps/web/public/static/locales/en/common.json

* Add cron script to keep db apps in sync with app metadata

* Add redirect for app category "video" to "conferencing"

* Fix up "video" category overrides to apply to conferencing

* Fix conferencing apps not showing as a location for non-team users

* Restore "installed_app" string for conferencing apps

* Make linter happier

* Remove my "installed_app_conferencing_description" as this was fixed upstream

* Quick tidy up

* Add dry-run to syncAppMeta via  CRON_ENABLE_APP_SYNC env

* Replace console.log with logger in syncAppMeta

---------

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: alannnc <alannnc@gmail.com>
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
Co-authored-by: Omar López <zomars@me.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

💎 Bounty A bounty on Algora.io ❗️ .env changes contains changes to env variables Low priority Created by Linear-GitHub Sync Medium priority Created by Linear-GitHub Sync ❗️ migrations contains migration files 💰 Rewarded Rewarded bounties on Algora.io

Projects

No open projects
Status: Medium priority

Development

Successfully merging this pull request may close these issues.

[CAL-1857] chore: recategorize apps

7 participants