service-porta-assist-dist/PortaAssist-Outlook.xml
patrick.motsch da591c690f Publish the Outlook manifest Exchange can install.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-27 02:15:24 +02:00

321 lines
14 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!--
Outlook-only manifest. A TaskPaneApp cannot load in Outlook: Mailbox needs
xsi:type="MailApp", FormSettings and a MailHost. Word/Excel/PowerPoint stay
in PortaAssist-Mac.xml.
Distribution is the mailbox, not the Mac wef folder:
Outlook → Add-ins → My add-ins → Add from URL, or M365 admin Integrated apps.
URL after the Nyla deploy: https://porta.poweron.swiss/assist-pane/PortaAssist-Outlook.xml
<Version> is the Office manifest version (four-part, >= 1.0), not the product
line in the Dist README.
Permission is ReadWriteItem (the open item). Mailbox-wide work is Microsoft
Graph with its own user consent, not this install permission.
-->
<OfficeApp
xmlns="http://schemas.microsoft.com/office/appforoffice/1.1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:bt="http://schemas.microsoft.com/office/officeappbasictypes/1.0"
xsi:type="MailApp">
<Id>983b02cf-8a43-4eda-9426-f52c3d44f131</Id>
<Version>1.0.3.0</Version>
<ProviderName>PowerOn AG</ProviderName>
<DefaultLocale>de-CH</DefaultLocale>
<DisplayName DefaultValue="PORTA Assist" />
<Description DefaultValue="PORTA Assist next to the open mail or appointment." />
<IconUrl DefaultValue="https://porta.poweron.swiss/assist-pane/assets/icon32.png" />
<HighResolutionIconUrl DefaultValue="https://porta.poweron.swiss/assist-pane/assets/icon64.png" />
<SupportUrl DefaultValue="https://porta.poweron.swiss" />
<AppDomains>
<AppDomain>https://porta.poweron.swiss</AppDomain>
<AppDomain>https://porta-int.poweron.swiss</AppDomain>
<AppDomain>https://api.poweron.swiss</AppDomain>
<AppDomain>https://api-int.poweron.swiss</AppDomain>
</AppDomains>
<Hosts>
<Host Name="Mailbox" />
</Hosts>
<Requirements>
<Sets DefaultMinVersion="1.1">
<Set Name="Mailbox" MinVersion="1.8" />
<Set Name="DialogApi" MinVersion="1.1" />
</Sets>
</Requirements>
<FormSettings>
<Form xsi:type="ItemRead">
<DesktopSettings>
<SourceLocation DefaultValue="https://porta.poweron.swiss/assist-pane/taskpane.html" />
</DesktopSettings>
</Form>
<Form xsi:type="ItemEdit">
<DesktopSettings>
<SourceLocation DefaultValue="https://porta.poweron.swiss/assist-pane/taskpane.html" />
</DesktopSettings>
</Form>
</FormSettings>
<Permissions>ReadWriteItem</Permissions>
<Rule xsi:type="RuleCollection" Mode="Or">
<Rule xsi:type="ItemIs" ItemType="Message" FormType="Read" />
<Rule xsi:type="ItemIs" ItemType="Message" FormType="Edit" />
<Rule xsi:type="ItemIs" ItemType="Appointment" FormType="Read" />
<Rule xsi:type="ItemIs" ItemType="Appointment" FormType="Edit" />
</Rule>
<DisableEntityHighlighting>true</DisableEntityHighlighting>
<VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides" xsi:type="VersionOverridesV1_0">
<Requirements>
<bt:Sets DefaultMinVersion="1.8">
<bt:Set Name="Mailbox" MinVersion="1.8" />
</bt:Sets>
</Requirements>
<Hosts>
<Host xsi:type="MailHost">
<DesktopFormFactor>
<FunctionFile resid="Commands.Url" />
<ExtensionPoint xsi:type="MessageReadCommandSurface">
<OfficeTab id="TabDefault">
<Group id="paReadGroup">
<Label resid="Group.Label" />
<Control xsi:type="Button" id="paReadOpen">
<Label resid="Button.Label" />
<Supertip>
<Title resid="Button.Label" />
<Description resid="Button.Tooltip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="Icon.16" />
<bt:Image size="32" resid="Icon.32" />
<bt:Image size="80" resid="Icon.80" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="Taskpane.Url" />
</Action>
</Control>
</Group>
</OfficeTab>
</ExtensionPoint>
<ExtensionPoint xsi:type="MessageComposeCommandSurface">
<OfficeTab id="TabDefault">
<Group id="paComposeGroup">
<Label resid="Group.Label" />
<Control xsi:type="Button" id="paComposeOpen">
<Label resid="Button.Label" />
<Supertip>
<Title resid="Button.Label" />
<Description resid="Button.Tooltip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="Icon.16" />
<bt:Image size="32" resid="Icon.32" />
<bt:Image size="80" resid="Icon.80" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="Taskpane.Url" />
</Action>
</Control>
</Group>
</OfficeTab>
</ExtensionPoint>
<ExtensionPoint xsi:type="AppointmentOrganizerCommandSurface">
<OfficeTab id="TabDefault">
<Group id="paOrganizerGroup">
<Label resid="Group.Label" />
<Control xsi:type="Button" id="paOrganizerOpen">
<Label resid="Button.Label" />
<Supertip>
<Title resid="Button.Label" />
<Description resid="Button.Tooltip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="Icon.16" />
<bt:Image size="32" resid="Icon.32" />
<bt:Image size="80" resid="Icon.80" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="Taskpane.Url" />
</Action>
</Control>
</Group>
</OfficeTab>
</ExtensionPoint>
<ExtensionPoint xsi:type="AppointmentAttendeeCommandSurface">
<OfficeTab id="TabDefault">
<Group id="paAttendeeGroup">
<Label resid="Group.Label" />
<Control xsi:type="Button" id="paAttendeeOpen">
<Label resid="Button.Label" />
<Supertip>
<Title resid="Button.Label" />
<Description resid="Button.Tooltip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="Icon.16" />
<bt:Image size="32" resid="Icon.32" />
<bt:Image size="80" resid="Icon.80" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="Taskpane.Url" />
</Action>
</Control>
</Group>
</OfficeTab>
</ExtensionPoint>
</DesktopFormFactor>
</Host>
</Hosts>
<Resources>
<bt:Images>
<bt:Image id="Icon.16" DefaultValue="https://porta.poweron.swiss/assist-pane/assets/icon16.png" />
<bt:Image id="Icon.32" DefaultValue="https://porta.poweron.swiss/assist-pane/assets/icon32.png" />
<bt:Image id="Icon.80" DefaultValue="https://porta.poweron.swiss/assist-pane/assets/icon80.png" />
</bt:Images>
<bt:Urls>
<bt:Url id="Commands.Url" DefaultValue="https://porta.poweron.swiss/assist-pane/commands.html" />
<bt:Url id="Taskpane.Url" DefaultValue="https://porta.poweron.swiss/assist-pane/taskpane.html" />
</bt:Urls>
<bt:ShortStrings>
<bt:String id="Group.Label" DefaultValue="PORTA" />
<bt:String id="Button.Label" DefaultValue="Assist" />
</bt:ShortStrings>
<bt:LongStrings>
<bt:String id="Button.Tooltip" DefaultValue="Open PORTA Assist next to this item." />
</bt:LongStrings>
</Resources>
<VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides/1.1" xsi:type="VersionOverridesV1_1">
<Requirements>
<bt:Sets DefaultMinVersion="1.8">
<bt:Set Name="Mailbox" MinVersion="1.8" />
</bt:Sets>
</Requirements>
<Hosts>
<Host xsi:type="MailHost">
<DesktopFormFactor>
<FunctionFile resid="Commands.Url" />
<ExtensionPoint xsi:type="MessageReadCommandSurface">
<OfficeTab id="TabDefault">
<Group id="paReadGroup">
<Label resid="Group.Label" />
<Control xsi:type="Button" id="paReadOpen">
<Label resid="Button.Label" />
<Supertip>
<Title resid="Button.Label" />
<Description resid="Button.Tooltip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="Icon.16" />
<bt:Image size="32" resid="Icon.32" />
<bt:Image size="80" resid="Icon.80" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="Taskpane.Url" />
<SupportsPinning>true</SupportsPinning>
</Action>
</Control>
</Group>
</OfficeTab>
</ExtensionPoint>
<ExtensionPoint xsi:type="MessageComposeCommandSurface">
<OfficeTab id="TabDefault">
<Group id="paComposeGroup">
<Label resid="Group.Label" />
<Control xsi:type="Button" id="paComposeOpen">
<Label resid="Button.Label" />
<Supertip>
<Title resid="Button.Label" />
<Description resid="Button.Tooltip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="Icon.16" />
<bt:Image size="32" resid="Icon.32" />
<bt:Image size="80" resid="Icon.80" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="Taskpane.Url" />
<SupportsPinning>true</SupportsPinning>
</Action>
</Control>
</Group>
</OfficeTab>
</ExtensionPoint>
<ExtensionPoint xsi:type="AppointmentOrganizerCommandSurface">
<OfficeTab id="TabDefault">
<Group id="paOrganizerGroup">
<Label resid="Group.Label" />
<Control xsi:type="Button" id="paOrganizerOpen">
<Label resid="Button.Label" />
<Supertip>
<Title resid="Button.Label" />
<Description resid="Button.Tooltip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="Icon.16" />
<bt:Image size="32" resid="Icon.32" />
<bt:Image size="80" resid="Icon.80" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="Taskpane.Url" />
<SupportsPinning>true</SupportsPinning>
</Action>
</Control>
</Group>
</OfficeTab>
</ExtensionPoint>
<ExtensionPoint xsi:type="AppointmentAttendeeCommandSurface">
<OfficeTab id="TabDefault">
<Group id="paAttendeeGroup">
<Label resid="Group.Label" />
<Control xsi:type="Button" id="paAttendeeOpen">
<Label resid="Button.Label" />
<Supertip>
<Title resid="Button.Label" />
<Description resid="Button.Tooltip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="Icon.16" />
<bt:Image size="32" resid="Icon.32" />
<bt:Image size="80" resid="Icon.80" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="Taskpane.Url" />
<SupportsPinning>true</SupportsPinning>
</Action>
</Control>
</Group>
</OfficeTab>
</ExtensionPoint>
</DesktopFormFactor>
</Host>
</Hosts>
<Resources>
<bt:Images>
<bt:Image id="Icon.16" DefaultValue="https://porta.poweron.swiss/assist-pane/assets/icon16.png" />
<bt:Image id="Icon.32" DefaultValue="https://porta.poweron.swiss/assist-pane/assets/icon32.png" />
<bt:Image id="Icon.80" DefaultValue="https://porta.poweron.swiss/assist-pane/assets/icon80.png" />
</bt:Images>
<bt:Urls>
<bt:Url id="Commands.Url" DefaultValue="https://porta.poweron.swiss/assist-pane/commands.html" />
<bt:Url id="Taskpane.Url" DefaultValue="https://porta.poweron.swiss/assist-pane/taskpane.html" />
</bt:Urls>
<bt:ShortStrings>
<bt:String id="Group.Label" DefaultValue="PORTA" />
<bt:String id="Button.Label" DefaultValue="Assist" />
</bt:ShortStrings>
<bt:LongStrings>
<bt:String id="Button.Tooltip" DefaultValue="Open PORTA Assist next to this item." />
</bt:LongStrings>
</Resources>
<WebApplicationInfo>
<Id>d0aa9f54-98c8-46dd-9363-c3cfd206ba79</Id>
<Resource>api://porta.poweron.swiss/d0aa9f54-98c8-46dd-9363-c3cfd206ba79</Resource>
<Scopes>
<Scope>openid</Scope>
<Scope>profile</Scope>
<Scope>offline_access</Scope>
<Scope>User.Read</Scope>
<Scope>access_as_user</Scope>
</Scopes>
</WebApplicationInfo>
</VersionOverrides>
</VersionOverrides>
</OfficeApp>