Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bluesky Control Panel (Independent Publisher) #3711

Open
wants to merge 13 commits into
base: dev
Choose a base branch
from

Conversation

krautrocker
Copy link

@krautrocker krautrocker commented Nov 13, 2024


When submitting a connector, please make sure that you follow the requirements below, otherwise your PR might be rejected. We want to make you have a well-built connector, a smooth certification experience, and your users are happy :)

If this is your first time submitting to GitHub and you need some help, please sign up for this session.

  • I attest that the connector doesn't exist on the Power Platform today. I've verified by checking the pull requests in GitHub and by searching for the connector on the platform or in the documentation.
  • I attest that the connector works and I verified by deploying and testing all the operations.
  • I attest that I have added detailed descriptions for all operations and parameters in the swagger file.
  • I attest that I have added response schemas to my actions, unless the response schema is dynamic.
  • I validated the swagger file, apiDefinition.swagger.json, by running paconn validate command.
  • If this is a certified connector, I confirm that apiProperties.json has a valid brand color and doesn't use an invalid brand color, #007ee5 or #ffffff. If this is an independent publisher connector, I confirm that I am not submitting a connector icon.

If you are an Independent Publisher, you must also attest to the following to ensure a smooth publishing process:

  • I have named this PR after the pattern of "Connector Name (Independent Publisher)" ex: HubSpot Marketing (Independent Publisher)
  • Within this PR markdown file, I have pasted screenshots that show: 3 unique operations (actions/triggers) working within a Flow. This can be in one flow or part of multiple flows. For each one of those flows, I have pasted in screenshots of the Flow succeeding.
  • Within this PR markdown file, I have pasted in a screenshot from the Test operations section within the Custom Connector UI.
  • If the connector uses OAuth, I have provided detailed steps on how to create an app in the readme.md.

@krautrocker krautrocker requested a review from a team as a code owner November 13, 2024 03:26
@krautrocker krautrocker changed the title Bluesky control panel Proposal - Bluesky Control Panel (Independent Publisher) Nov 13, 2024
@krautrocker
Copy link
Author

krautrocker commented Nov 13, 2024

1.) Validation via paconn happens tomorrow. There's a few errors around schema and missing elements but nothing fatal. Clean-up.

2.) With the help of @troystaylor, we can confirm that two connectors are necessary - one for app.bsky endpoints and this connector for all other endpoints (ATProto, admin, chat, tools, if memory serves).

3.) For reference: https://github.com/bluesky-social/bsky-docs/blob/main/atproto-openapi-types/spec/api.json

Though this did require some reworking, such as removing "const" from all (70+) connectors, which brings the total up to over 100 when counting the app.bsky endpoints.

Feel free to contact me around contributing and maintaining. Lots going on here! =)

@krautrocker
Copy link
Author

@microsoft-github-policy-service agree company="Dan Romano aka IDR, Inc. dba SWOLCAT"

@vmanoharas
Copy link
Contributor

vmanoharas commented Nov 15, 2024

Hello @krautrocker,

Is this PR ready for review? if yes, kindly remove gitingore and checkin to the root folder. Also remove the Proposal word from the PR title.

image

@krautrocker krautrocker changed the title Proposal - Bluesky Control Panel (Independent Publisher) Bluesky Control Panel (Independent Publisher) Nov 15, 2024
Delete .gitignore
- Validated with paconn, no errors
- Updated readme

- Validated with paconn, no errors

- Moved global definitions position

Ready to test with a client and secret.
Copy link
Author

@krautrocker krautrocker left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ready to test, but a few housekeeping items do remain. This PR is indeed different from this other PR #3711 but may merge the branches.

- Added connection parameters to apiProperties

- Added policy templates to apiProperties

- Validated with paconn, no errors
@krautrocker
Copy link
Author

krautrocker commented Nov 19, 2024

Three successful tests:

1.) Create Session

Screenshot 2024-11-18 211932

2.) Describe Server

Screenshot 2024-11-18 213449

3.) Check Account Status

Screenshot 2024-11-18 212142

@krautrocker
Copy link
Author

Three actions working in a flow:

Screenshot 2024-11-18 214405

@krautrocker
Copy link
Author

krautrocker commented Nov 19, 2024

Reflecting on the past week of work. A heckuva lot has been done and I'm working to make connector definitions line up to the API definitions.

1.) Endpoints require QA.

I burned through these to get us on the beach. Now, I need to go through the catalogue and conduct a good QA. This will involve the Bluesky OpenAPI definition file, though the definition will need to be modified to work in the connector (components vs security definitions, for example).

Responses are present for success and failures. Defaults may need to be added to some endpoints.

2.) apiProperties feature connection parameters and policy templates.

Params and templates help us authenticate and operate consistently across the many endpoints. No repeats or manual intervention necessary by using these.

3.) Two connectors...or all-in-one?

The OpenAPI definition from Bluesky is quite large, but both the Bluesky Social and Control Panel connectors have global definitions (security, error responses, etc.), which reduces the size of the connector. Still, I'm not sure if all the endpoints can fit into one while not exceeding the size limit. If they don't breach the limit, then we have an opportunity for a single connector.

4.) Authentication

Some back and forth here on what works and what doesn't. OAuth abandoned for now and tokens have taken the lead. Query string is also a possibility, and though it may theoretically work, this doesn't seem ideal.

/**/

More tomorrow. Stay tuned.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants