About this archive

I'm Merill Fernando. I build tools and write about Microsoft 365 and Microsoft Entra to help admins keep up with constant change.

Why I built this

Message Center posts are useful, but they are hard to link to, search, and reference outside the Microsoft 365 admin center. I built this archive so posts can be found quickly and shared from places like Entra.News.

This site is for reference only. Message Center posts are customized by tenant, so always use your own tenant's Message Center as the source of truth.

How it works

A scheduled job reads Message Center posts from the Microsoft 365 test tenants through Microsoft Graph, merges what each tenant can see, saves each post for history, and publishes a searchable static site.

The site also imports Microsoft 365 Roadmap RSS items, generates static pages, and exposes sitemap, RSS, and AI-friendly index files for discovery.

Help improve tenant coverage

Some entries may be missing, especially posts shown only to EDU, government, or tenants with additional products and licenses. If you manage a tenant (a dev or test tenant is ideal), you can let the archive read its Message Center. It takes about five minutes and there is no password, secret, or certificate to create or share.

The access is deliberately narrow:

  • The only permission is the Microsoft Graph application permission ServiceMessage.Read.All (Read service messages). It cannot read users, groups, mail, files, sign-ins, or any other data, and it cannot change anything in your tenant.
  • The app signs in with workload identity federation: Microsoft Entra only issues a token to the scheduled GitHub Actions workflow on the main branch of merill/mc. No credential exists that could leak.
  • You can remove access at any time by deleting the enterprise application in your tenant.

Thank you, contributors

Thanks to Andrés Gorzelany (snoopcore.com), and 2 people who prefer to stay anonymous, for sharing their tenant's Message Center with the archive.

Option 1: one-click admin consent (recommended)

You need a Global Administrator or Privileged Role Administrator account, because only those roles can consent to a Microsoft Graph application permission. This works for tenants in the commercial cloud, including GCC; GCC High, DoD, and other sovereign clouds are not supported.

  1. Select Grant read-only access below and sign in with your admin account.Grant read-only access
  2. Check that the prompt names the Message Center Archive - Reader app and lists only Read service messages as the permission it requests, then select Accept. This adds a Message Center Archive - Reader enterprise application to your tenant.
  3. Microsoft returns you to this site, which shows your tenant ID. Add any optional details (tenant type, notable licenses, and whether you would like to be credited), check the email it prepares, and select Send the email or copy it and email it to me.
  4. I confirm the app can read your Message Center, add your tenant to the private list, and reply when it is live. New posts show up within a few hours of the next refresh.

Option 2: use your own app registration

Use this if your organization does not allow apps registered in other tenants. You own the app and its federated credential, and can remove either at any time. You need an Application Administrator to create the app, and a Global Administrator or Privileged Role Administrator to grant consent.

  1. In the Microsoft Entra admin center, go to Entra ID > App registrations > New registration. Enter the name Message Center Archive - Reader, choose Accounts in this organizational directory only, leave the redirect URI empty, and select Register.
  2. Open API permissions. Remove the default User.Read permission, then select Add a permission > Microsoft Graph > Application permissions, tick ServiceMessage.Read.All, and select Add permissions. Select Grant admin consent and confirm.
  3. Open Certificates & secrets > Federated credentials > Add credential and enter:
    • Federated credential scenario: GitHub Actions deploying Azure resources
    • Organization: merill
    • Repository: mc
    • Entity type: Branch, GitHub branch name: main
    • Name: mc-archive, and leave the audience as api://AzureADTokenExchange
    • Next to Subject identifier, select Edit (optional) and replace it with repo:merill@1288081/mc@761074595:ref:refs/heads/main
    The repository uses GitHub's immutable subject format, so the default repo:merill/mc subject will not match. Do not create a client secret or certificate.
  4. From the app's Overview, copy the Directory (tenant) ID and Application (client) ID into this pre-filled email and send it. I verify the connection and reply when it is live.

Your privacy

  • Your email address and tenant ID are kept in a private repository that only I can read, and are never published.
  • The public workflow receives tenant IDs from an encrypted GitHub Actions secret, masks them in its logs, and reduces sign-in errors to error codes so logs never reveal which organizations contribute.
  • The archive does not record which tenant a post came from, and you are only credited if you ask to be. Otherwise your tenant is only counted.
  • I will never ask you for a password, client secret, or certificate. If anyone does in the archive's name, it is not me.

Removing access

In the Microsoft Entra admin center, go to Entra ID > Enterprise applications, open Message Center Archive - Reader, and select Properties > Delete (for option 2, delete the app registration). Access stops as soon as the existing token expires, within an hour. Email [email protected] if you would also like your details removed from my list.

Questions first? Reach out through LinkedIn, X, or Bluesky.

Release notes

October 6, 2026

  • Fixed the instructions for contributing a tenant with your own app registration. The federated credential now uses the subject identifier GitHub actually sends for this repository, so sign-in no longer fails with AADSTS700213.
  • Contributors in the thank-you list can now share more than one link, such as a LinkedIn profile and a company site.

