Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
6042a8d
remove deprecated samples
sbSteveK Aug 15, 2025
e4a79f5
remove more samples and begin updating ci
sbSteveK Aug 15, 2025
fce9ad9
update mac ci
sbSteveK Aug 15, 2025
21361ef
update linux ci
sbSteveK Aug 15, 2025
486926b
more sample ci cleanup
sbSteveK Aug 15, 2025
52ed9e2
more sample culling
sbSteveK Aug 15, 2025
e6d375d
remove more mqtt3 samples
sbSteveK Aug 15, 2025
72bf681
remove unused roles
sbSteveK Aug 15, 2025
337355a
remove mqtt3 samples from codebuild smoketest
sbSteveK Aug 15, 2025
5b4bdf8
point CD and other areas to mqtt5 pubsub. Reinstate basic_discovery
sbSteveK Aug 18, 2025
8d380b8
remove --is_ci args from runner scripts
sbSteveK Aug 18, 2025
0a302fc
remove ci from mqtt5 pubsub
sbSteveK Aug 18, 2025
5c23074
forgot utils
sbSteveK Aug 18, 2025
ff8a813
restore old basic_discovery.py
sbSteveK Aug 18, 2025
029e88d
restore basic_discovery.md
sbSteveK Aug 18, 2025
3cfbabf
simplify arg parsing for pubsub
sbSteveK Aug 18, 2025
7561ef6
update custom auth sample
sbSteveK Aug 18, 2025
d5f5aa3
remove duplicate use_websockets
sbSteveK Aug 18, 2025
c8b1ed8
missed comma
sbSteveK Aug 18, 2025
df3c19d
comma again
sbSteveK Aug 18, 2025
2bb49a1
rename args
sbSteveK Aug 18, 2025
4c54985
input_custom_authorizer_name
sbSteveK Aug 18, 2025
b696d7e
is_ci remove
sbSteveK Aug 18, 2025
baa0c37
clientID
sbSteveK Aug 18, 2025
228e40a
use websockets is a toggle
sbSteveK Aug 18, 2025
3b69654
update samples
sbSteveK Aug 18, 2025
81d83dc
remove is_ci
sbSteveK Aug 18, 2025
85bd350
remove command line utils
sbSteveK Aug 18, 2025
45b4fcc
update fleet_provisioning test
sbSteveK Aug 19, 2025
0750ba1
remove utils dependency from remaining service tests
sbSteveK Aug 19, 2025
ac73022
remove utils from basic_discovery
sbSteveK Aug 19, 2025
bb3b98a
remove command_line_utils.py
sbSteveK Aug 19, 2025
5805cd7
samples-wide factoring start
sbSteveK Aug 19, 2025
f75b65e
simplify parser
sbSteveK Aug 19, 2025
13724e8
further formatting
sbSteveK Aug 19, 2025
391912e
Merge branch 'main' into sample-revamp
sbSteveK Aug 27, 2025
575774c
update README and FAQ
sbSteveK Aug 27, 2025
edf254e
PR fixes
sbSteveK Aug 27, 2025
353908a
try removing ci_run_greengrass_discovery_cfg to check if it's running
sbSteveK Aug 27, 2025
1d0fa5b
restore ci_run_greengrass_ipc_cfg
sbSteveK Aug 27, 2025
ea9e2d9
be holistic and also remove mqtt5 samples from ci
sbSteveK Aug 28, 2025
cb04f25
remove Device Advisor from CI
sbSteveK Aug 29, 2025
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
Prev Previous commit
Next Next commit
update samples
  • Loading branch information
sbSteveK committed Aug 18, 2025
commit 3b696546abede7e87292b6d7ff7f19877cc47047
40 changes: 20 additions & 20 deletions samples/mqtt5_custom_authorizer_connect.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ def parse_sample_input():

return args

cmdData = parse_sample_input()
args = parse_sample_input()

# --------------------------------- ARGUMENT PARSING END -----------------------------------------

