@@ -122,7 +122,7 @@ export const SegmentMenu = () => {
state={{ expandedSegment }}
onClick={() => {
closeDropdown()
- setModal('delete')
+ setModal({ type: 'delete-segment' })
}}
>
diff --git a/assets/js/dashboard/navigation/routeless-modals-context.tsx b/assets/js/dashboard/navigation/routeless-modals-context.tsx
index a88d5a044968..d3a90357933d 100644
--- a/assets/js/dashboard/navigation/routeless-modals-context.tsx
+++ b/assets/js/dashboard/navigation/routeless-modals-context.tsx
@@ -1,7 +1,8 @@
import React, { createContext, ReactNode, useContext, useState } from 'react'
import { RoutelessSegmentModal } from '../segments/routeless-segment-modals'
+import { RoutelessAnnotationModal } from '../annotations/routeless-annotations-modals'
-type ActiveModal = null | RoutelessSegmentModal
+type ActiveModal = null | RoutelessSegmentModal | RoutelessAnnotationModal
const routelessModalsContextDefaultValue: {
modal: ActiveModal
diff --git a/assets/js/dashboard/router.tsx b/assets/js/dashboard/router.tsx
index 9b9f71ed6b75..54d3a0d59863 100644
--- a/assets/js/dashboard/router.tsx
+++ b/assets/js/dashboard/router.tsx
@@ -26,6 +26,7 @@ import { RoutelessModalsContextProvider } from './navigation/routeless-modals-co
import { RoutelessSegmentModals } from './segments/routeless-segment-modals'
import { GOOGLE_SEARCH_TERMS_DETAILS_PATH } from './stats/sources/fetch-search-terms'
import { SourcesDetails } from './stats/sources/details'
+import { RoutelessAnnotationModals } from './annotations/routeless-annotations-modals'
const queryClient = new QueryClient({
defaultOptions: {
@@ -46,6 +47,7 @@ function DashboardElement() {
+
diff --git a/assets/js/dashboard/segments/routeless-segment-modals.tsx b/assets/js/dashboard/segments/routeless-segment-modals.tsx
index 3f8f2dc9a4ba..f0a6a8d52863 100644
--- a/assets/js/dashboard/segments/routeless-segment-modals.tsx
+++ b/assets/js/dashboard/segments/routeless-segment-modals.tsx
@@ -22,7 +22,10 @@ import { mutation } from '../api'
import { useRoutelessModalsContext } from '../navigation/routeless-modals-context'
import { useSegmentsContext } from '../filtering/segments-context'
-export type RoutelessSegmentModal = 'create' | 'update' | 'delete'
+export type RoutelessSegmentModal =
+ | { type: 'create-segment' }
+ | { type: 'update-segment' }
+ | { type: 'delete-segment' }
export const RoutelessSegmentModals = () => {
const { updateOne, addOne, removeOne } = useSegmentsContext()
@@ -153,7 +156,7 @@ export const RoutelessSegmentModals = () => {
return (
<>
- {modal === 'update' && expandedSegment && (
+ {modal?.type === 'update-segment' && expandedSegment && (
{
reset={patchSegment.reset}
/>
)}
- {modal === 'create' && (
+ {modal?.type === 'create-segment' && (
{
reset={createSegment.reset}
/>
)}
- {modal === 'delete' && expandedSegment && (
+ {modal?.type === 'delete-segment' && expandedSegment && (
{
diff --git a/assets/js/dashboard/segments/segment-modals.tsx b/assets/js/dashboard/segments/segment-modals.tsx
index 30e9175dc855..18be91b6e1c2 100644
--- a/assets/js/dashboard/segments/segment-modals.tsx
+++ b/assets/js/dashboard/segments/segment-modals.tsx
@@ -34,10 +34,10 @@ import {
getOptionDisabledMessage,
LabeledTextInput,
OptionDisabledMessageType,
- TypeDisabledMessage,
TypeSelector
} from '../components/form-elements'
import { Placeholder } from '../components/placeholder'
+import { UpgradePill } from '../components/pill'
const inModalSectionLabelClassName = 'text-sm font-semibold dark:text-gray-100'
@@ -84,13 +84,13 @@ export const CreateSegmentModal = ({
const [type, setType] = useState(defaultType)
+ const siteOptionDisabledMessage = getSiteSegmentDisabledMessage({
+ siteSegmentsAvailable,
+ user
+ })
+
const disabledMessage =
- type === SegmentType.site
- ? getSiteSegmentDisabledMessage({
- siteSegmentsAvailable,
- user
- })
- : null
+ type === SegmentType.site ? siteOptionDisabledMessage : null
return (
@@ -103,7 +103,7 @@ export const CreateSegmentModal = ({
<.tooltip enabled?={not @has_access_to_revenue_goals?} centered?={true}>
<:tooltip_content>
diff --git a/lib/plausible_web/plugins/api/schemas/capabilities.ex b/lib/plausible_web/plugins/api/schemas/capabilities.ex
index f98daee979ce..76a9a0aba585 100644
--- a/lib/plausible_web/plugins/api/schemas/capabilities.ex
+++ b/lib/plausible_web/plugins/api/schemas/capabilities.ex
@@ -35,6 +35,7 @@ defmodule PlausibleWeb.Plugins.API.Schemas.Capabilities do
StatsAPI: false,
SitesAPI: false,
SiteSegments: false,
+ SiteAnnotations: false,
Teams: false,
SharedLinks: false,
SSO: false,
diff --git a/priv/plans_v3.json b/priv/plans_v3.json
index 37aa5f0d422a..0d4310a3f9aa 100644
--- a/priv/plans_v3.json
+++ b/priv/plans_v3.json
@@ -134,6 +134,7 @@
"funnels",
"stats_api",
"site_segments",
+ "site_annotations",
"shared_links",
"consolidated_view"
]
@@ -153,6 +154,7 @@
"funnels",
"stats_api",
"site_segments",
+ "site_annotations",
"shared_links",
"consolidated_view"
]
@@ -172,6 +174,7 @@
"funnels",
"stats_api",
"site_segments",
+ "site_annotations",
"shared_links",
"consolidated_view"
]
@@ -191,6 +194,7 @@
"funnels",
"stats_api",
"site_segments",
+ "site_annotations",
"shared_links",
"consolidated_view"
]
@@ -210,6 +214,7 @@
"funnels",
"stats_api",
"site_segments",
+ "site_annotations",
"shared_links",
"consolidated_view"
]
@@ -229,6 +234,7 @@
"funnels",
"stats_api",
"site_segments",
+ "site_annotations",
"shared_links",
"consolidated_view"
]
@@ -248,6 +254,7 @@
"funnels",
"stats_api",
"site_segments",
+ "site_annotations",
"shared_links",
"consolidated_view"
]
@@ -267,6 +274,7 @@
"funnels",
"stats_api",
"site_segments",
+ "site_annotations",
"shared_links",
"consolidated_view"
]
diff --git a/priv/plans_v4.json b/priv/plans_v4.json
index de39f7ac369b..29ed585e95e5 100644
--- a/priv/plans_v4.json
+++ b/priv/plans_v4.json
@@ -126,6 +126,7 @@
"funnels",
"stats_api",
"site_segments",
+ "site_annotations",
"shared_links",
"consolidated_view"
],
@@ -146,6 +147,7 @@
"funnels",
"stats_api",
"site_segments",
+ "site_annotations",
"shared_links",
"consolidated_view"
],
@@ -166,6 +168,7 @@
"funnels",
"stats_api",
"site_segments",
+ "site_annotations",
"shared_links",
"consolidated_view"
],
@@ -186,6 +189,7 @@
"funnels",
"stats_api",
"site_segments",
+ "site_annotations",
"shared_links",
"consolidated_view"
],
@@ -206,6 +210,7 @@
"funnels",
"stats_api",
"site_segments",
+ "site_annotations",
"shared_links",
"consolidated_view"
],
@@ -226,6 +231,7 @@
"funnels",
"stats_api",
"site_segments",
+ "site_annotations",
"shared_links",
"consolidated_view"
],
@@ -246,6 +252,7 @@
"funnels",
"stats_api",
"site_segments",
+ "site_annotations",
"shared_links",
"consolidated_view"
],
@@ -266,6 +273,7 @@
"funnels",
"stats_api",
"site_segments",
+ "site_annotations",
"shared_links",
"consolidated_view"
],
diff --git a/priv/plans_v5.json b/priv/plans_v5.json
index 69c3641a2329..ede05fec99af 100644
--- a/priv/plans_v5.json
+++ b/priv/plans_v5.json
@@ -114,7 +114,8 @@
"features": [
"goals",
"shared_links",
- "site_segments"
+ "site_segments",
+ "site_annotations"
],
"data_retention_in_years": 3
},
@@ -129,7 +130,8 @@
"features": [
"goals",
"shared_links",
- "site_segments"
+ "site_segments",
+ "site_annotations"
],
"data_retention_in_years": 3
},
@@ -144,7 +146,8 @@
"features": [
"goals",
"shared_links",
- "site_segments"
+ "site_segments",
+ "site_annotations"
],
"data_retention_in_years": 3
},
@@ -159,7 +162,8 @@
"features": [
"goals",
"shared_links",
- "site_segments"
+ "site_segments",
+ "site_annotations"
],
"data_retention_in_years": 3
},
@@ -174,7 +178,8 @@
"features": [
"goals",
"shared_links",
- "site_segments"
+ "site_segments",
+ "site_annotations"
],
"data_retention_in_years": 3
},
@@ -189,7 +194,8 @@
"features": [
"goals",
"shared_links",
- "site_segments"
+ "site_segments",
+ "site_annotations"
],
"data_retention_in_years": 3
},
@@ -204,7 +210,8 @@
"features": [
"goals",
"shared_links",
- "site_segments"
+ "site_segments",
+ "site_annotations"
],
"data_retention_in_years": 3
},
@@ -219,7 +226,8 @@
"features": [
"goals",
"shared_links",
- "site_segments"
+ "site_segments",
+ "site_annotations"
],
"data_retention_in_years": 3
},
@@ -235,6 +243,7 @@
"goals",
"shared_links",
"site_segments",
+ "site_annotations",
"props",
"stats_api",
"revenue_goals",
@@ -255,6 +264,7 @@
"goals",
"shared_links",
"site_segments",
+ "site_annotations",
"props",
"stats_api",
"revenue_goals",
@@ -275,6 +285,7 @@
"goals",
"shared_links",
"site_segments",
+ "site_annotations",
"props",
"stats_api",
"revenue_goals",
@@ -295,6 +306,7 @@
"goals",
"shared_links",
"site_segments",
+ "site_annotations",
"props",
"stats_api",
"revenue_goals",
@@ -315,6 +327,7 @@
"goals",
"shared_links",
"site_segments",
+ "site_annotations",
"props",
"stats_api",
"revenue_goals",
@@ -335,6 +348,7 @@
"goals",
"shared_links",
"site_segments",
+ "site_annotations",
"props",
"stats_api",
"revenue_goals",
@@ -355,6 +369,7 @@
"goals",
"shared_links",
"site_segments",
+ "site_annotations",
"props",
"stats_api",
"revenue_goals",
@@ -375,6 +390,7 @@
"goals",
"shared_links",
"site_segments",
+ "site_annotations",
"props",
"stats_api",
"revenue_goals",
diff --git a/priv/sandbox_plans_v3.json b/priv/sandbox_plans_v3.json
index 295e159cb0a3..bf031da63080 100644
--- a/priv/sandbox_plans_v3.json
+++ b/priv/sandbox_plans_v3.json
@@ -134,6 +134,7 @@
"funnels",
"stats_api",
"site_segments",
+ "site_annotations",
"shared_links"
]
},
@@ -152,6 +153,7 @@
"funnels",
"stats_api",
"site_segments",
+ "site_annotations",
"shared_links"
]
},
@@ -170,6 +172,7 @@
"funnels",
"stats_api",
"site_segments",
+ "site_annotations",
"shared_links"
]
},
@@ -188,6 +191,7 @@
"funnels",
"stats_api",
"site_segments",
+ "site_annotations",
"shared_links"
]
},
@@ -206,6 +210,7 @@
"funnels",
"stats_api",
"site_segments",
+ "site_annotations",
"shared_links"
]
},
@@ -224,6 +229,7 @@
"funnels",
"stats_api",
"site_segments",
+ "site_annotations",
"shared_links"
]
},
@@ -242,6 +248,7 @@
"funnels",
"stats_api",
"site_segments",
+ "site_annotations",
"shared_links"
]
},
@@ -260,6 +267,7 @@
"funnels",
"stats_api",
"site_segments",
+ "site_annotations",
"shared_links"
]
}
diff --git a/priv/sandbox_plans_v4.json b/priv/sandbox_plans_v4.json
index 4d82acb7f2f4..c2e48f53c961 100644
--- a/priv/sandbox_plans_v4.json
+++ b/priv/sandbox_plans_v4.json
@@ -126,6 +126,7 @@
"funnels",
"stats_api",
"site_segments",
+ "site_annotations",
"shared_links"
],
"data_retention_in_years": 5
@@ -145,6 +146,7 @@
"funnels",
"stats_api",
"site_segments",
+ "site_annotations",
"shared_links"
],
"data_retention_in_years": 5
@@ -164,6 +166,7 @@
"funnels",
"stats_api",
"site_segments",
+ "site_annotations",
"shared_links"
],
"data_retention_in_years": 5
@@ -183,6 +186,7 @@
"funnels",
"stats_api",
"site_segments",
+ "site_annotations",
"shared_links"
],
"data_retention_in_years": 5
@@ -202,6 +206,7 @@
"funnels",
"stats_api",
"site_segments",
+ "site_annotations",
"shared_links"
],
"data_retention_in_years": 5
@@ -221,6 +226,7 @@
"funnels",
"stats_api",
"site_segments",
+ "site_annotations",
"shared_links"
],
"data_retention_in_years": 5
@@ -240,6 +246,7 @@
"funnels",
"stats_api",
"site_segments",
+ "site_annotations",
"shared_links"
],
"data_retention_in_years": 5
@@ -259,6 +266,7 @@
"funnels",
"stats_api",
"site_segments",
+ "site_annotations",
"shared_links"
],
"data_retention_in_years": 5
diff --git a/priv/sandbox_plans_v5.json b/priv/sandbox_plans_v5.json
index d3d104cc80ab..a54bbeda0cde 100644
--- a/priv/sandbox_plans_v5.json
+++ b/priv/sandbox_plans_v5.json
@@ -114,7 +114,8 @@
"features": [
"goals",
"shared_links",
- "site_segments"
+ "site_segments",
+ "site_annotations"
],
"data_retention_in_years": 3
},
@@ -129,7 +130,8 @@
"features": [
"goals",
"shared_links",
- "site_segments"
+ "site_segments",
+ "site_annotations"
],
"data_retention_in_years": 3
},
@@ -144,7 +146,8 @@
"features": [
"goals",
"shared_links",
- "site_segments"
+ "site_segments",
+ "site_annotations"
],
"data_retention_in_years": 3
},
@@ -159,7 +162,8 @@
"features": [
"goals",
"shared_links",
- "site_segments"
+ "site_segments",
+ "site_annotations"
],
"data_retention_in_years": 3
},
@@ -174,7 +178,8 @@
"features": [
"goals",
"shared_links",
- "site_segments"
+ "site_segments",
+ "site_annotations"
],
"data_retention_in_years": 3
},
@@ -189,7 +194,8 @@
"features": [
"goals",
"shared_links",
- "site_segments"
+ "site_segments",
+ "site_annotations"
],
"data_retention_in_years": 3
},
@@ -204,7 +210,8 @@
"features": [
"goals",
"shared_links",
- "site_segments"
+ "site_segments",
+ "site_annotations"
],
"data_retention_in_years": 3
},
@@ -219,7 +226,8 @@
"features": [
"goals",
"shared_links",
- "site_segments"
+ "site_segments",
+ "site_annotations"
],
"data_retention_in_years": 3
},
@@ -235,6 +243,7 @@
"goals",
"shared_links",
"site_segments",
+ "site_annotations",
"props",
"stats_api",
"revenue_goals",
@@ -254,6 +263,7 @@
"goals",
"shared_links",
"site_segments",
+ "site_annotations",
"props",
"stats_api",
"revenue_goals",
@@ -273,6 +283,7 @@
"goals",
"shared_links",
"site_segments",
+ "site_annotations",
"props",
"stats_api",
"revenue_goals",
@@ -292,6 +303,7 @@
"goals",
"shared_links",
"site_segments",
+ "site_annotations",
"props",
"stats_api",
"revenue_goals",
@@ -311,6 +323,7 @@
"goals",
"shared_links",
"site_segments",
+ "site_annotations",
"props",
"stats_api",
"revenue_goals",
@@ -330,6 +343,7 @@
"goals",
"shared_links",
"site_segments",
+ "site_annotations",
"props",
"stats_api",
"revenue_goals",
@@ -349,6 +363,7 @@
"goals",
"shared_links",
"site_segments",
+ "site_annotations",
"props",
"stats_api",
"revenue_goals",
@@ -368,6 +383,7 @@
"goals",
"shared_links",
"site_segments",
+ "site_annotations",
"props",
"stats_api",
"revenue_goals",
diff --git a/test/plausible/billing/feature_test.exs b/test/plausible/billing/feature_test.exs
index c74e0e4cfa77..859fb29f675e 100644
--- a/test/plausible/billing/feature_test.exs
+++ b/test/plausible/billing/feature_test.exs
@@ -4,6 +4,7 @@ defmodule Plausible.Billing.FeatureTest do
alias Plausible.Billing.Feature.{
Goals,
SiteSegments,
+ SiteAnnotations,
SharedLinks,
Funnels,
RevenueGoals,
@@ -100,7 +101,7 @@ defmodule Plausible.Billing.FeatureTest do
end
describe "growth features" do
- for mod <- [SharedLinks, SiteSegments] do
+ for mod <- [SharedLinks, SiteSegments, SiteAnnotations] do
test "#{mod}.check_availability/1 returns :ok when site owner is on a enterprise plan that supports #{mod}" do
team =
new_user()
diff --git a/test/plausible/billing/plan_benefits_test.exs b/test/plausible/billing/plan_benefits_test.exs
index 917737ea02ac..258548760c46 100644
--- a/test/plausible/billing/plan_benefits_test.exs
+++ b/test/plausible/billing/plan_benefits_test.exs
@@ -12,7 +12,8 @@ defmodule Plausible.Billing.PlanBenefitsTest do
"Email/Slack reports",
"Google Analytics import",
"Goals and custom events",
- "Saved Segments"
+ "Saved Segments",
+ "Annotations"
]
end
end
@@ -28,7 +29,8 @@ defmodule Plausible.Billing.PlanBenefitsTest do
"Team Management",
"Shared Links",
"Embedded Dashboards",
- "Shared Segments"
+ "Shared Segments",
+ "Shared Annotations"
]
end
@@ -54,6 +56,7 @@ defmodule Plausible.Billing.PlanBenefitsTest do
"Unlimited team members",
"Team Management",
"Saved Segments",
+ "Annotations",
"Goals and custom events",
"Custom Properties",
"Stats API (600 requests per hour)",
@@ -101,6 +104,7 @@ defmodule Plausible.Billing.PlanBenefitsTest do
"Stats API (600 requests per hour)",
"Looker Studio Connector",
"Shared Segments",
+ "Shared Annotations",
"Consolidated View"
]
end
@@ -123,6 +127,7 @@ defmodule Plausible.Billing.PlanBenefitsTest do
"Ecommerce revenue attribution",
"Funnels and user journeys",
"Shared Segments",
+ "Shared Annotations",
"Consolidated View"
]
end
diff --git a/test/plausible_web/controllers/api/internal_controller/annotations_controller_test.exs b/test/plausible_web/controllers/api/internal_controller/annotations_controller_test.exs
index 4821624af364..f3ce321ebb89 100644
--- a/test/plausible_web/controllers/api/internal_controller/annotations_controller_test.exs
+++ b/test/plausible_web/controllers/api/internal_controller/annotations_controller_test.exs
@@ -723,5 +723,35 @@ defmodule PlausibleWeb.Api.Internal.AnnotationsControllerTest do
}) = response
end
end
+
+ test "owner on a plan without site_annotations can demote a site annotation to personal",
+ %{conn: conn, user: user} do
+ subscribe_to_starter_plan(user)
+ site = new_site(owner: user)
+ refute Plausible.Annotations.site_annotations_available?(site)
+
+ annotation =
+ insert(:annotation,
+ site: site,
+ owner: user,
+ type: :site,
+ granularity: :date,
+ datetime: ~U[2026-06-15 00:00:00Z]
+ )
+
+ response =
+ patch(conn, "/api/#{site.domain}/annotations/#{annotation.id}", %{
+ "type" => "personal",
+ "note" => "converted after downgrade"
+ })
+ |> json_response(200)
+
+ assert response["type"] == "personal"
+ assert response["note"] == "converted after downgrade"
+
+ reloaded = Plausible.Repo.get!(Plausible.Annotations.Annotation, annotation.id)
+ assert reloaded.type == :personal
+ assert reloaded.note == "converted after downgrade"
+ end
end
end
diff --git a/test/plausible_web/live/choose_plan_test.exs b/test/plausible_web/live/choose_plan_test.exs
index 762d6fc8b460..098e2762696a 100644
--- a/test/plausible_web/live/choose_plan_test.exs
+++ b/test/plausible_web/live/choose_plan_test.exs
@@ -1163,6 +1163,7 @@ defmodule PlausibleWeb.Live.ChoosePlanTest do
assert growth_box =~ "Unlimited team members"
assert growth_box =~ "Team Management"
assert growth_box =~ "Saved Segments"
+ assert growth_box =~ "Annotations"
assert growth_box =~ "Goals and custom events"
assert growth_box =~ "Custom Properties"
assert growth_box =~ "Stats API (600 requests per hour)"
diff --git a/test/plausible_web/live/customer_support/teams_test.exs b/test/plausible_web/live/customer_support/teams_test.exs
index 196979266e51..2ffe3743f702 100644
--- a/test/plausible_web/live/customer_support/teams_test.exs
+++ b/test/plausible_web/live/customer_support/teams_test.exs
@@ -431,6 +431,7 @@ defmodule PlausibleWeb.Live.CustomerSupport.TeamsTest do
"shared_segments" => "false",
"revenue_goals" => "false",
"site_segments" => "false",
+ "site_annotations" => "false",
"shared_links" => "true",
"sites_api" => "true"
}
@@ -464,6 +465,7 @@ defmodule PlausibleWeb.Live.CustomerSupport.TeamsTest do
"shared_segments" => "false",
"revenue_goals" => "false",
"site_segments" => "false",
+ "site_annotations" => "false",
"shared_links" => "true",
"sites_api" => "true",
"sso" => "false",
@@ -658,6 +660,7 @@ defmodule PlausibleWeb.Live.CustomerSupport.TeamsTest do
"props" => "false",
"revenue_goals" => "false",
"site_segments" => "false",
+ "site_annotations" => "false",
"shared_links" => "false",
"sites_api" => "false",
"sso" => "false"
diff --git a/test/plausible_web/plugins/api/controllers/capabilities_test.exs b/test/plausible_web/plugins/api/controllers/capabilities_test.exs
index de8b5077bdd5..75faa09a5910 100644
--- a/test/plausible_web/plugins/api/controllers/capabilities_test.exs
+++ b/test/plausible_web/plugins/api/controllers/capabilities_test.exs
@@ -31,6 +31,7 @@ defmodule PlausibleWeb.Plugins.API.Controllers.CapabilitiesTest do
"StatsAPI" => false,
"SitesAPI" => false,
"SiteSegments" => false,
+ "SiteAnnotations" => false,
"SharedLinks" => false,
"SSO" => false,
"ConsolidatedView" => false
@@ -60,6 +61,7 @@ defmodule PlausibleWeb.Plugins.API.Controllers.CapabilitiesTest do
"StatsAPI" => false,
"SitesAPI" => false,
"SiteSegments" => false,
+ "SiteAnnotations" => false,
"SharedLinks" => false,
"SSO" => false,
"ConsolidatedView" => false
@@ -91,6 +93,7 @@ defmodule PlausibleWeb.Plugins.API.Controllers.CapabilitiesTest do
"StatsAPI" => true,
"SitesAPI" => false,
"SiteSegments" => true,
+ "SiteAnnotations" => true,
"SharedLinks" => true,
"SSO" => false,
"ConsolidatedView" => true
@@ -124,6 +127,7 @@ defmodule PlausibleWeb.Plugins.API.Controllers.CapabilitiesTest do
"StatsAPI" => false,
"SitesAPI" => false,
"SiteSegments" => false,
+ "SiteAnnotations" => false,
"SharedLinks" => true,
"SSO" => false,
"ConsolidatedView" => false
@@ -160,6 +164,7 @@ defmodule PlausibleWeb.Plugins.API.Controllers.CapabilitiesTest do
"StatsAPI" => true,
"SitesAPI" => true,
"SiteSegments" => false,
+ "SiteAnnotations" => false,
"SharedLinks" => false,
"SSO" => false,
"ConsolidatedView" => false