Creating Node, and the node_name

I’m trying to provision a new node manually with knife.

root@ip-172-41-9-55:~# knife node from file /root/node.json -s
https://chef12.dev.foobar.com -k /root/doug.pem
WARNING: No knife configuration file found
ERROR: ArgumentError: Cannot sign the request without a client name, check
that :node_name is assigned

I guess I need to pass -c to the config file which has the node_name in it?
Why? Why is a config file required? Why can’t I just pass a node name on
the command line? Now I have to create a knife.rb file just for the
purposes of passing the node name in. Everything else is passable via the
CLI, why not the node name?

Doug