Expand Down Expand Up @@ -76,33 +76,33 @@ def on_lifecycle_connection_success(lifecycle_connect_success_data: mqtt5.Lifecy

if __name__ == '__main__':
# Create MQTT5 Client with a custom authorizer
if cmdData.input_use_websockets is None:
if args.input_use_websockets is None:
client = mqtt5_client_builder.direct_with_custom_authorizer(
endpoint=cmdData.input_endpoint,
ca_filepath=cmdData.input_ca,
auth_username=cmdData.input_custom_auth_username,
auth_authorizer_name=cmdData.input_custom_authorizer_name,
auth_authorizer_signature=cmdData.input_custom_authorizer_signature,
auth_password=cmdData.input_custom_auth_password,
auth_token_key_name=cmdData.input_custom_authorizer_token_key_name,
auth_token_value=cmdData.input_custom_authorizer_token_value,
endpoint=args.input_endpoint,
ca_filepath=args.input_ca,
auth_username=args.input_custom_auth_username,
auth_authorizer_name=args.input_custom_authorizer_name,
auth_authorizer_signature=args.input_custom_authorizer_signature,
auth_password=args.input_custom_auth_password,
auth_token_key_name=args.input_custom_authorizer_token_key_name,
auth_token_value=args.input_custom_authorizer_token_value,
on_lifecycle_stopped=on_lifecycle_stopped,
on_lifecycle_connection_success=on_lifecycle_connection_success,
client_id=cmdData.input_clientId)
client_id=args.input_clientId)
else:
client = mqtt5_client_builder.websockets_with_custom_authorizer(
endpoint=cmdData.input_endpoint,
auth_username=cmdData.input_custom_auth_username,
auth_authorizer_name=cmdData.input_custom_authorizer_name,
auth_authorizer_signature=cmdData.input_custom_authorizer_signature,
auth_password=cmdData.input_custom_auth_password,
auth_token_key_name=cmdData.input_custom_authorizer_token_key_name,
auth_token_value=cmdData.input_custom_authorizer_token_value,
endpoint=args.input_endpoint,
auth_username=args.input_custom_auth_username,
auth_authorizer_name=args.input_custom_authorizer_name,
auth_authorizer_signature=args.input_custom_authorizer_signature,
auth_password=args.input_custom_auth_password,
auth_token_key_name=args.input_custom_authorizer_token_key_name,
auth_token_value=args.input_custom_authorizer_token_value,
on_lifecycle_stopped=on_lifecycle_stopped,
on_lifecycle_connection_success=on_lifecycle_connection_success,
client_id=cmdData.input_clientId)
client_id=args.input_clientId)

print(f"Connecting to {cmdData.input_endpoint} with client ID '{cmdData.input_clientId}'...")
print(f"Connecting to {args.input_endpoint} with client ID '{args.input_clientId}'...")

client.start()
future_connection_success.result(TIMEOUT)
Expand Down
76 changes: 56 additions & 20 deletions samples/mqtt5_pkcs11_connect.py
Original file line number Diff line number Diff line change
@@ -1,18 +1,54 @@
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0.

# --------------------------------- ARGUMENT PARSING -----------------------------------------
import argparse, uuid

def parse_sample_input():
parser = argparse.ArgumentParser(
description="MQTT5 pub/sub sample (mTLS).",
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
)

# Connection / TLS
parser.add_argument("--endpoint", required=True, dest="input_endpoint", help="IoT endpoint hostname")
parser.add_argument("--port", type=int, default=8883, dest="input_port", help="Port (8883 mTLS, 443 ALPN)")
parser.add_argument("--cert", required=True, dest="input_cert",
help="Path to the certificate file to use during mTLS connection establishment")
parser.add_argument("--ca", dest="input_ca", help="Path to optional CA bundle (PEM)")

# Messaging
parser.add_argument("--topic", default="test/topic", dest="input_topic", help="Topic")
parser.add_argument("--message", default="Hello from mqtt5 sample", dest="input_message", help="Message payload")
parser.add_argument("--count", default=5, dest="input_count",
help="Messages to publish (0 = infinite)")

