Yes. An Add-On can be published as private from the Workspace Marketplace SDK. A private add-on is restricted to the domain/Workspace Account that the Apps Script file is in.
https://developers.google.com/apps-script/add-ons/publish
An add-on can also be published as unlisted.
Publishing the add-on as private to the Workspace account is not the same as publishing an add-on as unlisted. An unlisted add-on is technically public, it's just not shown in the Workspace Marketplace. To install an unlisted add-on the users need the link.
There are two different approvals for an add-on. One for the OAuth consent, and another for the function of the add-on. The OAuth consent is for asking the user for permission to different services / access in their account. The function of the add-on is for appearance, content and whether it works or not.
Both private and unlisted Add-ons are actually published to the Workspace Marketplace, but who is allowed to access/see them is what is controlled. You need to create a "standard" Google Cloud Project, associate it with your Apps Script project, and then enable the Workspace Marketplace SDK, and configure settings in the Workspace Marketplace SDK.
To get to your Google Cloud Platform dashboard, use the URL
https://console.cloud.google.com/home/dashboard
- From "IAM and Admin" navigate to "Manage Resources"
- If you don't have an organization name, then create an organization. NOTE: An organization can only be set up through a Workspace account OR through "Cloud Identity." https://cloud.google.com/resource-manager/docs/creating-managing-organization#acquiring
- Create a new GCP project
- Get the GCP Project Number
- Put the GCP Project Number into the Apps Script project
- Navigate to the APIs and Services dashboard.
- Make sure that the project that you want to use is listed in the drop
down
- Click "Enable APIs and Services"
- Search for Workspace Marketplace
- Enable the Workspace Marketplace SDK
- Configure the Workspace Marketplace SDK
There is also the option to make an Apps Script project file available to other Apps Script projects as a "library." A library can be made available to other Apps Script projects, by providing the "project key" of the source Apps Script (library).
Whoever wants to use the source Apps Script file as a library needs the project key. To find the project key, from the code editor choose "File" - "Project Properties" and look for "Project key (Deprecated)"
To add an Apps Script file as a library, from the code editor, choose "Resources" - "Libraries". You don't need to do anything to create a Library. Every Apps Script project is available as a Library. All you need to do is share the Project Key.
You can add an "Add-On" menu item to a Google Spreadsheet or Doc, without publishing an Add-On, and that Add-On menu item will run any code that is in that document, just like an add on. But you would need to edit the document of every user you wanted to deploy the code to, and manually add the code to their document.
If the Apps Script file is not published as an add-on, then there's no point in creating an Add-On menu, since you can create a custom menu.