Skip to content

Commit 228c5a8

Browse files
committed
Merge branch 'main' into feature/oauth-self-hosted
# Conflicts: # src/Umbraco.Cms.Integrations.Crm.Dynamics/readme.md # src/Umbraco.Cms.Integrations.Crm.Hubspot/readme.md # src/Umbraco.Cms.Integrations.SEO.GoogleSearchConsole.UrlInspectionTool/readme.md # src/Umbraco.Cms.Integrations.SEO.Semrush/readme.md
2 parents 89698ab + a3c0a3e commit 228c5a8

File tree

67 files changed

+2206
-959
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

67 files changed

+2206
-959
lines changed

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,7 @@ This repository houses open-source extensions, created for Umbraco CMS, that int
3737
### PIM
3838
[inriver](./src/Umbraco.Cms.Integrations.PIM.Inriver/) - a products picker that can be added as a property editor for content, with a value converter providing a strongly typed model for rendering, and a rendering component.
3939

40+
### DAM
41+
[Aprimo](./src/Umbraco.Cms.Integrations.DAM.Aprimo/) - a media picker for digital assets managed in an Aprimo workspace.
42+
4043

azure-pipeline - DAM.Aprimo.yml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
trigger:
2+
- main
3+
4+
pool:
5+
vmImage: 'windows-latest'
6+
7+
variables:
8+
projectName: 'Umbraco.Cms.Integrations.DAM.Aprimo'
9+
project: 'src/$(projectName)/$(projectName).csproj'
10+
buildPlatform: 'Any CPU'
11+
buildConfiguration: 'Release'
12+
13+
steps:
14+
- task: NuGetToolInstaller@1
15+
displayName: 'Install NuGet'
16+
17+
- task: DotNetCoreCLI@2
18+
displayName: 'NuGet Restore'
19+
inputs:
20+
command: 'restore'
21+
feedsToUse: 'select'
22+
projects: '$(project)'
23+
includeNuGetOrg: true
24+
25+
- task: VSBuild@1
26+
displayName: 'Build Project'
27+
inputs:
28+
solution: '$(project)'
29+
msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactStagingDirectory)"'
30+
platform: '$(buildPlatform)'
31+
configuration: '$(buildConfiguration)'
32+
33+
- task: DotNetCoreCLI@2
34+
displayName: 'Create NuGet Package'
35+
inputs:
36+
command: 'pack'
37+
arguments: '--configuration $(buildConfiguration)'
38+
packagesToPack: '$(project)'
39+
versioningScheme: 'off'
40+
41+
- task: PublishBuildArtifacts@1
42+
displayName: 'Publish Build Artifacts'
43+
inputs:
44+
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
45+
ArtifactName: 'drop'
46+
publishLocation: 'Container'

src/Umbraco.Cms.Integrations.Analytics.Cookiebot/Umbraco.Cms.Integrations.Analytics.Cookiebot.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@
1313
<Title>Umbraco CMS Integrations: Analytics - Cookiebot</Title>
1414
<Description>An extension for Umbraco CMS providing an implementation model for Cookiebot banner and declaration.</Description>
1515
<PackageIconUrl></PackageIconUrl>
16-
<PackageProjectUrl>https://github.com/umbraco/Umbraco.Cms.Integrations/blob/main/src/Umbraco.Cms.Integrations.Script.Cookiebot</PackageProjectUrl>
16+
<PackageProjectUrl>https://github.com/umbraco/Umbraco.Cms.Integrations/blob/main/src/Umbraco.Cms.Integrations.Analytics.Cookiebot</PackageProjectUrl>
1717
<RepositoryUrl>https://github.com/umbraco/Umbraco.Cms.Integrations</RepositoryUrl>
18-
<Version>1.0.0</Version>
18+
<Version>1.0.1</Version>
1919
<Authors>Umbraco HQ</Authors>
2020
<Company>Umbraco</Company>
2121
<PackageTags>Umbraco;Umbraco-Marketplace</PackageTags>
Lines changed: 1 addition & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,6 @@
11
# Umbraco.Cms.Integrations.Analytics.Cookiebot
22

