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

feat: apkam-aware activate_cli #576

Merged
merged 24 commits into from
May 15, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
8633f39
chore: AtOnboardingPreference: remove unnecessary overrides of AtCie…
gkc Mar 6, 2024
8c32f11
feat: new apkam-aware activate / onboarding CLI: interim commit
gkc Mar 19, 2024
26c3bbb
Merge remote-tracking branch 'origin/trunk' into gkc/apkam-aware-cli
gkc Mar 19, 2024
c58804d
Merge remote-tracking branch 'origin/trunk' into gkc/apkam-aware-cli
gkc Apr 22, 2024
9d9be70
feat: add Duration? retryInterval param to AtOnboardingService.enroll…
gkc Apr 22, 2024
895d1c2
feat: new apkam-aware cli for onboarding / enrollment / enrollment ma…
gkc Apr 22, 2024
6998e6a
fix: Fixed async-await bug in at_onboarding_service_impl. Added more …
gkc Apr 25, 2024
624ae47
feat: new at_activate cli working fully; needs a couple of changes to…
gkc Apr 25, 2024
8608953
use new enroll:fetch:$id to fetch a specific enrollment
gkc Apr 27, 2024
b67ec15
Merge remote-tracking branch 'origin/trunk' into gkc/apkam-aware-cli
gkc Apr 28, 2024
66193d3
Merge remote-tracking branch 'origin/trunk' into gkc/apkam-aware-cli
gkc May 1, 2024
459bce5
docs: update CHANGELOG
gkc May 1, 2024
3419b72
Merge remote-tracking branch 'origin/trunk' into gkc/apkam-aware-cli
gkc May 6, 2024
a0349bc
feat: at_onboarding_cli: Added regex support for list / approve / den…
gkc May 6, 2024
6ebe04b
build: at_onboarding_cli: pubspec and CHANGELOG for 1.5.0
gkc May 6, 2024
9466d64
docs: at_onboarding_cli: tweaked pub description
gkc May 6, 2024
6341a37
feat: at_onboarding_cli: auth_cli throw ArgumentError when appropriate
gkc May 6, 2024
e0ecbc9
fix: auth_cli: write generated OTP to stdout
gkc May 7, 2024
0b7b023
build: at_onboarding_cli: upgrade at_cli_commons dependency
gkc May 7, 2024
675cb2f
feat: auth_cli: add maxConnectAttempts param to auth_cli
gkc May 7, 2024
29b129b
build: using published version 1.1.0 of at_cli_commons
gkc May 7, 2024
7fb44de
test: modify cli functional tests pubspec to use at_onboarding_cli fr…
gkc May 7, 2024
157dc63
at_onboarding_cli: Improve the terminal output from activate_cli. Als…
gkc May 13, 2024
ac7fd0f
chore: run dart format
gkc May 13, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions packages/at_onboarding_cli/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
## 1.5.0
- feat: 'activate' CLI is now APKAM-aware, and supports
- onboarding (as before)
- submitting enrollment requests
- listing / approving / denying / revoking enrollment requests
- generating one-time passcodes
- setting semi-permanent passcode
## 1.4.4
- feat: uptake changes for at_auth 2.0.0
- build[deps]: upgrade at_auth to 2.0.2 | at_lookup to 3.0.46 | at_client to 3.0.75 \
Expand Down
11 changes: 6 additions & 5 deletions packages/at_onboarding_cli/analysis_options.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,12 @@

include: package:lints/recommended.yaml

# Uncomment the following section to specify additional rules.

# linter:
# rules:
# - camel_case_types
linter:
rules:
camel_case_types : true
unnecessary_string_interpolations : true
await_only_futures : true
unawaited_futures: true

# analyzer:
# exclude:
Expand Down
23 changes: 2 additions & 21 deletions packages/at_onboarding_cli/bin/activate_cli.dart
Original file line number Diff line number Diff line change
@@ -1,26 +1,7 @@
import 'dart:io';

import 'package:at_client/at_client.dart';
import 'package:at_onboarding_cli/src/activate_cli/activate_cli.dart'
as activate_cli;
import 'package:at_onboarding_cli/src/cli/auth_cli.dart' as auth_cli;

Future<void> main(List<String> args) async {
try {
await activate_cli.main(args);
} on IllegalArgumentException catch (e) {
stderr.writeln('[Exception] Incorrect arguments provided\nCause: $e');
exit(1);
} on Exception catch (e) {
stderr.writeln('[Exception] Aborting process with exit code:2\nCause: $e');
exit(2);
} on Error catch (e) {
stderr.writeln('[Error] Aborting process with exit code:3\nCause: $e');
exit(3);
}
// The onboarding_service_impl creates an AtClient instance which will start
// the following services: SyncService, AtClientCommitLogCompaction,
// Monitor connection in NotificationService.
// We do not have an stop method in at_client that stop(s) the services, hence
// to force quit, calling exit method.
exit(0);
exit(await auth_cli.main(args));
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,18 @@ Future<void> main(List<String> args) async {
..atKeysFilePath = argResults['atKeysPath']
..appName = 'buzz'
..deviceName = 'iphone'
..rootDomain = 'vip.ve.atsign.zone'
..apkamAuthRetryDurationMins = 1;
..rootDomain = 'vip.ve.atsign.zone';
AtOnboardingService? onboardingService =
AtOnboardingServiceImpl(atSign, atOnboardingPreference);
Map<String, String> namespaces = {"buzz": "rw"};
// run totp:get from enrolled client and pass the otp
var enrollmentResponse = await onboardingService.enroll(
'buzz', 'iphone', argResults['otp'], namespaces);
'buzz',
'iphone',
argResults['otp'],
namespaces,
retryInterval: Duration(seconds: 10),
);
print('enrollmentResponse: $enrollmentResponse');
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,10 +56,10 @@ Future<void> _notificationCallback(AtNotification notification,
var enrollParamsJson = {};
enrollParamsJson['enrollmentId'] = enrollmentId;
if (approveResponse == 'yes') {
final encryptedApkamSymmetricKey =
jsonDecode(notification.value!)['encryptedApkamSymmetricKey'];
final encryptedAPKAMSymmetricKey =
jsonDecode(notification.value!)['encryptedAPKAMSymmetricKey'];
final apkamSymmetricKey = EncryptionUtil.decryptKey(
encryptedApkamSymmetricKey, atAuthKeys.defaultEncryptionPrivateKey!);
encryptedAPKAMSymmetricKey, atAuthKeys.defaultEncryptionPrivateKey!);
print('decrypted apkam symmetric key: $apkamSymmetricKey');
var encryptedDefaultPrivateEncKey = EncryptionUtil.encryptValue(
atAuthKeys.defaultEncryptionPrivateKey!, apkamSymmetricKey);
Expand Down
Loading