October 5, 2026

  • After granting consent, contributors now fill in a short optional form (tenant type, notable licenses, and whether to be credited) and see the exact email before sending or copying it.
  • The contribution form asks whether the tenant is an Entra ID workforce tenant or an Entra External ID tenant, and offers common tenant types such as EDU, GCC, Nonprofit, and Developer Program sandboxes as quick picks alongside a field for typing any other type.
  • Added a thank-you list of tenant contributors to this page. Only people who ask to be credited are named; everyone else is counted anonymously.
  • Home page filters are now bookmarkable and shareable. Service selections, source, and search text are saved in the URL and restored when you open the link.
  • New and updated posts now reach the site soon after they are fetched instead of waiting for the next scheduled site build. Each data refresh that finds new posts starts a site build right away, and refreshes also check that the live site is not serving stale data.

October 2, 2026

  • Added step-by-step instructions for contributing a tenant to the archive, either with one-click admin consent to a read-only app or with your own app registration. Both use workload identity federation, so there is no secret to share, and contributing tenants are kept private.

September 15, 2026

  • Fixed the RSS feed so it includes Message Center posts again. Roadmap posts were always ranked ahead of Message Center posts and filled every slot, so the feed now lists the latest 500 posts from both sources newest first.
  • Fixed opening posts from the archive table in Safari on Mac, iPad, and iPhone. Selecting any row opened the same unrelated post; each row now opens its own post.

August 22, 2026

  • Table columns are now sortable. Click ID, Title, or Last updated to sort, and click again to reverse it. While searching, sorting applies to every match rather than only the results already loaded.
  • Fixed the default ordering of the archive. Expired posts were listed after every active and Roadmap post instead of being merged into the date order, so the browse view now shows all posts newest first.
  • Search results now favour recent posts. Among matches of comparable relevance the newest one ranks first, which suits change alerts, while a decisively better match still wins however old it is.
  • Added an RSS link to the site header so the existing feed of the latest 500 Message Center and Roadmap posts is easier to find.
  • Replaced the ID and title filters with full-text search across every post, including the full body text of expired posts. Search runs entirely in the browser against a pre-built Pagefind index, ranks results by relevance, highlights the matched words in context, and still honours the source and service filters.
  • The archive now collects Message Center posts from more than one source tenant and merges them, so posts and details that are only visible to a tenant with different licensing are included. When the same post comes from several tenants, the most recently updated and most detailed copy is kept.
  • The site now rebuilds every four hours instead of twice a day, so new and updated posts appear here sooner after Microsoft publishes them.

August 3, 2026

  • Added automatic Discord notifications for newly discovered Microsoft Entra Message Center posts, with durable delivery tracking and links to their archived pages. Documentation and Message Center notifications now share the Entra Scout webhook identity while retaining distinct message formats. Message Center matching includes Entra product labels and title-only Entra mentions.

May 4, 2026

  • Linked Message Center IDs that appear in post summaries, in addition to the post body.
  • Added a metadata cards panel to version comparison and snapshot pages so changes to fields like tags, severity, status, and release phase are visible at a glance alongside the body diff.
  • Smooth-scroll when jumping to in-page sections like Version history, with a brief highlight pulse on arrival. Honors the operating system's reduced-motion preference.
  • Reworked the Version history card so the two most common comparisons — latest vs previous and latest vs original — are one-click primary buttons at the top, with a summary line showing how many times the post has been updated since its original publish date.

May 3, 2026

  • Added click-to-enlarge image previews on Message Center and Roadmap detail pages, with a fullscreen lightbox and keyboard support.
  • Added per-message version history with a timeline of prior versions, dedicated snapshot pages for each version, and inline visual diffs (additions in green, deletions in red) comparing any two versions of a Message Center or Roadmap post.
  • Linked plain-text references between Message Center posts inside body content, added a Related posts panel showing References and Referenced by, and exposed those edges in messages-index.json for AI and search consumers.

May 2, 2026

  • Added Microsoft 365 Roadmap posts alongside Message Center posts, with source labels, icons, filtering, and detail pages.
  • Added archived Message Center support, including archive-only detail pages, expired badges, and expired announcement banners.
  • Improved home page performance with precomputed service filters and natural incremental row loading.
  • Added searchable multi-select service filtering, wider fixed-width dropdown behavior, and source filters for Message Center and Roadmap.
  • Added SEO and sharing support with canonical metadata, Open Graph and Twitter cards, sitemap, robots file, and a branded social image.
  • Added AI-friendly discovery through llms.txt and a compact messages-index.json for agents and search tools.
  • Added a skills.sh-compatible agent skill and Skill page for AI-assisted archive search and canonical citation.
  • Added a static RSS feed with the latest 500 active Message Center and Roadmap items.
  • Added this About page, updated homepage guidance about tenant-specific Message Center posts, and added top navigation links.
  • Updated dependencies to clear Dependabot vulnerabilities and moved the site to Next.js 15.
  • Improved the data refresh script, including more reliable Roadmap fetching on GitHub Actions.