3-
This integration provides an implementation model for [Cookiebot](https://www.cookiebot.com/) banner and declaration.
4-
5-
## Prerequisites
6-
7-
Requires minimum versions of Umbraco CMS:
8-
- CMS: 10.0.0
9-
10-
## How To Use
11-
12-
### Configuration
13-
14-
The following configuration is required for the Cookiebot scripts to be loaded correctly:
15-
16-
```
17-
"Umbraco": {
18-
"Cookiebot": {
19-
"Settings": {
20-
"Id": "[YOUR_CBID]"
21-
}
22-
}
23-
}
24-
```
25-
`CBID` = `Cookiebot Identifier`
26-
27-
### Working with the Umbraco CMS - Cookiebot integration
28-
The package is a reusable [Razor class library](https://learn.microsoft.com/en-us/aspnet/core/razor-pages/?view=aspnetcore-6.0&tabs=visual-studio) which will allow editors to load the Cookiebot Banner and Declaration scripts.
29-
30-
Per Cookiebot documentation, the Banner script needs to be inserted as the __very first script__ of the website, by placing it in the _HEAD_ tag using this syntax:
31-
32-
`@await Html.PartialAsync("~/Views/Partials/UmbracoCms.Integrations/Analytics/Cookiebot/Banner.cshtml")`
33-
34-
The Declaration script can be added in whatever page you want, using this syntax:
35-
`@await Html.PartialAsync("~/Views/Partials/UmbracoCms.Integrations/Scripts/Cookiebot/Declaration.cshtml")`
36-
37-
Both scripts "pick up" the `CBID` from the website's settings file
38-
`Configuration["Umbraco:Cookiebot:Settings:Id"]`
39-
and update the details accordingly.
40-
41-
42-
### Custom implementations
43-
This integration showcases how easy it is to work with a script-based provider, just by using partial views and Microsoft's `IConfiguration` interface.
44-
45-
You can use this package as reference for creating your own. To do so, please follow these steps:
46-
- Create a new Razor class library for your integration
47-
- Add partial(s) view(s) where you insert your custom script code
48-
- Inject the `IConfiguration` interface into your view: `@inject Microsoft.Extensions.Configuration.IConfiguration Configuration`
49-
- Use `Configuration[YOUR_SETTINGS_PATH:KEY]` to retrieve the required configuration values
50-
- Add `umbraco-markertplace.json` file with Marketplace details of the package
51-
52-
Once your integration is ready, all that remains to do is to deploy the package to NuGet.
53-
You can use [this](https://learn.microsoft.com/en-us/nuget/what-is-nuget) section of the documentation from Microsoft to get started.
3+
Documentation for the __Cookiebot__ integration is available at the [Umbraco documentation website](https://docs.umbraco.com/umbraco-dxp/integrations/cookiebot).
544

555

566

Lines changed: 1 addition & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,62 +1,3 @@
11
# Umbraco.Cms.Integrations.Automation.Zapier
22

3-
This integration provides a dashboard interface that allows users to vizualize registered subscription hooks. When a Zap is turned on, the subscription hook is saved into the database; turning off the Zap will remove the registered subscription hook.
4-
5-
When content gets published, the content type is looked up in the subscription hooks list from the database, and if a record is found, A POST request will be sent to the webhook URL with details of the current node. This eventually will cause the Zap's trigger to be invoked, triggering the assigned actions of the Zap.
6-
7-
A Zap is an automated workflow that connects various apps and services together. Each Zap consists of a trigger and one or more actions.
8-
9-
## Prerequisites
10-
11-
Requires minimum versions of Umbraco:
12-
13-
- CMS V8: 8.5.4
14-
- CMS V9: 9.0.1
15-
16-
## How To Use
17-
18-
### Authentication
19-
20-
For this integration, the authentication is managed on Zapier's side by using the Umbraco marketplace app.
21-
22-
The Umbraco app manages two types of events:
23-
* New Form Submission - triggers when a form is submitted
24-
* New Content Published - triggers when a new content has been published.
25-
26-
The trigger event to be used by this integration is _New Content Published_.
27-
28-
When creating the Zap trigger, you will be prompted to enter a username, password and the URL for your Umbraco website, or you can use instead an API key.
29-
If the following setting is present, then the API key based authentication will take precendence and will be the main method of authorization.
30-
```
31-
<appSettings>
32-
...
33-
<add key="Umbraco.Cms.Integrations.Automation.Zapier.ApiKey" value="[your_api_key]" />
34-
...
35-
</appSettings>
36-
```
37-
38-
If no API key is present, then the Umbraco application will validate the credentials entered and return a message in case the validation fails.
39-
40-
If you want to extend the security layer, you can also specify a user group that the user trying to connect needs to be a part of, by adding the following
41-
setting in `Web.config`:
42-
43-
```
44-
<appSettings>
45-
...
46-
<add key="Umbraco.Cms.Integrations.Automation.Zapier.UserGroup" value="[your User Group]" />
47-
...
48-
</appSettings>
49-
```
50-
51-
### Working With the Zapier Cms Integration
52-
In the _Content_ area of the backoffice, find the _Zapier Integrations_ dashboard.
53-
54-
The dashboard is composed of two sections:
55-
* Content Properties - Zapier details and input fields for adding content configurations
56-
* Registered Subscription Hooks - list of registered entities.
57-
58-
Subscription hooks are split in two categories:
59-
* 1 = Content
60-
* 2 = Form
61-
62-
The _Trigger Webhook_ action will send a test request to the Zap trigger, enabling the preview of requests in the Zap setup workflow.
3+
Documentation for the __Zapier__ integration is available at the [Umbraco documentation website](https://docs.umbraco.com/umbraco-dxp/integrations/zapier).
Lines changed: 1 addition & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,5 @@
11
# Umbraco.Cms.Integrations.Commerce.CommerceTools
22

3-
This integration provides a product and category picker, with data sourced from a [CommerceTools](https://commercetools.com/) installation.
4-
5-
## Prerequisites
6-
7-
Requires minimum version of Umbraco CMS: 8.5.4.
8-
9-
## How To Use
10-
11-
From your CommerceTools account, retrieve the following details add them as application settings to your websites web.config file.
12-
13-
```
14-
<add key="Umbraco.Cms.Integrations.Commerce.CommerceTools.OAuthUrl" value="https://auth.europe-west1.gcp.commercetools.com/oauth/token" />
15-
<add key="Umbraco.Cms.Integrations.Commerce.CommerceTools.ApiUrl" value="https://api.europe-west1.gcp.commercetools.com" />
16-
<add key="Umbraco.Cms.Integrations.Commerce.CommerceTools.ProjectKey" value="" />
17-
<add key="Umbraco.Cms.Integrations.Commerce.CommerceTools.ClientId" value="" />
18-
<add key="Umbraco.Cms.Integrations.Commerce.CommerceTools.ClientSecret" value="" />
19-
<add key="Umbraco.Cms.Integrations.Commerce.CommerceTools.DefaultLanguage" value="en-US" />
20-
```
21-
22-
With that in place, in the Umbraco back-office click to _Settings > Data Types_ and create a new data type based on the available *CommerceTools Picker*.
23-
24-
The picker can be configured for selection of categories or products, defined as single or multiple picker, as well as other options:
25-
26-
![Data type configuration](./img/data-type-config.png)
27-
28-
When rendering product or category information, a property value converter will provide a strongly typed collection or object with the following fields available:
29-
30-
- [Category](./Models/Category.cs)
31-
- [Product](./Models/Product.cs)
3+
Documentation for the __CommerceTools__ integration is available at the [Umbraco documentation website](https://docs.umbraco.com/umbraco-dxp/integrations/commercetools).
324

335

Lines changed: 1 addition & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -1,89 +1,3 @@
11
# Umbraco.Cms.Integrations.Commerce.Shopify
22

3-
This integration provides a products picker and a value converter that uses a [strongly typed model](Models/ViewModels/ProductViewModel.cs) for rendering,
4-
for products within a simple [Shopify](https://www.shopify.com/) store or through custom apps developed by [Shopify Partners](https://www.shopify.com/partners).
5-
6-
## Prerequisites
7-
8-
Required minimum versions of Umbraco CMS:
9-
10-
- 8.5.4 for version 8
11-
- 9.0.1 for version 9
12-
13-
## How To Use
14-
15-
### Authentication
16-
17-
The package supports two modes of authentication:
18-
19-
- API Access Token
20-
- OAuth
21-
22-
#### API Access Token
23-
24-
Log into the admin interface of your shop by accessing `https://{shop}.myshopify.com/admin`, go to _Apps > Develop apps_ and create a new App for the shop (if App Development feature is disabled, you will need to enable it).
25-
26-
After the app is created, define the scopes for the Admin API: _read_products_ , then select the option to _Install App_.
27-
28-
Once the app is installed the Admin API access token will be visible only once in the _API credentials_ tab.
29-
30-
Use the access token and add it to an app setting in `Web.config` alongside settings for the API version and the name of the shop:
31-
32-
```
33-
<appSettings>
34-
...
35-
<add key="Umbraco.Cms.Integrations.Commerce.Shopify.ApiVersion" value="2022-01" />
36-
<add key="Umbraco.Cms.Integrations.Commerce.Shopify.AccessToken" value="[your access token]" />
37-
<add key="Umbraco.Cms.Integrations.Commerce.Shopify.Shop" value="[your shop's name]" />
38-
...
39-
</appSettings>
40-
```
41-
42-
Shopify releases a new API version every 3 months at the beginning of the quarter. Latest stable version used for this integration is [2022-01](https://shopify.dev/api/usage/versioning).
43-
44-
#### OAuth
45-
46-
If you prefer not to use an API key, an authentication flow using OAuth is also available.
47-
48-
To use this, simply ensure you don't have an API key in your configuration file.
49-
50-
### Backoffice usage
51-
52-
To use the products picker, a new data type should be created based on the Shopify Products Picker property editor.
53-
54-
The settings in `Web.config` will be checked and a message presented indicating whether authenticiation is in place.
55-
56-
If OAuth is being used for authentication is available, then the _Connect_ button will be enabled, prompting the user when clicked,
57-
with the Shopify authorization window.
58-
59-
The retrieved access token will be saved into the database and used for future requests.
60-
61-
_Revoke_ action will remove the access token from the database and the authorization process will need to be repeated.
62-
63-
### Front-end rendering
64-
65-
A [strongly typed model](Models/ViewModels/ProductViewModel.cs) will be generated by the property value converter, and an HTML helper is available, to easily render the products on the front-end.
66-
67-
Ensure your template has a reference to the following using statement:
68-
69-
```
70-
@using Umbraco.Cms.Integrations.Commerce.Shopify.Helpers;
71-
```
72-
73-
And render the form using (assuming a property based on the created data type, with alias `shopifyProductPicker` has been created):
74-
75-
```
76-
@Html.RenderProductsList(Model.ShopifyProductPicker)
77-
```
78-
79-
You can use the default rendering view and style it using the existing CSS classes, or use it as inspiration for your own views. The path to your custom view will be then passed as parameter to the HTML helper method.
80-
81-
### Developer Notes
82-
83-
To copy the front-end assets to the test site While in DEBUG mode, use following post build events:
84-
```
85-
set UmbracoCmsIntegrationsTestsiteV8Path=$(SolutionDir)\Umbraco.Cms.Integrations.Testsite.V8
86-
set ShopifyDir=%UmbracoCmsIntegrationsTestsiteV8Path%\App_Plugins\UmbracoCms.Integrations\Commerce\Shopify
87-
if not exist %ShopifyDir% mkdir -p %ShopifyDir%
88-
xcopy "$(ProjectDir)App_Plugins\UmbracoCms.Integrations\Commerce\Shopify" "%ShopifyDir%" /e /y
89-
```
3+
Documentation for the __Shopify__ integration is available at the [Umbraco documentation website](https://docs.umbraco.com/umbraco-dxp/integrations/shopify).
Lines changed: 1 addition & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,3 @@
11
# Umbraco.Cms.Integrations.Crm.ActiveCampaign
22

3-
This integration provides a form picker and rendering component for forms managed within an ActiveCampaign CRM account.
4-
5-
## Prerequisites
6-
7-
Required minimum versions of Umbraco CMS:
8-
- 10.1.0
9-
10-
## How To Use
11-
12-
### Authentication
13-
14-
All requests to the ActiveCampaign API are authenticated by providing
15-
an API key. The API key is included as an HTTP header called _Api_Token_.
16-
17-
If the configuration is incomplete, the user will receive an error message.
18-
19-
### Configuration
20-
21-
To connect to your ActiveCampaign account, the following configuration is required:
22-
```
23-
"Umbraco": {
24-
"CMS": {
25-
"Integrations": {
26-
"Crm": {
27-
"ActiveCampaign": {
28-
"Settings": {
29-
"BaseUrl": "https://[YOUR_ACCOUNT_NAME].api-us1.com",
30-
"ApiKey": "[YOUR_API_KEY]"
31-
}
32-
}
33-
}
34-
}
35-
```
36-
37-
### Backoffice usage
38-
39-
To use the form picker, a new data type should be created based on the ActiveCampaign Form Picker property editor.
40-
41-
The settings in `appsettings.json` will be used for sending the required HTTP header for authorization, and for retrieving the account name used for rendering the form.
42-
43-
### Front-end rendering
44-
45-
A strongly typed model will be generated by the property value converter, and an HTML helper is available, to easily render the form on the front-end.
46-
47-
Ensure your template has a reference to the following using statement:
48-
49-
```
50-
@using Umbraco.Cms.Integrations.Crm.ActiveCampaign.Helpers;
51-
```
52-
53-
And render the form using (assuming a property based on the created data type, with alias `activeCampaignForm` has been created):
54-
55-
```
56-
@Html.RenderActiveCampaignForm(Model.ActiveCampaignForm)
57-
```
3+
Documentation for the __ActiveCampaign__ integration is available at the [Umbraco documentation website](https://docs.umbraco.com/umbraco-dxp/integrations/activecampaign).

0 commit comments

Comments
 (0)