Articles on: Install PluginLab

How to migrate an existing plugin to PluginLab

Introduction



If you already have an existing ChatGPT plugin deployed to the Plugin Store you may want to migrate to PluginLab.

Here some good reasons:

To track your users more efficiently and understant their behavior
To monitor your API health
To add an authentication portal in no time and finally get emails
To start monetizing your plugin in a snap


Many people believe PluginLab is an hosting platform. Actually we are an extra layer that provides valuable features for your plugin. Don't use PluginLab thinking we will replace your plugin hosting platform. That's not the case :)


Key things to keep in mind while migrating



You will get downtime (in some situations)



You have to keep in mind that when you will change your manifest file for adding authentication or any other changes, ChatGPT will set your plugin back to Unverified.
From there you will have to reinstall and resubmit your plugin.
So your members will not be able to view or install your plugin during this review process.

Note that OpenAI considerably improved the review process. Now it most likely takes only one hour or less if you plugin was already approved in the past.

Your stats are linked to your domain



If your plugin is not in the Popular section you probably don't mind about it.
However, if your plugin is in the Popular section you must keep in mind that your position is wired to your plugin domain.
So in that case, we'll have to choose a solution where you absolutely keep the same domain as before (a subdomain would result in losing your stats).

We'll cover this more in detail in the next section.


We can help!



PluginLab offers free assistance to anyone who wants to migrate their plugin. Feel free to reach out so we can assist you and plan the smoothest transition with you for your plugin.


Steps to follow



Migrating your plugin to PluginLab can be summarized in 6 steps:

