at_onboarding_cli 1.1.0 at_onboarding_cli: ^1.1.0 copied to clipboard
Dart tool to authenticate, onboard and perform complex operations on @sign from command-line-interface.
at_onboarding_cli #
Introduction #
at_onboarding_cli is a library to authenticate and onboard atSigns.
Get Started #
To add this package as the dependency in your pubspec.yaml
dependencies:
at_onboarding_cli: ^1.0.0
Getting Dependencies
dart pub get
To import the library in your application code
import 'package:at_onboarding_cli/at_onboarding_cli.dart';
Usage #
Use cases for at_onboarding_cli:
1) Authentication
2) Onboarding
Setting valid preferences: #
- isLocalStorageRequired needs to be set to true as AtClient now needs a local secondary in order to work.
- As a result of Step 1, one also needs to provide commitLogPath and hiveStoragePath.
- One must set the namespace variable to match the name of their app.
- atKeysFile path should contain the file name.
- downloadPath should only contain name of the directory where the .atKeysFile is expected to be generated.
- Set
AtOnboardingPreference
to your preferred settings. These preferences will be used to configure theAtOnboardingService
.
AtOnboardingPreference atOnboardingPreference = AtOnboardingPreference()
..rootDomain = 'root.atsign.org
..qrCodePath = 'storage/qr_code.png'
..hiveStoragePath = 'storage/hive'
..namespace = 'example'
..downloadPath = 'storage/files'
..isLocalStoreRequired = true
..commitLogPath = 'storage/commitLog'
..cramSecret = '<your cram secret>'
..privateKey = '<your private key here>'
..atKeysFilePath = 'storage/alice_key.atKeys';
Authentication: #
Proving that one actually owns the atSign. User needs to authenticate before performing operations on that atSign. Operations include reading, writing, deleting or updating data in the atsign's keystore and sending notifications from that atSign.
Steps to Authenticate
- Import at_onboarding_cli.
- Set preferences using AtOnboardingPreference. Either of secret key or path to .atKeysFile need to be provided to authenticate.
- Instantiate AtOnboardingServiceImpl using the required atSign and a valid instance of AtOnboardingPreference.
- Call the authenticate method on AtOnboardingService.
- Use getAtLookup/getAtClient to get authenticated instances of AtLookup and AtClient respectively which can be used to perform more complex operations on the atSign.
AtOnboardingService atOnboardingService = AtOnboardingServiceImpl('@alice', atOnboardingPreference);
atOnboardingService.authenticate();
AtClient? atClient = await atOnboardingService.getAtClient();
AtLookup? atLookup = atOnboardingService.getAtLookup();
Onboarding: #
Performing initial one-time authentication using cram secret encoded in the qr_code. This process activates the atSign making it ready to use.
Steps to onboard:
- Import at_cli_onboarding.
- Set preferences using AtOnboardingPreference. Either of cram_secret or path to qr_code containing cram_secret need to be provided in order to activate the atSign.
- Setting the download path is mandatory in AtOnboardingPreference in order to save the .atKeysFile which contains necessary keys to authenticate.
- Instantiate AtOnboardingServiceImpl using the required atSign and a valid instance of AtOnboardingPreference.
- Call the onboard on AtOnboardingServiceImpl.
- Use getAtLookup/getAtClient to get authenticated instances of AtLookup and AtClient respectively which can be used to perform more complex operations on the atSign.
AtOnboardingService atOnboardingService = AtOnboardingServiceImpl('@alice', atOnboardingPreference);
atOnboardingService.onboard();
AtClient? atClient = await atOnboardingService.getAtClient();
AtLookup? atLookup = atOnboardingService.getAtLookup();
Please refer to example for more details.
Open source usage and contributions #
This is freely licensed open source code, so feel free to use it as is, suggest changes or enhancements or create your own version. See CONTRIBUTING.md for detailed guidance on how to setup tools, tests and make a pull request.