Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Page Properties

Target release

Type // to add a target release date

Epic

Type /Jira to add Jira epics and issues

Document status

Status
titleDRAFT

Document owner

@ mention owner

Designer

@ designer

Tech lead

@ lead

Technical writers

@ writers

QA

...

Page Properties

Target release

TBD

Epic

Jira Legacy
serverSystem Jira
serverId8382ec9d-abb6-3a29-8d72-95b9a5732a63
keyLINKCLOUD-630

Document status

Status
titleDRAFT

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.

Jira Legacy
serverSystem Jira
serverId8382ec9d-abb6-3a29-8d72-95b9a5732a63
keySUPPORT-181891

Jira Legacy
serverSystem Jira
serverId8382ec9d-abb6-3a29-8d72-95b9a5732a63
keySUPPORT-182594

Jira Legacy
serverSystem Jira
serverId8382ec9d-abb6-3a29-8d72-95b9a5732a63
keySUPPORT-184988

Jira Legacy
serverSystem Jira
serverId8382ec9d-abb6-3a29-8d72-95b9a5732a63
keySUPPORT-182743

Jira Legacy
serverSystem Jira
serverId8382ec9d-abb6-3a29-8d72-95b9a5732a63
keySUPPORT-182983

Jira Legacy
serverSystem Jira
serverId8382ec9d-abb6-3a29-8d72-95b9a5732a63
keySUPPORT-189821

Jira Legacy
serverSystem Jira
serverId8382ec9d-abb6-3a29-8d72-95b9a5732a63
keySUPPORT-189957

Jira Legacy
serverSystem Jira
serverId8382ec9d-abb6-3a29-8d72-95b9a5732a63
keyLINKCLOUD-627

\uD83D\uDCCA Success metrics

Goal

Metric

\uD83E\uDD14 Assumptions

\uD83C\uDF1F Milestones

Roadmap Planner
maplinks
timelinetrue
source

...

%7B%22title%22%3A%22Roadmap%20Planner%22%2C%22timeline%22%3A%7B%22startDate%22%3A%222024-

...

09-

...

19%2000%3A00%3A00%22%2C%22endDate%22%3A%222024-

...

11-

...

01%2000%3A00%3A00%22%2C%22displayOption%22%3A%22WEEK%22%7D%2C%22lanes%22%3A%5B%7B%22title%22%3A%22Gathering%20Requirements%22%2C%22color%22%3A%7B%22lane%22%3A%22%238eb021%22%2C%22bar%22%3A%22%238eb021%22%2C%22text%22%3A%22%23ffffff%22%2C%22count%22%3A1%7D%2C%22bars%22%3A%5B%7B%22title%22%3A%22Investigations%2C%20PoC%22%2C%22description%22%3A%22This%20is%20the%20second%20bar.

...

%22%2C%22startDate%22%3A%222024-

...

09-

...

21%2001%3A25%3A32%22%2C%22duration%22%3A1.5544554455445545%2C%22rowIndex%22%3A0%2C%22id%22%3A%220230fdb8-

...

1e73-

...

4ad3-

...

8fa5-

...

c5deb428654d%22%2C%22pageLink%22%3A%7B%7D%7D%5D%7D%2C%7B%22title%22%3A%22Review%22%2C%22color%22%3A%7B%22lane%22%3A%22%233b7fc4%22%2C%22bar%22%3A%22%233b7fc4%22%2C%22text%22%3A%22%23ffffff%22%2C%22count%22%3A1%7D%2C%22bars%22%3A%5B%7B%22title%22%3A%22Active%20discussions%20%26%20Review%22%2C%22description%22%3A%22This%20is%20the%20third%20bar.

...

%22%2C%22startDate%22%3A%222024-

...

09-

...

22%2010%3A41%3A35%22%2C%22duration%22%3A1%2C%22rowIndex%22%3A0%2C%22id%22%3A%22067b81f8-

...

9ba3-

...

49dd-

...

8735-

...

