OfficeDev / office-js

A repo and NPM package for Office.js, corresponding to a copy of what gets published to the official "evergreen" Office.js CDN, at https://appsforoffice.microsoft.com/lib/1/hosted/office.js.
https://learn.microsoft.com/javascript/api/overview
Other
670 stars 96 forks source link

add-in Manifest.xml fails to validate on Microsoft 365 admin center #3210

Closed tallain-rivaengine closed 1 year ago

tallain-rivaengine commented 1 year ago

Provide required information needed to triage your issue

When following documentation regarding adding the MobileLogEventAppointmentAttendee extension point (taskpane) to the manifest (https://learn.microsoft.com/en-us/office/dev/add-ins/outlook/mobile-log-appointments?view=outlook-js-preview&tabs=taskpane), I am unable to upload the manifest.xml file to the admin center as it fails to validate.

I have tested with a clean manifest.xml template and can confirm that it will validate when the additional tags added in the documentation are omitted. I have included the test file content at the end of this ticket.

Your Environment

Expected behavior

I should be able to upload an Outlook Web Add-in manifest that includes the MobileLogEventAppointmentAttendee extension point (taskpane) through the Microsoft 365 admin center

Current behavior

The Outlook Web Add-in manifest that includes the MobileLogEventAppointmentAttendee extension point fails to validate on the Microsoft 365 admin center. The manifest properly validates and loads when sideloaded.

Steps to reproduce

  1. Upload a manifest that contains the MobileLogEventAppointmentAttendee extension point (sample attached) to the Microsoft 365 admin center (admin.microsoft.com)
  2. File will fail to validate with the message "Invalid manifest file"

Link to live example(s)

N/A

Provide additional details

  1. Interestingly, the tag that is required <ExtensionPoint xsi:type="MobileLogEventAppointmentAttendee"> seems to be the issue
  2. Changing the tag to something else, like <ExtensionPoint xsi:type="MobileOnlineMeetingCommandSurface"> or removing it allows for validation
  3. The manifest will validate fine when sideloading it in Outlook desktop application, but not the Admin Center

Context

Our customers want to be able to log their Appointments to their CRM on mobile, however they are unable to deploy the add-in to their using through the Office Admin Center. Sideloading is not an option as they need SSO for the use of Graph (and they need to deploy to hundreds of users).

Useful logs

contoso.manifest.xml

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<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" xmlns:mailappor="http://schemas.microsoft.com/office/mailappversionoverrides/1.0" xsi:type="MailApp">
  <Id>472a40e5-5101-426e-9ac8-732efba046f2</Id>
  <Version>1.0.0.0</Version>
  <ProviderName>Contoso</ProviderName>
  <DefaultLocale>en-US</DefaultLocale>
  <DisplayName DefaultValue="LogEvent"/>
  <Description DefaultValue="A template to get started."/>
  <IconUrl DefaultValue="https://contoso.com/assets/icon-64.png"/>
  <HighResolutionIconUrl DefaultValue="https://contoso.com/assets/icon-128.png"/>
  <SupportUrl DefaultValue="https://www.contoso.com/help"/>
  <AppDomains>
    <AppDomain>https://www.contoso.com</AppDomain>
  </AppDomains>
  <Hosts>
    <Host Name="Mailbox"/>
  </Hosts>
  <Requirements>
    <Sets>
      <Set Name="Mailbox" MinVersion="1.1"/>
    </Sets>
  </Requirements>
  <FormSettings>
    <Form xsi:type="ItemRead">
      <DesktopSettings>
        <SourceLocation DefaultValue="https://contoso.com/taskpane.html"/>
        <RequestedHeight>250</RequestedHeight>
      </DesktopSettings>
    </Form>
  </FormSettings>
  <Permissions>ReadWriteItem</Permissions>
  <Rule xsi:type="RuleCollection" Mode="Or">
    <Rule xsi:type="ItemIs" ItemType="Message" FormType="Read"/>
  </Rule>
  <DisableEntityHighlighting>false</DisableEntityHighlighting>
  <VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides" xsi:type="VersionOverridesV1_0">
    <VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides/1.1" xsi:type="VersionOverridesV1_1">
    <Requirements>
      <bt:Sets DefaultMinVersion="1.3">
        <bt:Set Name="Mailbox"/>
      </bt:Sets>
    </Requirements>
    <Hosts>
      <Host xsi:type="MailHost">
        <DesktopFormFactor>
          <FunctionFile resid="Commands.Url"/>
          <ExtensionPoint xsi:type="MessageReadCommandSurface">
            <OfficeTab id="TabDefault">
              <Group id="msgReadGroup">
                <Label resid="GroupLabel"/>
                <Control xsi:type="Button" id="msgReadOpenPaneButton">
                  <Label resid="TaskpaneButton.Label"/>
                  <Supertip>
                    <Title resid="TaskpaneButton.Label"/>
                    <Description resid="TaskpaneButton.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>
                <Control xsi:type="Button" id="ActionButton">
                  <Label resid="ActionButton.Label"/>
                  <Supertip>
                    <Title resid="ActionButton.Label"/>
                    <Description resid="ActionButton.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="ExecuteFunction">
                    <FunctionName>action</FunctionName>
                  </Action>
                </Control>
              </Group>
            </OfficeTab>
          </ExtensionPoint>
        </DesktopFormFactor>
        <MobileFormFactor>
          <ExtensionPoint xsi:type="MobileLogEventAppointmentAttendee">
            <Control xsi:type="MobileButton" id="appointmentReadFunctionButton">
              <Label resid="residLabel"/>
              <Icon>
                <bt:Image size="25" scale="1" resid="icon-16"/>
                <bt:Image size="25" scale="2" resid="icon-16"/>
                <bt:Image size="25" scale="3" resid="icon-16"/>

                <bt:Image size="32" scale="1" resid="icon-32"/>
                <bt:Image size="32" scale="2" resid="icon-32"/>
                <bt:Image size="32" scale="3" resid="icon-32"/>

                <bt:Image size="48" scale="1" resid="icon-48"/>
                <bt:Image size="48" scale="2" resid="icon-48"/>
                <bt:Image size="48" scale="3" resid="icon-48"/>
              </Icon>
              <Action xsi:type="ShowTaskpane">
                <SourceLocation resid="Taskpane.Url"/>
              </Action> 
            </Control>
          </ExtensionPoint>
        </MobileFormFactor>
      </Host>
    </Hosts>
    <Resources>
      <bt:Images>
        <bt:Image id="icon-16" DefaultValue="https://contoso.com/assets/icon-16.png"/>
        <bt:Image id="icon-32" DefaultValue="https://contoso.com/assets/icon-32.png"/>
        <bt:Image id="icon-48" DefaultValue="https://contoso.com/assets/icon-48.png"/>
        <bt:Image id="icon-80" DefaultValue="https://contoso.com/assets/icon-80.png"/>
      </bt:Images>
      <bt:Urls>
        <bt:Url id="Commands.Url" DefaultValue="https://contoso.com/commands.html"/>
        <bt:Url id="Taskpane.Url" DefaultValue="https://contoso.com/taskpane.html"/>
      </bt:Urls>
      <bt:ShortStrings>
        <bt:String id="GroupLabel" DefaultValue="Contoso Add-in"/>
        <bt:String id="TaskpaneButton.Label" DefaultValue="Show Taskpane"/>
        <bt:String id="ActionButton.Label" DefaultValue="Perform an action"/>
        <bt:String id="residDescription" DefaultValue="Log appointment notes and other details to Contoso CRM."/>
        <bt:String id="residLabel" DefaultValue="Log to Contoso CRM"/>
      </bt:ShortStrings>
      <bt:LongStrings>
        <bt:String id="TaskpaneButton.Tooltip" DefaultValue="Opens a pane displaying all available properties."/>
        <bt:String id="ActionButton.Tooltip" DefaultValue="Perform an action when clicked."/>
        <bt:String id="residTooltip" DefaultValue="Log notes to Contoso CRM for this appointment."/>
      </bt:LongStrings>
    </Resources>
    </VersionOverrides>
  </VersionOverrides>
</OfficeApp>

Screenshot of error on Microsoft 365 admin center image

Thank you for taking the time to report an issue. Our triage team will respond to you in less than 72 hours. Normally, response time is <10 hours Monday through Friday. We do not triage on weekends.

alison-mk commented 1 year ago

Hi @tallain-rivaengine, thank you for submitting this issue! I've assigned it to the engineering team who will be able to provide you with more information or help resolve the issue.

Cheers, Alison

exextoc commented 1 year ago

Thanks for reporting this issue regarding Add-in manifest validation failure on Microsoft 365 admin center with Extension point MobileLogEventAppointmentAttendee. It has been put on our backlog. We unfortunately have no timelines to share at this point. We will update this thread once the fix is available.

Internal tracking id: Office: 3457783

CurtisRiva commented 1 year ago

@exextoc, just following up on this. We have features built on MobileLogEventAppointmentAttendee that we have customers waiting on being able to use.

exextoc commented 1 year ago

This issue has been fixed in M365 Admin Center and MobileLogEventAppointmentAttendee for Outlook for iOS is available on the latest version of our app. Are you unable to install the App through Microsoft Admin Center (as is the issue on this thread), or are you not seeing the installed app on Outlook for iOS? "

CurtisRiva commented 1 year ago

@exextoc , I had not tested the M365 Admin Center, as the last comment indicated "We will update this thread once the fix is available.". I have tested and confirm that I can now install the manifest through the M365 Admin Center.

I will find someone with an iPhone to verify if it is showing on Outlook for iOS.

ghost commented 1 year ago

This issue has been automatically marked as stale because it is marked as needing author feedback but has not had any activity for 4 days. It will be closed if no further activity occurs within 3 days of this comment. Thank you for your interest in Office Add-ins!

tallain-rivaengine commented 1 year ago

I can confirm that this issue has been tested on our end and it has been resolved. Thank you.

exextoc commented 1 year ago

This issue has been fixed as confirmed in the comment. Closing this.