Choose the right migration scenario (contact us if you don't know what it is)
Import your plugin into PluginLab.ai using our magic import feature
Copy/paste your Open API Specification file into PluginLab
If you need OAuth, setup OAuth before submitting your plugin to OpenAI
Reinstall your plugin using the Develop my own plugin flow
Submit your plugin for review and wait


Impact of the migration



Before migrating to PluginLab you have to understand the technical implication of this change.

When you don't use PluginLab, the communication flow between ChatGPT and your backend API is direct.
ChatGPT reaches your backend API and your API responds.

After adding PluginLab, ChatGPT will not talk directly to your backend API anymore. Instead, it will talk to PluginLab that will proxy the request to your server.
Your server will respond and PluginLab will forward the response.

This flow allows PluginLab to provide a ton of useful features such as Authentication, Quotas, Payment, Event tracking and more.

Nonetheless it's crucial you understand this before migrating your plugin

Here's the demo of the following flow :

With and Without PluginLab



Will my plugin domain change?



Not necessarily. PluginLab allows you to either:

Keep the same domain
Configure a new one

We'll cover that in detail in the next sections.

Note that ChatGPT will never know it's talking to PluginLab's proxy. This is "opaque" for ChatGPT since these things are handled at the DNS level.


Import scenario 1: Keeping the same domain



When should I choose this scenario?



You most likely want to go down this path if you match one of the following criteria:

your plugin is in the popular section of the store
you want to keep the exact same plugin in the store and not create a new one
you have a frontend and a backend running on the same domain (for instance if your frontend lives at example.com and your plugin is located at example.com/.well-known/ai-plugin.json).

What steps should I follow in that case?



The migration will work in two parts. The first part will not unlist your plugin from the store, so it's safe to do it whenever you want.

The second part will cause your plugin to get unlisted and you will have to do it when you're ready to resubmit your plugin.

Part 1 (safe)


Go to PluginLab app
Import your plugin using our import feature (at this stage, PluginLab will import your manifest and your open api specification).
Configure your authentication (recommended) with the desired sign-in methods on PluginLab
Go to PluginLab > Plugin Settings > Domains
Click on Create my first domain and add the domain of your choice that will point to PluginLab. You must choose a subdomain of the current domain running your plugin and which is not already in use by another of your service. For instance, if your plugin runs at example.com/.well-known/ai-plugin.json, we suggest you add plugin.example.com to your PluginLab account.

Note: if your current plugin is already running in a subdomain such as something.example.com, you will have to add an extra subdomain level linked to PluginLab, for example: plugin.something.example.com. This is not applicable for www prefix thought.

Follow the custom domain instructions and wait for the domain to be linked and for the SSL to be configured properly. This can take a few minutes or a few hours depending on your DNS provider.
Go to PluginLab > Getting Stated and click on Install on ChatGPT, then follow the instructions to install the Plugin on ChatGPT.

Congrats, you're mostly done.

At this stage PluginLab is configured with a custom domain and your plugin is installed on ChatGPT with PluginLab.
Test everything works as expected before to proceed with the next part.

Part 2 (do it only when you are ready!)


This part will cause your plugin to get unlisted. You will have to resubmit your plugin asap to avoid downtime. Feel free to reach out to us before starting this part if you don't feel confident.

Update your current manifest endpoint so it returns the JSON content of the manifest hosted on PluginLab. Note your PluginLab manifest will always be located at https://<domain-linked-to-pluginlab>/.well-known/ai-plugin.json.

CRUCIAL : don't do a 301 redirect other or will lock your plugin forever. Instead, fetch it using a GET request and return the result as a JSON response as explained below.

Here's how the flow described above looks :

Replace your manifest with PluginLab&apos;s version

Now you can go to PluginLab > Getting Stated and click on Install on ChatGPT.
You can follow the flow as you did before, but instead of using the displayed domain, you will have to use your old domain and NOT the one configured on PluginLab (in our example, it's example.com).
Resubmit your Plugin using the submission bot located here. You will have to use your old domain and NOT the one configured on PluginLab (in our example, it's example.com)**.


Will I have downtime if I keep the same domain?



By downtime we mean your plugin could become Unverfied and momentaneously removed from the store.

Well, most likely your plugin will have downtime but that is not as bad as you may think.

First, there is one important rule to know: any change to your manifest file will set your plugin back to Unverified.

That is a hard constraint enforced by OpenAI, it's unrelated to the fact you are using PluginLab or not.

This would be the case for example if you never configured an authenticated scheme in your manifest and you decide to add it.

So in that case it would be a great moment to integrate PluginLab because you would have downtime anyway.

Note that most verification are now taking one or two hours (if your plugin is not escalated to the OpenAI safety team).


Import scenario 2: Using a new domain



Note that plugin statistics are linked to the plugin domain. So we discourage you choose this scenario if you are in the Popular section of the store. We suggest you keep your old domain instead. See the previous section.

In some situations you would like add a new domain instead of keeping your old one. That would be the case if you cannot afford downtime or if you want to test a new plugin version.

In that case the scenario is quite simple and you will only have to redirect your new domain to PluginLab's IP address.

This would allow you to keep your old plugin working on ChatGPT in parallel of the new one.

Then at some point you could handle the shift and ask people to migrate to the new plugin somehow.

Here is how it looks :

Two plugins in parallel

Go to PluginLab app
Import your plugin using our import feature (at this stage, PluginLab will import your manifest and your open api specification).
Configure your authentication (recommended) with the desired sign-in methods on PluginLab
Go to PluginLab > Plugin Settings > Domains
Click on Create my first domain and add the domain of your choice that will point to PluginLab.
Follow the custom domain instructions and wait for the domain to be linked and for the SSL to be configured properly. This can take a few minutes or a few hours depending on your DNS provider.
Go to PluginLab > Getting Stated and click on Install on ChatGPT, then follow the instructions to install the Plugin on ChatGPT.
If everything works, resubmit your Plugin using the submission bot located here. The domain to use is the PluginLab domain in that case.


Congrats, you're done!


Pro tip: how to choose the new domain



In case you decide to go with a new domain we recommand you use a subdomain and not a root domain.

For instance, if your new domain is my-new-domain.com.

Instead of using my-new-domain.com, we suggest you create a subdomain of your choice. For example plugin.my-new-domain.com or anything.my-new-domain.com.

This way of using domains is a best practice considering the fact your project may evolve in the future.

For example, later you could have a complex project with a website, an app, a backend and more.

Example:

Your website running at my-new-domain.com
Your backend api running at api.my-new-domain.com
Your frontend app running at app.my-new-domain.com
You plugin running at plugin.my-new-domain.com

Every project is different so feel free to consider if this advice applies to your specific situation or not :)


Questions and Answers



How much time does it take to migrate?



Honestly, it takes minutes. It's just a matter of adding an A record to your DNS provider and updating your current manifest endpoint (if applicable).
If you need any help or advice, our team can help you, feel free to reach out


Do you provide a free migration assistance?



For sure! Migrating a plugin is quite easy and we can provide you the assistance, for free


Feeling lost?



If you're feeling lost, please feel free to reach out to us using the bottom right chatbox. We will be more than happy to help and answer your question

Updated on: 10/09/2023

Was this article helpful?

Share your feedback

Cancel

Thank you!