536238eaeadc%22%2C%22pageLink%22%3A%7B%7D%7D%5D%7D%2C%7B%22title%22%3A%22Implementation%22%2C%22color%22%3A%7B%22lane%22%3A%22%23d04437%22%2C%22bar%22%3A%22%23d04437%22%2C%22text%22%3A%22%23ffffff%22%2C%22count%22%3A1%7D%2C%22bars%22%3A%5B%7B%22rowIndex%22%3A0%2C%22startDate%22%3A%222024-

...

09-

...

28%2013%3A04%3A09%22%2C%22id%22%3A%2243c6d7e8-

...

da79-

...

4fe2-

...

ad46-

...

6550acde6d17%22%2C%22title%22%3A%22Implement%20AWS%20Lambda%22%2C%22description%22%3A%22%22%2C%22duration%22%3A3.

...

0396039603960396%2C%22pageLink%22%3A%7B%7D%7D%2C%7B%22rowIndex%22%3A1%2C%22startDate%22%3A%222024-

...

09-

...

26%2019%3A29%3A06%22%2C%22id%22%3A%22c6317d3a-

...

a7af-

...

42e9-

...

93c7-

...

1e59f1792693%22%2C%22title%22%3A%22ECS%20Service%20Implementation%22%2C%22description%22%3A%22%22%2C%22duration%22%3A3.

...

0792079207920793%2C%22pageLink%22%3A%7B%7D%7D%2C%7B%22rowIndex%22%3A2%2C%22startDate%22%3A%222024-

...

10-

...

01%2010%3A55%3A50%22%2C%22id%22%3A%2248e42bd3-

...

402e-

...

4100-

...

a31e-

...

c6d89903b08b%22%2C%22title%22%3A%22SQS%20part%2C%20event%20template%22%2C%22description%22%3A%22%22%2C%22duration%22%3A1.8514851485148516%2C%22pageLink%22%3A%7B%7D%7D%5D%7D%2C%7B%22title%22%3A%22Testing%20%26%20Release%22%2C%22color%22%3A%7B%22lane%22%3A%22%23f6c342%22%2C%22bar%22%3A%22%23f6c342%22%2C%22text%22%3A%22%23594300%22%2C%22count%22%3A1%7D%2C%22bars%22%3A%5B%7B%22rowIndex%22%3A0%2C%22startDate%22%3A%222024-

...

10-

...

13%2004%3A02%3A22%22%2C%22id%22%3A%225e0f3d7e-

...

6a9c-

...

4996-

...

9869-

...

7b1e0d6a12d1%22%2C%22title%22%3A%22Preparation%20for%20release%22%2C%22description%22%3A%22%22%2C%22duration%22%3A1%2C%22pageLink%22%3A%7B%7D%7D%5D%7D%5D%2C%22markers%22%3A%5B%7B%22title%22%3A%22Marker%201%22%2C%22markerDate%22%3A%222024-

...

09-15%2000%3A00%3A00%22%7D%5D%7D
pagelinks
titleRoadmap%20Planner
hash

...

a06279f449ef4e0a2e0319670b4d7457b34ca8ad30f6646812abf0c982c02c85

\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

Status
colourRed
titleHIGH

Jira Legacy
serverSystem Jira
serverId8382ec9d-abb6-3a29-8d72-95b9a5732a63
keyLINKCLOUD-629

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.

 

 

 

 

 

...

Status
colourRed
titleHIGH

 

 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.

Status
colourRed
titleHIGH

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:

...

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:

Status
colourPurple
titlepage_created
,
Status
colourPurple
titlepage_updated
,
Status
colourPurple
titlepage_restored
,
Status
colourPurple
titlepage_removed
,
Status
colourPurple
titlepage_moved
,
Status
colourPurple
titlepage_copied
,
Status
colourPurple
titlepage_archived
,
Status
colourPurple
titlepage_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:

Status
colourPurple
titleconnect_addon_enabled
&
Status
colourPurple
titleconnect_addon_disabled
events, we need to send them to SQS.

Event example:

Code Block
languagejson
{
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