# Proxy (optional)
parser.add_argument("--proxy-host", dest="input_proxy_host", help="HTTP proxy host")
parser.add_argument("--proxy-port", type=int, default=0, dest="input_proxy_port", help="HTTP proxy port")

# Misc
parser.add_argument("--client-id", dest="input_clientId",
default=f"test-{uuid.uuid4().hex[:8]}", help="Client ID")

parser.add_argument("--pkcs11_lib", required=True, dest="input_pkcs11_lib_path", help="Path to PKCS#11 Library")
parser.add_argument("--pin", required=True, dest="input_pkcs11_user_pin", help="User PIN for logging into PKCS#11 token")
parser.add_argument("--token_label", dest="input_pkcs11_token_label", help="Label of the PKCS#11 token to use (optional).")
parser.add_argument("--slot_id", dest="input_pkcs11_slot_id", help="Slot ID containing the PKCS#11 token to use (optional).")
parser.add_argument("--key_label", dest="input_pkcs11_key_label", help="Label of private key on the PKCS#11 token (optional).")

return parser.parse_args()

args = parse_sample_input()

# --------------------------------- ARGUMENT PARSING END -----------------------------------------

from awscrt import mqtt5, io
from awsiot import mqtt5_client_builder
from concurrent.futures import Future
from utils.command_line_utils import CommandLineUtils

TIMEOUT = 100

# cmdData is the arguments/input from the command line placed into a single struct for
# use in this sample. This handles all of the command line parsing, validating, etc.
# See the Utils/CommandLineUtils for more information.
cmdData = CommandLineUtils.parse_sample_input_mqtt5_pkcs11_connect()

future_stopped = Future()
future_connection_success = Future()

Expand All @@ -33,35 +69,35 @@ def on_lifecycle_connection_success(lifecycle_connect_success_data: mqtt5.Lifecy
if __name__ == '__main__':
print("\nStarting MQTT5 pkcs11 connect Sample\n")

print(f"Loading PKCS#11 library '{cmdData.input_pkcs11_lib_path}' ...")
print(f"Loading PKCS#11 library '{args.input_pkcs11_lib_path}' ...")
pkcs11_lib = io.Pkcs11Lib(
file=cmdData.input_pkcs11_lib_path,
file=args.input_pkcs11_lib_path,
behavior=io.Pkcs11Lib.InitializeFinalizeBehavior.STRICT)
print("Loaded!")

pkcs11_slot_id = None
if (cmdData.input_pkcs11_slot_id is not None):
pkcs11_slot_id = int(cmdData.input_pkcs11_slot_id)
if (args.input_pkcs11_slot_id is not None):
pkcs11_slot_id = int(args.input_pkcs11_slot_id)

# Create MQTT5 client
client = mqtt5_client_builder.mtls_with_pkcs11(
pkcs11_lib=pkcs11_lib,
user_pin=cmdData.input_pkcs11_user_pin,
user_pin=args.input_pkcs11_user_pin,
slot_id=pkcs11_slot_id,
token_label=cmdData.input_pkcs11_token_label,
private_key_label=cmdData.input_pkcs11_key_label,
cert_filepath=cmdData.input_cert,
endpoint=cmdData.input_endpoint,
port=cmdData.input_port,
ca_filepath=cmdData.input_ca,
token_label=args.input_pkcs11_token_label,
private_key_label=args.input_pkcs11_key_label,
cert_filepath=args.input_cert,
endpoint=args.input_endpoint,
port=args.input_port,
ca_filepath=args.input_ca,
on_lifecycle_stopped=on_lifecycle_stopped,
on_lifecycle_connection_success=on_lifecycle_connection_success,
client_id=cmdData.input_clientId)
client_id=args.input_clientId)

print("MQTT5 Client Created")

if not cmdData.input_is_ci:
print(f"Connecting to {cmdData.input_endpoint} with client ID '{cmdData.input_clientId}'...")
if not args.input_is_ci:
print(f"Connecting to {args.input_endpoint} with client ID '{args.input_clientId}'...")
else:
print("Connecting to endpoint with client ID")

Expand Down
Loading