Skip to end of banner
Go to start of banner

Incoming Links macro - Linking app rearchitecture

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Next »

Target release

TBD

Epic

LINKCLOUD-630 - Getting issue details... STATUS

Document status

DRAFT

Document owner

Lava Kumar Dukanam

Engineering Manager

Lava Kumar Dukanam

Architect

Volodymyr Pryimak

Engineering Team

Volodymyr Pryimak Mohit Varma Durgaprasad Jamanjyothi

Technical writers

Karina Zoin

QA

🎯 Objective

There are plenty of bugs from customers that existing logic is not working well.

SUPPORT-181891 - Getting issue details... STATUS

SUPPORT-182594 - Getting issue details... STATUS

SUPPORT-184988 - Getting issue details... STATUS

SUPPORT-182743 - Getting issue details... STATUS

SUPPORT-182983 - Getting issue details... STATUS

SUPPORT-189821 - Getting issue details... STATUS

SUPPORT-189957 - Getting issue details... STATUS

LINKCLOUD-627 - Getting issue details... STATUS

\uD83D\uDCCA Success metrics

Goal

Metric

\uD83E\uDD14 Assumptions

\uD83C\uDF1F Milestones

16-Sep202423-Sep30-Sep07-Oct14-Oct
Gathering Requirements
Review
Implementation
Testing & Release

Investigations, PoC

Active discussions & Review

Implement AWS Lambda

ECS Service Implementation

SQS part, event template

Preparation for release

\uD83D\uDDD2 Requirements

Requirement

User Story

Importance

Jira Issue

Notes

We would like to use FUSE for SQS registration.

Need to implement a new feature on the FUSE side for supporting SQS registration without EventBridge

HIGH

LINKCLOUD-629 - Getting issue details... STATUS

As a temporal workaround we can create it manually.

 Implement Lambda webhooks handler.

 Most of the events will be handled using lambdas but some of them(app installed & uninstalled) should be redirected to the SQS.

 HIGH

 

 Update page relations based on the following events(confluence webhooks) on the backend side:

  • page_created

  • page_updated

  • page_restored

  • page_removed

  • page_moved

  • page_copied

  • page_archived

  • page_unarchived

Implement ECS service.

Need to scan all Confluence pages and update link references.

HIGH

Background job must scan all confluence pages since the last re-index date if exists and update page relations.

\uD83C\uDFA8 New design high level architecture:

Untitled Diagram2.drawio.png

Lambda webhooks handler

This is an entry point for the whole scheme and there two key ideas.

[1] When we receive page content related updates

Page content related webhooks that we plan to support: PAGE_CREATED , PAGE_UPDATED, PAGE_RESTORED, PAGE_REMOVED, PAGE_MOVED, PAGE_COPIED, PAGE_ARCHIVED, PAGE_UNARCHIVED
we need to check a content of a page and identify external links and if there any we need to update storage through a REST API.

[2] Long running events

When we receive: CONNECT_ADDON_ENABLED & CONNECT_ADDON_DISABLED events, we need to send them to SQS.

Event example:

{
key: 'net.customware.confluence.plugin.linking',
clientKey: 'f...8',
publicKey: 'MIIBI...AB',
serverVersion: '6452',
pluginsVersion: '1000.0.0.df206a1a35d4',
baseUrl: 'https://appfire-supercat.atlassian.net/wiki',
productType: 'confluence',
description: 'Atlassian Confluence at https://appfire-supercat.atlassian.net/wiki',
eventType: 'enabled',
displayUrl: 'https://appfire-supercat.atlassian.net/wiki'
}

ECS service

The idea is to perform whole Confluence content reindex for our API & data access. We need it in order to make page links accessible through a REST API.
SO, when users add page link macro our app can easily gather all needed links for a specific page.

(question) Open Questions

Question

Answer

Date Answered

Do we need to keep links for archived pages?

[most likely no, but…]

(warning) Out of Scope

  • No labels