I'm trying to figure out if its safe to send a private key along with a transaction so that only people with the private key can execute the transaction. My concern is that the transaction record will contain the private key that was sent with the transaction. I reviewed the solidity docs and didnt see any mention of parameter values though, see here.
Yes, transaction parameters are public once you send them in a transaction. For example, in the following transaction: https://etherscan.io/tx/0x1b9a71a905ab5afe59753c4bad6b84b71ed897a968c88658e1c524b3882fa2a4 yoou can see the Input Data field:
Function: transfer(address _to, uint256 _value)
MethodID: 0xa9059cbb :0000000000000000000000001645c91d485064088c43ccecdd9fe85701746f82 :00000000000000000000000000000000000000000000000025d8400d3e7d8000
The last two hex numbers correspond to the two parameters sent with the transaction encoded. In this case, the first one is an ethereum address and the second one an uint with a value.
If you send a private key as a parameter through an Ethereum transaction, it will definitely be visible to everyone. Check out something called the RPC interface to the node and web3.js. You'll see it's quite easy to get at the parameters for any transaction.